@economic/taco 1.0.5 → 1.0.6
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/esm/_virtual/_rollupPluginBabelHelpers.js +35 -0
- package/dist/esm/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/esm/components/Accordion/Accordion.js +93 -0
- package/dist/esm/components/Accordion/Accordion.js.map +1 -0
- package/dist/esm/components/Backdrop/Backdrop.js +13 -0
- package/dist/esm/components/Backdrop/Backdrop.js.map +1 -0
- package/dist/esm/components/Badge/Badge.js +32 -0
- package/dist/esm/components/Badge/Badge.js.map +1 -0
- package/dist/esm/components/Banner/Banner.js +24 -0
- package/dist/esm/components/Banner/Banner.js.map +1 -0
- package/dist/esm/components/Banner/util.js +36 -0
- package/dist/esm/components/Banner/util.js.map +1 -0
- package/dist/esm/components/Button/Button.js +36 -0
- package/dist/esm/components/Button/Button.js.map +1 -0
- package/dist/esm/components/Button/util.js +77 -0
- package/dist/esm/components/Button/util.js.map +1 -0
- package/dist/esm/components/Calendar/Calendar.js +152 -0
- package/dist/esm/components/Calendar/Calendar.js.map +1 -0
- package/dist/esm/components/Checkbox/Checkbox.js +58 -0
- package/dist/esm/components/Checkbox/Checkbox.js.map +1 -0
- package/dist/esm/components/Combobox/Combobox.js +89 -0
- package/dist/esm/components/Combobox/Combobox.js.map +1 -0
- package/dist/esm/components/Combobox/useCombobox.js +285 -0
- package/dist/esm/components/Combobox/useCombobox.js.map +1 -0
- package/dist/esm/components/Datepicker/Datepicker.js +75 -0
- package/dist/esm/components/Datepicker/Datepicker.js.map +1 -0
- package/dist/esm/components/Datepicker/useDatepicker.js +88 -0
- package/dist/esm/components/Datepicker/useDatepicker.js.map +1 -0
- package/dist/esm/components/Dialog/Context.js +26 -0
- package/dist/esm/components/Dialog/Context.js.map +1 -0
- package/dist/esm/components/Dialog/Dialog.js +98 -0
- package/dist/esm/components/Dialog/Dialog.js.map +1 -0
- package/dist/esm/components/Dialog/components/Content.js +135 -0
- package/dist/esm/components/Dialog/components/Content.js.map +1 -0
- package/dist/esm/components/Dialog/components/Drawer.js +42 -0
- package/dist/esm/components/Dialog/components/Drawer.js.map +1 -0
- package/dist/esm/components/Dialog/components/Extra.js +15 -0
- package/dist/esm/components/Dialog/components/Extra.js.map +1 -0
- package/dist/esm/components/Dialog/components/Trigger.js +15 -0
- package/dist/esm/components/Dialog/components/Trigger.js.map +1 -0
- package/dist/esm/components/Field/Field.js +33 -0
- package/dist/esm/components/Field/Field.js.map +1 -0
- package/dist/esm/components/Form/Form.js +22 -0
- package/dist/esm/components/Form/Form.js.map +1 -0
- package/dist/esm/components/Group/Group.js +20 -0
- package/dist/esm/components/Group/Group.js.map +1 -0
- package/dist/esm/components/Hanger/Hanger.js +104 -0
- package/dist/esm/components/Hanger/Hanger.js.map +1 -0
- package/dist/esm/components/HoverCard/HoverCard.js +33 -0
- package/dist/esm/components/HoverCard/HoverCard.js.map +1 -0
- package/dist/esm/components/Icon/Icon.js +30 -0
- package/dist/esm/components/Icon/Icon.js.map +1 -0
- package/dist/esm/components/Icon/components/AccountPreview.js +18 -0
- package/dist/esm/components/Icon/components/AccountPreview.js.map +1 -0
- package/dist/esm/components/Icon/components/Accounting.js +18 -0
- package/dist/esm/components/Icon/components/Accounting.js.map +1 -0
- package/dist/esm/components/Icon/components/AccountingYear.js +18 -0
- package/dist/esm/components/Icon/components/AccountingYear.js.map +1 -0
- package/dist/esm/components/Icon/components/AccountingYearCancel.js +18 -0
- package/dist/esm/components/Icon/components/AccountingYearCancel.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowBottom.js +18 -0
- package/dist/esm/components/Icon/components/ArrowBottom.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowDown.js +18 -0
- package/dist/esm/components/Icon/components/ArrowDown.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowEnd.js +18 -0
- package/dist/esm/components/Icon/components/ArrowEnd.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowLeft.js +18 -0
- package/dist/esm/components/Icon/components/ArrowLeft.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowRight.js +18 -0
- package/dist/esm/components/Icon/components/ArrowRight.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowStart.js +18 -0
- package/dist/esm/components/Icon/components/ArrowStart.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowTop.js +18 -0
- package/dist/esm/components/Icon/components/ArrowTop.js.map +1 -0
- package/dist/esm/components/Icon/components/ArrowUp.js +18 -0
- package/dist/esm/components/Icon/components/ArrowUp.js.map +1 -0
- package/dist/esm/components/Icon/components/Attach.js +18 -0
- package/dist/esm/components/Icon/components/Attach.js.map +1 -0
- package/dist/esm/components/Icon/components/AttachAuto.js +18 -0
- package/dist/esm/components/Icon/components/AttachAuto.js.map +1 -0
- package/dist/esm/components/Icon/components/AttachCancel.js +18 -0
- package/dist/esm/components/Icon/components/AttachCancel.js.map +1 -0
- package/dist/esm/components/Icon/components/Autotext.js +18 -0
- package/dist/esm/components/Icon/components/Autotext.js.map +1 -0
- package/dist/esm/components/Icon/components/AutotextInsert.js +18 -0
- package/dist/esm/components/Icon/components/AutotextInsert.js.map +1 -0
- package/dist/esm/components/Icon/components/Basic.js +18 -0
- package/dist/esm/components/Icon/components/Basic.js.map +1 -0
- package/dist/esm/components/Icon/components/BasicTabs.js +18 -0
- package/dist/esm/components/Icon/components/BasicTabs.js.map +1 -0
- package/dist/esm/components/Icon/components/BellSolid.js +18 -0
- package/dist/esm/components/Icon/components/BellSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Book.js +18 -0
- package/dist/esm/components/Icon/components/Book.js.map +1 -0
- package/dist/esm/components/Icon/components/Booking.js +18 -0
- package/dist/esm/components/Icon/components/Booking.js.map +1 -0
- package/dist/esm/components/Icon/components/Budget.js +18 -0
- package/dist/esm/components/Icon/components/Budget.js.map +1 -0
- package/dist/esm/components/Icon/components/Calendar.js +18 -0
- package/dist/esm/components/Icon/components/Calendar.js.map +1 -0
- package/dist/esm/components/Icon/components/CashAccount.js +17 -0
- package/dist/esm/components/Icon/components/CashAccount.js.map +1 -0
- package/dist/esm/components/Icon/components/CashReports.js +18 -0
- package/dist/esm/components/Icon/components/CashReports.js.map +1 -0
- package/dist/esm/components/Icon/components/Chat.js +18 -0
- package/dist/esm/components/Icon/components/Chat.js.map +1 -0
- package/dist/esm/components/Icon/components/ChatSolid.js +18 -0
- package/dist/esm/components/Icon/components/ChatSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronDown.js +18 -0
- package/dist/esm/components/Icon/components/ChevronDown.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronDownDouble.js +18 -0
- package/dist/esm/components/Icon/components/ChevronDownDouble.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronDownSolid.js +18 -0
- package/dist/esm/components/Icon/components/ChevronDownSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronLeft.js +18 -0
- package/dist/esm/components/Icon/components/ChevronLeft.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronLeftDouble.js +18 -0
- package/dist/esm/components/Icon/components/ChevronLeftDouble.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronRight.js +18 -0
- package/dist/esm/components/Icon/components/ChevronRight.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronRightDouble.js +18 -0
- package/dist/esm/components/Icon/components/ChevronRightDouble.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronUp.js +18 -0
- package/dist/esm/components/Icon/components/ChevronUp.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronUpDouble.js +18 -0
- package/dist/esm/components/Icon/components/ChevronUpDouble.js.map +1 -0
- package/dist/esm/components/Icon/components/ChevronUpSolid.js +18 -0
- package/dist/esm/components/Icon/components/ChevronUpSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/CircleClose.js +19 -0
- package/dist/esm/components/Icon/components/CircleClose.js.map +1 -0
- package/dist/esm/components/Icon/components/CircleMinus.js +18 -0
- package/dist/esm/components/Icon/components/CircleMinus.js.map +1 -0
- package/dist/esm/components/Icon/components/CirclePlus.js +18 -0
- package/dist/esm/components/Icon/components/CirclePlus.js.map +1 -0
- package/dist/esm/components/Icon/components/CircleTick.js +18 -0
- package/dist/esm/components/Icon/components/CircleTick.js.map +1 -0
- package/dist/esm/components/Icon/components/Clamp.js +18 -0
- package/dist/esm/components/Icon/components/Clamp.js.map +1 -0
- package/dist/esm/components/Icon/components/ClampOpen.js +18 -0
- package/dist/esm/components/Icon/components/ClampOpen.js.map +1 -0
- package/dist/esm/components/Icon/components/Close.js +18 -0
- package/dist/esm/components/Icon/components/Close.js.map +1 -0
- package/dist/esm/components/Icon/components/ConnectionEnable.js +17 -0
- package/dist/esm/components/Icon/components/ConnectionEnable.js.map +1 -0
- package/dist/esm/components/Icon/components/ConnectionRevoke.js +17 -0
- package/dist/esm/components/Icon/components/ConnectionRevoke.js.map +1 -0
- package/dist/esm/components/Icon/components/Contacts.js +18 -0
- package/dist/esm/components/Icon/components/Contacts.js.map +1 -0
- package/dist/esm/components/Icon/components/Copy.js +18 -0
- package/dist/esm/components/Icon/components/Copy.js.map +1 -0
- package/dist/esm/components/Icon/components/Courses.js +17 -0
- package/dist/esm/components/Icon/components/Courses.js.map +1 -0
- package/dist/esm/components/Icon/components/Credit.js +18 -0
- package/dist/esm/components/Icon/components/Credit.js.map +1 -0
- package/dist/esm/components/Icon/components/Delete.js +18 -0
- package/dist/esm/components/Icon/components/Delete.js.map +1 -0
- package/dist/esm/components/Icon/components/DeletePermanently.js +18 -0
- package/dist/esm/components/Icon/components/DeletePermanently.js.map +1 -0
- package/dist/esm/components/Icon/components/Depecriate.js +18 -0
- package/dist/esm/components/Icon/components/Depecriate.js.map +1 -0
- package/dist/esm/components/Icon/components/Developer.js +18 -0
- package/dist/esm/components/Icon/components/Developer.js.map +1 -0
- package/dist/esm/components/Icon/components/DistributionTemplate.js +18 -0
- package/dist/esm/components/Icon/components/DistributionTemplate.js.map +1 -0
- package/dist/esm/components/Icon/components/Document.js +17 -0
- package/dist/esm/components/Icon/components/Document.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentApprove.js +18 -0
- package/dist/esm/components/Icon/components/DocumentApprove.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentCreateEntry.js +18 -0
- package/dist/esm/components/Icon/components/DocumentCreateEntry.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentCut.js +18 -0
- package/dist/esm/components/Icon/components/DocumentCut.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentError.js +18 -0
- package/dist/esm/components/Icon/components/DocumentError.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentIsolatePage.js +18 -0
- package/dist/esm/components/Icon/components/DocumentIsolatePage.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentMerge.js +18 -0
- package/dist/esm/components/Icon/components/DocumentMerge.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentMove.js +18 -0
- package/dist/esm/components/Icon/components/DocumentMove.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentPreview.js +18 -0
- package/dist/esm/components/Icon/components/DocumentPreview.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentReceived.js +17 -0
- package/dist/esm/components/Icon/components/DocumentReceived.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentRejectedRequest.js +17 -0
- package/dist/esm/components/Icon/components/DocumentRejectedRequest.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentSplit.js +18 -0
- package/dist/esm/components/Icon/components/DocumentSplit.js.map +1 -0
- package/dist/esm/components/Icon/components/DocumentTime.js +18 -0
- package/dist/esm/components/Icon/components/DocumentTime.js.map +1 -0
- package/dist/esm/components/Icon/components/Download.js +18 -0
- package/dist/esm/components/Icon/components/Download.js.map +1 -0
- package/dist/esm/components/Icon/components/Drag.js +18 -0
- package/dist/esm/components/Icon/components/Drag.js.map +1 -0
- package/dist/esm/components/Icon/components/ECopedia.js +18 -0
- package/dist/esm/components/Icon/components/ECopedia.js.map +1 -0
- package/dist/esm/components/Icon/components/ESignature.js +18 -0
- package/dist/esm/components/Icon/components/ESignature.js.map +1 -0
- package/dist/esm/components/Icon/components/Edit.js +18 -0
- package/dist/esm/components/Icon/components/Edit.js.map +1 -0
- package/dist/esm/components/Icon/components/EllipsisHorizontal.js +18 -0
- package/dist/esm/components/Icon/components/EllipsisHorizontal.js.map +1 -0
- package/dist/esm/components/Icon/components/EllipsisVertical.js +18 -0
- package/dist/esm/components/Icon/components/EllipsisVertical.js.map +1 -0
- package/dist/esm/components/Icon/components/EntriesOnAccount.js +18 -0
- package/dist/esm/components/Icon/components/EntriesOnAccount.js.map +1 -0
- package/dist/esm/components/Icon/components/EntriesOpen.js +18 -0
- package/dist/esm/components/Icon/components/EntriesOpen.js.map +1 -0
- package/dist/esm/components/Icon/components/EntriesWarning.js +18 -0
- package/dist/esm/components/Icon/components/EntriesWarning.js.map +1 -0
- package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js +18 -0
- package/dist/esm/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -0
- package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js +18 -0
- package/dist/esm/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -0
- package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js +18 -0
- package/dist/esm/components/Icon/components/EntryTypeJournalEntry.js.map +1 -0
- package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js +18 -0
- package/dist/esm/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -0
- package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js +18 -0
- package/dist/esm/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -0
- package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js +18 -0
- package/dist/esm/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -0
- package/dist/esm/components/Icon/components/Envelope.js +18 -0
- package/dist/esm/components/Icon/components/Envelope.js.map +1 -0
- package/dist/esm/components/Icon/components/EnvelopeApproved.js +18 -0
- package/dist/esm/components/Icon/components/EnvelopeApproved.js.map +1 -0
- package/dist/esm/components/Icon/components/ExpandView.js +18 -0
- package/dist/esm/components/Icon/components/ExpandView.js.map +1 -0
- package/dist/esm/components/Icon/components/Expenses.js +18 -0
- package/dist/esm/components/Icon/components/Expenses.js.map +1 -0
- package/dist/esm/components/Icon/components/Export.js +18 -0
- package/dist/esm/components/Icon/components/Export.js.map +1 -0
- package/dist/esm/components/Icon/components/ExportToExcel.js +18 -0
- package/dist/esm/components/Icon/components/ExportToExcel.js.map +1 -0
- package/dist/esm/components/Icon/components/ExportToPdf.js +18 -0
- package/dist/esm/components/Icon/components/ExportToPdf.js.map +1 -0
- package/dist/esm/components/Icon/components/Filter.js +18 -0
- package/dist/esm/components/Icon/components/Filter.js.map +1 -0
- package/dist/esm/components/Icon/components/FilterSolid.js +18 -0
- package/dist/esm/components/Icon/components/FilterSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/GraphSolid.js +18 -0
- package/dist/esm/components/Icon/components/GraphSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Hash.js +18 -0
- package/dist/esm/components/Icon/components/Hash.js.map +1 -0
- package/dist/esm/components/Icon/components/Home.js +18 -0
- package/dist/esm/components/Icon/components/Home.js.map +1 -0
- package/dist/esm/components/Icon/components/Images.js +18 -0
- package/dist/esm/components/Icon/components/Images.js.map +1 -0
- package/dist/esm/components/Icon/components/Import.js +18 -0
- package/dist/esm/components/Icon/components/Import.js.map +1 -0
- package/dist/esm/components/Icon/components/Inbox.js +20 -0
- package/dist/esm/components/Icon/components/Inbox.js.map +1 -0
- package/dist/esm/components/Icon/components/InboxEinvoicing.js +20 -0
- package/dist/esm/components/Icon/components/InboxEinvoicing.js.map +1 -0
- package/dist/esm/components/Icon/components/InboxScanning.js +20 -0
- package/dist/esm/components/Icon/components/InboxScanning.js.map +1 -0
- package/dist/esm/components/Icon/components/InboxSmart.js +20 -0
- package/dist/esm/components/Icon/components/InboxSmart.js.map +1 -0
- package/dist/esm/components/Icon/components/Info.js +18 -0
- package/dist/esm/components/Icon/components/Info.js.map +1 -0
- package/dist/esm/components/Icon/components/Inventory.js +18 -0
- package/dist/esm/components/Icon/components/Inventory.js.map +1 -0
- package/dist/esm/components/Icon/components/InventoryMatrix.js +18 -0
- package/dist/esm/components/Icon/components/InventoryMatrix.js.map +1 -0
- package/dist/esm/components/Icon/components/JournalPro.js +18 -0
- package/dist/esm/components/Icon/components/JournalPro.js.map +1 -0
- package/dist/esm/components/Icon/components/Layout.js +18 -0
- package/dist/esm/components/Icon/components/Layout.js.map +1 -0
- package/dist/esm/components/Icon/components/LayoutBoth.js +18 -0
- package/dist/esm/components/Icon/components/LayoutBoth.js.map +1 -0
- package/dist/esm/components/Icon/components/LayoutFirst.js +18 -0
- package/dist/esm/components/Icon/components/LayoutFirst.js.map +1 -0
- package/dist/esm/components/Icon/components/LayoutLast.js +18 -0
- package/dist/esm/components/Icon/components/LayoutLast.js.map +1 -0
- package/dist/esm/components/Icon/components/LayoutNone.js +18 -0
- package/dist/esm/components/Icon/components/LayoutNone.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCard.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCard.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardReservedEntry.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -0
- package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js +18 -0
- package/dist/esm/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -0
- package/dist/esm/components/Icon/components/Lightbulb.js +18 -0
- package/dist/esm/components/Icon/components/Lightbulb.js.map +1 -0
- package/dist/esm/components/Icon/components/Line.js +18 -0
- package/dist/esm/components/Icon/components/Line.js.map +1 -0
- package/dist/esm/components/Icon/components/List.js +18 -0
- package/dist/esm/components/Icon/components/List.js.map +1 -0
- package/dist/esm/components/Icon/components/ListBulleted.js +18 -0
- package/dist/esm/components/Icon/components/ListBulleted.js.map +1 -0
- package/dist/esm/components/Icon/components/ListSearch.js +18 -0
- package/dist/esm/components/Icon/components/ListSearch.js.map +1 -0
- package/dist/esm/components/Icon/components/LockOpen.js +18 -0
- package/dist/esm/components/Icon/components/LockOpen.js.map +1 -0
- package/dist/esm/components/Icon/components/Log.js +18 -0
- package/dist/esm/components/Icon/components/Log.js.map +1 -0
- package/dist/esm/components/Icon/components/Market.js +18 -0
- package/dist/esm/components/Icon/components/Market.js.map +1 -0
- package/dist/esm/components/Icon/components/MatchAmount.js +18 -0
- package/dist/esm/components/Icon/components/MatchAmount.js.map +1 -0
- package/dist/esm/components/Icon/components/MatchEntries.js +18 -0
- package/dist/esm/components/Icon/components/MatchEntries.js.map +1 -0
- package/dist/esm/components/Icon/components/Mileage.js +18 -0
- package/dist/esm/components/Icon/components/Mileage.js.map +1 -0
- package/dist/esm/components/Icon/components/ModalResize.js +18 -0
- package/dist/esm/components/Icon/components/ModalResize.js.map +1 -0
- package/dist/esm/components/Icon/components/ModalShrink.js +18 -0
- package/dist/esm/components/Icon/components/ModalShrink.js.map +1 -0
- package/dist/esm/components/Icon/components/More.js +18 -0
- package/dist/esm/components/Icon/components/More.js.map +1 -0
- package/dist/esm/components/Icon/components/MoreSolid.js +18 -0
- package/dist/esm/components/Icon/components/MoreSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Move.js +18 -0
- package/dist/esm/components/Icon/components/Move.js.map +1 -0
- package/dist/esm/components/Icon/components/NavigationList.js +18 -0
- package/dist/esm/components/Icon/components/NavigationList.js.map +1 -0
- package/dist/esm/components/Icon/components/Note.js +18 -0
- package/dist/esm/components/Icon/components/Note.js.map +1 -0
- package/dist/esm/components/Icon/components/NoteFollowUp.js +18 -0
- package/dist/esm/components/Icon/components/NoteFollowUp.js.map +1 -0
- package/dist/esm/components/Icon/components/NoteRead.js +18 -0
- package/dist/esm/components/Icon/components/NoteRead.js.map +1 -0
- package/dist/esm/components/Icon/components/PartnerApi.js +18 -0
- package/dist/esm/components/Icon/components/PartnerApi.js.map +1 -0
- package/dist/esm/components/Icon/components/Period.js +18 -0
- package/dist/esm/components/Icon/components/Period.js.map +1 -0
- package/dist/esm/components/Icon/components/PersonChange.js +18 -0
- package/dist/esm/components/Icon/components/PersonChange.js.map +1 -0
- package/dist/esm/components/Icon/components/PersonMinus.js +18 -0
- package/dist/esm/components/Icon/components/PersonMinus.js.map +1 -0
- package/dist/esm/components/Icon/components/PersonPlus.js +18 -0
- package/dist/esm/components/Icon/components/PersonPlus.js.map +1 -0
- package/dist/esm/components/Icon/components/PersonTick.js +18 -0
- package/dist/esm/components/Icon/components/PersonTick.js.map +1 -0
- package/dist/esm/components/Icon/components/Play.js +18 -0
- package/dist/esm/components/Icon/components/Play.js.map +1 -0
- package/dist/esm/components/Icon/components/PlusMinus.js +18 -0
- package/dist/esm/components/Icon/components/PlusMinus.js.map +1 -0
- package/dist/esm/components/Icon/components/Print.js +18 -0
- package/dist/esm/components/Icon/components/Print.js.map +1 -0
- package/dist/esm/components/Icon/components/ProcessPayment.js +18 -0
- package/dist/esm/components/Icon/components/ProcessPayment.js.map +1 -0
- package/dist/esm/components/Icon/components/ProductLedgerCard.js +18 -0
- package/dist/esm/components/Icon/components/ProductLedgerCard.js.map +1 -0
- package/dist/esm/components/Icon/components/ProjectCards.js +18 -0
- package/dist/esm/components/Icon/components/ProjectCards.js.map +1 -0
- package/dist/esm/components/Icon/components/Projects.js +18 -0
- package/dist/esm/components/Icon/components/Projects.js.map +1 -0
- package/dist/esm/components/Icon/components/Quicklinks.js +18 -0
- package/dist/esm/components/Icon/components/Quicklinks.js.map +1 -0
- package/dist/esm/components/Icon/components/RatingBankruptcy.js +18 -0
- package/dist/esm/components/Icon/components/RatingBankruptcy.js.map +1 -0
- package/dist/esm/components/Icon/components/RatingPaymentProblems.js +18 -0
- package/dist/esm/components/Icon/components/RatingPaymentProblems.js.map +1 -0
- package/dist/esm/components/Icon/components/Reconciled.js +18 -0
- package/dist/esm/components/Icon/components/Reconciled.js.map +1 -0
- package/dist/esm/components/Icon/components/Refresh.js +17 -0
- package/dist/esm/components/Icon/components/Refresh.js.map +1 -0
- package/dist/esm/components/Icon/components/Report.js +18 -0
- package/dist/esm/components/Icon/components/Report.js.map +1 -0
- package/dist/esm/components/Icon/components/ReportSolid.js +18 -0
- package/dist/esm/components/Icon/components/ReportSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Restore.js +18 -0
- package/dist/esm/components/Icon/components/Restore.js.map +1 -0
- package/dist/esm/components/Icon/components/RotateLeft.js +17 -0
- package/dist/esm/components/Icon/components/RotateLeft.js.map +1 -0
- package/dist/esm/components/Icon/components/RotateRight.js +17 -0
- package/dist/esm/components/Icon/components/RotateRight.js.map +1 -0
- package/dist/esm/components/Icon/components/Sales.js +18 -0
- package/dist/esm/components/Icon/components/Sales.js.map +1 -0
- package/dist/esm/components/Icon/components/Search.js +18 -0
- package/dist/esm/components/Icon/components/Search.js.map +1 -0
- package/dist/esm/components/Icon/components/SearchBold.js +18 -0
- package/dist/esm/components/Icon/components/SearchBold.js.map +1 -0
- package/dist/esm/components/Icon/components/Secure.js +18 -0
- package/dist/esm/components/Icon/components/Secure.js.map +1 -0
- package/dist/esm/components/Icon/components/SecureTick.js +18 -0
- package/dist/esm/components/Icon/components/SecureTick.js.map +1 -0
- package/dist/esm/components/Icon/components/Settings.js +18 -0
- package/dist/esm/components/Icon/components/Settings.js.map +1 -0
- package/dist/esm/components/Icon/components/SettingsSolid.js +18 -0
- package/dist/esm/components/Icon/components/SettingsSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Shortcuts.js +18 -0
- package/dist/esm/components/Icon/components/Shortcuts.js.map +1 -0
- package/dist/esm/components/Icon/components/ShowAll.js +18 -0
- package/dist/esm/components/Icon/components/ShowAll.js.map +1 -0
- package/dist/esm/components/Icon/components/ShowLess.js +18 -0
- package/dist/esm/components/Icon/components/ShowLess.js.map +1 -0
- package/dist/esm/components/Icon/components/ShowMore.js +18 -0
- package/dist/esm/components/Icon/components/ShowMore.js.map +1 -0
- package/dist/esm/components/Icon/components/ShowTemplate.js +18 -0
- package/dist/esm/components/Icon/components/ShowTemplate.js.map +1 -0
- package/dist/esm/components/Icon/components/Sliders.js +18 -0
- package/dist/esm/components/Icon/components/Sliders.js.map +1 -0
- package/dist/esm/components/Icon/components/Smartpay.js +18 -0
- package/dist/esm/components/Icon/components/Smartpay.js.map +1 -0
- package/dist/esm/components/Icon/components/SortBy.js +18 -0
- package/dist/esm/components/Icon/components/SortBy.js.map +1 -0
- package/dist/esm/components/Icon/components/Spinner.js +21 -0
- package/dist/esm/components/Icon/components/Spinner.js.map +1 -0
- package/dist/esm/components/Icon/components/Star.js +18 -0
- package/dist/esm/components/Icon/components/Star.js.map +1 -0
- package/dist/esm/components/Icon/components/StarSolid.js +18 -0
- package/dist/esm/components/Icon/components/StarSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Subscriptions.js +18 -0
- package/dist/esm/components/Icon/components/Subscriptions.js.map +1 -0
- package/dist/esm/components/Icon/components/SystemEntries.js +18 -0
- package/dist/esm/components/Icon/components/SystemEntries.js.map +1 -0
- package/dist/esm/components/Icon/components/Tag.js +18 -0
- package/dist/esm/components/Icon/components/Tag.js.map +1 -0
- package/dist/esm/components/Icon/components/TemplateOverride.js +18 -0
- package/dist/esm/components/Icon/components/TemplateOverride.js.map +1 -0
- package/dist/esm/components/Icon/components/Templates.js +18 -0
- package/dist/esm/components/Icon/components/Templates.js.map +1 -0
- package/dist/esm/components/Icon/components/ThumbBoth.js +18 -0
- package/dist/esm/components/Icon/components/ThumbBoth.js.map +1 -0
- package/dist/esm/components/Icon/components/ThumbDown.js +18 -0
- package/dist/esm/components/Icon/components/ThumbDown.js.map +1 -0
- package/dist/esm/components/Icon/components/ThumbDownSolid.js +18 -0
- package/dist/esm/components/Icon/components/ThumbDownSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/ThumbUp.js +18 -0
- package/dist/esm/components/Icon/components/ThumbUp.js.map +1 -0
- package/dist/esm/components/Icon/components/ThumbUpSolid.js +18 -0
- package/dist/esm/components/Icon/components/ThumbUpSolid.js.map +1 -0
- package/dist/esm/components/Icon/components/Tick.js +18 -0
- package/dist/esm/components/Icon/components/Tick.js.map +1 -0
- package/dist/esm/components/Icon/components/Time.js +18 -0
- package/dist/esm/components/Icon/components/Time.js.map +1 -0
- package/dist/esm/components/Icon/components/Transfer.js +18 -0
- package/dist/esm/components/Icon/components/Transfer.js.map +1 -0
- package/dist/esm/components/Icon/components/TransferCancel.js +24 -0
- package/dist/esm/components/Icon/components/TransferCancel.js.map +1 -0
- package/dist/esm/components/Icon/components/TransferLocked.js +18 -0
- package/dist/esm/components/Icon/components/TransferLocked.js.map +1 -0
- package/dist/esm/components/Icon/components/Undock.js +18 -0
- package/dist/esm/components/Icon/components/Undock.js.map +1 -0
- package/dist/esm/components/Icon/components/Unreconciled.js +18 -0
- package/dist/esm/components/Icon/components/Unreconciled.js.map +1 -0
- package/dist/esm/components/Icon/components/Warning.js +17 -0
- package/dist/esm/components/Icon/components/Warning.js.map +1 -0
- package/dist/esm/components/Icon/components/Webshop.js +18 -0
- package/dist/esm/components/Icon/components/Webshop.js.map +1 -0
- package/dist/esm/components/Icon/components/Website.js +18 -0
- package/dist/esm/components/Icon/components/Website.js.map +1 -0
- package/dist/esm/components/Icon/components/Workflow.js +17 -0
- package/dist/esm/components/Icon/components/Workflow.js.map +1 -0
- package/dist/esm/components/Icon/components/Zoom.js +18 -0
- package/dist/esm/components/Icon/components/Zoom.js.map +1 -0
- package/dist/esm/components/Icon/components/index.js +414 -0
- package/dist/esm/components/Icon/components/index.js.map +1 -0
- package/dist/esm/components/IconButton/IconButton.js +35 -0
- package/dist/esm/components/IconButton/IconButton.js.map +1 -0
- package/dist/esm/components/Input/Input.js +85 -0
- package/dist/esm/components/Input/Input.js.map +1 -0
- package/dist/esm/components/Input/util.js +22 -0
- package/dist/esm/components/Input/util.js.map +1 -0
- package/dist/esm/components/Listbox/Listbox.js +58 -0
- package/dist/esm/components/Listbox/Listbox.js.map +1 -0
- package/dist/esm/components/Listbox/ScrollableList.js +174 -0
- package/dist/esm/components/Listbox/ScrollableList.js.map +1 -0
- package/dist/esm/components/Listbox/useListbox.js +145 -0
- package/dist/esm/components/Listbox/useListbox.js.map +1 -0
- package/dist/esm/components/Listbox/useMultiListbox.js +196 -0
- package/dist/esm/components/Listbox/useMultiListbox.js.map +1 -0
- package/dist/esm/components/Listbox/useTypeahead.js +28 -0
- package/dist/esm/components/Listbox/useTypeahead.js.map +1 -0
- package/dist/esm/components/Listbox/util.js +150 -0
- package/dist/esm/components/Listbox/util.js.map +1 -0
- package/dist/esm/components/Menu/Context.js +9 -0
- package/dist/esm/components/Menu/Context.js.map +1 -0
- package/dist/esm/components/Menu/Menu.js +74 -0
- package/dist/esm/components/Menu/Menu.js.map +1 -0
- package/dist/esm/components/Menu/components/Checkbox.js +31 -0
- package/dist/esm/components/Menu/components/Checkbox.js.map +1 -0
- package/dist/esm/components/Menu/components/Content.js +50 -0
- package/dist/esm/components/Menu/components/Content.js.map +1 -0
- package/dist/esm/components/Menu/components/Header.js +38 -0
- package/dist/esm/components/Menu/components/Header.js.map +1 -0
- package/dist/esm/components/Menu/components/Item.js +140 -0
- package/dist/esm/components/Menu/components/Item.js.map +1 -0
- package/dist/esm/components/Menu/components/Link.js +39 -0
- package/dist/esm/components/Menu/components/Link.js.map +1 -0
- package/dist/esm/components/Menu/components/RadioGroup.js +48 -0
- package/dist/esm/components/Menu/components/RadioGroup.js.map +1 -0
- package/dist/esm/components/Menu/components/Separator.js +35 -0
- package/dist/esm/components/Menu/components/Separator.js.map +1 -0
- package/dist/esm/components/Menu/components/Trigger.js +33 -0
- package/dist/esm/components/Menu/components/Trigger.js.map +1 -0
- package/dist/esm/components/Navigation/Navigation.js +125 -0
- package/dist/esm/components/Navigation/Navigation.js.map +1 -0
- package/dist/esm/components/Pagination/PageNumbers.js +50 -0
- package/dist/esm/components/Pagination/PageNumbers.js.map +1 -0
- package/dist/esm/components/Pagination/Pagination.js +103 -0
- package/dist/esm/components/Pagination/Pagination.js.map +1 -0
- package/dist/esm/components/Pagination/usePagination.js +15 -0
- package/dist/esm/components/Pagination/usePagination.js.map +1 -0
- package/dist/esm/components/Pagination/usePaginationShortcuts.js +50 -0
- package/dist/esm/components/Pagination/usePaginationShortcuts.js.map +1 -0
- package/dist/esm/components/Popover/Popover.js +84 -0
- package/dist/esm/components/Popover/Popover.js.map +1 -0
- package/dist/esm/components/Popover/Primitives.js +41 -0
- package/dist/esm/components/Popover/Primitives.js.map +1 -0
- package/dist/esm/components/Progress/Progress.js +32 -0
- package/dist/esm/components/Progress/Progress.js.map +1 -0
- package/dist/esm/components/Provider/Provider.js +105 -0
- package/dist/esm/components/Provider/Provider.js.map +1 -0
- package/dist/esm/components/RadioGroup/RadioGroup.js +106 -0
- package/dist/esm/components/RadioGroup/RadioGroup.js.map +1 -0
- package/dist/esm/components/SearchInput/SearchInput.js +95 -0
- package/dist/esm/components/SearchInput/SearchInput.js.map +1 -0
- package/dist/esm/components/Select/Select.js +100 -0
- package/dist/esm/components/Select/Select.js.map +1 -0
- package/dist/esm/components/Select/useSelect.js +212 -0
- package/dist/esm/components/Select/useSelect.js.map +1 -0
- package/dist/esm/components/Spinner/Spinner.js +48 -0
- package/dist/esm/components/Spinner/Spinner.js.map +1 -0
- package/dist/esm/components/Switch/Switch.js +37 -0
- package/dist/esm/components/Switch/Switch.js.map +1 -0
- package/dist/esm/components/Table/components/BaseTable.js +48 -0
- package/dist/esm/components/Table/components/BaseTable.js.map +1 -0
- package/dist/esm/components/Table/components/PaginatedTable.js +16 -0
- package/dist/esm/components/Table/components/PaginatedTable.js.map +1 -0
- package/dist/esm/components/Table/components/Table.js +56 -0
- package/dist/esm/components/Table/components/Table.js.map +1 -0
- package/dist/esm/components/Table/components/WindowedTable.js +186 -0
- package/dist/esm/components/Table/components/WindowedTable.js.map +1 -0
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js +236 -0
- package/dist/esm/components/Table/hooks/plugins/useRowActions.js.map +1 -0
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js +129 -0
- package/dist/esm/components/Table/hooks/plugins/useRowDraggable.js.map +1 -0
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js +100 -0
- package/dist/esm/components/Table/hooks/plugins/useRowEditing.js.map +1 -0
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js +108 -0
- package/dist/esm/components/Table/hooks/plugins/useRowSelect.js.map +1 -0
- package/dist/esm/components/Table/hooks/useRowCreation.js +106 -0
- package/dist/esm/components/Table/hooks/useRowCreation.js.map +1 -0
- package/dist/esm/components/Table/hooks/useTable.js +217 -0
- package/dist/esm/components/Table/hooks/useTable.js.map +1 -0
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js +132 -0
- package/dist/esm/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -0
- package/dist/esm/components/Table/util/renderColumn.js +40 -0
- package/dist/esm/components/Table/util/renderColumn.js.map +1 -0
- package/dist/esm/components/Table/util/renderRow.js +101 -0
- package/dist/esm/components/Table/util/renderRow.js.map +1 -0
- package/dist/esm/components/Table/util/rowIndexPath.js +57 -0
- package/dist/esm/components/Table/util/rowIndexPath.js.map +1 -0
- package/dist/esm/components/Table/util/sortTypes.js +82 -0
- package/dist/esm/components/Table/util/sortTypes.js.map +1 -0
- package/dist/esm/components/Table/util.js +99 -0
- package/dist/esm/components/Table/util.js.map +1 -0
- package/dist/esm/components/Tabs/Tabs.js +69 -0
- package/dist/esm/components/Tabs/Tabs.js.map +1 -0
- package/dist/esm/components/Textarea/Textarea.js +39 -0
- package/dist/esm/components/Textarea/Textarea.js.map +1 -0
- package/dist/esm/components/Toast/Toast.js +79 -0
- package/dist/esm/components/Toast/Toast.js.map +1 -0
- package/dist/esm/components/Toast/Toaster.js +163 -0
- package/dist/esm/components/Toast/Toaster.js.map +1 -0
- package/dist/esm/components/Toast/util.js +46 -0
- package/dist/esm/components/Toast/util.js.map +1 -0
- package/dist/esm/components/Tooltip/Tooltip.js +32 -0
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/esm/components/Tour/Tour.js +142 -0
- package/dist/esm/components/Tour/Tour.js.map +1 -0
- package/dist/esm/components/Treeview/Treeview.js +73 -0
- package/dist/esm/components/Treeview/Treeview.js.map +1 -0
- package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +11 -0
- package/dist/esm/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
- package/dist/esm/index.css +661 -0
- package/dist/esm/index.js +50 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/primitives/Button.js +21 -0
- package/dist/esm/primitives/Button.js.map +1 -0
- package/dist/esm/utils/date.js +98 -0
- package/dist/esm/utils/date.js.map +1 -0
- package/dist/esm/utils/hooks/useBoundingClientRectListener.js +50 -0
- package/dist/esm/utils/hooks/useBoundingClientRectListener.js.map +1 -0
- package/dist/esm/utils/hooks/useDraggable.js +42 -0
- package/dist/esm/utils/hooks/useDraggable.js.map +1 -0
- package/dist/esm/utils/hooks/useDropTarget.js +38 -0
- package/dist/esm/utils/hooks/useDropTarget.js.map +1 -0
- package/dist/esm/utils/hooks/useListKeyboardNavigation.js +58 -0
- package/dist/esm/utils/hooks/useListKeyboardNavigation.js.map +1 -0
- package/dist/esm/utils/hooks/useListScrollTo.js +38 -0
- package/dist/esm/utils/hooks/useListScrollTo.js.map +1 -0
- package/dist/esm/utils/hooks/useOnClickOutside.js +27 -0
- package/dist/esm/utils/hooks/useOnClickOutside.js.map +1 -0
- package/dist/esm/utils/hooks/useProxiedRef.js +18 -0
- package/dist/esm/utils/hooks/useProxiedRef.js.map +1 -0
- package/dist/esm/utils/hooks/useTimer.js +50 -0
- package/dist/esm/utils/hooks/useTimer.js.map +1 -0
- package/dist/esm/utils/input.js +49 -0
- package/dist/esm/utils/input.js.map +1 -0
- package/dist/esm/utils/mergeRefs.js +14 -0
- package/dist/esm/utils/mergeRefs.js.map +1 -0
- package/dist/esm/utils/taillwind.js +41 -0
- package/dist/esm/utils/taillwind.js.map +1 -0
- package/dist/taco.cjs.development.js +458 -552
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +2 -0
- package/dist/taco.cjs.production.min.js.map +1 -0
- package/package.json +2 -2
@@ -0,0 +1,196 @@
|
|
1
|
+
import { useMemo, useState, useEffect } from 'react';
|
2
|
+
import { v4 } from 'uuid';
|
3
|
+
import { useLocalization } from '../Provider/Provider.js';
|
4
|
+
import { useProxiedRef } from '../../utils/hooks/useProxiedRef.js';
|
5
|
+
import keycode from 'keycode';
|
6
|
+
import { getIndexFromValue, getSelectedIndexesFromValue, setInputValueByRef, getActiveDescendant, findByValue } from './util.js';
|
7
|
+
import { useTypeahead } from './useTypeahead.js';
|
8
|
+
|
9
|
+
const useMultiListbox = ({
|
10
|
+
data: externalData = [],
|
11
|
+
defaultValue,
|
12
|
+
disabled,
|
13
|
+
emptyValue: _,
|
14
|
+
id: nativeId,
|
15
|
+
name,
|
16
|
+
onClick,
|
17
|
+
onChange,
|
18
|
+
onFocus,
|
19
|
+
onKeyDown,
|
20
|
+
value,
|
21
|
+
...otherProps
|
22
|
+
}, ref) => {
|
23
|
+
const {
|
24
|
+
texts
|
25
|
+
} = useLocalization();
|
26
|
+
const id = useMemo(() => nativeId || v4(), [nativeId]);
|
27
|
+
const inputRef = useProxiedRef(ref);
|
28
|
+
const data = useMemo(() => {
|
29
|
+
return [{
|
30
|
+
text: texts.listbox.allOption,
|
31
|
+
value: '#ALL-OPTIONS#'
|
32
|
+
}, ...externalData];
|
33
|
+
}, [externalData]);
|
34
|
+
const [currentIndex, setCurrentIndex] = useState(getIndexFromValue(data, value) || 0);
|
35
|
+
const [allOptionsSelected, setAllOptionsSelected] = useState(false);
|
36
|
+
const {
|
37
|
+
getNextIndex
|
38
|
+
} = useTypeahead({
|
39
|
+
data,
|
40
|
+
currentIndex
|
41
|
+
});
|
42
|
+
const [selectedIndexes, setSelectedIndexes] = useState(getSelectedIndexesFromValue(data, value));
|
43
|
+
useEffect(() => {
|
44
|
+
if (defaultValue && !value) {
|
45
|
+
setInputValueByRef(inputRef.current, defaultValue.toString());
|
46
|
+
}
|
47
|
+
}, []);
|
48
|
+
useEffect(() => {
|
49
|
+
const selectableItemsCount = data.filter(item => !item.disabled).length - 1;
|
50
|
+
|
51
|
+
if (selectableItemsCount === selectedIndexes.length) {
|
52
|
+
setAllOptionsSelected(true);
|
53
|
+
} else {
|
54
|
+
setAllOptionsSelected(false);
|
55
|
+
}
|
56
|
+
}, [selectedIndexes, data]);
|
57
|
+
|
58
|
+
const setInputValueByIndex = index => {
|
59
|
+
if (index !== undefined) {
|
60
|
+
const option = data[index];
|
61
|
+
|
62
|
+
if (option && !option.disabled) {
|
63
|
+
var _inputRef$current;
|
64
|
+
|
65
|
+
let newInputValue = '';
|
66
|
+
const currentInputValue = (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.value;
|
67
|
+
const currentValuesArray = (currentInputValue === null || currentInputValue === void 0 ? void 0 : currentInputValue.split(',')) || [];
|
68
|
+
const optionAlreadySelected = currentValuesArray.findIndex(val => val === String(option.value)) !== -1; // Handling the select_all option
|
69
|
+
|
70
|
+
if (option.value === '#ALL-OPTIONS#') {
|
71
|
+
if (!allOptionsSelected) {
|
72
|
+
newInputValue = data.filter((option, index) => index !== 0 && !option.disabled).map(option => option.value).join(',');
|
73
|
+
} else {
|
74
|
+
newInputValue = '';
|
75
|
+
}
|
76
|
+
} else {
|
77
|
+
// Handling rest options
|
78
|
+
if (optionAlreadySelected) {
|
79
|
+
newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');
|
80
|
+
} else {
|
81
|
+
newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
setInputValueByRef(inputRef.current, newInputValue);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
};
|
89
|
+
|
90
|
+
const handleListboxClick = (event, index) => {
|
91
|
+
event.preventDefault();
|
92
|
+
|
93
|
+
if (!data[index].disabled) {
|
94
|
+
setCurrentIndex(index);
|
95
|
+
setInputValueByIndex(index);
|
96
|
+
}
|
97
|
+
|
98
|
+
if (onClick) {
|
99
|
+
onClick(event);
|
100
|
+
}
|
101
|
+
};
|
102
|
+
|
103
|
+
const handleListboxKeyDown = (event, index) => {
|
104
|
+
const charKey = String.fromCharCode(event.keyCode);
|
105
|
+
|
106
|
+
if (charKey.match(/(\w)/g)) {
|
107
|
+
const nextIndex = getNextIndex(charKey);
|
108
|
+
|
109
|
+
if (nextIndex > -1 && nextIndex !== currentIndex) {
|
110
|
+
setCurrentIndex(nextIndex);
|
111
|
+
}
|
112
|
+
|
113
|
+
return;
|
114
|
+
}
|
115
|
+
|
116
|
+
switch (event.keyCode) {
|
117
|
+
case keycode('space'):
|
118
|
+
{
|
119
|
+
event.preventDefault();
|
120
|
+
setInputValueByIndex(index);
|
121
|
+
break;
|
122
|
+
}
|
123
|
+
|
124
|
+
case keycode('enter'):
|
125
|
+
{
|
126
|
+
setInputValueByIndex(index);
|
127
|
+
break;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
setCurrentIndex(index);
|
132
|
+
|
133
|
+
if (onKeyDown) {
|
134
|
+
event.persist();
|
135
|
+
onKeyDown(event);
|
136
|
+
}
|
137
|
+
};
|
138
|
+
|
139
|
+
const handleListboxFocus = event => {
|
140
|
+
if (onFocus) {
|
141
|
+
event.persist();
|
142
|
+
onFocus(event);
|
143
|
+
}
|
144
|
+
};
|
145
|
+
|
146
|
+
const handleInputChange = event => {
|
147
|
+
event.persist();
|
148
|
+
setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));
|
149
|
+
|
150
|
+
if (onChange) {
|
151
|
+
const detail = [];
|
152
|
+
const valuesArray = event.target.value.split(',');
|
153
|
+
valuesArray.forEach(val => {
|
154
|
+
const item = findByValue(data, val);
|
155
|
+
|
156
|
+
if (item) {
|
157
|
+
detail.push(item);
|
158
|
+
}
|
159
|
+
});
|
160
|
+
event.detail = detail;
|
161
|
+
onChange(event);
|
162
|
+
}
|
163
|
+
};
|
164
|
+
|
165
|
+
const list = { ...otherProps,
|
166
|
+
'aria-activedescendant': getActiveDescendant(data, currentIndex, id),
|
167
|
+
'aria-multiselectable': true,
|
168
|
+
data,
|
169
|
+
disabled,
|
170
|
+
id,
|
171
|
+
onChange: () => null,
|
172
|
+
onClick: handleListboxClick,
|
173
|
+
onFocus: handleListboxFocus,
|
174
|
+
onKeyDown: handleListboxKeyDown,
|
175
|
+
scrollOnFocus: false,
|
176
|
+
tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,
|
177
|
+
value: currentIndex,
|
178
|
+
selectedIndexes,
|
179
|
+
multiselect: true,
|
180
|
+
allOptionsSelected
|
181
|
+
};
|
182
|
+
const input = {
|
183
|
+
name,
|
184
|
+
onChange: handleInputChange,
|
185
|
+
ref: inputRef,
|
186
|
+
tabIndex: -1,
|
187
|
+
value: value !== null && value !== void 0 ? value : ''
|
188
|
+
};
|
189
|
+
return {
|
190
|
+
list,
|
191
|
+
input
|
192
|
+
};
|
193
|
+
};
|
194
|
+
|
195
|
+
export { useMultiListbox };
|
196
|
+
//# sourceMappingURL=useMultiListbox.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useMultiListbox.js","sources":["../../../../src/components/Listbox/useMultiListbox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport keycode from 'keycode';\r\nimport { v4 as uuid } from 'uuid';\r\nimport { useLocalization } from '../Provider/Provider';\r\nimport { ListboxProps } from './Listbox';\r\nimport { useProxiedRef } from '../../utils/hooks/useProxiedRef';\r\nimport { setInputValueByRef, getIndexFromValue, getSelectedIndexesFromValue, findByValue, getActiveDescendant } from './util';\r\nimport { ScrollableListProps, ScrollableListItem, ScrollableListItemValue } from './ScrollableList';\r\nimport { useTypeahead } from './useTypeahead';\r\n\r\ntype useListbox = {\r\n list: ScrollableListProps;\r\n input: Omit<React.HTMLAttributes<HTMLInputElement>, 'defaultValue'>;\r\n};\r\n\r\nexport const useMultiListbox = (\r\n {\r\n data: externalData = [],\r\n defaultValue,\r\n disabled,\r\n emptyValue: _,\r\n id: nativeId,\r\n name,\r\n onClick,\r\n onChange,\r\n onFocus,\r\n onKeyDown,\r\n value,\r\n ...otherProps\r\n }: ListboxProps,\r\n ref: React.Ref<HTMLInputElement>\r\n): useListbox => {\r\n const { texts } = useLocalization();\r\n const id = React.useMemo(() => nativeId || uuid(), [nativeId]);\r\n const inputRef = useProxiedRef<HTMLInputElement>(ref);\r\n const data = React.useMemo(() => {\r\n return [{ text: texts.listbox.allOption, value: '#ALL-OPTIONS#' }, ...externalData];\r\n }, [externalData]);\r\n const [currentIndex, setCurrentIndex] = React.useState(getIndexFromValue(data, value) || 0);\r\n const [allOptionsSelected, setAllOptionsSelected] = React.useState(false);\r\n const { getNextIndex } = useTypeahead({ data, currentIndex });\r\n const [selectedIndexes, setSelectedIndexes] = React.useState(getSelectedIndexesFromValue(data, value));\r\n\r\n React.useEffect(() => {\r\n if (defaultValue && !value) {\r\n setInputValueByRef(inputRef.current, defaultValue.toString());\r\n }\r\n }, []);\r\n\r\n React.useEffect(() => {\r\n const selectableItemsCount = data.filter(item => !item.disabled).length - 1;\r\n\r\n if (selectableItemsCount === selectedIndexes.length) {\r\n setAllOptionsSelected(true);\r\n } else {\r\n setAllOptionsSelected(false);\r\n }\r\n }, [selectedIndexes, data]);\r\n\r\n const setInputValueByIndex = (index: number | undefined): void => {\r\n if (index !== undefined) {\r\n const option = data[index];\r\n\r\n if (option && !option.disabled) {\r\n let newInputValue: ScrollableListItemValue = '';\r\n const currentInputValue = inputRef.current?.value;\r\n const currentValuesArray = currentInputValue?.split(',') || [];\r\n const optionAlreadySelected = currentValuesArray.findIndex(val => val === String(option.value)) !== -1;\r\n\r\n // Handling the select_all option\r\n if (option.value === '#ALL-OPTIONS#') {\r\n if (!allOptionsSelected) {\r\n newInputValue = data\r\n .filter((option, index) => index !== 0 && !option.disabled)\r\n .map(option => option.value)\r\n .join(',');\r\n } else {\r\n newInputValue = '';\r\n }\r\n } else {\r\n // Handling rest options\r\n if (optionAlreadySelected) {\r\n newInputValue = currentValuesArray.filter(val => val !== String(option.value)).join(',');\r\n } else {\r\n newInputValue = currentInputValue ? `${currentInputValue},${option.value}` : option.value;\r\n }\r\n }\r\n\r\n setInputValueByRef(inputRef.current, newInputValue);\r\n }\r\n }\r\n };\r\n\r\n const handleListboxClick = (event: React.MouseEvent<HTMLLIElement>, index: number): void => {\r\n event.preventDefault();\r\n\r\n if (!data[index].disabled) {\r\n setCurrentIndex(index);\r\n setInputValueByIndex(index);\r\n }\r\n\r\n if (onClick) {\r\n onClick(event);\r\n }\r\n };\r\n\r\n const handleListboxKeyDown = (event: React.KeyboardEvent<HTMLElement>, index: number): void => {\r\n const charKey = String.fromCharCode(event.keyCode);\r\n\r\n if (charKey.match(/(\\w)/g)) {\r\n const nextIndex = getNextIndex(charKey);\r\n\r\n if (nextIndex > -1 && nextIndex !== currentIndex) {\r\n setCurrentIndex(nextIndex);\r\n }\r\n return;\r\n }\r\n\r\n switch (event.keyCode) {\r\n case keycode('space'): {\r\n event.preventDefault();\r\n setInputValueByIndex(index);\r\n break;\r\n }\r\n\r\n case keycode('enter'): {\r\n setInputValueByIndex(index);\r\n break;\r\n }\r\n\r\n default:\r\n }\r\n setCurrentIndex(index);\r\n\r\n if (onKeyDown) {\r\n event.persist();\r\n onKeyDown(event);\r\n }\r\n };\r\n\r\n const handleListboxFocus = (event: React.FocusEvent<HTMLElement>): void => {\r\n if (onFocus) {\r\n event.persist();\r\n onFocus(event);\r\n }\r\n };\r\n\r\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {\r\n event.persist();\r\n\r\n setSelectedIndexes(getSelectedIndexesFromValue(data, event.target.value));\r\n\r\n if (onChange) {\r\n const detail: ScrollableListItem[] = [];\r\n const valuesArray = event.target.value.split(',');\r\n\r\n valuesArray.forEach(val => {\r\n const item = findByValue(data, val);\r\n if (item) {\r\n detail.push(item);\r\n }\r\n });\r\n (event as any).detail = detail;\r\n\r\n onChange(event);\r\n }\r\n };\r\n\r\n const list = {\r\n ...otherProps,\r\n 'aria-activedescendant': getActiveDescendant(data, currentIndex, id),\r\n 'aria-multiselectable': true,\r\n data,\r\n disabled,\r\n id,\r\n onChange: () => null,\r\n onClick: handleListboxClick,\r\n onFocus: handleListboxFocus,\r\n onKeyDown: handleListboxKeyDown,\r\n scrollOnFocus: false,\r\n tabIndex: disabled ? -1 : otherProps.tabIndex ? otherProps.tabIndex : 0,\r\n value: currentIndex,\r\n selectedIndexes,\r\n multiselect: true,\r\n allOptionsSelected,\r\n };\r\n\r\n const input = {\r\n name,\r\n onChange: handleInputChange,\r\n ref: inputRef,\r\n tabIndex: -1,\r\n value: value ?? '',\r\n };\r\n\r\n return { list, input };\r\n};\r\n"],"names":["useMultiListbox","data","externalData","defaultValue","disabled","emptyValue","_","id","nativeId","name","onClick","onChange","onFocus","onKeyDown","value","otherProps","ref","texts","useLocalization","React","uuid","inputRef","useProxiedRef","text","listbox","allOption","currentIndex","setCurrentIndex","getIndexFromValue","allOptionsSelected","setAllOptionsSelected","getNextIndex","useTypeahead","selectedIndexes","setSelectedIndexes","getSelectedIndexesFromValue","setInputValueByRef","current","toString","selectableItemsCount","filter","item","length","setInputValueByIndex","index","undefined","option","newInputValue","currentInputValue","currentValuesArray","split","optionAlreadySelected","findIndex","val","String","map","join","handleListboxClick","event","preventDefault","handleListboxKeyDown","charKey","fromCharCode","keyCode","match","nextIndex","keycode","persist","handleListboxFocus","handleInputChange","target","detail","valuesArray","forEach","findByValue","push","list","getActiveDescendant","scrollOnFocus","tabIndex","multiselect","input"],"mappings":"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"}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
import { useRef } from 'react';
|
2
|
+
import useTimer from '../../utils/hooks/useTimer.js';
|
3
|
+
import { findNextIndexByValue } from './util.js';
|
4
|
+
|
5
|
+
const useTypeahead = ({
|
6
|
+
data,
|
7
|
+
currentIndex
|
8
|
+
}) => {
|
9
|
+
const typeaheadQuery = useRef();
|
10
|
+
const typeaheadQueryTimer = useTimer(1000, () => {
|
11
|
+
typeaheadQuery.current = undefined;
|
12
|
+
});
|
13
|
+
|
14
|
+
const getNextIndex = charKey => {
|
15
|
+
const query = (typeaheadQuery.current ? typeaheadQuery.current + charKey : charKey).toLowerCase();
|
16
|
+
const nextIndex = findNextIndexByValue(data, query, currentIndex);
|
17
|
+
typeaheadQueryTimer.start();
|
18
|
+
typeaheadQuery.current = query;
|
19
|
+
return nextIndex;
|
20
|
+
};
|
21
|
+
|
22
|
+
return {
|
23
|
+
getNextIndex
|
24
|
+
};
|
25
|
+
};
|
26
|
+
|
27
|
+
export { useTypeahead };
|
28
|
+
//# sourceMappingURL=useTypeahead.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useTypeahead.js","sources":["../../../../src/components/Listbox/useTypeahead.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport useTimer from '../../utils/hooks/useTimer';\r\nimport { findNextIndexByValue } from './util';\r\nimport { ScrollableListItem } from './ScrollableList';\r\n\r\ntype useTypeahead = {\r\n getNextIndex: (key: string) => number;\r\n};\r\n\r\ntype useTypeaheadProps = {\r\n data: ScrollableListItem[];\r\n currentIndex: number | undefined;\r\n};\r\n\r\nexport const useTypeahead = ({ data, currentIndex }: useTypeaheadProps): useTypeahead => {\r\n const typeaheadQuery = React.useRef<string | undefined>();\r\n const typeaheadQueryTimer = useTimer(1000, () => {\r\n typeaheadQuery.current = undefined;\r\n });\r\n\r\n const getNextIndex = (charKey: string): number => {\r\n const query = (typeaheadQuery.current ? typeaheadQuery.current + charKey : charKey).toLowerCase();\r\n const nextIndex = findNextIndexByValue(data, query, currentIndex);\r\n\r\n typeaheadQueryTimer.start();\r\n typeaheadQuery.current = query;\r\n\r\n return nextIndex;\r\n };\r\n\r\n return { getNextIndex };\r\n};\r\n"],"names":["useTypeahead","data","currentIndex","typeaheadQuery","React","typeaheadQueryTimer","useTimer","current","undefined","getNextIndex","charKey","query","toLowerCase","nextIndex","findNextIndexByValue","start"],"mappings":";;;;MAcaA,YAAY,GAAG,CAAC;AAAEC,EAAAA,IAAF;AAAQC,EAAAA;AAAR,CAAD;AACxB,QAAMC,cAAc,GAAGC,MAAA,EAAvB;AACA,QAAMC,mBAAmB,GAAGC,QAAQ,CAAC,IAAD,EAAO;AACvCH,IAAAA,cAAc,CAACI,OAAf,GAAyBC,SAAzB;AACH,GAFmC,CAApC;;AAIA,QAAMC,YAAY,GAAIC,OAAD;AACjB,UAAMC,KAAK,GAAG,CAACR,cAAc,CAACI,OAAf,GAAyBJ,cAAc,CAACI,OAAf,GAAyBG,OAAlD,GAA4DA,OAA7D,EAAsEE,WAAtE,EAAd;AACA,UAAMC,SAAS,GAAGC,oBAAoB,CAACb,IAAD,EAAOU,KAAP,EAAcT,YAAd,CAAtC;AAEAG,IAAAA,mBAAmB,CAACU,KAApB;AACAZ,IAAAA,cAAc,CAACI,OAAf,GAAyBI,KAAzB;AAEA,WAAOE,SAAP;AACH,GARD;;AAUA,SAAO;AAAEJ,IAAAA;AAAF,GAAP;AACH;;;;"}
|
@@ -0,0 +1,150 @@
|
|
1
|
+
import React__default from 'react';
|
2
|
+
import { getId } from './ScrollableList.js';
|
3
|
+
import { setInputValueByRef as setInputValueByRef$1 } from '../../utils/input.js';
|
4
|
+
|
5
|
+
const getValue = value => String(value !== null && value !== void 0 ? value : '');
|
6
|
+
|
7
|
+
const setInputValueByRef = (input, value, event = 'change') => {
|
8
|
+
setInputValueByRef$1(input, getValue(value), event);
|
9
|
+
};
|
10
|
+
const getIndexFromValue = (data, value) => {
|
11
|
+
const index = data.findIndex(option => getValue(option.value) === getValue(value));
|
12
|
+
return index > -1 ? index : undefined;
|
13
|
+
};
|
14
|
+
const getSelectedIndexesFromValue = (data, value) => {
|
15
|
+
if (typeof value !== 'string') return [];
|
16
|
+
return value.split(',').map(v => data.findIndex(o => String(o.value) === v)).filter(v => v !== -1);
|
17
|
+
};
|
18
|
+
const findByValue = (data, value) => {
|
19
|
+
return data.find(option => getValue(option.value) === getValue(value));
|
20
|
+
};
|
21
|
+
const searchForString = (child, value, strategy = 'includes') => {
|
22
|
+
try {
|
23
|
+
var _child$props;
|
24
|
+
|
25
|
+
if (typeof child !== 'string' && (_child$props = child.props) !== null && _child$props !== void 0 && _child$props.children) {
|
26
|
+
var _child$props2, _child$props3;
|
27
|
+
|
28
|
+
if (Array.isArray((_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.children)) {
|
29
|
+
return !!child.props.children.find(subChild => searchForString(subChild, value, strategy));
|
30
|
+
}
|
31
|
+
|
32
|
+
return searchForString((_child$props3 = child.props) === null || _child$props3 === void 0 ? void 0 : _child$props3.children, value, strategy);
|
33
|
+
} else {
|
34
|
+
return child.toString().toLowerCase()[strategy](String(value).toLowerCase());
|
35
|
+
}
|
36
|
+
} catch {
|
37
|
+
return false;
|
38
|
+
}
|
39
|
+
};
|
40
|
+
|
41
|
+
const getIndexInRangeByValue = (data, query, firstIndex, lastIndex = data.length) => {
|
42
|
+
const index = data.slice(firstIndex, lastIndex).findIndex(option => {
|
43
|
+
if (option.disabled) {
|
44
|
+
return false;
|
45
|
+
}
|
46
|
+
|
47
|
+
return searchForString(option.text, query, 'startsWith');
|
48
|
+
});
|
49
|
+
return index > -1 ? index + firstIndex : -1;
|
50
|
+
};
|
51
|
+
|
52
|
+
const findNextIndexByValue = (data, query, activeIndex) => {
|
53
|
+
const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;
|
54
|
+
let index = getIndexInRangeByValue(data, query, firstIndex);
|
55
|
+
|
56
|
+
if (index === -1) {
|
57
|
+
index = getIndexInRangeByValue(data, query, 0, activeIndex);
|
58
|
+
}
|
59
|
+
|
60
|
+
return index;
|
61
|
+
};
|
62
|
+
const getActiveDescendant = (data, currentIndex, id) => {
|
63
|
+
return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;
|
64
|
+
};
|
65
|
+
const useFlattenedData = data => {
|
66
|
+
return React__default.useMemo(() => {
|
67
|
+
const items = [];
|
68
|
+
|
69
|
+
const flatten = (item, path, parentPath, parentDisabled) => {
|
70
|
+
const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;
|
71
|
+
const isItemDisabled = parentDisabled || item.disabled;
|
72
|
+
items.push({ ...item,
|
73
|
+
disabled: isItemDisabled,
|
74
|
+
path: currentPath,
|
75
|
+
hasChildren: !!item.children
|
76
|
+
});
|
77
|
+
|
78
|
+
if (item.children) {
|
79
|
+
item.children.forEach((childItem, childPath) => flatten(childItem, childPath, currentPath, isItemDisabled));
|
80
|
+
}
|
81
|
+
};
|
82
|
+
|
83
|
+
data.forEach((item, index) => {
|
84
|
+
flatten(item, index);
|
85
|
+
});
|
86
|
+
return items;
|
87
|
+
}, [data]);
|
88
|
+
};
|
89
|
+
const sanitizeItem = item => {
|
90
|
+
if (item) {
|
91
|
+
const {
|
92
|
+
hasChildren: _1,
|
93
|
+
path: _2,
|
94
|
+
...rest
|
95
|
+
} = item;
|
96
|
+
return rest;
|
97
|
+
}
|
98
|
+
|
99
|
+
return undefined;
|
100
|
+
};
|
101
|
+
const getOptionParents = (data, path) => {
|
102
|
+
var _path$split;
|
103
|
+
|
104
|
+
const indexes = (_path$split = path === null || path === void 0 ? void 0 : path.split('.')) !== null && _path$split !== void 0 ? _path$split : [];
|
105
|
+
|
106
|
+
if (indexes.length > 1) {
|
107
|
+
// we don't want to map the current item
|
108
|
+
indexes.pop(); // we need to rebuild the path as we map
|
109
|
+
|
110
|
+
let lastPath;
|
111
|
+
return indexes.map(i => {
|
112
|
+
lastPath = lastPath ? [lastPath, i].join('.') : i;
|
113
|
+
return sanitizeItem(data.find(i => i.path === lastPath));
|
114
|
+
});
|
115
|
+
}
|
116
|
+
|
117
|
+
return null;
|
118
|
+
};
|
119
|
+
const filterData = (data, value = '') => {
|
120
|
+
if (value === '' || value === null) {
|
121
|
+
return data;
|
122
|
+
}
|
123
|
+
|
124
|
+
const filteredOptionValues = new Set();
|
125
|
+
|
126
|
+
const shouldFilterOption = option => {
|
127
|
+
if (option.disabled) {
|
128
|
+
return false;
|
129
|
+
}
|
130
|
+
|
131
|
+
return searchForString(option.text, String(value));
|
132
|
+
};
|
133
|
+
|
134
|
+
data.forEach(option => {
|
135
|
+
if (shouldFilterOption(option)) {
|
136
|
+
const parents = getOptionParents(data, option.path);
|
137
|
+
filteredOptionValues.add(option.value);
|
138
|
+
|
139
|
+
if (parents !== null) {
|
140
|
+
parents.forEach(option => filteredOptionValues.add(option === null || option === void 0 ? void 0 : option.value));
|
141
|
+
}
|
142
|
+
}
|
143
|
+
});
|
144
|
+
return data.filter(({
|
145
|
+
value
|
146
|
+
}) => filteredOptionValues.has(value));
|
147
|
+
};
|
148
|
+
|
149
|
+
export { filterData, findByValue, findNextIndexByValue, getActiveDescendant, getIndexFromValue, getOptionParents, getSelectedIndexesFromValue, sanitizeItem, searchForString, setInputValueByRef, useFlattenedData };
|
150
|
+
//# sourceMappingURL=util.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"util.js","sources":["../../../../src/components/Listbox/util.ts"],"sourcesContent":["import React from 'react';\r\nimport { ScrollableListItem, ScrollableListItemValue, getId } from './ScrollableList';\r\nimport { setInputValueByRef as setInputValueByRefBase } from '../../utils/input';\r\n\r\nconst getValue = (value: ScrollableListItemValue | undefined): string => String(value ?? '');\r\n\r\nexport const setInputValueByRef = (input: HTMLInputElement | null, value: ScrollableListItemValue, event = 'change'): void => {\r\n setInputValueByRefBase(input, getValue(value), event);\r\n};\r\n\r\nexport const getIndexFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number | undefined => {\r\n const index = data.findIndex(option => getValue(option.value) === getValue(value));\r\n return index > -1 ? index : undefined;\r\n};\r\n\r\nexport const getSelectedIndexesFromValue = (data: ScrollableListItem[], value: ScrollableListItemValue | undefined): number[] => {\r\n if (typeof value !== 'string') return [];\r\n\r\n return value\r\n .split(',')\r\n .map(v => data.findIndex(o => String(o.value) === v))\r\n .filter(v => v !== -1);\r\n};\r\n\r\nexport const findByValue = (data: ScrollableListItem[], value: ScrollableListItemValue): ScrollableListItem | undefined => {\r\n return data.find(option => getValue(option.value) === getValue(value));\r\n};\r\n\r\nexport const searchForString = (child: JSX.Element | string, value: string, strategy = 'includes'): boolean => {\r\n try {\r\n if (typeof child !== 'string' && child.props?.children) {\r\n if (Array.isArray(child.props?.children)) {\r\n return !!child.props.children.find((subChild: JSX.Element | string) =>\r\n searchForString(subChild, value, strategy)\r\n );\r\n }\r\n\r\n return searchForString(child.props?.children, value, strategy);\r\n } else {\r\n return child.toString().toLowerCase()[strategy](String(value).toLowerCase());\r\n }\r\n } catch {\r\n return false;\r\n }\r\n};\r\n\r\nconst getIndexInRangeByValue = (\r\n data: ScrollableListItem[],\r\n query: string,\r\n firstIndex: number,\r\n lastIndex: number = data.length\r\n): number => {\r\n const index = data.slice(firstIndex, lastIndex).findIndex(option => {\r\n if (option.disabled) {\r\n return false;\r\n }\r\n\r\n return searchForString(option.text, query, 'startsWith');\r\n });\r\n\r\n return index > -1 ? index + firstIndex : -1;\r\n};\r\n\r\nexport const findNextIndexByValue = (data: ScrollableListItem[], query: string, activeIndex: number | undefined): number => {\r\n const firstIndex = activeIndex === undefined ? 0 : activeIndex + 1;\r\n let index = getIndexInRangeByValue(data, query, firstIndex);\r\n\r\n if (index === -1) {\r\n index = getIndexInRangeByValue(data, query, 0, activeIndex);\r\n }\r\n\r\n return index;\r\n};\r\n\r\nexport const getActiveDescendant = (data: ScrollableListItem[], currentIndex: number | undefined, id: string): any => {\r\n return currentIndex !== undefined && data[currentIndex] ? getId(id, data[currentIndex].value) : undefined;\r\n};\r\n\r\nexport const useFlattenedData = (data: ScrollableListItem[]): ScrollableListItem[] => {\r\n return React.useMemo(() => {\r\n const items: ScrollableListItem[] = [];\r\n\r\n const flatten = (item: ScrollableListItem, path: number, parentPath?: string, parentDisabled?: boolean) => {\r\n const currentPath = parentPath ? `${parentPath}.${path}` : `${path}`;\r\n const isItemDisabled = parentDisabled || item.disabled;\r\n\r\n items.push({\r\n ...item,\r\n disabled: isItemDisabled,\r\n path: currentPath,\r\n hasChildren: !!item.children,\r\n });\r\n\r\n if (item.children) {\r\n item.children.forEach((childItem: ScrollableListItem, childPath: number) =>\r\n flatten(childItem, childPath, currentPath, isItemDisabled)\r\n );\r\n }\r\n };\r\n\r\n data.forEach((item, index) => {\r\n flatten(item, index);\r\n });\r\n\r\n return items;\r\n }, [data]);\r\n};\r\n\r\nexport const sanitizeItem = (item: ScrollableListItem | undefined) => {\r\n if (item) {\r\n const { hasChildren: _1, path: _2, ...rest } = item;\r\n return rest;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const getOptionParents = (data: ScrollableListItem[], path?: string) => {\r\n const indexes = path?.split('.') ?? [];\r\n\r\n if (indexes.length > 1) {\r\n // we don't want to map the current item\r\n indexes.pop();\r\n // we need to rebuild the path as we map\r\n let lastPath: string;\r\n\r\n return indexes.map(i => {\r\n lastPath = lastPath ? [lastPath, i].join('.') : i;\r\n return sanitizeItem(data.find((i: ScrollableListItem) => i.path === lastPath));\r\n });\r\n }\r\n\r\n return null;\r\n};\r\n\r\nexport const filterData = (data: ScrollableListItem[], value: ScrollableListItemValue = ''): ScrollableListItem[] => {\r\n if (value === '' || value === null) {\r\n return data;\r\n }\r\n\r\n const filteredOptionValues = new Set();\r\n const shouldFilterOption = (option: ScrollableListItem): boolean => {\r\n if (option.disabled) {\r\n return false;\r\n }\r\n\r\n return searchForString(option.text, String(value));\r\n };\r\n\r\n data.forEach(option => {\r\n if (shouldFilterOption(option)) {\r\n const parents = getOptionParents(data, option.path);\r\n\r\n filteredOptionValues.add(option.value);\r\n\r\n if (parents !== null) {\r\n parents.forEach(option => filteredOptionValues.add(option?.value));\r\n }\r\n }\r\n });\r\n\r\n return data.filter(({ value }) => filteredOptionValues.has(value));\r\n};\r\n"],"names":["getValue","value","String","setInputValueByRef","input","event","setInputValueByRefBase","getIndexFromValue","data","index","findIndex","option","undefined","getSelectedIndexesFromValue","split","map","v","o","filter","findByValue","find","searchForString","child","strategy","props","children","Array","isArray","subChild","toString","toLowerCase","getIndexInRangeByValue","query","firstIndex","lastIndex","length","slice","disabled","text","findNextIndexByValue","activeIndex","getActiveDescendant","currentIndex","id","getId","useFlattenedData","React","useMemo","items","flatten","item","path","parentPath","parentDisabled","currentPath","isItemDisabled","push","hasChildren","forEach","childItem","childPath","sanitizeItem","_1","_2","rest","getOptionParents","indexes","pop","lastPath","i","join","filterData","filteredOptionValues","Set","shouldFilterOption","parents","add","has"],"mappings":"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"}
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { createContext, useContext } from 'react';
|
2
|
+
|
3
|
+
const MenuContext = /*#__PURE__*/createContext(undefined);
|
4
|
+
const useCurrentMenu = () => {
|
5
|
+
return useContext(MenuContext);
|
6
|
+
};
|
7
|
+
|
8
|
+
export { MenuContext, useCurrentMenu };
|
9
|
+
//# sourceMappingURL=Context.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Context.js","sources":["../../../../src/components/Menu/Context.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { Appearance } from '../..';\r\n\r\nexport const MenuContext = React.createContext<\r\n | {\r\n appearance?: Appearance;\r\n setAppearance: (appearance: Appearance) => void;\r\n indented: boolean;\r\n registerIndentation: () => void;\r\n minWidth?: number;\r\n setMinWidth: (width: number) => void;\r\n close: () => void;\r\n }\r\n | undefined\r\n>(undefined);\r\n\r\nexport const useCurrentMenu = () => {\r\n return React.useContext(MenuContext);\r\n};\r\n"],"names":["MenuContext","React","undefined","useCurrentMenu"],"mappings":";;MAGaA,WAAW,gBAAGC,aAAA,CAWzBC,SAXyB;MAadC,cAAc,GAAG;AAC1B,SAAOF,UAAA,CAAiBD,WAAjB,CAAP;AACH;;;;"}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
2
|
+
import { useState, useMemo, createElement } from 'react';
|
3
|
+
import { MenuContext } from './Context.js';
|
4
|
+
import { Root } from '@radix-ui/react-dropdown-menu';
|
5
|
+
import { Content } from './components/Content.js';
|
6
|
+
import { Item } from './components/Item.js';
|
7
|
+
import { Link } from './components/Link.js';
|
8
|
+
import { Trigger } from './components/Trigger.js';
|
9
|
+
import { Checkbox } from './components/Checkbox.js';
|
10
|
+
import { RadioGroup } from './components/RadioGroup.js';
|
11
|
+
import { Separator } from './components/Separator.js';
|
12
|
+
import { Header } from './components/Header.js';
|
13
|
+
|
14
|
+
var _excluded = ["appearance", "children", "trigger"];
|
15
|
+
var Menu = function Menu(externalProps) {
|
16
|
+
var externalAppearance = externalProps.appearance,
|
17
|
+
children = externalProps.children,
|
18
|
+
trigger = externalProps.trigger,
|
19
|
+
props = _objectWithoutPropertiesLoose(externalProps, _excluded);
|
20
|
+
|
21
|
+
var _React$useState = useState(false),
|
22
|
+
open = _React$useState[0],
|
23
|
+
setOpen = _React$useState[1];
|
24
|
+
|
25
|
+
var _React$useState2 = useState(externalAppearance !== null && externalAppearance !== void 0 ? externalAppearance : 'default'),
|
26
|
+
appearance = _React$useState2[0],
|
27
|
+
_setAppearance = _React$useState2[1];
|
28
|
+
|
29
|
+
var _React$useState3 = useState(false),
|
30
|
+
indented = _React$useState3[0],
|
31
|
+
setIndented = _React$useState3[1];
|
32
|
+
|
33
|
+
var _React$useState4 = useState(undefined),
|
34
|
+
minWidth = _React$useState4[0],
|
35
|
+
_setMinWidth = _React$useState4[1];
|
36
|
+
|
37
|
+
var context = useMemo(function () {
|
38
|
+
return {
|
39
|
+
appearance: appearance,
|
40
|
+
setAppearance: function setAppearance(appearance) {
|
41
|
+
return _setAppearance(appearance);
|
42
|
+
},
|
43
|
+
indented: indented,
|
44
|
+
registerIndentation: function registerIndentation() {
|
45
|
+
return setIndented(true);
|
46
|
+
},
|
47
|
+
minWidth: minWidth,
|
48
|
+
setMinWidth: function setMinWidth(width) {
|
49
|
+
return _setMinWidth(width);
|
50
|
+
},
|
51
|
+
close: function close() {
|
52
|
+
return setOpen(false);
|
53
|
+
}
|
54
|
+
};
|
55
|
+
}, [indented, minWidth, appearance]);
|
56
|
+
return createElement(MenuContext.Provider, {
|
57
|
+
value: context
|
58
|
+
}, createElement(Root, Object.assign({}, props, {
|
59
|
+
modal: false,
|
60
|
+
open: open,
|
61
|
+
onOpenChange: setOpen
|
62
|
+
}), trigger && createElement(Trigger, null, trigger), children));
|
63
|
+
};
|
64
|
+
Menu.Trigger = Trigger;
|
65
|
+
Menu.Content = Content;
|
66
|
+
Menu.Item = Item;
|
67
|
+
Menu.Link = Link;
|
68
|
+
Menu.Checkbox = Checkbox;
|
69
|
+
Menu.Separator = Separator;
|
70
|
+
Menu.Header = Header;
|
71
|
+
Menu.RadioGroup = RadioGroup;
|
72
|
+
|
73
|
+
export { Menu };
|
74
|
+
//# sourceMappingURL=Menu.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Menu.js","sources":["../../../../src/components/Menu/Menu.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { MenuContext } from './Context';\r\nimport { Content } from './components/Content';\r\nimport { Item } from './components/Item';\r\nimport { Link } from './components/Link';\r\nimport { Trigger } from './components/Trigger';\r\nimport { Checkbox } from './components/Checkbox';\r\nimport { RadioGroup } from './components/RadioGroup';\r\nimport { Separator } from './components/Separator';\r\nimport { Header } from './components/Header';\r\nimport { Appearance } from '../..';\r\n\r\nexport type MenuProps = {\r\n /** Appearance will change the style of the button */\r\n appearance?: Appearance;\r\n children: React.ReactNode;\r\n id?: string;\r\n /** A trigger to be used for the menu, should not be set if `children` already contains a trigger */\r\n trigger?: JSX.Element;\r\n};\r\n\r\nexport const Menu = (externalProps: MenuProps): JSX.Element => {\r\n const { appearance: externalAppearance, children, trigger, ...props } = externalProps;\r\n const [open, setOpen] = React.useState(false);\r\n const [appearance, setAppearance] = React.useState<Appearance>(externalAppearance ?? 'default');\r\n const [indented, setIndented] = React.useState(false);\r\n const [minWidth, setMinWidth] = React.useState<number | undefined>(undefined);\r\n\r\n const context = React.useMemo(\r\n () => ({\r\n appearance,\r\n setAppearance: (appearance: Appearance) => setAppearance(appearance),\r\n indented,\r\n registerIndentation: () => setIndented(true),\r\n minWidth,\r\n setMinWidth: (width: number) => setMinWidth(width),\r\n close: () => setOpen(false),\r\n }),\r\n [indented, minWidth, appearance]\r\n );\r\n\r\n return (\r\n <MenuContext.Provider value={context}>\r\n <DropdownMenuPrimitive.Root {...props} modal={false} open={open} onOpenChange={setOpen}>\r\n {trigger && <Trigger>{trigger}</Trigger>}\r\n {children}\r\n </DropdownMenuPrimitive.Root>\r\n </MenuContext.Provider>\r\n );\r\n};\r\nMenu.Trigger = Trigger;\r\nMenu.Content = Content;\r\nMenu.Item = Item;\r\nMenu.Link = Link;\r\nMenu.Checkbox = Checkbox;\r\nMenu.Separator = Separator;\r\nMenu.Header = Header;\r\nMenu.RadioGroup = RadioGroup;\r\n"],"names":["Menu","externalProps","externalAppearance","appearance","children","trigger","props","React","open","setOpen","setAppearance","indented","setIndented","undefined","minWidth","setMinWidth","context","registerIndentation","width","close","MenuContext","Provider","value","DropdownMenuPrimitive","modal","onOpenChange","Trigger","Content","Item","Link","Checkbox","Separator","Header","RadioGroup"],"mappings":";;;;;;;;;;;;;;IAsBaA,IAAI,GAAG,SAAPA,IAAO,CAACC,aAAD;AAChB,MAAoBC,kBAApB,GAAwED,aAAxE,CAAQE,UAAR;AAAA,MAAwCC,QAAxC,GAAwEH,aAAxE,CAAwCG,QAAxC;AAAA,MAAkDC,OAAlD,GAAwEJ,aAAxE,CAAkDI,OAAlD;AAAA,MAA8DC,KAA9D,iCAAwEL,aAAxE;;AACA,wBAAwBM,QAAA,CAAe,KAAf,CAAxB;AAAA,MAAOC,IAAP;AAAA,MAAaC,OAAb;;AACA,yBAAoCF,QAAA,CAA2BL,kBAA3B,aAA2BA,kBAA3B,cAA2BA,kBAA3B,GAAiD,SAAjD,CAApC;AAAA,MAAOC,UAAP;AAAA,MAAmBO,cAAnB;;AACA,yBAAgCH,QAAA,CAAe,KAAf,CAAhC;AAAA,MAAOI,QAAP;AAAA,MAAiBC,WAAjB;;AACA,yBAAgCL,QAAA,CAAmCM,SAAnC,CAAhC;AAAA,MAAOC,QAAP;AAAA,MAAiBC,YAAjB;;AAEA,MAAMC,OAAO,GAAGT,OAAA,CACZ;AAAA,WAAO;AACHJ,MAAAA,UAAU,EAAVA,UADG;AAEHO,MAAAA,aAAa,EAAE,uBAACP,UAAD;AAAA,eAA4BO,cAAa,CAACP,UAAD,CAAzC;AAAA,OAFZ;AAGHQ,MAAAA,QAAQ,EAARA,QAHG;AAIHM,MAAAA,mBAAmB,EAAE;AAAA,eAAML,WAAW,CAAC,IAAD,CAAjB;AAAA,OAJlB;AAKHE,MAAAA,QAAQ,EAARA,QALG;AAMHC,MAAAA,WAAW,EAAE,qBAACG,KAAD;AAAA,eAAmBH,YAAW,CAACG,KAAD,CAA9B;AAAA,OANV;AAOHC,MAAAA,KAAK,EAAE;AAAA,eAAMV,OAAO,CAAC,KAAD,CAAb;AAAA;AAPJ,KAAP;AAAA,GADY,EAUZ,CAACE,QAAD,EAAWG,QAAX,EAAqBX,UAArB,CAVY,CAAhB;AAaA,SACII,aAAA,CAACa,WAAW,CAACC,QAAb;AAAsBC,IAAAA,KAAK,EAAEN;GAA7B,EACIT,aAAA,CAACgB,IAAD,oBAAgCjB;AAAOkB,IAAAA,KAAK,EAAE;AAAOhB,IAAAA,IAAI,EAAEA;AAAMiB,IAAAA,YAAY,EAAEhB;IAA/E,EACKJ,OAAO,IAAIE,aAAA,CAACmB,OAAD,MAAA,EAAUrB,OAAV,CADhB,EAEKD,QAFL,CADJ,CADJ;AAQH;AACDJ,IAAI,CAAC0B,OAAL,GAAeA,OAAf;AACA1B,IAAI,CAAC2B,OAAL,GAAeA,OAAf;AACA3B,IAAI,CAAC4B,IAAL,GAAYA,IAAZ;AACA5B,IAAI,CAAC6B,IAAL,GAAYA,IAAZ;AACA7B,IAAI,CAAC8B,QAAL,GAAgBA,QAAhB;AACA9B,IAAI,CAAC+B,SAAL,GAAiBA,SAAjB;AACA/B,IAAI,CAACgC,MAAL,GAAcA,MAAd;AACAhC,IAAI,CAACiC,UAAL,GAAkBA,UAAlB;;;;"}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
import { createElement } from 'react';
|
2
|
+
import { Icon } from '../../Icon/Icon.js';
|
3
|
+
import { CheckboxItem, ItemIndicator } from '@radix-ui/react-dropdown-menu';
|
4
|
+
import { useItemStyling } from './Item.js';
|
5
|
+
|
6
|
+
const Checkbox = props => {
|
7
|
+
const {
|
8
|
+
checked,
|
9
|
+
children,
|
10
|
+
onChange,
|
11
|
+
...otherProps
|
12
|
+
} = props;
|
13
|
+
const className = useItemStyling({
|
14
|
+
disabled: props.disabled,
|
15
|
+
indented: true,
|
16
|
+
className: props.className
|
17
|
+
});
|
18
|
+
return createElement(CheckboxItem, Object.assign({}, otherProps, {
|
19
|
+
className: className,
|
20
|
+
checked: checked,
|
21
|
+
onCheckedChange: onChange
|
22
|
+
}), createElement(ItemIndicator, {
|
23
|
+
className: "absolute left-0 ml-1.5"
|
24
|
+
}, createElement(Icon, {
|
25
|
+
name: "tick",
|
26
|
+
className: "!h-4 !w-4 -ml-px"
|
27
|
+
})), children);
|
28
|
+
};
|
29
|
+
|
30
|
+
export { Checkbox };
|
31
|
+
//# sourceMappingURL=Checkbox.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../../src/components/Menu/components/Checkbox.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { Icon } from '../../Icon/Icon';\r\nimport { useItemStyling } from './Item';\r\n\r\nexport type MenuCheckboxItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onSelect'> & {\r\n /* Whether the checkbox item is disabled */\r\n disabled?: boolean;\r\n /* The current checked state (controlled) */\r\n checked: boolean;\r\n /* Handler called when the checked state changes */\r\n onChange: (checked: boolean | 'indeterminate') => void;\r\n};\r\n\r\nexport const Checkbox = (props: MenuCheckboxItemProps) => {\r\n const { checked, children, onChange, ...otherProps } = props;\r\n const className = useItemStyling({\r\n disabled: props.disabled,\r\n indented: true,\r\n className: props.className,\r\n });\r\n\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem {...otherProps} className={className} checked={checked} onCheckedChange={onChange}>\r\n <DropdownMenuPrimitive.ItemIndicator className=\"absolute left-0 ml-1.5\">\r\n <Icon name=\"tick\" className=\"!h-4 !w-4 -ml-px\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n};\r\n"],"names":["Checkbox","props","checked","children","onChange","otherProps","className","useItemStyling","disabled","indented","React","DropdownMenuPrimitive","onCheckedChange","Icon","name"],"mappings":";;;;;MAcaA,QAAQ,GAAIC,KAAD;AACpB,QAAM;AAAEC,IAAAA,OAAF;AAAWC,IAAAA,QAAX;AAAqBC,IAAAA,QAArB;AAA+B,OAAGC;AAAlC,MAAiDJ,KAAvD;AACA,QAAMK,SAAS,GAAGC,cAAc,CAAC;AAC7BC,IAAAA,QAAQ,EAAEP,KAAK,CAACO,QADa;AAE7BC,IAAAA,QAAQ,EAAE,IAFmB;AAG7BH,IAAAA,SAAS,EAAEL,KAAK,CAACK;AAHY,GAAD,CAAhC;AAMA,SACII,aAAA,CAACC,YAAD,oBAAwCN;AAAYC,IAAAA,SAAS,EAAEA;AAAWJ,IAAAA,OAAO,EAAEA;AAASU,IAAAA,eAAe,EAAER;IAA7G,EACIM,aAAA,CAACC,aAAD;AAAqCL,IAAAA,SAAS,EAAC;GAA/C,EACII,aAAA,CAACG,IAAD;AAAMC,IAAAA,IAAI,EAAC;AAAOR,IAAAA,SAAS,EAAC;GAA5B,CADJ,CADJ,EAIKH,QAJL,CADJ;AAQH;;;;"}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
import { forwardRef, createElement } from 'react';
|
2
|
+
import cn from 'classnames';
|
3
|
+
import { useProxiedRef } from '../../../utils/hooks/useProxiedRef.js';
|
4
|
+
import { useCurrentMenu } from '../Context.js';
|
5
|
+
import { Content as Content$1 } from '@radix-ui/react-dropdown-menu';
|
6
|
+
|
7
|
+
const getAppearanceClasses = appearance => {
|
8
|
+
switch (appearance) {
|
9
|
+
case 'primary':
|
10
|
+
return 'wcag-blue border-blue';
|
11
|
+
|
12
|
+
case 'danger':
|
13
|
+
return 'wcag-red border-red';
|
14
|
+
|
15
|
+
case 'ghost':
|
16
|
+
return 'bg-white text-blue border-blue yt-shadow-blue';
|
17
|
+
|
18
|
+
case 'discrete':
|
19
|
+
return 'wcag-white border-grey yt-shadow';
|
20
|
+
|
21
|
+
case 'default':
|
22
|
+
default:
|
23
|
+
return 'wcag-grey-light border-grey';
|
24
|
+
}
|
25
|
+
};
|
26
|
+
|
27
|
+
const Content = /*#__PURE__*/forwardRef(function MenuContent(props, ref) {
|
28
|
+
const internalRef = useProxiedRef(ref);
|
29
|
+
const menu = useCurrentMenu();
|
30
|
+
const {
|
31
|
+
children,
|
32
|
+
placement: side,
|
33
|
+
...otherProps
|
34
|
+
} = props;
|
35
|
+
const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu === null || menu === void 0 ? void 0 : menu.appearance), props.className);
|
36
|
+
return createElement(Content$1, Object.assign({}, otherProps, {
|
37
|
+
align: "start",
|
38
|
+
className: className,
|
39
|
+
"data-taco": "menu",
|
40
|
+
side: side,
|
41
|
+
sideOffset: 2,
|
42
|
+
style: {
|
43
|
+
minWidth: menu === null || menu === void 0 ? void 0 : menu.minWidth
|
44
|
+
},
|
45
|
+
ref: internalRef
|
46
|
+
}), children);
|
47
|
+
});
|
48
|
+
|
49
|
+
export { Content };
|
50
|
+
//# sourceMappingURL=Content.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Content.js","sources":["../../../../../src/components/Menu/components/Content.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport cn from 'classnames';\r\nimport { Appearance, Placement } from '../../../types';\r\nimport { useProxiedRef } from '../../../utils/hooks/useProxiedRef';\r\nimport { useCurrentMenu } from '../Context';\r\n\r\nconst getAppearanceClasses = (appearance: Appearance | undefined) => {\r\n switch (appearance) {\r\n case 'primary':\r\n return 'wcag-blue border-blue';\r\n\r\n case 'danger':\r\n return 'wcag-red border-red';\r\n\r\n case 'ghost':\r\n return 'bg-white text-blue border-blue yt-shadow-blue';\r\n\r\n case 'discrete':\r\n return 'wcag-white border-grey yt-shadow';\r\n\r\n case 'default':\r\n default:\r\n return 'wcag-grey-light border-grey';\r\n }\r\n};\r\n\r\nexport type MenuContentProps = Omit<DropdownMenuPrimitive.DropdownMenuContentProps, 'children' | 'side'> & {\r\n children: React.ReactNode;\r\n /** Set the position of the Menu relative to its trigger. Default value is `bottom` */\r\n placement?: Placement;\r\n};\r\n\r\nexport const Content = React.forwardRef(function MenuContent(props: MenuContentProps, ref: React.Ref<HTMLDivElement>) {\r\n const internalRef = useProxiedRef<any>(ref);\r\n const menu = useCurrentMenu();\r\n const { children, placement: side, ...otherProps } = props;\r\n const className = cn('border rounded block outline-none p-1', getAppearanceClasses(menu?.appearance), props.className);\r\n\r\n return (\r\n <DropdownMenuPrimitive.Content\r\n {...otherProps}\r\n align=\"start\"\r\n className={className}\r\n data-taco=\"menu\"\r\n side={side}\r\n sideOffset={2}\r\n style={{ minWidth: menu?.minWidth }}\r\n ref={internalRef}\r\n >\r\n {children}\r\n </DropdownMenuPrimitive.Content>\r\n );\r\n});\r\n"],"names":["getAppearanceClasses","appearance","Content","React","MenuContent","props","ref","internalRef","useProxiedRef","menu","useCurrentMenu","children","placement","side","otherProps","className","cn","DropdownMenuPrimitive","align","sideOffset","style","minWidth"],"mappings":";;;;;;AAOA,MAAMA,oBAAoB,GAAIC,UAAD;AACzB,UAAQA,UAAR;AACI,SAAK,SAAL;AACI,aAAO,uBAAP;;AAEJ,SAAK,QAAL;AACI,aAAO,qBAAP;;AAEJ,SAAK,OAAL;AACI,aAAO,+CAAP;;AAEJ,SAAK,UAAL;AACI,aAAO,kCAAP;;AAEJ,SAAK,SAAL;AACA;AACI,aAAO,6BAAP;AAfR;AAiBH,CAlBD;;MA0BaC,OAAO,gBAAGC,UAAA,CAAiB,SAASC,WAAT,CAAqBC,KAArB,EAA8CC,GAA9C;AACpC,QAAMC,WAAW,GAAGC,aAAa,CAAMF,GAAN,CAAjC;AACA,QAAMG,IAAI,GAAGC,cAAc,EAA3B;AACA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,SAAS,EAAEC,IAAvB;AAA6B,OAAGC;AAAhC,MAA+CT,KAArD;AACA,QAAMU,SAAS,GAAGC,EAAE,CAAC,uCAAD,EAA0ChB,oBAAoB,CAACS,IAAD,aAACA,IAAD,uBAACA,IAAI,CAAER,UAAP,CAA9D,EAAkFI,KAAK,CAACU,SAAxF,CAApB;AAEA,SACIZ,aAAA,CAACc,SAAD,oBACQH;AACJI,IAAAA,KAAK,EAAC;AACNH,IAAAA,SAAS,EAAEA;iBACD;AACVF,IAAAA,IAAI,EAAEA;AACNM,IAAAA,UAAU,EAAE;AACZC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,QAAQ,EAAEZ,IAAF,aAAEA,IAAF,uBAAEA,IAAI,CAAEY;AAAlB;AACPf,IAAAA,GAAG,EAAEC;IART,EAUKI,QAVL,CADJ;AAcH,CApBsB;;;;"}
|