@payloadcms/ui 3.71.0-internal-debug.80dab4c → 3.71.0-internal.27e1e08
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/@types/assets.d.js.map +1 -1
- package/dist/assets/index.js +0 -1
- package/dist/assets/index.js.map +1 -1
- package/dist/elements/AddNewRelation/index.js +273 -218
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AddNewRelation/types.js +1 -2
- package/dist/elements/AddNewRelation/types.js.map +1 -1
- package/dist/elements/AnimateHeight/index.js +73 -84
- package/dist/elements/AnimateHeight/index.js.map +1 -1
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +68 -71
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
- package/dist/elements/AppHeader/index.js +101 -171
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +118 -186
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +181 -162
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Banner/index.js +32 -52
- package/dist/elements/Banner/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +173 -169
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +51 -84
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +94 -85
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +56 -30
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js +27 -19
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +169 -179
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/types.js +1 -2
- package/dist/elements/BulkUpload/EditForm/types.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +172 -221
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +57 -56
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +316 -395
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/createFormData.js +32 -33
- package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +473 -503
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/reducer.js +90 -100
- package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
- package/dist/elements/BulkUpload/Header/index.js +15 -27
- package/dist/elements/BulkUpload/Header/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +271 -204
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Button/index.js +160 -227
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/types.js +1 -14
- package/dist/elements/Button/types.js.map +1 -1
- package/dist/elements/Card/index.js +33 -53
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +36 -43
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js +35 -29
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
- package/dist/elements/ClipboardAction/clipboardUtilities.js +43 -33
- package/dist/elements/ClipboardAction/clipboardUtilities.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +83 -110
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/ClipboardAction/isClipboardDataValid.js +71 -64
- package/dist/elements/ClipboardAction/isClipboardDataValid.js.map +1 -1
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +93 -75
- package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
- package/dist/elements/ClipboardAction/types.js +1 -2
- package/dist/elements/ClipboardAction/types.js.map +1 -1
- package/dist/elements/CloseModalButton/index.js +20 -25
- package/dist/elements/CloseModalButton/index.js.map +1 -1
- package/dist/elements/CloseModalOnRouteChange/index.js +43 -17
- package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +97 -82
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CodeEditor/constants.js +14 -15
- package/dist/elements/CodeEditor/constants.js.map +1 -1
- package/dist/elements/CodeEditor/index.js +10 -22
- package/dist/elements/CodeEditor/index.js.map +1 -1
- package/dist/elements/CodeEditor/types.js +1 -4
- package/dist/elements/CodeEditor/types.js.map +1 -1
- package/dist/elements/Collapsible/index.js +141 -151
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.js +30 -32
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +54 -54
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/Combobox/index.js +84 -114
- package/dist/elements/Combobox/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +129 -116
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +272 -213
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +70 -47
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +136 -130
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/getFormattedLocale.js +10 -11
- package/dist/elements/DatePicker/getFormattedLocale.js.map +1 -1
- package/dist/elements/DatePicker/index.js +11 -23
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DatePicker/types.js +1 -2
- package/dist/elements/DatePicker/types.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +131 -97
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +141 -170
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +332 -371
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +274 -494
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +122 -141
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +103 -96
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js +18 -24
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +210 -134
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.js +1 -12
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/DocumentFields/index.js +69 -106
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.js +179 -154
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js +113 -97
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +60 -26
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.js +1 -2
- package/dist/elements/DraggableSortable/DraggableSortableItem/types.js.map +1 -1
- package/dist/elements/DraggableSortable/index.js +124 -72
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/types.js +1 -2
- package/dist/elements/DraggableSortable/types.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js +85 -25
- package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
- package/dist/elements/DraggableSortable/useDraggableSortable/types.js +1 -2
- package/dist/elements/DraggableSortable/useDraggableSortable/types.js.map +1 -1
- package/dist/elements/Drawer/index.js +192 -166
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/types.js +1 -2
- package/dist/elements/Drawer/types.js.map +1 -1
- package/dist/elements/Drawer/useDrawerSlug.js +19 -7
- package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +61 -59
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerContentContainer/index.js +9 -14
- package/dist/elements/DrawerContentContainer/index.js.map +1 -1
- package/dist/elements/Dropzone/index.js +75 -90
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +87 -145
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +145 -155
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +392 -398
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.js +131 -79
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.js +395 -572
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +77 -96
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/ErrorPill/index.js +24 -38
- package/dist/elements/ErrorPill/index.js.map +1 -1
- package/dist/elements/FieldDiffContainer/index.js +34 -50
- package/dist/elements/FieldDiffContainer/index.js.map +1 -1
- package/dist/elements/FieldDiffLabel/index.js +7 -10
- package/dist/elements/FieldDiffLabel/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +75 -45
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js +67 -69
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +105 -113
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js +33 -72
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +58 -76
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.js +14 -20
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/FolderView/Breadcrumbs/index.js +86 -59
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +30 -30
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +87 -88
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.js +14 -19
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +4 -9
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.js +138 -174
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
- package/dist/elements/FolderView/DragOverlaySelection/index.js +51 -70
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
- package/dist/elements/FolderView/DraggableTableRow/index.js +54 -71
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
- package/dist/elements/FolderView/DraggableWithClick/index.js +79 -75
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +33 -35
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +565 -497
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +89 -61
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
- package/dist/elements/FolderView/FolderField/index.server.js +10 -15
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +188 -218
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileTable/index.js +264 -203
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
- package/dist/elements/FolderView/FolderTypeField/index.js +114 -93
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
- package/dist/elements/FolderView/ItemCardGrid/index.js +27 -35
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +264 -142
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/SimpleTable/index.js +83 -105
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
- package/dist/elements/FolderView/SortByPill/index.js +100 -162
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
- package/dist/elements/FolderView/ToggleViewButtons/index.js +24 -47
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +22 -16
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +83 -63
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/GroupByBuilder/index.js +100 -142
- package/dist/elements/GroupByBuilder/index.js.map +1 -1
- package/dist/elements/Gutter/index.js +19 -22
- package/dist/elements/Gutter/index.js.map +1 -1
- package/dist/elements/HTMLDiff/diff/index.js +500 -522
- package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
- package/dist/elements/HTMLDiff/index.js +26 -31
- package/dist/elements/HTMLDiff/index.js.map +1 -1
- package/dist/elements/Hamburger/index.js +40 -51
- package/dist/elements/Hamburger/index.js.map +1 -1
- package/dist/elements/HydrateAuthProvider/index.js +27 -15
- package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
- package/dist/elements/IDLabel/index.js +57 -31
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/ItemSearch/index.js +48 -43
- package/dist/elements/ItemsDrawer/ItemSearch/index.js.map +1 -1
- package/dist/elements/ItemsDrawer/index.js +168 -219
- package/dist/elements/ItemsDrawer/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +142 -73
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +129 -113
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/Link/formatUrl.js +56 -53
- package/dist/elements/Link/formatUrl.js.map +1 -1
- package/dist/elements/Link/index.js +54 -50
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js +17 -17
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
- package/dist/elements/ListControls/index.js +168 -253
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/types.js +1 -8
- package/dist/elements/ListControls/types.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +168 -183
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.js +19 -28
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +229 -149
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListDrawer/types.js +1 -6
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +84 -43
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +33 -23
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/index.js +0 -1
- package/dist/elements/ListHeader/DrawerTitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +73 -49
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +40 -22
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +162 -130
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +148 -169
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/index.js +0 -1
- package/dist/elements/ListHeader/TitleActions/index.js.map +1 -1
- package/dist/elements/ListHeader/index.js +24 -65
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.js +58 -93
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Device/index.js +83 -83
- package/dist/elements/LivePreview/Device/index.js.map +1 -1
- package/dist/elements/LivePreview/DeviceContainer/index.js +49 -29
- package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.js +44 -20
- package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
- package/dist/elements/LivePreview/Toggler/index.js +26 -32
- package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/Controls/index.js +141 -210
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +92 -62
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/index.js +84 -84
- package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
- package/dist/elements/LivePreview/ToolbarArea/index.js +33 -15
- package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +166 -132
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +144 -112
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +67 -68
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/reducer.js +29 -27
- package/dist/elements/LoadingOverlay/reducer.js.map +1 -1
- package/dist/elements/LoadingOverlay/types.js +1 -2
- package/dist/elements/LoadingOverlay/types.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +51 -55
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +117 -99
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Locked/index.js +59 -38
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Logout/index.js +51 -30
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Modal/index.js +1 -1
- package/dist/elements/Modal/index.js.map +1 -1
- package/dist/elements/Nav/NavToggler/index.js +80 -34
- package/dist/elements/Nav/NavToggler/index.js.map +1 -1
- package/dist/elements/Nav/context.js +103 -107
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/NavGroup/index.js +122 -98
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/NoListResults/index.js +14 -27
- package/dist/elements/NoListResults/index.js.map +1 -1
- package/dist/elements/PageControls/GroupByPageControls.js +71 -40
- package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
- package/dist/elements/PageControls/index.js +107 -77
- package/dist/elements/PageControls/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js +16 -24
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/Page/index.js +16 -19
- package/dist/elements/Pagination/Page/index.js.map +1 -1
- package/dist/elements/Pagination/Separator/index.js +6 -10
- package/dist/elements/Pagination/Separator/index.js.map +1 -1
- package/dist/elements/Pagination/index.js +99 -102
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.js +80 -93
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.js +133 -150
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/Pill/index.js +121 -103
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/PillSelector/index.js +56 -79
- package/dist/elements/PillSelector/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +52 -65
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/PopupDivider/index.js +5 -10
- package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
- package/dist/elements/Popup/PopupGroupLabel/index.js +8 -11
- package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +44 -50
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/types.js.map +1 -1
- package/dist/elements/Popup/index.js +282 -339
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js +31 -24
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.js +132 -206
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +110 -154
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +309 -461
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/types.js +1 -2
- package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
- package/dist/elements/PublishButton/index.js +195 -234
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +134 -137
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.js +109 -58
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +267 -344
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +87 -80
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/AccessCell/index.js +21 -47
- package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +19 -26
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/GroupByCell/index.js +48 -61
- package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.js +27 -29
- package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +47 -42
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +74 -96
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +98 -149
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.js +27 -29
- package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Control/index.js +41 -40
- package/dist/elements/ReactSelect/Control/index.js.map +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.js +23 -26
- package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Input/index.js +13 -20
- package/dist/elements/ReactSelect/Input/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +126 -48
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js +32 -29
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +86 -49
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/SingleValue/index.js +14 -22
- package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js +29 -38
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.js +198 -211
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/ReactSelect/types.js +1 -9
- package/dist/elements/ReactSelect/types.js.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.js +58 -68
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
- package/dist/elements/RelationshipTable/Pagination.js +48 -21
- package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +34 -39
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +258 -374
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderComponent/index.js +20 -29
- package/dist/elements/RenderComponent/index.js.map +1 -1
- package/dist/elements/RenderCustomComponent/index.js +5 -3
- package/dist/elements/RenderCustomComponent/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js +58 -27
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/RenderServerComponent/index.js +56 -57
- package/dist/elements/RenderServerComponent/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js +59 -44
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.js +154 -187
- package/dist/elements/RestoreButton/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.js +170 -177
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SaveButton/index.js +49 -46
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +88 -84
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SearchBar/index.js +19 -37
- package/dist/elements/SearchBar/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.js +54 -60
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SearchFilter/types.js +1 -20
- package/dist/elements/SearchFilter/types.js.map +1 -1
- package/dist/elements/SelectAll/index.js +46 -21
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectMany/index.js +25 -27
- package/dist/elements/SelectMany/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +79 -27
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +73 -58
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +106 -98
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortComplex/index.js +163 -142
- package/dist/elements/SortComplex/index.js.map +1 -1
- package/dist/elements/SortHeader/index.js +87 -54
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/SortRow/index.js +27 -21
- package/dist/elements/SortRow/index.js.map +1 -1
- package/dist/elements/Status/index.js +161 -203
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +76 -38
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/SetStepNav.js +27 -10
- package/dist/elements/StepNav/SetStepNav.js.map +1 -1
- package/dist/elements/StepNav/context.js +41 -24
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/StepNav/index.js +92 -148
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StepNav/types.js +1 -2
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/StickyToolbar/index.js +8 -10
- package/dist/elements/StickyToolbar/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js +28 -13
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +60 -34
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +27 -18
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js +17 -22
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +41 -22
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +42 -52
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js +12 -18
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +183 -115
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +44 -22
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +9 -11
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/index.js +14 -14
- package/dist/elements/Table/DefaultCell/fields/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +151 -124
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableRow.js +32 -40
- package/dist/elements/Table/OrderableRow.js.map +1 -1
- package/dist/elements/Table/OrderableRowDragPreview.js +15 -24
- package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
- package/dist/elements/Table/OrderableTable.js +167 -224
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +162 -106
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/reducer.js +42 -42
- package/dist/elements/Table/RelationshipProvider/reducer.js.map +1 -1
- package/dist/elements/Table/index.js +45 -83
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Thumbnail/createThumbnail.js +48 -53
- package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +148 -127
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +68 -47
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.js +44 -53
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/elements/TimezonePicker/types.js +1 -2
- package/dist/elements/TimezonePicker/types.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +77 -69
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Tooltip/index.js +65 -98
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Translation/index.js +39 -48
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/TrashBanner/index.js +26 -33
- package/dist/elements/TrashBanner/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +127 -130
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.js +109 -58
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.js +481 -633
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.js +26 -15
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/ViewDescription/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js +29 -23
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/types.js +1 -2
- package/dist/elements/WhereBuilder/Condition/Date/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +76 -95
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +129 -74
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/types.js +1 -2
- package/dist/elements/WhereBuilder/Condition/Number/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +313 -353
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js +67 -83
- package/dist/elements/WhereBuilder/Condition/Relationship/optionsReducer.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/types.js +1 -2
- package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js +9 -10
- package/dist/elements/WhereBuilder/Condition/Select/formatOptions.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +154 -69
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/types.js +1 -2
- package/dist/elements/WhereBuilder/Condition/Select/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js +123 -72
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/types.js +1 -2
- package/dist/elements/WhereBuilder/Condition/Text/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +143 -206
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/types.js +1 -2
- package/dist/elements/WhereBuilder/Condition/types.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/validOperators.js +33 -32
- package/dist/elements/WhereBuilder/Condition/validOperators.js.map +1 -1
- package/dist/elements/WhereBuilder/field-types.js +119 -192
- package/dist/elements/WhereBuilder/field-types.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +193 -258
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/types.js +1 -2
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/elements/WindowInfo/index.js +1 -1
- package/dist/elements/WindowInfo/index.js.map +1 -1
- package/dist/elements/WithServerSideProps/index.js +19 -20
- package/dist/elements/WithServerSideProps/index.js.map +1 -1
- package/dist/elements/withMergedProps/index.js +26 -26
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/CodeEditor-QOURTFMT.js +14 -0
- package/dist/exports/client/CodeEditor-QOURTFMT.js.map +7 -0
- package/dist/exports/client/DatePicker-VMLA35FO.js +14 -0
- package/dist/exports/client/DatePicker-VMLA35FO.js.map +7 -0
- package/dist/exports/client/chunk-53XJ3K67.js +27 -0
- package/dist/exports/client/chunk-53XJ3K67.js.map +7 -0
- package/dist/exports/client/chunk-5LKBKI4T.js +14 -0
- package/dist/exports/client/chunk-5LKBKI4T.js.map +7 -0
- package/dist/exports/client/chunk-7V3NHDV6.js +29 -0
- package/dist/exports/client/chunk-7V3NHDV6.js.map +7 -0
- package/dist/exports/client/index.js +96 -297
- package/dist/exports/client/index.js.map +7 -1
- package/dist/exports/rsc/index.js +0 -1
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/exports/shared/index.js +6 -35
- package/dist/exports/shared/index.js.map +7 -1
- package/dist/fields/Array/ArrayRow.js +168 -111
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +398 -532
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +198 -163
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +38 -30
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/index.js +103 -159
- package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +80 -37
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js +106 -50
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.js +78 -36
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.js +425 -566
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +99 -86
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.js +99 -107
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.js +114 -146
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js +134 -172
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +83 -67
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +171 -217
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.js +86 -111
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/FieldDescription/index.js +43 -20
- package/dist/fields/FieldDescription/index.js.map +1 -1
- package/dist/fields/FieldError/index.js +58 -22
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +45 -43
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.js +102 -150
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Group/provider.js +12 -13
- package/dist/fields/Group/provider.js.map +1 -1
- package/dist/fields/Hidden/index.js +67 -27
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/JSON/index.js +143 -185
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Join/index.js +189 -214
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Number/index.js +169 -213
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.js +101 -80
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Password/input.js +122 -108
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/Password/types.js +1 -12
- package/dist/fields/Password/types.js.map +1 -1
- package/dist/fields/Point/index.js +127 -199
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js +81 -56
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.js +114 -146
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/Input.js +733 -811
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/createRelationMap.js +33 -31
- package/dist/fields/Relationship/createRelationMap.js.map +1 -1
- package/dist/fields/Relationship/findOptionsByValue.js +32 -28
- package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
- package/dist/fields/Relationship/index.js +160 -152
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/optionsReducer.js +139 -144
- package/dist/fields/Relationship/optionsReducer.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +82 -92
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +118 -95
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Relationship/types.js +1 -2
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/RichText/index.js +3 -3
- package/dist/fields/RichText/index.js.map +1 -1
- package/dist/fields/Row/index.js +35 -37
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Row/provider.js +12 -13
- package/dist/fields/Row/provider.js.map +1 -1
- package/dist/fields/Select/Input.js +165 -114
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.js +108 -89
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Slug/index.js +134 -103
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +60 -54
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.js +445 -245
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/provider.js +12 -13
- package/dist/fields/Tabs/provider.js.map +1 -1
- package/dist/fields/Text/Input.js +191 -169
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.js +126 -107
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.js +1 -2
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/Input.js +115 -104
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.js +88 -61
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Textarea/types.js +1 -2
- package/dist/fields/Textarea/types.js.map +1 -1
- package/dist/fields/UI/index.js +3 -3
- package/dist/fields/UI/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +186 -141
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +60 -59
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/Input.js +566 -755
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +143 -140
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/UploadCard/index.js +10 -15
- package/dist/fields/Upload/UploadCard/index.js.map +1 -1
- package/dist/fields/Upload/index.js +96 -79
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/Upload/types.js +1 -3
- package/dist/fields/Upload/types.js.map +1 -1
- package/dist/fields/index.js +31 -31
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/mergeFieldStyles.js +12 -13
- package/dist/fields/mergeFieldStyles.js.map +1 -1
- package/dist/fields/shared/index.js +17 -8
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/Form/context.js +24 -17
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/createNestedClientFieldPath.js +11 -11
- package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
- package/dist/forms/Form/errorMessages.js +2 -2
- package/dist/forms/Form/errorMessages.js.map +1 -1
- package/dist/forms/Form/fieldReducer.js +412 -378
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.js +684 -745
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/initContextState.js +38 -38
- package/dist/forms/Form/initContextState.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +97 -93
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.js +17 -20
- package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
- package/dist/forms/Form/rowHelpers.js +34 -27
- package/dist/forms/Form/rowHelpers.js.map +1 -1
- package/dist/forms/Form/rows.js +34 -34
- package/dist/forms/Form/rows.js.map +1 -1
- package/dist/forms/Form/types.js +1 -53
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/NullifyField/index.js +96 -61
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +259 -237
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/context.js +9 -9
- package/dist/forms/RenderFields/context.js.map +1 -1
- package/dist/forms/RenderFields/index.js +115 -76
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RenderFields/types.js +1 -2
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +29 -30
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/RowLabel/index.js +24 -33
- package/dist/forms/RowLabel/index.js.map +1 -1
- package/dist/forms/RowLabel/types.js +1 -2
- package/dist/forms/RowLabel/types.js.map +1 -1
- package/dist/forms/Submit/index.js +35 -32
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.js +29 -29
- package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.js +66 -41
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +683 -654
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js +22 -14
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js +26 -17
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +198 -186
- package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js +60 -67
- package/dist/forms/fieldSchemasToFormState/fieldSchemasToFormState.spec.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +79 -90
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js +16 -12
- package/dist/forms/fieldSchemasToFormState/isRowCollapsed.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +116 -95
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +274 -273
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +75 -90
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js +1 -6
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/forms/useField/index.js +292 -180
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.js +1 -20
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/forms/withCondition/WatchCondition.js +27 -9
- package/dist/forms/withCondition/WatchCondition.js.map +1 -1
- package/dist/forms/withCondition/index.js +15 -21
- package/dist/forms/withCondition/index.js.map +1 -1
- package/dist/graphics/Account/Default/index.js +22 -46
- package/dist/graphics/Account/Default/index.js.map +1 -1
- package/dist/graphics/Account/Gravatar/index.js +34 -25
- package/dist/graphics/Account/Gravatar/index.js.map +1 -1
- package/dist/graphics/Account/index.js +51 -24
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/graphics/DefaultBlockImage/index.js +62 -117
- package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
- package/dist/graphics/File/index.js +17 -33
- package/dist/graphics/File/index.js.map +1 -1
- package/dist/graphics/Icon/index.js +19 -33
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/graphics/Logo/index.js +39 -112
- package/dist/graphics/Logo/index.js.map +1 -1
- package/dist/hooks/useClickOutside.js +15 -19
- package/dist/hooks/useClickOutside.js.map +1 -1
- package/dist/hooks/useControllableState.js +35 -25
- package/dist/hooks/useControllableState.js.map +1 -1
- package/dist/hooks/useDebounce.js +26 -15
- package/dist/hooks/useDebounce.js.map +1 -1
- package/dist/hooks/useDebouncedCallback.js +23 -15
- package/dist/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/hooks/useDebouncedEffect.js +53 -18
- package/dist/hooks/useDebouncedEffect.js.map +1 -1
- package/dist/hooks/useDelay.js +52 -27
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js +76 -42
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useEffectEvent.js +33 -12
- package/dist/hooks/useEffectEvent.js.map +1 -1
- package/dist/hooks/useHotkey.js +110 -96
- package/dist/hooks/useHotkey.js.map +1 -1
- package/dist/hooks/useIntersect.js +59 -28
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +172 -78
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/usePopupWindow.js +133 -91
- package/dist/hooks/usePopupWindow.js.map +1 -1
- package/dist/hooks/useQueue.js +38 -48
- package/dist/hooks/useQueue.js.map +1 -1
- package/dist/hooks/useRelatedCollections.js +27 -15
- package/dist/hooks/useRelatedCollections.js.map +1 -1
- package/dist/hooks/useResize.js +70 -42
- package/dist/hooks/useResize.js.map +1 -1
- package/dist/hooks/useThrottledEffect.js +51 -17
- package/dist/hooks/useThrottledEffect.js.map +1 -1
- package/dist/hooks/useThrottledValue.js +13 -16
- package/dist/hooks/useThrottledValue.js.map +1 -1
- package/dist/hooks/useUseAsTitle.js +27 -7
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/icons/Calendar/index.js +11 -20
- package/dist/icons/Calendar/index.js.map +1 -1
- package/dist/icons/Check/index.js +11 -20
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Chevron/index.js +22 -30
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/CloseMenu/index.js +11 -20
- package/dist/icons/CloseMenu/index.js.map +1 -1
- package/dist/icons/CodeBlock/index.js +13 -22
- package/dist/icons/CodeBlock/index.js.map +1 -1
- package/dist/icons/Copy/index.js +17 -24
- package/dist/icons/Copy/index.js.map +1 -1
- package/dist/icons/Document/index.js +16 -25
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Dots/index.js +11 -32
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/DragHandle/index.js +33 -70
- package/dist/icons/DragHandle/index.js.map +1 -1
- package/dist/icons/Edit/index.js +13 -23
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/icons/ExternalLink/index.js +15 -25
- package/dist/icons/ExternalLink/index.js.map +1 -1
- package/dist/icons/Eye/index.js +25 -53
- package/dist/icons/Eye/index.js.map +1 -1
- package/dist/icons/Folder/index.js +16 -26
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Gear/index.js +21 -34
- package/dist/icons/Gear/index.js.map +1 -1
- package/dist/icons/GridView/index.js +31 -57
- package/dist/icons/GridView/index.js.map +1 -1
- package/dist/icons/Line/index.js +14 -23
- package/dist/icons/Line/index.js.map +1 -1
- package/dist/icons/Link/index.js +16 -25
- package/dist/icons/Link/index.js.map +1 -1
- package/dist/icons/ListView/index.js +16 -25
- package/dist/icons/ListView/index.js.map +1 -1
- package/dist/icons/Lock/index.js +24 -41
- package/dist/icons/Lock/index.js.map +1 -1
- package/dist/icons/LogOut/index.js +14 -23
- package/dist/icons/LogOut/index.js.map +1 -1
- package/dist/icons/Menu/index.js +14 -23
- package/dist/icons/Menu/index.js.map +1 -1
- package/dist/icons/MinimizeMaximize/index.js +19 -33
- package/dist/icons/MinimizeMaximize/index.js.map +1 -1
- package/dist/icons/More/index.js +21 -43
- package/dist/icons/More/index.js.map +1 -1
- package/dist/icons/MoveFolder/index.js +34 -62
- package/dist/icons/MoveFolder/index.js.map +1 -1
- package/dist/icons/People/index.js +17 -28
- package/dist/icons/People/index.js.map +1 -1
- package/dist/icons/Plus/index.js +13 -22
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/icons/Search/index.js +12 -21
- package/dist/icons/Search/index.js.map +1 -1
- package/dist/icons/Sort/index.js +35 -48
- package/dist/icons/Sort/index.js.map +1 -1
- package/dist/icons/Swap/index.js +11 -20
- package/dist/icons/Swap/index.js.map +1 -1
- package/dist/icons/ThreeDots/index.js +8 -27
- package/dist/icons/ThreeDots/index.js.map +1 -1
- package/dist/icons/Trash/index.js +18 -28
- package/dist/icons/Trash/index.js.map +1 -1
- package/dist/icons/X/index.js +15 -25
- package/dist/icons/X/index.js.map +1 -1
- package/dist/providers/Actions/index.js +33 -21
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/index.js +243 -293
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ClickOutside/index.js +35 -35
- package/dist/providers/ClickOutside/index.js.map +1 -1
- package/dist/providers/ClientFunction/index.js +104 -63
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.js +91 -91
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js +30 -19
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.js +325 -331
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.js +1 -26
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/DocumentInfo/useGetDocPermissions.js +79 -81
- package/dist/providers/DocumentInfo/useGetDocPermissions.js.map +1 -1
- package/dist/providers/DocumentTitle/context.js.map +1 -1
- package/dist/providers/DocumentTitle/index.js +55 -51
- package/dist/providers/DocumentTitle/index.js.map +1 -1
- package/dist/providers/EditDepth/index.js +25 -15
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js +48 -26
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/Folders/groupItemIDsByRelation.js +7 -8
- package/dist/providers/Folders/groupItemIDsByRelation.js.map +1 -1
- package/dist/providers/Folders/index.js +600 -698
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/ListQuery/context.js +2 -3
- package/dist/providers/ListQuery/context.js.map +1 -1
- package/dist/providers/ListQuery/index.js +140 -156
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/ListQuery/mergeQuery.js +31 -49
- package/dist/providers/ListQuery/mergeQuery.js.map +1 -1
- package/dist/providers/ListQuery/sanitizeQuery.js +23 -24
- package/dist/providers/ListQuery/sanitizeQuery.js.map +1 -1
- package/dist/providers/ListQuery/types.js +1 -6
- package/dist/providers/ListQuery/types.js.map +1 -1
- package/dist/providers/LivePreview/collisionDetection.js +24 -21
- package/dist/providers/LivePreview/collisionDetection.js.map +1 -1
- package/dist/providers/LivePreview/context.js +55 -60
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.js +205 -225
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/LivePreview/sizeReducer.js +18 -19
- package/dist/providers/LivePreview/sizeReducer.js.map +1 -1
- package/dist/providers/Locale/index.js +154 -87
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Operation/index.js +11 -12
- package/dist/providers/Operation/index.js.map +1 -1
- package/dist/providers/Params/index.js +26 -14
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/Preferences/index.js +122 -130
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.js +116 -190
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteCache/index.js +103 -53
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +80 -61
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.js +94 -69
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/ScrollInfo/index.js +1 -1
- package/dist/providers/ScrollInfo/index.js.map +1 -1
- package/dist/providers/SearchParams/index.js +35 -36
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.js +183 -203
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.js +189 -199
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js +62 -33
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/filterFields.js +32 -32
- package/dist/providers/TableColumns/buildColumnState/filterFields.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js +52 -50
- package/dist/providers/TableColumns/buildColumnState/filterFieldsWithPermissions.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js +2 -3
- package/dist/providers/TableColumns/buildColumnState/findValueFromPath.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +143 -132
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/isColumnActive.js +14 -10
- package/dist/providers/TableColumns/buildColumnState/isColumnActive.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +151 -150
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js +15 -16
- package/dist/providers/TableColumns/buildColumnState/sortFieldMap.js.map +1 -1
- package/dist/providers/TableColumns/context.js +1 -2
- package/dist/providers/TableColumns/context.js.map +1 -1
- package/dist/providers/TableColumns/getInitialColumns.js +28 -42
- package/dist/providers/TableColumns/getInitialColumns.js.map +1 -1
- package/dist/providers/TableColumns/index.js +85 -88
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/providers/TableColumns/types.js +1 -18
- package/dist/providers/TableColumns/types.js.map +1 -1
- package/dist/providers/Theme/index.js +104 -69
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Error.js +19 -34
- package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Info.js +19 -34
- package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Success.js +19 -34
- package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Warning.js +19 -34
- package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
- package/dist/providers/ToastContainer/index.js +47 -56
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/providers/Translation/index.js +112 -66
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadControls/index.js +40 -28
- package/dist/providers/UploadControls/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.js +73 -31
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.js +65 -30
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/providers/WindowInfo/index.js +9 -5
- package/dist/providers/WindowInfo/index.js.map +1 -1
- package/dist/styles.css +1 -0
- package/dist/utilities/abortAndIgnore.js +17 -15
- package/dist/utilities/abortAndIgnore.js.map +1 -1
- package/dist/utilities/api.js +77 -78
- package/dist/utilities/api.js.map +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/index.js +65 -61
- package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +154 -142
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js +61 -59
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js +122 -110
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFormState.js +186 -151
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.js +168 -145
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/canUseDOM.js +0 -1
- package/dist/utilities/canUseDOM.js.map +1 -1
- package/dist/utilities/combineFieldLabel.js +26 -53
- package/dist/utilities/combineFieldLabel.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.js +210 -202
- package/dist/utilities/copyDataFromLocale.js.map +1 -1
- package/dist/utilities/dateLocales.js +27 -28
- package/dist/utilities/dateLocales.js.map +1 -1
- package/dist/utilities/deepMerge.js +13 -14
- package/dist/utilities/deepMerge.js.map +1 -1
- package/dist/utilities/fetchPreferences.js.map +1 -1
- package/dist/utilities/filterOutUploadFields.js +4 -17
- package/dist/utilities/filterOutUploadFields.js.map +1 -1
- package/dist/utilities/findLocaleFromCode.js +5 -6
- package/dist/utilities/findLocaleFromCode.js.map +1 -1
- package/dist/utilities/formatAbsoluteURL.js +8 -8
- package/dist/utilities/formatAbsoluteURL.js.map +1 -1
- package/dist/utilities/formatAdminURL.js +1 -2
- package/dist/utilities/formatAdminURL.js.map +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.js +27 -20
- package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js +13 -14
- package/dist/utilities/formatDocTitle/formatLexicalDocTitle.js.map +1 -1
- package/dist/utilities/formatDocTitle/formatRelationshipTitle.js +13 -14
- package/dist/utilities/formatDocTitle/formatRelationshipTitle.js.map +1 -1
- package/dist/utilities/formatDocTitle/index.js +44 -38
- package/dist/utilities/formatDocTitle/index.js.map +1 -1
- package/dist/utilities/formatFields.js +1 -2
- package/dist/utilities/formatFields.js.map +1 -1
- package/dist/utilities/generateFieldID.js +5 -6
- package/dist/utilities/generateFieldID.js.map +1 -1
- package/dist/utilities/getClientConfig.js +29 -25
- package/dist/utilities/getClientConfig.js.map +1 -1
- package/dist/utilities/getClientSchemaMap.js +32 -24
- package/dist/utilities/getClientSchemaMap.js.map +1 -1
- package/dist/utilities/getColumns.js +35 -29
- package/dist/utilities/getColumns.js.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.js +16 -16
- package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.js +121 -134
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
- package/dist/utilities/getGlobalData.js +45 -41
- package/dist/utilities/getGlobalData.js.map +1 -1
- package/dist/utilities/getNavGroups.js +18 -21
- package/dist/utilities/getNavGroups.js.map +1 -1
- package/dist/utilities/getOffsetTop.js +13 -14
- package/dist/utilities/getOffsetTop.js.map +1 -1
- package/dist/utilities/getRequestLanguage.js +8 -5
- package/dist/utilities/getRequestLanguage.js.map +1 -1
- package/dist/utilities/getSchemaMap.js +28 -22
- package/dist/utilities/getSchemaMap.js.map +1 -1
- package/dist/utilities/getSupportedMonacoLocale.js +13 -14
- package/dist/utilities/getSupportedMonacoLocale.js.map +1 -1
- package/dist/utilities/getVisibleEntities.js +26 -15
- package/dist/utilities/getVisibleEntities.js.map +1 -1
- package/dist/utilities/groupNavItems.js +50 -53
- package/dist/utilities/groupNavItems.js.map +1 -1
- package/dist/utilities/handleBackToDashboard.js +11 -8
- package/dist/utilities/handleBackToDashboard.js.map +1 -1
- package/dist/utilities/handleFormStateLocking.js +121 -127
- package/dist/utilities/handleFormStateLocking.js.map +1 -1
- package/dist/utilities/handleGoBack.js +11 -7
- package/dist/utilities/handleGoBack.js.map +1 -1
- package/dist/utilities/handleLivePreview.js +76 -59
- package/dist/utilities/handleLivePreview.js.map +1 -1
- package/dist/utilities/handlePreview.js +52 -41
- package/dist/utilities/handlePreview.js.map +1 -1
- package/dist/utilities/handleTakeOver.js +39 -28
- package/dist/utilities/handleTakeOver.js.map +1 -1
- package/dist/utilities/hasOptionLabelJSXElement.js +11 -9
- package/dist/utilities/hasOptionLabelJSXElement.js.map +1 -1
- package/dist/utilities/hasSavePermission.js +14 -14
- package/dist/utilities/hasSavePermission.js.map +1 -1
- package/dist/utilities/isClientUserObject.js +2 -3
- package/dist/utilities/isClientUserObject.js.map +1 -1
- package/dist/utilities/isEditing.js +5 -2
- package/dist/utilities/isEditing.js.map +1 -1
- package/dist/utilities/isURLAllowed.js +30 -31
- package/dist/utilities/isURLAllowed.js.map +1 -1
- package/dist/utilities/isValidReactElement.js +3 -3
- package/dist/utilities/isValidReactElement.js.map +1 -1
- package/dist/utilities/normalizeRelationshipValue.js +28 -29
- package/dist/utilities/normalizeRelationshipValue.js.map +1 -1
- package/dist/utilities/normalizeRelationshipValue.spec.js +368 -407
- package/dist/utilities/normalizeRelationshipValue.spec.js.map +1 -1
- package/dist/utilities/parseSearchParams.js +7 -7
- package/dist/utilities/parseSearchParams.js.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.js +154 -145
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/utilities/reduceFieldsToValuesWithValidation.js +20 -20
- package/dist/utilities/reduceFieldsToValuesWithValidation.js.map +1 -1
- package/dist/utilities/removeUndefined.js +1 -2
- package/dist/utilities/removeUndefined.js.map +1 -1
- package/dist/utilities/renderTable.js +195 -239
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/resolveFilterOptions.js +26 -27
- package/dist/utilities/resolveFilterOptions.js.map +1 -1
- package/dist/utilities/sanitizeFilterOptionsQuery.js +15 -16
- package/dist/utilities/sanitizeFilterOptionsQuery.js.map +1 -1
- package/dist/utilities/sanitizeID.js +7 -8
- package/dist/utilities/sanitizeID.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.js +57 -47
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/scrollToID.js +9 -10
- package/dist/utilities/scrollToID.js.map +1 -1
- package/dist/utilities/setsAreEqual.js +2 -3
- package/dist/utilities/setsAreEqual.js.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.js +35 -36
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -1
- package/dist/utilities/upsertPreferences.js +75 -75
- package/dist/utilities/upsertPreferences.js.map +1 -1
- package/dist/views/BrowseByFolder/index.js +324 -365
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js +158 -161
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +282 -360
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +124 -185
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +321 -309
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/Auth/types.js +1 -2
- package/dist/views/Edit/Auth/types.js.map +1 -1
- package/dist/views/Edit/SetDocumentStepNav/index.js +150 -84
- package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +77 -30
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/Edit/index.js +501 -579
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/Edit/types.js +1 -2
- package/dist/views/Edit/types.js.map +1 -1
- package/dist/views/List/GroupByHeader/index.js +24 -35
- package/dist/views/List/GroupByHeader/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.js +80 -115
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js +111 -103
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.js +213 -321
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/List/types.js +1 -2
- package/dist/views/List/types.js.map +1 -1
- package/dist/widgets/CollectionCards/index.js +119 -149
- package/dist/widgets/CollectionCards/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/providers/Folders/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug, FolderSortKeys } from 'payload'\nimport type { FolderBreadcrumb, FolderDocumentItemKey, FolderOrDocument } from 'payload/shared'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { extractID, formatAdminURL, formatFolderOrDocumentItem } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDrawerDepth } from '../../elements/Drawer/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { groupItemIDsByRelation } from './groupItemIDsByRelation.js'\n\ntype FolderQueryParams = {\n page?: string\n relationTo?: CollectionSlug[]\n search?: string\n sort?: string\n}\n\nexport type FileCardData = {\n filename: string\n id: number | string\n mimeType: string\n name: string\n url: string\n}\n\nexport type FolderContextValue = {\n /**\n * The collection slugs that a view can be filtered by\n * Used in the browse-by-folder view\n */\n activeCollectionFolderSlugs: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs?: CollectionSlug[]\n allowCreateCollectionSlugs: CollectionSlug[]\n breadcrumbs?: FolderBreadcrumb[]\n checkIfItemIsDisabled: (item: FolderOrDocument) => boolean\n clearSelections: () => void\n currentFolder?: FolderOrDocument | null\n documents?: FolderOrDocument[]\n dragOverlayItem?: FolderOrDocument | undefined\n focusedRowIndex: number\n folderCollectionConfig: ClientCollectionConfig\n folderCollectionSlug: string\n folderFieldName: string\n folderID?: number | string\n FolderResultsComponent: React.ReactNode\n folderType: CollectionSlug[] | undefined\n getFolderRoute: (toFolderID?: number | string) => string\n getSelectedItems?: () => FolderOrDocument[]\n isDragging: boolean\n itemKeysToMove?: Set<FolderDocumentItemKey>\n moveToFolder: (args: {\n itemsToMove: FolderOrDocument[]\n toFolderID?: number | string\n }) => Promise<void>\n onItemClick: (args: { event: React.MouseEvent; index: number; item: FolderOrDocument }) => void\n onItemKeyPress: (args: {\n event: React.KeyboardEvent\n index: number\n item: FolderOrDocument\n }) => void\n refineFolderData: (args: { query?: FolderQueryParams; updateURL: boolean }) => void\n search: string\n selectedFolderCollections?: CollectionSlug[]\n readonly selectedItemKeys: Set<FolderDocumentItemKey>\n setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>\n setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>\n setIsDragging: React.Dispatch<React.SetStateAction<boolean>>\n sort: FolderSortKeys\n subfolders?: FolderOrDocument[]\n}\n\nconst Context = React.createContext<FolderContextValue>({\n activeCollectionFolderSlugs: [],\n allCollectionFolderSlugs: [],\n allowCreateCollectionSlugs: [],\n breadcrumbs: [],\n checkIfItemIsDisabled: () => false,\n clearSelections: () => {},\n currentFolder: null,\n documents: [],\n dragOverlayItem: undefined,\n focusedRowIndex: -1,\n folderCollectionConfig: null,\n folderCollectionSlug: '',\n folderFieldName: 'folder',\n folderID: undefined,\n FolderResultsComponent: null,\n folderType: undefined,\n getFolderRoute: () => '',\n getSelectedItems: () => [],\n isDragging: false,\n itemKeysToMove: undefined,\n moveToFolder: () => Promise.resolve(undefined),\n onItemClick: () => undefined,\n onItemKeyPress: () => undefined,\n refineFolderData: () => undefined,\n search: '',\n selectedFolderCollections: undefined,\n selectedItemKeys: new Set<FolderDocumentItemKey>(),\n setBreadcrumbs: () => {},\n setFocusedRowIndex: () => -1,\n setIsDragging: () => false,\n sort: 'name',\n subfolders: [],\n})\n\nexport type FolderProviderProps = {\n /**\n * The collection slugs that are being viewed\n */\n readonly activeCollectionFolderSlugs?: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs: CollectionSlug[]\n /**\n * Array of slugs that can be created in the folder view\n */\n readonly allowCreateCollectionSlugs: CollectionSlug[]\n readonly allowMultiSelection?: boolean\n /**\n * The base folder route path\n *\n * @example\n * `/collections/:collectionSlug/:folderCollectionSlug`\n * or\n * `/browse-by-folder`\n */\n readonly baseFolderPath?: `/${string}`\n /**\n * Breadcrumbs for the current folder\n */\n readonly breadcrumbs?: FolderBreadcrumb[]\n /**\n * Children to render inside the provider\n */\n readonly children: React.ReactNode\n /**\n * All documents in the current folder\n */\n readonly documents: FolderOrDocument[]\n /**\n * The name of the field that contains the folder relation\n */\n readonly folderFieldName: string\n /**\n * The ID of the current folder\n */\n readonly folderID?: number | string\n /**\n * The component to render the folder results\n */\n readonly FolderResultsComponent: React.ReactNode\n /**\n * Optional function to call when an item is clicked\n */\n readonly onItemClick?: (itme: FolderOrDocument) => void\n /**\n * The intial search query\n */\n readonly search?: string\n /**\n * The sort order of the documents\n *\n * @example\n * `name` for descending\n * `-name` for ascending\n */\n readonly sort?: FolderSortKeys\n /**\n * All subfolders in the current folder\n */\n readonly subfolders: FolderOrDocument[]\n}\nexport function FolderProvider({\n activeCollectionFolderSlugs: activeCollectionSlugs,\n allCollectionFolderSlugs = [],\n allowCreateCollectionSlugs,\n allowMultiSelection = true,\n baseFolderPath,\n breadcrumbs: _breadcrumbsFromProps = [],\n children,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent: InitialFolderResultsComponent,\n onItemClick: onItemClickFromProps,\n search,\n sort = 'name',\n subfolders,\n}: FolderProviderProps) {\n const parentFolderContext = useFolder()\n const { config } = useConfig()\n const { routes } = config\n const drawerDepth = useDrawerDepth()\n const { t } = useTranslation()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const locale = useLocale()\n const localeCode = locale ? locale.code : undefined\n\n const currentlySelectedIndexes = React.useRef(new Set<number>())\n\n const [selectedFolderCollections, setSelectedFolderCollections] = React.useState<\n CollectionSlug[]\n >([])\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState(\n InitialFolderResultsComponent || (() => null),\n )\n const [folderCollectionConfig] = React.useState(() =>\n config.collections.find(\n (collection) => config.folders && collection.slug === config.folders.slug,\n ),\n )\n const folderCollectionSlug = folderCollectionConfig.slug\n\n const rawSearchParams = useSearchParams()\n const searchParams = React.useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n const [currentQuery, setCurrentQuery] = React.useState<FolderQueryParams>(searchParams)\n\n const [isDragging, setIsDragging] = React.useState(false)\n const [selectedItemKeys, setSelectedItemKeys] = React.useState<Set<FolderDocumentItemKey>>(\n () => new Set(),\n )\n const [focusedRowIndex, setFocusedRowIndex] = React.useState(-1)\n // This is used to determine what data to display on the drag overlay\n const [dragOverlayItem, setDragOverlayItem] = React.useState<FolderOrDocument | undefined>()\n const [breadcrumbs, setBreadcrumbs] =\n React.useState<FolderContextValue['breadcrumbs']>(_breadcrumbsFromProps)\n const lastClickTime = React.useRef<null | number>(null)\n const totalCount = subfolders.length + documents.length\n\n const clearSelections = React.useCallback(() => {\n setFocusedRowIndex(-1)\n setSelectedItemKeys(new Set())\n setDragOverlayItem(undefined)\n currentlySelectedIndexes.current = new Set()\n }, [])\n\n const mergeQuery = React.useCallback(\n (newQuery: Partial<FolderQueryParams> = {}): Partial<FolderQueryParams> => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n if ('search' in newQuery) {\n page = '1'\n }\n\n const mergedQuery = {\n ...currentQuery,\n ...newQuery,\n locale: localeCode,\n page,\n relationTo: 'relationTo' in newQuery ? newQuery.relationTo : currentQuery?.relationTo,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort: 'sort' in newQuery ? newQuery.sort : (currentQuery?.sort ?? undefined),\n }\n\n return mergedQuery\n },\n [currentQuery, localeCode],\n )\n\n const refineFolderData: FolderContextValue['refineFolderData'] = React.useCallback(\n ({ query, updateURL }) => {\n if (updateURL) {\n const queryParams = mergeQuery(query)\n\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify({ ...queryParams, relationTo: JSON.stringify(queryParams.relationTo) }, { addQueryPrefix: true })}`,\n ),\n )\n\n setCurrentQuery(queryParams)\n }\n },\n [mergeQuery, router, startRouteTransition],\n )\n\n const getFolderRoute: FolderContextValue['getFolderRoute'] = React.useCallback(\n (toFolderID) => {\n const queryParams = qs.stringify(mergeQuery({ page: '1', search: '' }), {\n addQueryPrefix: true,\n })\n return formatAdminURL({\n adminRoute: config.routes.admin,\n path: `${baseFolderPath}${toFolderID ? `/${toFolderID}` : ''}${queryParams}`,\n })\n },\n [baseFolderPath, config.routes.admin, mergeQuery],\n )\n\n const getItem = React.useCallback(\n (itemKey: FolderDocumentItemKey) => {\n return [...subfolders, ...documents].find((doc) => doc.itemKey === itemKey)\n },\n [documents, subfolders],\n )\n\n const getSelectedItems = React.useCallback(() => {\n return Array.from(selectedItemKeys).reduce((acc, itemKey) => {\n const item = getItem(itemKey)\n if (item) {\n acc.push(item)\n }\n return acc\n }, [])\n }, [selectedItemKeys, getItem])\n\n const navigateAfterSelection = React.useCallback(\n ({ collectionSlug, docID }: { collectionSlug: string; docID?: number | string }) => {\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n if (collectionSlug === folderCollectionSlug) {\n // clicked on folder, take the user to the folder view\n startRouteTransition(() => {\n router.push(getFolderRoute(docID))\n clearSelections()\n })\n } else if (collectionSlug) {\n // clicked on document, take the user to the documet view\n startRouteTransition(() => {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${docID}`,\n }),\n )\n clearSelections()\n })\n }\n } else {\n clearSelections()\n }\n\n if (typeof onItemClickFromProps === 'function') {\n onItemClickFromProps(getItem(`${collectionSlug}-${docID}`))\n }\n },\n [\n clearSelections,\n config.routes.admin,\n drawerDepth,\n folderCollectionSlug,\n getFolderRoute,\n getItem,\n onItemClickFromProps,\n router,\n startRouteTransition,\n ],\n )\n\n const handleShiftSelection = React.useCallback(\n (targetIndex: number) => {\n const allItems = [...subfolders, ...documents]\n\n // Find existing selection boundaries\n const existingIndexes = allItems.reduce((acc, item, idx) => {\n if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n if (existingIndexes.length === 0) {\n // No existing selection, just select target\n return [targetIndex]\n }\n\n const firstSelectedIndex = Math.min(...existingIndexes)\n const lastSelectedIndex = Math.max(...existingIndexes)\n const isWithinBounds = targetIndex >= firstSelectedIndex && targetIndex <= lastSelectedIndex\n\n // Choose anchor based on whether we're contracting or extending\n let anchorIndex = targetIndex\n if (isWithinBounds) {\n // Contracting: if target is at a boundary, use target as anchor\n // Otherwise, use furthest boundary to maintain opposite edge\n if (targetIndex === firstSelectedIndex || targetIndex === lastSelectedIndex) {\n anchorIndex = targetIndex\n } else {\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst >= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n } else {\n // Extending: use closest boundary\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst <= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n\n // Create range from anchor to target\n const startIndex = Math.min(anchorIndex, targetIndex)\n const endIndex = Math.max(anchorIndex, targetIndex)\n const newRangeIndexes = Array.from(\n { length: endIndex - startIndex + 1 },\n (_, i) => startIndex + i,\n )\n\n if (isWithinBounds) {\n // Contracting: replace with new range\n return newRangeIndexes\n } else {\n // Extending: union with existing\n return [...new Set([...existingIndexes, ...newRangeIndexes])]\n }\n },\n [subfolders, documents, selectedItemKeys],\n )\n\n const updateSelections = React.useCallback(\n ({ indexes }: { indexes: number[] }) => {\n const allItems = [...subfolders, ...documents]\n const { newSelectedFolderCollections, newSelectedItemKeys } = allItems.reduce(\n (acc, item, index) => {\n if (indexes.includes(index)) {\n acc.newSelectedItemKeys.add(item.itemKey)\n if (item.relationTo === folderCollectionSlug) {\n item.value.folderType?.forEach((collectionSlug) => {\n if (!acc.newSelectedFolderCollections.includes(collectionSlug)) {\n acc.newSelectedFolderCollections.push(collectionSlug)\n }\n })\n } else {\n if (!acc.newSelectedFolderCollections.includes(item.relationTo)) {\n acc.newSelectedFolderCollections.push(item.relationTo)\n }\n }\n }\n return acc\n },\n {\n newSelectedFolderCollections: [] satisfies CollectionSlug[],\n newSelectedItemKeys: new Set<FolderDocumentItemKey>(),\n },\n )\n\n setSelectedFolderCollections(newSelectedFolderCollections)\n setSelectedItemKeys(newSelectedItemKeys)\n },\n [documents, folderCollectionSlug, subfolders],\n )\n\n const onItemKeyPress: FolderContextValue['onItemKeyPress'] = React.useCallback(\n ({ event, item: currentItem }) => {\n const { code, ctrlKey, metaKey, shiftKey } = event\n const isShiftPressed = shiftKey\n const isCtrlPressed = ctrlKey || metaKey\n const isCurrentlySelected = selectedItemKeys.has(currentItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === currentItem.itemKey)\n\n switch (code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp': {\n event.preventDefault()\n\n if (currentItemIndex === -1) {\n break\n }\n\n const isBackward = code === 'ArrowLeft' || code === 'ArrowUp'\n const newItemIndex = isBackward ? currentItemIndex - 1 : currentItemIndex + 1\n\n if (newItemIndex < 0 || newItemIndex > totalCount - 1) {\n // out of bounds, keep current selection\n return\n }\n\n setFocusedRowIndex(newItemIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (isShiftPressed && allowMultiSelection) {\n const selectedIndexes = handleShiftSelection(newItemIndex)\n updateSelections({ indexes: selectedIndexes })\n return\n }\n\n // Single selection without shift\n if (!isShiftPressed) {\n const newItem = allItems[newItemIndex]\n setSelectedItemKeys(new Set([newItem.itemKey]))\n }\n\n break\n }\n case 'Enter': {\n if (selectedItemKeys.size === 1) {\n setFocusedRowIndex(undefined)\n navigateAfterSelection({\n collectionSlug: currentItem.relationTo,\n docID: extractID(currentItem.value),\n })\n return\n }\n break\n }\n case 'Escape': {\n clearSelections()\n break\n }\n case 'KeyA': {\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n setFocusedRowIndex(totalCount - 1)\n updateSelections({\n indexes: Array.from({ length: totalCount }, (_, i) => i),\n })\n }\n break\n }\n case 'Space': {\n if (allowMultiSelection && isShiftPressed) {\n event.preventDefault()\n const allItems = [...subfolders, ...documents]\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === currentItem.itemKey) {\n if (isCurrentlySelected) {\n return acc\n } else {\n acc.push(idx)\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n } else {\n event.preventDefault()\n updateSelections({\n indexes: isCurrentlySelected ? [] : [currentItemIndex],\n })\n }\n break\n }\n case 'Tab': {\n if (allowMultiSelection && isShiftPressed) {\n const prevIndex = currentItemIndex - 1\n if (prevIndex < 0 && selectedItemKeys?.size > 0) {\n setFocusedRowIndex(prevIndex)\n }\n } else {\n const nextIndex = currentItemIndex + 1\n if (nextIndex === totalCount && selectedItemKeys.size > 0) {\n setFocusedRowIndex(totalCount - 1)\n }\n }\n break\n }\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n handleShiftSelection,\n updateSelections,\n navigateAfterSelection,\n clearSelections,\n totalCount,\n ],\n )\n\n const onItemClick: FolderContextValue['onItemClick'] = React.useCallback(\n ({ event, item: clickedItem }) => {\n let doubleClicked: boolean = false\n const isCtrlPressed = event.ctrlKey || event.metaKey\n const isShiftPressed = event.shiftKey\n const isCurrentlySelected = selectedItemKeys.has(clickedItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === clickedItem.itemKey)\n\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n let overlayItemKey: FolderDocumentItemKey | undefined\n const indexes = allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n if (isCurrentlySelected && event.type !== 'pointermove') {\n return acc\n } else {\n acc.push(idx)\n overlayItemKey = item.itemKey\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n updateSelections({ indexes })\n\n if (overlayItemKey) {\n setDragOverlayItem(getItem(overlayItemKey))\n }\n } else if (allowMultiSelection && isShiftPressed) {\n if (currentItemIndex !== -1) {\n const selectedIndexes = handleShiftSelection(currentItemIndex)\n updateSelections({ indexes: selectedIndexes })\n }\n } else if (allowMultiSelection && event.type === 'pointermove') {\n // on drag start of an unselected item\n if (!isCurrentlySelected) {\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n } else {\n // Normal click - select single item\n const now = Date.now()\n doubleClicked =\n now - lastClickTime.current < 400 && dragOverlayItem?.itemKey === clickedItem.itemKey\n lastClickTime.current = now\n if (!doubleClicked) {\n updateSelections({\n indexes: isCurrentlySelected && selectedItemKeys.size === 1 ? [] : [currentItemIndex],\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n }\n\n if (doubleClicked) {\n navigateAfterSelection({\n collectionSlug: clickedItem.relationTo,\n docID: extractID(clickedItem.value),\n })\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n dragOverlayItem,\n getItem,\n updateSelections,\n navigateAfterSelection,\n handleShiftSelection,\n ],\n )\n\n /**\n * Makes requests to the server to update the folder field on passed in documents\n *\n * Might rewrite this in the future to return the promises so errors can be handled contextually\n */\n const moveToFolder: FolderContextValue['moveToFolder'] = React.useCallback(\n async (args) => {\n const { itemsToMove: items, toFolderID } = args\n if (!items.length) {\n return\n }\n\n const movingCurrentFolder =\n items.length === 1 &&\n items[0].relationTo === folderCollectionSlug &&\n items[0].value.id === folderID\n\n if (movingCurrentFolder) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n },\n {\n addQueryPrefix: true,\n },\n )\n const req = await fetch(\n formatAdminURL({\n apiRoute: routes.api,\n path: `/${folderCollectionSlug}/${folderID}${queryParams}`,\n }),\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n if (req.status !== 200) {\n toast.error(t('general:error'))\n }\n } else {\n for (const [collectionSlug, ids] of Object.entries(groupItemIDsByRelation(items))) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n limit: 0,\n locale: localeCode,\n where: {\n id: {\n in: ids,\n },\n },\n },\n {\n addQueryPrefix: true,\n },\n )\n try {\n await fetch(\n formatAdminURL({\n apiRoute: routes.api,\n path: `/${collectionSlug}${queryParams}`,\n }),\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n } catch (error) {\n toast.error(t('general:error'))\n // eslint-disable-next-line no-console\n console.error(error)\n continue\n }\n }\n }\n\n clearSelections()\n },\n [folderID, clearSelections, folderCollectionSlug, folderFieldName, routes.api, t, localeCode],\n )\n\n const checkIfItemIsDisabled: FolderContextValue['checkIfItemIsDisabled'] = React.useCallback(\n (item) => {\n function folderAcceptsItem({\n item,\n selectedFolderCollections,\n }: {\n item: FolderOrDocument\n selectedFolderCollections: string[]\n }): boolean {\n if (\n !item.value.folderType ||\n (Array.isArray(item.value.folderType) && item.value.folderType.length === 0)\n ) {\n // Enable folder that accept all collections\n return false\n }\n\n if (selectedFolderCollections.length === 0) {\n // If no collections are selected, enable folders that accept all collections\n return Boolean(item.value.folderType || item.value.folderType.length > 0)\n }\n\n // Disable folders that do not accept all of the selected collections\n return selectedFolderCollections.some((slug) => {\n return !item.value.folderType.includes(slug)\n })\n }\n\n if (isDragging) {\n const isSelected = selectedItemKeys.has(item.itemKey)\n if (isSelected) {\n return true\n } else if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({ item, selectedFolderCollections })\n } else {\n // Non folder items are disabled on drag\n return true\n }\n } else if (parentFolderContext?.selectedItemKeys?.size) {\n // Disable selected items from being navigated to in move to drawer\n if (parentFolderContext.selectedItemKeys.has(item.itemKey)) {\n return true\n }\n // Moving items to folder\n if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({\n item,\n selectedFolderCollections: parentFolderContext.selectedFolderCollections,\n })\n }\n // If the item is not a folder, it is disabled on move\n return true\n }\n },\n [\n selectedFolderCollections,\n isDragging,\n selectedItemKeys,\n folderCollectionSlug,\n parentFolderContext?.selectedFolderCollections,\n parentFolderContext?.selectedItemKeys,\n ],\n )\n\n // If a new component is provided, update the state so children can re-render with the new component\n React.useEffect(() => {\n if (InitialFolderResultsComponent) {\n setFolderResultsComponent(InitialFolderResultsComponent)\n }\n }, [InitialFolderResultsComponent])\n\n return (\n <Context\n value={{\n activeCollectionFolderSlugs: activeCollectionSlugs || allCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n checkIfItemIsDisabled,\n clearSelections,\n currentFolder:\n breadcrumbs?.[breadcrumbs.length - 1]?.id !== undefined\n ? formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: false,\n relationTo: folderCollectionSlug,\n useAsTitle: folderCollectionConfig.admin.useAsTitle,\n value: breadcrumbs[breadcrumbs.length - 1],\n })\n : null,\n documents,\n dragOverlayItem,\n focusedRowIndex,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n folderType: breadcrumbs?.[breadcrumbs.length - 1]?.folderType,\n getFolderRoute,\n getSelectedItems,\n isDragging,\n itemKeysToMove: parentFolderContext.selectedItemKeys,\n moveToFolder,\n onItemClick,\n onItemKeyPress,\n refineFolderData,\n search,\n selectedFolderCollections,\n selectedItemKeys,\n setBreadcrumbs,\n setFocusedRowIndex,\n setIsDragging,\n sort,\n subfolders,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport function useFolder(): FolderContextValue {\n const context = React.use(Context)\n\n if (context === undefined) {\n throw new Error('useFolder must be used within a FolderProvider')\n }\n\n return context\n}\n"],"names":["useRouter","useSearchParams","extractID","formatAdminURL","formatFolderOrDocumentItem","qs","React","toast","useDrawerDepth","parseSearchParams","useConfig","useLocale","useRouteTransition","useTranslation","groupItemIDsByRelation","Context","createContext","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","breadcrumbs","checkIfItemIsDisabled","clearSelections","currentFolder","documents","dragOverlayItem","undefined","focusedRowIndex","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","FolderResultsComponent","folderType","getFolderRoute","getSelectedItems","isDragging","itemKeysToMove","moveToFolder","Promise","resolve","onItemClick","onItemKeyPress","refineFolderData","search","selectedFolderCollections","selectedItemKeys","Set","setBreadcrumbs","setFocusedRowIndex","setIsDragging","sort","subfolders","FolderProvider","activeCollectionSlugs","allowMultiSelection","baseFolderPath","_breadcrumbsFromProps","children","InitialFolderResultsComponent","onItemClickFromProps","parentFolderContext","useFolder","config","routes","drawerDepth","t","router","startRouteTransition","locale","localeCode","code","currentlySelectedIndexes","useRef","setSelectedFolderCollections","useState","setFolderResultsComponent","collections","find","collection","folders","slug","rawSearchParams","searchParams","useMemo","currentQuery","setCurrentQuery","setSelectedItemKeys","setDragOverlayItem","lastClickTime","totalCount","length","useCallback","current","mergeQuery","newQuery","page","mergedQuery","relationTo","query","updateURL","queryParams","replace","stringify","JSON","addQueryPrefix","toFolderID","adminRoute","admin","path","getItem","itemKey","doc","Array","from","reduce","acc","item","push","navigateAfterSelection","collectionSlug","docID","handleShiftSelection","targetIndex","allItems","existingIndexes","idx","has","firstSelectedIndex","Math","min","lastSelectedIndex","max","isWithinBounds","anchorIndex","distanceToFirst","abs","distanceToLast","startIndex","endIndex","newRangeIndexes","_","i","updateSelections","indexes","newSelectedFolderCollections","newSelectedItemKeys","index","includes","add","value","forEach","event","currentItem","ctrlKey","metaKey","shiftKey","isShiftPressed","isCtrlPressed","isCurrentlySelected","currentItemIndex","findIndex","preventDefault","isBackward","newItemIndex","selectedIndexes","newItem","size","prevIndex","nextIndex","clickedItem","doubleClicked","overlayItemKey","type","now","Date","args","itemsToMove","items","movingCurrentFolder","id","depth","req","fetch","apiRoute","api","body","credentials","headers","method","status","error","ids","Object","entries","limit","where","in","console","folderAcceptsItem","isArray","Boolean","some","isSelected","useEffect","isUpload","useAsTitle","context","use","Error"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","extractID","formatAdminURL","formatFolderOrDocumentItem","qs","React","toast","useDrawerDepth","parseSearchParams","useConfig","useLocale","useRouteTransition","useTranslation","groupItemIDsByRelation","Context","createContext","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","breadcrumbs","checkIfItemIsDisabled","clearSelections","currentFolder","documents","dragOverlayItem","undefined","focusedRowIndex","folderCollectionConfig","folderCollectionSlug","folderFieldName","folderID","FolderResultsComponent","folderType","getFolderRoute","getSelectedItems","isDragging","itemKeysToMove","moveToFolder","Promise","resolve","onItemClick","onItemKeyPress","refineFolderData","search","selectedFolderCollections","selectedItemKeys","Set","setBreadcrumbs","setFocusedRowIndex","setIsDragging","sort","subfolders","FolderProvider","activeCollectionSlugs","allowMultiSelection","baseFolderPath","_breadcrumbsFromProps","children","InitialFolderResultsComponent","onItemClickFromProps","parentFolderContext","useFolder","config","routes","drawerDepth","t","router","startRouteTransition","locale","localeCode","code","currentlySelectedIndexes","useRef","setSelectedFolderCollections","useState","setFolderResultsComponent","collections","find","collection","folders","slug","rawSearchParams","searchParams","useMemo","currentQuery","setCurrentQuery","setSelectedItemKeys","setDragOverlayItem","lastClickTime","totalCount","length","useCallback","current","mergeQuery","newQuery","page","mergedQuery","relationTo","query","updateURL","queryParams","replace","stringify","JSON","addQueryPrefix","toFolderID","adminRoute","admin","path","getItem","itemKey","doc","Array","from","reduce","acc","item","push","navigateAfterSelection","collectionSlug","docID","handleShiftSelection","targetIndex","allItems","existingIndexes","idx","has","firstSelectedIndex","Math","min","lastSelectedIndex","max","isWithinBounds","anchorIndex","distanceToFirst","abs","distanceToLast","startIndex","endIndex","newRangeIndexes","_","i","updateSelections","indexes","newSelectedFolderCollections","newSelectedItemKeys","index","includes","add","value","forEach","event","currentItem","ctrlKey","metaKey","shiftKey","isShiftPressed","isCtrlPressed","isCurrentlySelected","currentItemIndex","findIndex","preventDefault","isBackward","newItemIndex","selectedIndexes","newItem","size","prevIndex","nextIndex","clickedItem","doubleClicked","overlayItemKey","type","now","Date","args","itemsToMove","items","movingCurrentFolder","id","depth","req","fetch","apiRoute","api","body","credentials","headers","method","status","error","ids","Object","entries","limit","where","in","console","folderAcceptsItem","isArray","Boolean","some","isSelected","useEffect","_jsx","isUpload","useAsTitle","context","use","Error"],"sources":["../../../src/providers/Folders/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, CollectionSlug, FolderSortKeys } from 'payload'\nimport type { FolderBreadcrumb, FolderDocumentItemKey, FolderOrDocument } from 'payload/shared'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { extractID, formatAdminURL, formatFolderOrDocumentItem } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useDrawerDepth } from '../../elements/Drawer/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { useLocale } from '../Locale/index.js'\nimport { useRouteTransition } from '../RouteTransition/index.js'\nimport { useTranslation } from '../Translation/index.js'\nimport { groupItemIDsByRelation } from './groupItemIDsByRelation.js'\n\ntype FolderQueryParams = {\n page?: string\n relationTo?: CollectionSlug[]\n search?: string\n sort?: string\n}\n\nexport type FileCardData = {\n filename: string\n id: number | string\n mimeType: string\n name: string\n url: string\n}\n\nexport type FolderContextValue = {\n /**\n * The collection slugs that a view can be filtered by\n * Used in the browse-by-folder view\n */\n activeCollectionFolderSlugs: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs?: CollectionSlug[]\n allowCreateCollectionSlugs: CollectionSlug[]\n breadcrumbs?: FolderBreadcrumb[]\n checkIfItemIsDisabled: (item: FolderOrDocument) => boolean\n clearSelections: () => void\n currentFolder?: FolderOrDocument | null\n documents?: FolderOrDocument[]\n dragOverlayItem?: FolderOrDocument | undefined\n focusedRowIndex: number\n folderCollectionConfig: ClientCollectionConfig\n folderCollectionSlug: string\n folderFieldName: string\n folderID?: number | string\n FolderResultsComponent: React.ReactNode\n folderType: CollectionSlug[] | undefined\n getFolderRoute: (toFolderID?: number | string) => string\n getSelectedItems?: () => FolderOrDocument[]\n isDragging: boolean\n itemKeysToMove?: Set<FolderDocumentItemKey>\n moveToFolder: (args: {\n itemsToMove: FolderOrDocument[]\n toFolderID?: number | string\n }) => Promise<void>\n onItemClick: (args: { event: React.MouseEvent; index: number; item: FolderOrDocument }) => void\n onItemKeyPress: (args: {\n event: React.KeyboardEvent\n index: number\n item: FolderOrDocument\n }) => void\n refineFolderData: (args: { query?: FolderQueryParams; updateURL: boolean }) => void\n search: string\n selectedFolderCollections?: CollectionSlug[]\n readonly selectedItemKeys: Set<FolderDocumentItemKey>\n setBreadcrumbs: React.Dispatch<React.SetStateAction<FolderBreadcrumb[]>>\n setFocusedRowIndex: React.Dispatch<React.SetStateAction<number>>\n setIsDragging: React.Dispatch<React.SetStateAction<boolean>>\n sort: FolderSortKeys\n subfolders?: FolderOrDocument[]\n}\n\nconst Context = React.createContext<FolderContextValue>({\n activeCollectionFolderSlugs: [],\n allCollectionFolderSlugs: [],\n allowCreateCollectionSlugs: [],\n breadcrumbs: [],\n checkIfItemIsDisabled: () => false,\n clearSelections: () => {},\n currentFolder: null,\n documents: [],\n dragOverlayItem: undefined,\n focusedRowIndex: -1,\n folderCollectionConfig: null,\n folderCollectionSlug: '',\n folderFieldName: 'folder',\n folderID: undefined,\n FolderResultsComponent: null,\n folderType: undefined,\n getFolderRoute: () => '',\n getSelectedItems: () => [],\n isDragging: false,\n itemKeysToMove: undefined,\n moveToFolder: () => Promise.resolve(undefined),\n onItemClick: () => undefined,\n onItemKeyPress: () => undefined,\n refineFolderData: () => undefined,\n search: '',\n selectedFolderCollections: undefined,\n selectedItemKeys: new Set<FolderDocumentItemKey>(),\n setBreadcrumbs: () => {},\n setFocusedRowIndex: () => -1,\n setIsDragging: () => false,\n sort: 'name',\n subfolders: [],\n})\n\nexport type FolderProviderProps = {\n /**\n * The collection slugs that are being viewed\n */\n readonly activeCollectionFolderSlugs?: CollectionSlug[]\n /**\n * Folder enabled collection slugs that can be populated within the provider\n */\n readonly allCollectionFolderSlugs: CollectionSlug[]\n /**\n * Array of slugs that can be created in the folder view\n */\n readonly allowCreateCollectionSlugs: CollectionSlug[]\n readonly allowMultiSelection?: boolean\n /**\n * The base folder route path\n *\n * @example\n * `/collections/:collectionSlug/:folderCollectionSlug`\n * or\n * `/browse-by-folder`\n */\n readonly baseFolderPath?: `/${string}`\n /**\n * Breadcrumbs for the current folder\n */\n readonly breadcrumbs?: FolderBreadcrumb[]\n /**\n * Children to render inside the provider\n */\n readonly children: React.ReactNode\n /**\n * All documents in the current folder\n */\n readonly documents: FolderOrDocument[]\n /**\n * The name of the field that contains the folder relation\n */\n readonly folderFieldName: string\n /**\n * The ID of the current folder\n */\n readonly folderID?: number | string\n /**\n * The component to render the folder results\n */\n readonly FolderResultsComponent: React.ReactNode\n /**\n * Optional function to call when an item is clicked\n */\n readonly onItemClick?: (itme: FolderOrDocument) => void\n /**\n * The intial search query\n */\n readonly search?: string\n /**\n * The sort order of the documents\n *\n * @example\n * `name` for descending\n * `-name` for ascending\n */\n readonly sort?: FolderSortKeys\n /**\n * All subfolders in the current folder\n */\n readonly subfolders: FolderOrDocument[]\n}\nexport function FolderProvider({\n activeCollectionFolderSlugs: activeCollectionSlugs,\n allCollectionFolderSlugs = [],\n allowCreateCollectionSlugs,\n allowMultiSelection = true,\n baseFolderPath,\n breadcrumbs: _breadcrumbsFromProps = [],\n children,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent: InitialFolderResultsComponent,\n onItemClick: onItemClickFromProps,\n search,\n sort = 'name',\n subfolders,\n}: FolderProviderProps) {\n const parentFolderContext = useFolder()\n const { config } = useConfig()\n const { routes } = config\n const drawerDepth = useDrawerDepth()\n const { t } = useTranslation()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n const locale = useLocale()\n const localeCode = locale ? locale.code : undefined\n\n const currentlySelectedIndexes = React.useRef(new Set<number>())\n\n const [selectedFolderCollections, setSelectedFolderCollections] = React.useState<\n CollectionSlug[]\n >([])\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState(\n InitialFolderResultsComponent || (() => null),\n )\n const [folderCollectionConfig] = React.useState(() =>\n config.collections.find(\n (collection) => config.folders && collection.slug === config.folders.slug,\n ),\n )\n const folderCollectionSlug = folderCollectionConfig.slug\n\n const rawSearchParams = useSearchParams()\n const searchParams = React.useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams])\n const [currentQuery, setCurrentQuery] = React.useState<FolderQueryParams>(searchParams)\n\n const [isDragging, setIsDragging] = React.useState(false)\n const [selectedItemKeys, setSelectedItemKeys] = React.useState<Set<FolderDocumentItemKey>>(\n () => new Set(),\n )\n const [focusedRowIndex, setFocusedRowIndex] = React.useState(-1)\n // This is used to determine what data to display on the drag overlay\n const [dragOverlayItem, setDragOverlayItem] = React.useState<FolderOrDocument | undefined>()\n const [breadcrumbs, setBreadcrumbs] =\n React.useState<FolderContextValue['breadcrumbs']>(_breadcrumbsFromProps)\n const lastClickTime = React.useRef<null | number>(null)\n const totalCount = subfolders.length + documents.length\n\n const clearSelections = React.useCallback(() => {\n setFocusedRowIndex(-1)\n setSelectedItemKeys(new Set())\n setDragOverlayItem(undefined)\n currentlySelectedIndexes.current = new Set()\n }, [])\n\n const mergeQuery = React.useCallback(\n (newQuery: Partial<FolderQueryParams> = {}): Partial<FolderQueryParams> => {\n let page = 'page' in newQuery ? newQuery.page : currentQuery?.page\n\n if ('search' in newQuery) {\n page = '1'\n }\n\n const mergedQuery = {\n ...currentQuery,\n ...newQuery,\n locale: localeCode,\n page,\n relationTo: 'relationTo' in newQuery ? newQuery.relationTo : currentQuery?.relationTo,\n search: 'search' in newQuery ? newQuery.search : currentQuery?.search,\n sort: 'sort' in newQuery ? newQuery.sort : (currentQuery?.sort ?? undefined),\n }\n\n return mergedQuery\n },\n [currentQuery, localeCode],\n )\n\n const refineFolderData: FolderContextValue['refineFolderData'] = React.useCallback(\n ({ query, updateURL }) => {\n if (updateURL) {\n const queryParams = mergeQuery(query)\n\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify({ ...queryParams, relationTo: JSON.stringify(queryParams.relationTo) }, { addQueryPrefix: true })}`,\n ),\n )\n\n setCurrentQuery(queryParams)\n }\n },\n [mergeQuery, router, startRouteTransition],\n )\n\n const getFolderRoute: FolderContextValue['getFolderRoute'] = React.useCallback(\n (toFolderID) => {\n const queryParams = qs.stringify(mergeQuery({ page: '1', search: '' }), {\n addQueryPrefix: true,\n })\n return formatAdminURL({\n adminRoute: config.routes.admin,\n path: `${baseFolderPath}${toFolderID ? `/${toFolderID}` : ''}${queryParams}`,\n })\n },\n [baseFolderPath, config.routes.admin, mergeQuery],\n )\n\n const getItem = React.useCallback(\n (itemKey: FolderDocumentItemKey) => {\n return [...subfolders, ...documents].find((doc) => doc.itemKey === itemKey)\n },\n [documents, subfolders],\n )\n\n const getSelectedItems = React.useCallback(() => {\n return Array.from(selectedItemKeys).reduce((acc, itemKey) => {\n const item = getItem(itemKey)\n if (item) {\n acc.push(item)\n }\n return acc\n }, [])\n }, [selectedItemKeys, getItem])\n\n const navigateAfterSelection = React.useCallback(\n ({ collectionSlug, docID }: { collectionSlug: string; docID?: number | string }) => {\n if (drawerDepth === 1) {\n // not in a drawer (default is 1)\n if (collectionSlug === folderCollectionSlug) {\n // clicked on folder, take the user to the folder view\n startRouteTransition(() => {\n router.push(getFolderRoute(docID))\n clearSelections()\n })\n } else if (collectionSlug) {\n // clicked on document, take the user to the documet view\n startRouteTransition(() => {\n router.push(\n formatAdminURL({\n adminRoute: config.routes.admin,\n path: `/collections/${collectionSlug}/${docID}`,\n }),\n )\n clearSelections()\n })\n }\n } else {\n clearSelections()\n }\n\n if (typeof onItemClickFromProps === 'function') {\n onItemClickFromProps(getItem(`${collectionSlug}-${docID}`))\n }\n },\n [\n clearSelections,\n config.routes.admin,\n drawerDepth,\n folderCollectionSlug,\n getFolderRoute,\n getItem,\n onItemClickFromProps,\n router,\n startRouteTransition,\n ],\n )\n\n const handleShiftSelection = React.useCallback(\n (targetIndex: number) => {\n const allItems = [...subfolders, ...documents]\n\n // Find existing selection boundaries\n const existingIndexes = allItems.reduce((acc, item, idx) => {\n if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n if (existingIndexes.length === 0) {\n // No existing selection, just select target\n return [targetIndex]\n }\n\n const firstSelectedIndex = Math.min(...existingIndexes)\n const lastSelectedIndex = Math.max(...existingIndexes)\n const isWithinBounds = targetIndex >= firstSelectedIndex && targetIndex <= lastSelectedIndex\n\n // Choose anchor based on whether we're contracting or extending\n let anchorIndex = targetIndex\n if (isWithinBounds) {\n // Contracting: if target is at a boundary, use target as anchor\n // Otherwise, use furthest boundary to maintain opposite edge\n if (targetIndex === firstSelectedIndex || targetIndex === lastSelectedIndex) {\n anchorIndex = targetIndex\n } else {\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst >= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n } else {\n // Extending: use closest boundary\n const distanceToFirst = Math.abs(targetIndex - firstSelectedIndex)\n const distanceToLast = Math.abs(targetIndex - lastSelectedIndex)\n anchorIndex = distanceToFirst <= distanceToLast ? firstSelectedIndex : lastSelectedIndex\n }\n\n // Create range from anchor to target\n const startIndex = Math.min(anchorIndex, targetIndex)\n const endIndex = Math.max(anchorIndex, targetIndex)\n const newRangeIndexes = Array.from(\n { length: endIndex - startIndex + 1 },\n (_, i) => startIndex + i,\n )\n\n if (isWithinBounds) {\n // Contracting: replace with new range\n return newRangeIndexes\n } else {\n // Extending: union with existing\n return [...new Set([...existingIndexes, ...newRangeIndexes])]\n }\n },\n [subfolders, documents, selectedItemKeys],\n )\n\n const updateSelections = React.useCallback(\n ({ indexes }: { indexes: number[] }) => {\n const allItems = [...subfolders, ...documents]\n const { newSelectedFolderCollections, newSelectedItemKeys } = allItems.reduce(\n (acc, item, index) => {\n if (indexes.includes(index)) {\n acc.newSelectedItemKeys.add(item.itemKey)\n if (item.relationTo === folderCollectionSlug) {\n item.value.folderType?.forEach((collectionSlug) => {\n if (!acc.newSelectedFolderCollections.includes(collectionSlug)) {\n acc.newSelectedFolderCollections.push(collectionSlug)\n }\n })\n } else {\n if (!acc.newSelectedFolderCollections.includes(item.relationTo)) {\n acc.newSelectedFolderCollections.push(item.relationTo)\n }\n }\n }\n return acc\n },\n {\n newSelectedFolderCollections: [] satisfies CollectionSlug[],\n newSelectedItemKeys: new Set<FolderDocumentItemKey>(),\n },\n )\n\n setSelectedFolderCollections(newSelectedFolderCollections)\n setSelectedItemKeys(newSelectedItemKeys)\n },\n [documents, folderCollectionSlug, subfolders],\n )\n\n const onItemKeyPress: FolderContextValue['onItemKeyPress'] = React.useCallback(\n ({ event, item: currentItem }) => {\n const { code, ctrlKey, metaKey, shiftKey } = event\n const isShiftPressed = shiftKey\n const isCtrlPressed = ctrlKey || metaKey\n const isCurrentlySelected = selectedItemKeys.has(currentItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === currentItem.itemKey)\n\n switch (code) {\n case 'ArrowDown':\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp': {\n event.preventDefault()\n\n if (currentItemIndex === -1) {\n break\n }\n\n const isBackward = code === 'ArrowLeft' || code === 'ArrowUp'\n const newItemIndex = isBackward ? currentItemIndex - 1 : currentItemIndex + 1\n\n if (newItemIndex < 0 || newItemIndex > totalCount - 1) {\n // out of bounds, keep current selection\n return\n }\n\n setFocusedRowIndex(newItemIndex)\n\n if (isCtrlPressed) {\n break\n }\n\n if (isShiftPressed && allowMultiSelection) {\n const selectedIndexes = handleShiftSelection(newItemIndex)\n updateSelections({ indexes: selectedIndexes })\n return\n }\n\n // Single selection without shift\n if (!isShiftPressed) {\n const newItem = allItems[newItemIndex]\n setSelectedItemKeys(new Set([newItem.itemKey]))\n }\n\n break\n }\n case 'Enter': {\n if (selectedItemKeys.size === 1) {\n setFocusedRowIndex(undefined)\n navigateAfterSelection({\n collectionSlug: currentItem.relationTo,\n docID: extractID(currentItem.value),\n })\n return\n }\n break\n }\n case 'Escape': {\n clearSelections()\n break\n }\n case 'KeyA': {\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n setFocusedRowIndex(totalCount - 1)\n updateSelections({\n indexes: Array.from({ length: totalCount }, (_, i) => i),\n })\n }\n break\n }\n case 'Space': {\n if (allowMultiSelection && isShiftPressed) {\n event.preventDefault()\n const allItems = [...subfolders, ...documents]\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === currentItem.itemKey) {\n if (isCurrentlySelected) {\n return acc\n } else {\n acc.push(idx)\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n } else {\n event.preventDefault()\n updateSelections({\n indexes: isCurrentlySelected ? [] : [currentItemIndex],\n })\n }\n break\n }\n case 'Tab': {\n if (allowMultiSelection && isShiftPressed) {\n const prevIndex = currentItemIndex - 1\n if (prevIndex < 0 && selectedItemKeys?.size > 0) {\n setFocusedRowIndex(prevIndex)\n }\n } else {\n const nextIndex = currentItemIndex + 1\n if (nextIndex === totalCount && selectedItemKeys.size > 0) {\n setFocusedRowIndex(totalCount - 1)\n }\n }\n break\n }\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n handleShiftSelection,\n updateSelections,\n navigateAfterSelection,\n clearSelections,\n totalCount,\n ],\n )\n\n const onItemClick: FolderContextValue['onItemClick'] = React.useCallback(\n ({ event, item: clickedItem }) => {\n let doubleClicked: boolean = false\n const isCtrlPressed = event.ctrlKey || event.metaKey\n const isShiftPressed = event.shiftKey\n const isCurrentlySelected = selectedItemKeys.has(clickedItem.itemKey)\n const allItems = [...subfolders, ...documents]\n const currentItemIndex = allItems.findIndex((item) => item.itemKey === clickedItem.itemKey)\n\n if (allowMultiSelection && isCtrlPressed) {\n event.preventDefault()\n let overlayItemKey: FolderDocumentItemKey | undefined\n const indexes = allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n if (isCurrentlySelected && event.type !== 'pointermove') {\n return acc\n } else {\n acc.push(idx)\n overlayItemKey = item.itemKey\n }\n } else if (selectedItemKeys.has(item.itemKey)) {\n acc.push(idx)\n }\n return acc\n }, [])\n\n updateSelections({ indexes })\n\n if (overlayItemKey) {\n setDragOverlayItem(getItem(overlayItemKey))\n }\n } else if (allowMultiSelection && isShiftPressed) {\n if (currentItemIndex !== -1) {\n const selectedIndexes = handleShiftSelection(currentItemIndex)\n updateSelections({ indexes: selectedIndexes })\n }\n } else if (allowMultiSelection && event.type === 'pointermove') {\n // on drag start of an unselected item\n if (!isCurrentlySelected) {\n updateSelections({\n indexes: allItems.reduce((acc, item, idx) => {\n if (item.itemKey === clickedItem.itemKey) {\n acc.push(idx)\n }\n return acc\n }, []),\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n } else {\n // Normal click - select single item\n const now = Date.now()\n doubleClicked =\n now - lastClickTime.current < 400 && dragOverlayItem?.itemKey === clickedItem.itemKey\n lastClickTime.current = now\n if (!doubleClicked) {\n updateSelections({\n indexes: isCurrentlySelected && selectedItemKeys.size === 1 ? [] : [currentItemIndex],\n })\n }\n setDragOverlayItem(getItem(clickedItem.itemKey))\n }\n\n if (doubleClicked) {\n navigateAfterSelection({\n collectionSlug: clickedItem.relationTo,\n docID: extractID(clickedItem.value),\n })\n }\n },\n [\n selectedItemKeys,\n subfolders,\n documents,\n allowMultiSelection,\n dragOverlayItem,\n getItem,\n updateSelections,\n navigateAfterSelection,\n handleShiftSelection,\n ],\n )\n\n /**\n * Makes requests to the server to update the folder field on passed in documents\n *\n * Might rewrite this in the future to return the promises so errors can be handled contextually\n */\n const moveToFolder: FolderContextValue['moveToFolder'] = React.useCallback(\n async (args) => {\n const { itemsToMove: items, toFolderID } = args\n if (!items.length) {\n return\n }\n\n const movingCurrentFolder =\n items.length === 1 &&\n items[0].relationTo === folderCollectionSlug &&\n items[0].value.id === folderID\n\n if (movingCurrentFolder) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n },\n {\n addQueryPrefix: true,\n },\n )\n const req = await fetch(\n formatAdminURL({\n apiRoute: routes.api,\n path: `/${folderCollectionSlug}/${folderID}${queryParams}`,\n }),\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n if (req.status !== 200) {\n toast.error(t('general:error'))\n }\n } else {\n for (const [collectionSlug, ids] of Object.entries(groupItemIDsByRelation(items))) {\n const queryParams = qs.stringify(\n {\n depth: 0,\n limit: 0,\n locale: localeCode,\n where: {\n id: {\n in: ids,\n },\n },\n },\n {\n addQueryPrefix: true,\n },\n )\n try {\n await fetch(\n formatAdminURL({\n apiRoute: routes.api,\n path: `/${collectionSlug}${queryParams}`,\n }),\n {\n body: JSON.stringify({ [folderFieldName]: toFolderID || null }),\n credentials: 'include',\n headers: {\n 'content-type': 'application/json',\n },\n method: 'PATCH',\n },\n )\n } catch (error) {\n toast.error(t('general:error'))\n // eslint-disable-next-line no-console\n console.error(error)\n continue\n }\n }\n }\n\n clearSelections()\n },\n [folderID, clearSelections, folderCollectionSlug, folderFieldName, routes.api, t, localeCode],\n )\n\n const checkIfItemIsDisabled: FolderContextValue['checkIfItemIsDisabled'] = React.useCallback(\n (item) => {\n function folderAcceptsItem({\n item,\n selectedFolderCollections,\n }: {\n item: FolderOrDocument\n selectedFolderCollections: string[]\n }): boolean {\n if (\n !item.value.folderType ||\n (Array.isArray(item.value.folderType) && item.value.folderType.length === 0)\n ) {\n // Enable folder that accept all collections\n return false\n }\n\n if (selectedFolderCollections.length === 0) {\n // If no collections are selected, enable folders that accept all collections\n return Boolean(item.value.folderType || item.value.folderType.length > 0)\n }\n\n // Disable folders that do not accept all of the selected collections\n return selectedFolderCollections.some((slug) => {\n return !item.value.folderType.includes(slug)\n })\n }\n\n if (isDragging) {\n const isSelected = selectedItemKeys.has(item.itemKey)\n if (isSelected) {\n return true\n } else if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({ item, selectedFolderCollections })\n } else {\n // Non folder items are disabled on drag\n return true\n }\n } else if (parentFolderContext?.selectedItemKeys?.size) {\n // Disable selected items from being navigated to in move to drawer\n if (parentFolderContext.selectedItemKeys.has(item.itemKey)) {\n return true\n }\n // Moving items to folder\n if (item.relationTo === folderCollectionSlug) {\n return folderAcceptsItem({\n item,\n selectedFolderCollections: parentFolderContext.selectedFolderCollections,\n })\n }\n // If the item is not a folder, it is disabled on move\n return true\n }\n },\n [\n selectedFolderCollections,\n isDragging,\n selectedItemKeys,\n folderCollectionSlug,\n parentFolderContext?.selectedFolderCollections,\n parentFolderContext?.selectedItemKeys,\n ],\n )\n\n // If a new component is provided, update the state so children can re-render with the new component\n React.useEffect(() => {\n if (InitialFolderResultsComponent) {\n setFolderResultsComponent(InitialFolderResultsComponent)\n }\n }, [InitialFolderResultsComponent])\n\n return (\n <Context\n value={{\n activeCollectionFolderSlugs: activeCollectionSlugs || allCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n checkIfItemIsDisabled,\n clearSelections,\n currentFolder:\n breadcrumbs?.[breadcrumbs.length - 1]?.id !== undefined\n ? formatFolderOrDocumentItem({\n folderFieldName,\n isUpload: false,\n relationTo: folderCollectionSlug,\n useAsTitle: folderCollectionConfig.admin.useAsTitle,\n value: breadcrumbs[breadcrumbs.length - 1],\n })\n : null,\n documents,\n dragOverlayItem,\n focusedRowIndex,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n folderType: breadcrumbs?.[breadcrumbs.length - 1]?.folderType,\n getFolderRoute,\n getSelectedItems,\n isDragging,\n itemKeysToMove: parentFolderContext.selectedItemKeys,\n moveToFolder,\n onItemClick,\n onItemKeyPress,\n refineFolderData,\n search,\n selectedFolderCollections,\n selectedItemKeys,\n setBreadcrumbs,\n setFocusedRowIndex,\n setIsDragging,\n sort,\n subfolders,\n }}\n >\n {children}\n </Context>\n )\n}\n\nexport function useFolder(): FolderContextValue {\n const context = React.use(Context)\n\n if (context === undefined) {\n throw new Error('useFolder must be used within a FolderProvider')\n }\n\n return context\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { createContext, use } from 'react';
|
|
2
2
|
export const ListQueryContext = createContext({});
|
|
3
|
-
export const useListQuery = ()=>use(ListQueryContext);
|
|
3
|
+
export const useListQuery = () => use(ListQueryContext);
|
|
4
4
|
export const ListQueryModifiedContext = createContext(false);
|
|
5
|
-
export const useListQueryModified = ()=>use(ListQueryModifiedContext);
|
|
6
|
-
|
|
5
|
+
export const useListQueryModified = () => use(ListQueryModifiedContext);
|
|
7
6
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, use } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => use(ListQueryContext)\n\nexport const ListQueryModifiedContext = createContext(false)\n\nexport const useListQueryModified = (): boolean => use(ListQueryModifiedContext)\n"],"
|
|
1
|
+
{"version":3,"file":"context.js","names":["createContext","use","ListQueryContext","useListQuery","ListQueryModifiedContext","useListQueryModified"],"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, use } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => use(ListQueryContext)\n\nexport const ListQueryModifiedContext = createContext(false)\n\nexport const useListQueryModified = (): boolean => use(ListQueryModifiedContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AAInC,OAAO,MAAMC,gBAAA,GAAmBF,aAAA,CAAc,CAAC;AAE/C,OAAO,MAAMG,YAAA,GAAeA,CAAA,KAAyBF,GAAA,CAAIC,gBAAA;AAEzD,OAAO,MAAME,wBAAA,GAA2BJ,aAAA,CAAc;AAEtD,OAAO,MAAMK,oBAAA,GAAuBA,CAAA,KAAeJ,GAAA,CAAIG,wBAAA","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
4
|
import { useRouter, useSearchParams } from 'next/navigation.js';
|
|
4
5
|
import * as qs from 'qs-esm';
|
|
5
6
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
@@ -12,163 +13,146 @@ import { ListQueryContext, ListQueryModifiedContext } from './context.js';
|
|
|
12
13
|
import { mergeQuery } from './mergeQuery.js';
|
|
13
14
|
import { sanitizeQuery } from './sanitizeQuery.js';
|
|
14
15
|
export { useListQuery } from './context.js';
|
|
15
|
-
export const ListQueryProvider = ({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
16
|
+
export const ListQueryProvider = ({
|
|
17
|
+
children,
|
|
18
|
+
collectionSlug,
|
|
19
|
+
data,
|
|
20
|
+
modifySearchParams,
|
|
21
|
+
onQueryChange: onQueryChangeFromProps,
|
|
22
|
+
orderableFieldName,
|
|
23
|
+
query: queryFromProps
|
|
24
|
+
}) => {
|
|
25
|
+
// TODO: Investigate if this is still needed
|
|
26
|
+
'use no memo';
|
|
27
|
+
|
|
28
|
+
// TODO: Investigate if this is still needed
|
|
29
|
+
const router = useRouter();
|
|
30
|
+
const rawSearchParams = useSearchParams();
|
|
31
|
+
const {
|
|
32
|
+
startRouteTransition
|
|
33
|
+
} = useRouteTransition();
|
|
34
|
+
const [modified, setModified] = useState(false);
|
|
35
|
+
const {
|
|
36
|
+
getEntityConfig
|
|
37
|
+
} = useConfig();
|
|
38
|
+
const collectionConfig = getEntityConfig({
|
|
39
|
+
collectionSlug
|
|
40
|
+
});
|
|
41
|
+
const searchParams = useMemo(() => sanitizeQuery(parseSearchParams(rawSearchParams)), [rawSearchParams]);
|
|
42
|
+
const contextRef = useRef({});
|
|
43
|
+
contextRef.current.modified = modified;
|
|
44
|
+
const {
|
|
45
|
+
onQueryChange
|
|
46
|
+
} = useListDrawerContext();
|
|
47
|
+
const [query, setQuery] = useState(() => {
|
|
48
|
+
if (modifySearchParams) {
|
|
49
|
+
return searchParams;
|
|
50
|
+
} else {
|
|
51
|
+
return {
|
|
52
|
+
limit: queryFromProps.limit,
|
|
53
|
+
sort: queryFromProps.sort
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
const refineListData = useCallback(
|
|
58
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
59
|
+
async (incomingQuery, modified_0) => {
|
|
60
|
+
if (modified_0 !== undefined) {
|
|
61
|
+
setModified(modified_0);
|
|
62
|
+
} else {
|
|
63
|
+
setModified(true);
|
|
64
|
+
}
|
|
65
|
+
const newQuery = mergeQuery(query, incomingQuery, {
|
|
66
|
+
defaults: {
|
|
67
|
+
limit: queryFromProps.limit,
|
|
68
|
+
sort: queryFromProps.sort
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
if (modifySearchParams) {
|
|
72
|
+
startRouteTransition(() => router.replace(`${qs.stringify({
|
|
73
|
+
...newQuery,
|
|
74
|
+
columns: JSON.stringify(newQuery.columns),
|
|
75
|
+
queryByGroup: JSON.stringify(newQuery.queryByGroup)
|
|
76
|
+
}, {
|
|
77
|
+
addQueryPrefix: true
|
|
78
|
+
})}`));
|
|
79
|
+
} else if (typeof onQueryChange === 'function' || typeof onQueryChangeFromProps === 'function') {
|
|
80
|
+
const onChangeFn = onQueryChange || onQueryChangeFromProps;
|
|
81
|
+
onChangeFn(newQuery);
|
|
82
|
+
}
|
|
83
|
+
setQuery(newQuery);
|
|
84
|
+
}, [query, queryFromProps.limit, queryFromProps.sort, modifySearchParams, onQueryChange, onQueryChangeFromProps, startRouteTransition, router]);
|
|
85
|
+
const handlePageChange = useCallback(async arg => {
|
|
86
|
+
await refineListData({
|
|
87
|
+
page: arg
|
|
88
|
+
});
|
|
89
|
+
}, [refineListData]);
|
|
90
|
+
const handlePerPageChange = React.useCallback(async arg_0 => {
|
|
91
|
+
await refineListData({
|
|
92
|
+
limit: arg_0,
|
|
93
|
+
page: 1
|
|
26
94
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
const { onQueryChange } = useListDrawerContext();
|
|
33
|
-
const [query, setQuery] = useState(()=>{
|
|
34
|
-
if (modifySearchParams) {
|
|
35
|
-
return searchParams;
|
|
36
|
-
} else {
|
|
37
|
-
return {
|
|
38
|
-
limit: queryFromProps.limit,
|
|
39
|
-
sort: queryFromProps.sort
|
|
40
|
-
};
|
|
41
|
-
}
|
|
95
|
+
}, [refineListData]);
|
|
96
|
+
const handleSearchChange = useCallback(async arg_1 => {
|
|
97
|
+
const search = arg_1 === '' ? undefined : arg_1;
|
|
98
|
+
await refineListData({
|
|
99
|
+
search
|
|
42
100
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
} else {
|
|
48
|
-
setModified(true);
|
|
49
|
-
}
|
|
50
|
-
const newQuery = mergeQuery(query, incomingQuery, {
|
|
51
|
-
defaults: {
|
|
52
|
-
limit: queryFromProps.limit,
|
|
53
|
-
sort: queryFromProps.sort
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
if (modifySearchParams) {
|
|
57
|
-
startRouteTransition(()=>router.replace(`${qs.stringify({
|
|
58
|
-
...newQuery,
|
|
59
|
-
columns: JSON.stringify(newQuery.columns),
|
|
60
|
-
queryByGroup: JSON.stringify(newQuery.queryByGroup)
|
|
61
|
-
}, {
|
|
62
|
-
addQueryPrefix: true
|
|
63
|
-
})}`));
|
|
64
|
-
} else if (typeof onQueryChange === 'function' || typeof onQueryChangeFromProps === 'function') {
|
|
65
|
-
const onChangeFn = onQueryChange || onQueryChangeFromProps;
|
|
66
|
-
onChangeFn(newQuery);
|
|
67
|
-
}
|
|
68
|
-
setQuery(newQuery);
|
|
69
|
-
}, [
|
|
70
|
-
query,
|
|
71
|
-
queryFromProps.limit,
|
|
72
|
-
queryFromProps.sort,
|
|
73
|
-
modifySearchParams,
|
|
74
|
-
onQueryChange,
|
|
75
|
-
onQueryChangeFromProps,
|
|
76
|
-
startRouteTransition,
|
|
77
|
-
router
|
|
78
|
-
]);
|
|
79
|
-
const handlePageChange = useCallback(async (arg)=>{
|
|
80
|
-
await refineListData({
|
|
81
|
-
page: arg
|
|
82
|
-
});
|
|
83
|
-
}, [
|
|
84
|
-
refineListData
|
|
85
|
-
]);
|
|
86
|
-
const handlePerPageChange = React.useCallback(async (arg)=>{
|
|
87
|
-
await refineListData({
|
|
88
|
-
limit: arg,
|
|
89
|
-
page: 1
|
|
90
|
-
});
|
|
91
|
-
}, [
|
|
92
|
-
refineListData
|
|
93
|
-
]);
|
|
94
|
-
const handleSearchChange = useCallback(async (arg)=>{
|
|
95
|
-
const search = arg === '' ? undefined : arg;
|
|
96
|
-
await refineListData({
|
|
97
|
-
search
|
|
98
|
-
});
|
|
99
|
-
}, [
|
|
100
|
-
refineListData
|
|
101
|
-
]);
|
|
102
|
-
const handleSortChange = useCallback(async (sort)=>{
|
|
103
|
-
await refineListData({
|
|
104
|
-
sort
|
|
105
|
-
});
|
|
106
|
-
}, [
|
|
107
|
-
refineListData
|
|
108
|
-
]);
|
|
109
|
-
const handleWhereChange = useCallback(async (where)=>{
|
|
110
|
-
await refineListData({
|
|
111
|
-
where
|
|
112
|
-
});
|
|
113
|
-
}, [
|
|
114
|
-
refineListData
|
|
115
|
-
]);
|
|
116
|
-
const mergeQueryFromPropsAndSyncToURL = useEffectEvent(()=>{
|
|
117
|
-
const newQuery = sanitizeQuery({
|
|
118
|
-
...query || {},
|
|
119
|
-
...queryFromProps || {}
|
|
120
|
-
});
|
|
121
|
-
const search = `?${qs.stringify({
|
|
122
|
-
...newQuery,
|
|
123
|
-
columns: JSON.stringify(newQuery.columns),
|
|
124
|
-
queryByGroup: JSON.stringify(newQuery.queryByGroup)
|
|
125
|
-
})}`;
|
|
126
|
-
if (window.location.search !== search) {
|
|
127
|
-
setQuery(newQuery);
|
|
128
|
-
// Important: do not use router.replace here to avoid re-rendering on initial load
|
|
129
|
-
window.history.replaceState(null, '', search);
|
|
130
|
-
}
|
|
101
|
+
}, [refineListData]);
|
|
102
|
+
const handleSortChange = useCallback(async sort => {
|
|
103
|
+
await refineListData({
|
|
104
|
+
sort
|
|
131
105
|
});
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
106
|
+
}, [refineListData]);
|
|
107
|
+
const handleWhereChange = useCallback(async where => {
|
|
108
|
+
await refineListData({
|
|
109
|
+
where
|
|
110
|
+
});
|
|
111
|
+
}, [refineListData]);
|
|
112
|
+
const mergeQueryFromPropsAndSyncToURL = useEffectEvent(() => {
|
|
113
|
+
const newQuery_0 = sanitizeQuery({
|
|
114
|
+
...(query || {}),
|
|
115
|
+
...(queryFromProps || {})
|
|
116
|
+
});
|
|
117
|
+
const search_0 = `?${qs.stringify({
|
|
118
|
+
...newQuery_0,
|
|
119
|
+
columns: JSON.stringify(newQuery_0.columns),
|
|
120
|
+
queryByGroup: JSON.stringify(newQuery_0.queryByGroup)
|
|
121
|
+
})}`;
|
|
122
|
+
if (window.location.search !== search_0) {
|
|
123
|
+
setQuery(newQuery_0);
|
|
124
|
+
// Important: do not use router.replace here to avoid re-rendering on initial load
|
|
125
|
+
window.history.replaceState(null, '', search_0);
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
// If `query` is updated externally, update the local state
|
|
129
|
+
// E.g. when HMR runs, these properties may be different
|
|
130
|
+
useEffect(() => {
|
|
131
|
+
if (modifySearchParams) {
|
|
132
|
+
mergeQueryFromPropsAndSyncToURL();
|
|
133
|
+
}
|
|
134
|
+
}, [modifySearchParams, queryFromProps]);
|
|
135
|
+
return /*#__PURE__*/_jsx(ListQueryContext, {
|
|
136
|
+
value: {
|
|
137
|
+
collectionSlug,
|
|
138
|
+
data,
|
|
139
|
+
defaultLimit: data?.limit,
|
|
140
|
+
handlePageChange,
|
|
141
|
+
handlePerPageChange,
|
|
142
|
+
handleSearchChange,
|
|
143
|
+
handleSortChange,
|
|
144
|
+
handleWhereChange,
|
|
145
|
+
isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),
|
|
146
|
+
orderableFieldName,
|
|
147
|
+
query,
|
|
148
|
+
refineListData,
|
|
149
|
+
setModified,
|
|
150
|
+
...contextRef.current
|
|
151
|
+
},
|
|
152
|
+
children: /*#__PURE__*/_jsx(ListQueryModifiedContext, {
|
|
153
|
+
value: modified,
|
|
154
|
+
children: children
|
|
155
|
+
})
|
|
156
|
+
});
|
|
172
157
|
};
|
|
173
|
-
|
|
174
158
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { type ListQuery, type Where } from 'payload'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n // TODO: Investigate if this is still needed\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const searchParams = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const contextRef = useRef({} as IListQueryContext)\n\n contextRef.current.modified = modified\n\n const { onQueryChange } = useListDrawerContext()\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n if (modified !== undefined) {\n setModified(modified)\n } else {\n setModified(true)\n }\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify(\n {\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n },\n { addQueryPrefix: true },\n )}`,\n ),\n )\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n const mergeQueryFromPropsAndSyncToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n\n // Important: do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n mergeQueryFromPropsAndSyncToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"names":["useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useConfig","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","getEntityConfig","collectionConfig","searchParams","contextRef","current","setQuery","limit","sort","refineListData","incomingQuery","undefined","newQuery","defaults","replace","stringify","columns","JSON","queryByGroup","addQueryPrefix","onChangeFn","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","search","handleSortChange","handleWhereChange","where","mergeQueryFromPropsAndSyncToURL","window","location","history","replaceState","value","defaultLimit","isGroupingBy","Boolean","admin","groupBy"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","qs","React","useCallback","useEffect","useMemo","useRef","useState","useListDrawerContext","useEffectEvent","useRouteTransition","parseSearchParams","useConfig","ListQueryContext","ListQueryModifiedContext","mergeQuery","sanitizeQuery","useListQuery","ListQueryProvider","children","collectionSlug","data","modifySearchParams","onQueryChange","onQueryChangeFromProps","orderableFieldName","query","queryFromProps","router","rawSearchParams","startRouteTransition","modified","setModified","getEntityConfig","collectionConfig","searchParams","contextRef","current","setQuery","limit","sort","refineListData","incomingQuery","undefined","newQuery","defaults","replace","stringify","columns","JSON","queryByGroup","addQueryPrefix","onChangeFn","handlePageChange","arg","page","handlePerPageChange","handleSearchChange","search","handleSortChange","handleWhereChange","where","mergeQueryFromPropsAndSyncToURL","window","location","history","replaceState","_jsx","value","defaultLimit","isGroupingBy","Boolean","admin","groupBy"],"sources":["../../../src/providers/ListQuery/index.tsx"],"sourcesContent":["'use client'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { type ListQuery, type Where } from 'payload'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { IListQueryContext, ListQueryProps } from './types.js'\n\nimport { useListDrawerContext } from '../../elements/ListDrawer/Provider.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { useConfig } from '../Config/index.js'\nimport { ListQueryContext, ListQueryModifiedContext } from './context.js'\nimport { mergeQuery } from './mergeQuery.js'\nimport { sanitizeQuery } from './sanitizeQuery.js'\n\nexport { useListQuery } from './context.js'\n\nexport const ListQueryProvider: React.FC<ListQueryProps> = ({\n children,\n collectionSlug,\n data,\n modifySearchParams,\n onQueryChange: onQueryChangeFromProps,\n orderableFieldName,\n query: queryFromProps,\n}) => {\n // TODO: Investigate if this is still needed\n 'use no memo'\n // TODO: Investigate if this is still needed\n\n const router = useRouter()\n const rawSearchParams = useSearchParams()\n const { startRouteTransition } = useRouteTransition()\n const [modified, setModified] = useState(false)\n const { getEntityConfig } = useConfig()\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const searchParams = useMemo<ListQuery>(\n () => sanitizeQuery(parseSearchParams(rawSearchParams)),\n [rawSearchParams],\n )\n\n const contextRef = useRef({} as IListQueryContext)\n\n contextRef.current.modified = modified\n\n const { onQueryChange } = useListDrawerContext()\n\n const [query, setQuery] = useState<ListQuery>(() => {\n if (modifySearchParams) {\n return searchParams\n } else {\n return {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n }\n }\n })\n\n const refineListData = useCallback(\n // eslint-disable-next-line @typescript-eslint/require-await\n async (incomingQuery: ListQuery, modified?: boolean) => {\n if (modified !== undefined) {\n setModified(modified)\n } else {\n setModified(true)\n }\n\n const newQuery = mergeQuery(query, incomingQuery, {\n defaults: {\n limit: queryFromProps.limit,\n sort: queryFromProps.sort,\n },\n })\n\n if (modifySearchParams) {\n startRouteTransition(() =>\n router.replace(\n `${qs.stringify(\n {\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n },\n { addQueryPrefix: true },\n )}`,\n ),\n )\n } else if (\n typeof onQueryChange === 'function' ||\n typeof onQueryChangeFromProps === 'function'\n ) {\n const onChangeFn = onQueryChange || onQueryChangeFromProps\n onChangeFn(newQuery)\n }\n\n setQuery(newQuery)\n },\n [\n query,\n queryFromProps.limit,\n queryFromProps.sort,\n modifySearchParams,\n onQueryChange,\n onQueryChangeFromProps,\n startRouteTransition,\n router,\n ],\n )\n\n const handlePageChange = useCallback(\n async (arg: number) => {\n await refineListData({ page: arg })\n },\n [refineListData],\n )\n\n const handlePerPageChange = React.useCallback(\n async (arg: number) => {\n await refineListData({ limit: arg, page: 1 })\n },\n [refineListData],\n )\n\n const handleSearchChange = useCallback(\n async (arg: string) => {\n const search = arg === '' ? undefined : arg\n await refineListData({ search })\n },\n [refineListData],\n )\n\n const handleSortChange = useCallback(\n async (sort: string) => {\n await refineListData({ sort })\n },\n [refineListData],\n )\n\n const handleWhereChange = useCallback(\n async (where: Where) => {\n await refineListData({ where })\n },\n [refineListData],\n )\n\n const mergeQueryFromPropsAndSyncToURL = useEffectEvent(() => {\n const newQuery = sanitizeQuery({ ...(query || {}), ...(queryFromProps || {}) })\n\n const search = `?${qs.stringify({\n ...newQuery,\n columns: JSON.stringify(newQuery.columns),\n queryByGroup: JSON.stringify(newQuery.queryByGroup),\n })}`\n\n if (window.location.search !== search) {\n setQuery(newQuery)\n\n // Important: do not use router.replace here to avoid re-rendering on initial load\n window.history.replaceState(null, '', search)\n }\n })\n\n // If `query` is updated externally, update the local state\n // E.g. when HMR runs, these properties may be different\n useEffect(() => {\n if (modifySearchParams) {\n mergeQueryFromPropsAndSyncToURL()\n }\n }, [modifySearchParams, queryFromProps])\n\n return (\n <ListQueryContext\n value={{\n collectionSlug,\n data,\n defaultLimit: data?.limit,\n handlePageChange,\n handlePerPageChange,\n handleSearchChange,\n handleSortChange,\n handleWhereChange,\n isGroupingBy: Boolean(collectionConfig?.admin?.groupBy && query?.groupBy),\n orderableFieldName,\n query,\n refineListData,\n setModified,\n ...contextRef.current,\n }}\n >\n <ListQueryModifiedContext value={modified}>{children}</ListQueryModifiedContext>\n </ListQueryContext>\n )\n}\n"],"mappings":"AAAA;;;AACA,SAASA,SAAS,EAAEC,eAAe,QAAQ;AAE3C,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAIzE,SAASC,oBAAoB,QAAQ;AACrC,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,SAAS,QAAQ;AAC1B,SAASC,gBAAgB,EAAEC,wBAAwB,QAAQ;AAC3D,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAE9B,SAASC,YAAY,QAAQ;AAE7B,OAAO,MAAMC,iBAAA,GAA8CA,CAAC;EAC1DC,QAAQ;EACRC,cAAc;EACdC,IAAI;EACJC,kBAAkB;EAClBC,aAAA,EAAeC,sBAAsB;EACrCC,kBAAkB;EAClBC,KAAA,EAAOC;AAAc,CACtB;EACC;EACA;;EACA;EAEA,MAAMC,MAAA,GAAS7B,SAAA;EACf,MAAM8B,eAAA,GAAkB7B,eAAA;EACxB,MAAM;IAAE8B;EAAoB,CAAE,GAAGpB,kBAAA;EACjC,MAAM,CAACqB,QAAA,EAAUC,WAAA,CAAY,GAAGzB,QAAA,CAAS;EACzC,MAAM;IAAE0B;EAAe,CAAE,GAAGrB,SAAA;EAC5B,MAAMsB,gBAAA,GAAmBD,eAAA,CAAgB;IAAEb;EAAe;EAE1D,MAAMe,YAAA,GAAe9B,OAAA,CACnB,MAAMW,aAAA,CAAcL,iBAAA,CAAkBkB,eAAA,IACtC,CAACA,eAAA,CAAgB;EAGnB,MAAMO,UAAA,GAAa9B,MAAA,CAAO,CAAC;EAE3B8B,UAAA,CAAWC,OAAO,CAACN,QAAQ,GAAGA,QAAA;EAE9B,MAAM;IAAER;EAAa,CAAE,GAAGf,oBAAA;EAE1B,MAAM,CAACkB,KAAA,EAAOY,QAAA,CAAS,GAAG/B,QAAA,CAAoB;IAC5C,IAAIe,kBAAA,EAAoB;MACtB,OAAOa,YAAA;IACT,OAAO;MACL,OAAO;QACLI,KAAA,EAAOZ,cAAA,CAAeY,KAAK;QAC3BC,IAAA,EAAMb,cAAA,CAAea;MACvB;IACF;EACF;EAEA,MAAMC,cAAA,GAAiBtC,WAAA;EACrB;EACA,OAAOuC,aAAA,EAA0BX,UAAA;IAC/B,IAAIA,UAAA,KAAaY,SAAA,EAAW;MAC1BX,WAAA,CAAYD,UAAA;IACd,OAAO;MACLC,WAAA,CAAY;IACd;IAEA,MAAMY,QAAA,GAAW7B,UAAA,CAAWW,KAAA,EAAOgB,aAAA,EAAe;MAChDG,QAAA,EAAU;QACRN,KAAA,EAAOZ,cAAA,CAAeY,KAAK;QAC3BC,IAAA,EAAMb,cAAA,CAAea;MACvB;IACF;IAEA,IAAIlB,kBAAA,EAAoB;MACtBQ,oBAAA,CAAqB,MACnBF,MAAA,CAAOkB,OAAO,CACZ,GAAG7C,EAAA,CAAG8C,SAAS,CACb;QACE,GAAGH,QAAQ;QACXI,OAAA,EAASC,IAAA,CAAKF,SAAS,CAACH,QAAA,CAASI,OAAO;QACxCE,YAAA,EAAcD,IAAA,CAAKF,SAAS,CAACH,QAAA,CAASM,YAAY;MACpD,GACA;QAAEC,cAAA,EAAgB;MAAK,IACtB;IAGT,OAAO,IACL,OAAO5B,aAAA,KAAkB,cACzB,OAAOC,sBAAA,KAA2B,YAClC;MACA,MAAM4B,UAAA,GAAa7B,aAAA,IAAiBC,sBAAA;MACpC4B,UAAA,CAAWR,QAAA;IACb;IAEAN,QAAA,CAASM,QAAA;EACX,GACA,CACElB,KAAA,EACAC,cAAA,CAAeY,KAAK,EACpBZ,cAAA,CAAea,IAAI,EACnBlB,kBAAA,EACAC,aAAA,EACAC,sBAAA,EACAM,oBAAA,EACAF,MAAA,CACD;EAGH,MAAMyB,gBAAA,GAAmBlD,WAAA,CACvB,MAAOmD,GAAA;IACL,MAAMb,cAAA,CAAe;MAAEc,IAAA,EAAMD;IAAI;EACnC,GACA,CAACb,cAAA,CAAe;EAGlB,MAAMe,mBAAA,GAAsBtD,KAAA,CAAMC,WAAW,CAC3C,MAAOmD,KAAA;IACL,MAAMb,cAAA,CAAe;MAAEF,KAAA,EAAOe,KAAA;MAAKC,IAAA,EAAM;IAAE;EAC7C,GACA,CAACd,cAAA,CAAe;EAGlB,MAAMgB,kBAAA,GAAqBtD,WAAA,CACzB,MAAOmD,KAAA;IACL,MAAMI,MAAA,GAASJ,KAAA,KAAQ,KAAKX,SAAA,GAAYW,KAAA;IACxC,MAAMb,cAAA,CAAe;MAAEiB;IAAO;EAChC,GACA,CAACjB,cAAA,CAAe;EAGlB,MAAMkB,gBAAA,GAAmBxD,WAAA,CACvB,MAAOqC,IAAA;IACL,MAAMC,cAAA,CAAe;MAAED;IAAK;EAC9B,GACA,CAACC,cAAA,CAAe;EAGlB,MAAMmB,iBAAA,GAAoBzD,WAAA,CACxB,MAAO0D,KAAA;IACL,MAAMpB,cAAA,CAAe;MAAEoB;IAAM;EAC/B,GACA,CAACpB,cAAA,CAAe;EAGlB,MAAMqB,+BAAA,GAAkCrD,cAAA,CAAe;IACrD,MAAMmC,UAAA,GAAW5B,aAAA,CAAc;MAAE,IAAIU,KAAA,IAAS,CAAC,CAAC;MAAG,IAAIC,cAAA,IAAkB,CAAC,CAAC;IAAE;IAE7E,MAAM+B,QAAA,GAAS,IAAIzD,EAAA,CAAG8C,SAAS,CAAC;MAC9B,GAAGH,UAAQ;MACXI,OAAA,EAASC,IAAA,CAAKF,SAAS,CAACH,UAAA,CAASI,OAAO;MACxCE,YAAA,EAAcD,IAAA,CAAKF,SAAS,CAACH,UAAA,CAASM,YAAY;IACpD,IAAI;IAEJ,IAAIa,MAAA,CAAOC,QAAQ,CAACN,MAAM,KAAKA,QAAA,EAAQ;MACrCpB,QAAA,CAASM,UAAA;MAET;MACAmB,MAAA,CAAOE,OAAO,CAACC,YAAY,CAAC,MAAM,IAAIR,QAAA;IACxC;EACF;EAEA;EACA;EACAtD,SAAA,CAAU;IACR,IAAIkB,kBAAA,EAAoB;MACtBwC,+BAAA;IACF;EACF,GAAG,CAACxC,kBAAA,EAAoBK,cAAA,CAAe;EAEvC,oBACEwC,IAAA,CAACtD,gBAAA;IACCuD,KAAA,EAAO;MACLhD,cAAA;MACAC,IAAA;MACAgD,YAAA,EAAchD,IAAA,EAAMkB,KAAA;MACpBc,gBAAA;MACAG,mBAAA;MACAC,kBAAA;MACAE,gBAAA;MACAC,iBAAA;MACAU,YAAA,EAAcC,OAAA,CAAQrC,gBAAA,EAAkBsC,KAAA,EAAOC,OAAA,IAAW/C,KAAA,EAAO+C,OAAA;MACjEhD,kBAAA;MACAC,KAAA;MACAe,cAAA;MACAT,WAAA;MACA,GAAGI,UAAA,CAAWC;IAChB;cAEA,aAAA8B,IAAA,CAACrD,wBAAA;MAAyBsD,KAAA,EAAOrC,QAAA;gBAAWZ;;;AAGlD","ignoreList":[]}
|