@payloadcms/ui 3.68.0-internal-debug.185cc5f → 3.68.0-internal-debug.dafc24d
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/elements/AddNewRelation/index.js +83 -27
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AnimateHeight/index.js +13 -5
- package/dist/elements/AnimateHeight/index.js.map +1 -1
- package/dist/elements/AppHeader/index.js +107 -35
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.js +116 -36
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +18 -6
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Banner/index.js +25 -9
- package/dist/elements/Banner/index.js.map +1 -1
- package/dist/elements/BulkUpload/ActionsBar/index.js +97 -33
- package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddFilesView/index.js +43 -15
- package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/AddingFilesView/index.js +47 -15
- package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +7 -3
- package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js +12 -4
- package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +53 -17
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js +90 -30
- package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/BulkUpload/EditMany/index.js +31 -11
- package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +214 -70
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +13 -5
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/BulkUpload/Header/index.js +19 -7
- package/dist/elements/BulkUpload/Header/index.js.map +1 -1
- package/dist/elements/BulkUpload/index.js +58 -18
- package/dist/elements/BulkUpload/index.js.map +1 -1
- package/dist/elements/Button/index.js +101 -33
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Card/index.js +25 -9
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/CheckboxPopup/index.js +19 -7
- package/dist/elements/CheckboxPopup/index.js.map +1 -1
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js +16 -4
- package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +42 -14
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CloseModalButton/index.js +12 -4
- package/dist/elements/CloseModalButton/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +13 -5
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/CodeEditor/index.js +18 -6
- package/dist/elements/CodeEditor/index.js.map +1 -1
- package/dist/elements/Collapsible/index.js +84 -28
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/provider.js +7 -3
- package/dist/elements/Collapsible/provider.js.map +1 -1
- package/dist/elements/ColumnSelector/index.js +13 -5
- package/dist/elements/ColumnSelector/index.js.map +1 -1
- package/dist/elements/Combobox/index.js +37 -13
- package/dist/elements/Combobox/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +49 -17
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +73 -25
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +18 -6
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +41 -13
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.js +19 -7
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +25 -9
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteDocument/index.js +49 -17
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +73 -25
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +303 -95
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +12 -4
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +59 -19
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js +7 -3
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +32 -10
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.js +54 -18
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentLocked/index.js +73 -25
- package/dist/elements/DocumentLocked/index.js.map +1 -1
- package/dist/elements/DocumentTakeOver/index.js +49 -17
- package/dist/elements/DocumentTakeOver/index.js.map +1 -1
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +7 -3
- package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
- package/dist/elements/DraggableSortable/index.js +19 -7
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/Drawer/index.js +78 -26
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +37 -13
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerContentContainer/index.js +7 -3
- package/dist/elements/DrawerContentContainer/index.js.map +1 -1
- package/dist/elements/Dropzone/index.js +7 -3
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +61 -21
- package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +25 -9
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +131 -43
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.js +37 -13
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.js +232 -76
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +31 -11
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/ErrorPill/index.js +19 -7
- package/dist/elements/ErrorPill/index.js.map +1 -1
- package/dist/elements/FieldDiffContainer/index.js +25 -9
- package/dist/elements/FieldDiffContainer/index.js.map +1 -1
- package/dist/elements/FieldDiffLabel/index.js +7 -3
- package/dist/elements/FieldDiffLabel/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.js +19 -7
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +70 -22
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/FileMeta/index.js +43 -15
- package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +43 -15
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/FileDetails/index.js +13 -5
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/FolderView/Breadcrumbs/index.js +31 -11
- package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
- package/dist/elements/FolderView/BrowseByFolderButton/index.js +12 -4
- package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +7 -3
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.js +7 -3
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
- package/dist/elements/FolderView/ColoredFolderIcon/index.js +7 -3
- package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.js +68 -24
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
- package/dist/elements/FolderView/DragOverlaySelection/index.js +31 -11
- package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
- package/dist/elements/FolderView/DraggableTableRow/index.js +25 -9
- package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
- package/dist/elements/FolderView/DraggableWithClick/index.js +7 -3
- package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +15 -7
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +181 -61
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FilterFolderTypePill/index.js +19 -7
- package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
- package/dist/elements/FolderView/FolderField/index.server.js +7 -3
- package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +103 -31
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileTable/index.js +49 -17
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
- package/dist/elements/FolderView/FolderTypeField/index.js +7 -3
- package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
- package/dist/elements/FolderView/ItemCardGrid/index.js +21 -9
- package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +26 -10
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/SimpleTable/index.js +67 -23
- package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
- package/dist/elements/FolderView/SortByPill/index.js +86 -30
- package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
- package/dist/elements/FolderView/ToggleViewButtons/index.js +25 -9
- package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +7 -3
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/GenerateConfirmation/index.js +31 -11
- package/dist/elements/GenerateConfirmation/index.js.map +1 -1
- package/dist/elements/GroupByBuilder/index.js +43 -15
- package/dist/elements/GroupByBuilder/index.js.map +1 -1
- package/dist/elements/Gutter/index.js +7 -3
- package/dist/elements/Gutter/index.js.map +1 -1
- package/dist/elements/HTMLDiff/index.js +13 -5
- package/dist/elements/HTMLDiff/index.js.map +1 -1
- package/dist/elements/Hamburger/index.js +35 -11
- package/dist/elements/Hamburger/index.js.map +1 -1
- package/dist/elements/IDLabel/index.js +13 -5
- package/dist/elements/IDLabel/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/index.js +13 -5
- package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
- package/dist/elements/Link/index.js +7 -3
- package/dist/elements/Link/index.js.map +1 -1
- package/dist/elements/ListControls/index.js +126 -42
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +18 -6
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.js +7 -3
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +32 -10
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +19 -7
- package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +13 -5
- package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +7 -3
- package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +7 -3
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +48 -16
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +37 -13
- package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
- package/dist/elements/ListHeader/index.js +43 -15
- package/dist/elements/ListHeader/index.js.map +1 -1
- package/dist/elements/ListSelection/index.js +55 -19
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Device/index.js +13 -5
- package/dist/elements/LivePreview/Device/index.js.map +1 -1
- package/dist/elements/LivePreview/DeviceContainer/index.js +7 -3
- package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
- package/dist/elements/LivePreview/IFrame/index.js +7 -3
- package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
- package/dist/elements/LivePreview/Toggler/index.js +13 -5
- package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/Controls/index.js +137 -45
- package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +7 -3
- package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
- package/dist/elements/LivePreview/Toolbar/index.js +48 -16
- package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
- package/dist/elements/LivePreview/ToolbarArea/index.js +7 -3
- package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +41 -13
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +55 -19
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +13 -5
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +31 -11
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/Localizer/index.js +47 -15
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Locked/index.js +18 -6
- package/dist/elements/Locked/index.js.map +1 -1
- package/dist/elements/Logout/index.js +12 -4
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/Nav/NavToggler/index.js +7 -3
- package/dist/elements/Nav/NavToggler/index.js.map +1 -1
- package/dist/elements/Nav/context.js +7 -3
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/NavGroup/index.js +49 -17
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/NoListResults/index.js +19 -7
- package/dist/elements/NoListResults/index.js.map +1 -1
- package/dist/elements/PageControls/GroupByPageControls.js +7 -3
- package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
- package/dist/elements/PageControls/index.js +37 -13
- package/dist/elements/PageControls/index.js.map +1 -1
- package/dist/elements/Pagination/ClickableArrow/index.js +12 -4
- package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
- package/dist/elements/Pagination/Page/index.js +7 -3
- package/dist/elements/Pagination/Page/index.js.map +1 -1
- package/dist/elements/Pagination/Separator/index.js +7 -3
- package/dist/elements/Pagination/Separator/index.js.map +1 -1
- package/dist/elements/Pagination/index.js +19 -7
- package/dist/elements/Pagination/index.js.map +1 -1
- package/dist/elements/PerPage/index.js +61 -21
- package/dist/elements/PerPage/index.js.map +1 -1
- package/dist/elements/PermanentlyDeleteButton/index.js +31 -11
- package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
- package/dist/elements/Pill/index.js +37 -13
- package/dist/elements/Pill/index.js.map +1 -1
- package/dist/elements/PillSelector/index.js +34 -10
- package/dist/elements/PillSelector/index.js.map +1 -1
- package/dist/elements/Popup/PopupButtonList/index.js +25 -9
- package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
- package/dist/elements/Popup/PopupDivider/index.js +7 -3
- package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
- package/dist/elements/Popup/PopupGroupLabel/index.js +7 -3
- package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +13 -5
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/Popup/index.js +60 -20
- package/dist/elements/Popup/index.js.map +1 -1
- package/dist/elements/PreviewButton/index.js +12 -4
- package/dist/elements/PreviewButton/index.js.map +1 -1
- package/dist/elements/PreviewSizes/index.js +97 -33
- package/dist/elements/PreviewSizes/index.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +67 -23
- package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
- package/dist/elements/PublishButton/ScheduleDrawer/index.js +165 -53
- package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
- package/dist/elements/PublishButton/index.js +49 -17
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +7 -3
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.js +25 -9
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetBar/index.js +108 -36
- package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +42 -14
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/AccessCell/index.js +25 -9
- package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +13 -5
- package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/GroupByCell/index.js +13 -5
- package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/cells/WhereCell/index.js +7 -3
- package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js +25 -9
- package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/GroupByField/index.js +31 -11
- package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
- package/dist/elements/QueryPresets/fields/WhereField/index.js +79 -27
- package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
- package/dist/elements/ReactSelect/ClearIndicator/index.js +13 -5
- package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Control/index.js +13 -5
- package/dist/elements/ReactSelect/Control/index.js.map +1 -1
- package/dist/elements/ReactSelect/DropdownIndicator/index.js +13 -5
- package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
- package/dist/elements/ReactSelect/Input/index.js +13 -5
- package/dist/elements/ReactSelect/Input/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +13 -5
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueLabel/index.js +13 -5
- package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
- package/dist/elements/ReactSelect/MultiValueRemove/index.js +19 -7
- package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
- package/dist/elements/ReactSelect/SingleValue/index.js +13 -5
- package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/ValueContainer/index.js +19 -7
- package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.js +43 -15
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/RelationshipTable/AddNewButton.js +37 -13
- package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
- package/dist/elements/RelationshipTable/Pagination.js +7 -3
- package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +24 -8
- package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.js +119 -39
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/RenderComponent/index.js +19 -7
- package/dist/elements/RenderComponent/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js +7 -3
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/RenderServerComponent/index.js +13 -5
- package/dist/elements/RenderServerComponent/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.js +25 -9
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/RestoreButton/index.js +49 -17
- package/dist/elements/RestoreButton/index.js.map +1 -1
- package/dist/elements/RestoreMany/index.js +37 -13
- package/dist/elements/RestoreMany/index.js.map +1 -1
- package/dist/elements/SaveButton/index.js +7 -3
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +7 -3
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SearchBar/index.js +24 -8
- package/dist/elements/SearchBar/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.js +13 -5
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SelectAll/index.js +7 -3
- package/dist/elements/SelectAll/index.js.map +1 -1
- package/dist/elements/SelectMany/index.js +7 -3
- package/dist/elements/SelectMany/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +13 -5
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +31 -11
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +48 -16
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/SortComplex/index.js +55 -19
- package/dist/elements/SortComplex/index.js.map +1 -1
- package/dist/elements/SortHeader/index.js +24 -8
- package/dist/elements/SortHeader/index.js.map +1 -1
- package/dist/elements/SortRow/index.js +13 -5
- package/dist/elements/SortRow/index.js.map +1 -1
- package/dist/elements/Status/index.js +61 -21
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +7 -3
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/context.js +7 -3
- package/dist/elements/StepNav/context.js.map +1 -1
- package/dist/elements/StepNav/index.js +104 -32
- package/dist/elements/StepNav/index.js.map +1 -1
- package/dist/elements/StickyToolbar/index.js +7 -3
- package/dist/elements/StickyToolbar/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Array/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +13 -5
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Code/index.js +13 -5
- package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +21 -9
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js +13 -5
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +19 -7
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +7 -3
- package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +43 -15
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/OrderableRow.js +25 -9
- package/dist/elements/Table/OrderableRow.js.map +1 -1
- package/dist/elements/Table/OrderableRowDragPreview.js +19 -7
- package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
- package/dist/elements/Table/OrderableTable.js +79 -27
- package/dist/elements/Table/OrderableTable.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +7 -3
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/elements/Table/index.js +55 -19
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +47 -15
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +19 -7
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/TimezonePicker/index.js +19 -7
- package/dist/elements/TimezonePicker/index.js.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +24 -8
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/elements/Tooltip/index.js +31 -11
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Translation/index.js +25 -9
- package/dist/elements/Translation/index.js.map +1 -1
- package/dist/elements/TrashBanner/index.js +18 -6
- package/dist/elements/TrashBanner/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +7 -3
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.js +25 -9
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/elements/Upload/index.js +229 -77
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/ViewDescription/index.js +7 -3
- package/dist/elements/ViewDescription/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Date/index.js +13 -5
- package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +37 -13
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Number/index.js +12 -4
- package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -6
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +7 -3
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Text/index.js +12 -4
- package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +73 -25
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +85 -29
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WithServerSideProps/index.js +7 -3
- package/dist/elements/WithServerSideProps/index.js.map +1 -1
- package/dist/elements/withMergedProps/index.js +7 -3
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.js +52 -16
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +169 -57
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +72 -24
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +18 -6
- package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
- package/dist/fields/Blocks/BlockSelector/index.js +71 -23
- package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +13 -5
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.js +19 -7
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/SectionTitle/index.js +13 -5
- package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
- package/dist/fields/Blocks/index.js +187 -63
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +47 -15
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.js +37 -13
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.js +55 -19
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.js +61 -21
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +31 -11
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +61 -21
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.js +55 -19
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/FieldDescription/index.js +7 -3
- package/dist/fields/FieldDescription/index.js.map +1 -1
- package/dist/fields/FieldError/index.js +7 -3
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +19 -7
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.js +78 -26
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Group/provider.js +7 -3
- package/dist/fields/Group/provider.js.map +1 -1
- package/dist/fields/Hidden/index.js +7 -3
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/JSON/index.js +55 -19
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Join/index.js +49 -17
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Number/index.js +66 -22
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.js +7 -3
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Password/input.js +61 -21
- package/dist/fields/Password/input.js.map +1 -1
- package/dist/fields/Point/index.js +97 -33
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js +31 -11
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.js +67 -23
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/Input.js +84 -28
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/index.js +7 -3
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +43 -15
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +48 -16
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.js +19 -7
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Row/provider.js +7 -3
- package/dist/fields/Row/provider.js.map +1 -1
- package/dist/fields/Select/Input.js +55 -19
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.js +7 -3
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Slug/index.js +37 -13
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +25 -9
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.js +67 -23
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Tabs/provider.js +7 -3
- package/dist/fields/Tabs/provider.js.map +1 -1
- package/dist/fields/Text/Input.js +60 -20
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.js +7 -3
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/Input.js +61 -21
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.js +7 -3
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +48 -16
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +13 -5
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/Input.js +151 -55
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +73 -25
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/UploadCard/index.js +7 -3
- package/dist/fields/Upload/UploadCard/index.js.map +1 -1
- package/dist/fields/Upload/index.js +13 -5
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/Form/index.js +67 -23
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/NullifyField/index.js +13 -5
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +138 -46
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.js +19 -7
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +7 -3
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/RowLabel/index.js +19 -7
- package/dist/forms/RowLabel/index.js.map +1 -1
- package/dist/forms/Submit/index.js +13 -5
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +19 -7
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/withCondition/index.js +13 -5
- package/dist/forms/withCondition/index.js.map +1 -1
- package/dist/graphics/Account/Default/index.js +25 -9
- package/dist/graphics/Account/Default/index.js.map +1 -1
- package/dist/graphics/Account/Gravatar/index.js +7 -3
- package/dist/graphics/Account/Gravatar/index.js.map +1 -1
- package/dist/graphics/Account/index.js +12 -4
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/graphics/DefaultBlockImage/index.js +67 -23
- package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
- package/dist/graphics/File/index.js +19 -7
- package/dist/graphics/File/index.js.map +1 -1
- package/dist/graphics/Icon/index.js +19 -7
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/graphics/Logo/index.js +85 -29
- package/dist/graphics/Logo/index.js.map +1 -1
- package/dist/icons/Calendar/index.js +13 -5
- package/dist/icons/Calendar/index.js.map +1 -1
- package/dist/icons/Check/index.js +13 -5
- package/dist/icons/Check/index.js.map +1 -1
- package/dist/icons/Chevron/index.js +13 -5
- package/dist/icons/Chevron/index.js.map +1 -1
- package/dist/icons/CloseMenu/index.js +13 -5
- package/dist/icons/CloseMenu/index.js.map +1 -1
- package/dist/icons/CodeBlock/index.js +13 -5
- package/dist/icons/CodeBlock/index.js.map +1 -1
- package/dist/icons/Copy/index.js +13 -5
- package/dist/icons/Copy/index.js.map +1 -1
- package/dist/icons/Document/index.js +13 -5
- package/dist/icons/Document/index.js.map +1 -1
- package/dist/icons/Dots/index.js +22 -6
- package/dist/icons/Dots/index.js.map +1 -1
- package/dist/icons/DragHandle/index.js +43 -15
- package/dist/icons/DragHandle/index.js.map +1 -1
- package/dist/icons/Edit/index.js +13 -5
- package/dist/icons/Edit/index.js.map +1 -1
- package/dist/icons/ExternalLink/index.js +13 -5
- package/dist/icons/ExternalLink/index.js.map +1 -1
- package/dist/icons/Eye/index.js +36 -12
- package/dist/icons/Eye/index.js.map +1 -1
- package/dist/icons/Folder/index.js +13 -5
- package/dist/icons/Folder/index.js.map +1 -1
- package/dist/icons/Gear/index.js +19 -7
- package/dist/icons/Gear/index.js.map +1 -1
- package/dist/icons/GridView/index.js +31 -11
- package/dist/icons/GridView/index.js.map +1 -1
- package/dist/icons/Line/index.js +13 -5
- package/dist/icons/Line/index.js.map +1 -1
- package/dist/icons/Link/index.js +13 -5
- package/dist/icons/Link/index.js.map +1 -1
- package/dist/icons/ListView/index.js +13 -5
- package/dist/icons/ListView/index.js.map +1 -1
- package/dist/icons/Lock/index.js +19 -7
- package/dist/icons/Lock/index.js.map +1 -1
- package/dist/icons/LogOut/index.js +13 -5
- package/dist/icons/LogOut/index.js.map +1 -1
- package/dist/icons/Menu/index.js +13 -5
- package/dist/icons/Menu/index.js.map +1 -1
- package/dist/icons/MinimizeMaximize/index.js +18 -6
- package/dist/icons/MinimizeMaximize/index.js.map +1 -1
- package/dist/icons/More/index.js +25 -9
- package/dist/icons/More/index.js.map +1 -1
- package/dist/icons/MoveFolder/index.js +37 -13
- package/dist/icons/MoveFolder/index.js.map +1 -1
- package/dist/icons/People/index.js +13 -5
- package/dist/icons/People/index.js.map +1 -1
- package/dist/icons/Plus/index.js +13 -5
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/icons/Search/index.js +13 -5
- package/dist/icons/Search/index.js.map +1 -1
- package/dist/icons/Sort/index.js +25 -9
- package/dist/icons/Sort/index.js.map +1 -1
- package/dist/icons/Swap/index.js +13 -5
- package/dist/icons/Swap/index.js.map +1 -1
- package/dist/icons/ThreeDots/index.js +22 -6
- package/dist/icons/ThreeDots/index.js.map +1 -1
- package/dist/icons/Trash/index.js +13 -5
- package/dist/icons/Trash/index.js.map +1 -1
- package/dist/icons/X/index.js +13 -5
- package/dist/icons/X/index.js.map +1 -1
- package/dist/providers/Actions/index.js +7 -3
- package/dist/providers/Actions/index.js.map +1 -1
- package/dist/providers/Auth/index.js +7 -3
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ClickOutside/index.js +7 -3
- package/dist/providers/ClickOutside/index.js.map +1 -1
- package/dist/providers/ClientFunction/index.js +13 -5
- package/dist/providers/ClientFunction/index.js.map +1 -1
- package/dist/providers/Config/index.js +13 -5
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/DocumentEvents/index.js +7 -3
- package/dist/providers/DocumentEvents/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.js +25 -9
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentTitle/index.js +7 -3
- package/dist/providers/DocumentTitle/index.js.map +1 -1
- package/dist/providers/EditDepth/index.js +7 -3
- package/dist/providers/EditDepth/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.js +7 -3
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/Folders/index.js +7 -3
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/ListQuery/index.js +13 -5
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/LivePreview/index.js +13 -5
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/Locale/index.js +13 -5
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Operation/index.js +7 -3
- package/dist/providers/Operation/index.js.map +1 -1
- package/dist/providers/Params/index.js +7 -3
- package/dist/providers/Params/index.js.map +1 -1
- package/dist/providers/Preferences/index.js +7 -3
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Root/index.js +154 -50
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/RouteCache/index.js +7 -3
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/RouteTransition/ProgressBar/index.js +13 -5
- package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
- package/dist/providers/RouteTransition/index.js +7 -3
- package/dist/providers/RouteTransition/index.js.map +1 -1
- package/dist/providers/SearchParams/index.js +7 -3
- package/dist/providers/SearchParams/index.js.map +1 -1
- package/dist/providers/Selection/index.js +7 -3
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.js +7 -3
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/providers/TableColumns/RenderDefaultCell/index.js +13 -5
- package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +7 -3
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/renderCell.js +13 -5
- package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
- package/dist/providers/TableColumns/index.js +7 -3
- package/dist/providers/TableColumns/index.js.map +1 -1
- package/dist/providers/Theme/index.js +7 -3
- package/dist/providers/Theme/index.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Error.js +19 -7
- package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Info.js +19 -7
- package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Success.js +19 -7
- package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
- package/dist/providers/ToastContainer/icons/Warning.js +19 -7
- package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
- package/dist/providers/ToastContainer/index.js +27 -7
- package/dist/providers/ToastContainer/index.js.map +1 -1
- package/dist/providers/Translation/index.js +7 -3
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/providers/UploadControls/index.js +7 -3
- package/dist/providers/UploadControls/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.js +7 -3
- package/dist/providers/UploadEdits/index.js.map +1 -1
- package/dist/providers/UploadHandlers/index.js +7 -3
- package/dist/providers/UploadHandlers/index.js.map +1 -1
- package/dist/utilities/combineFieldLabel.js +37 -13
- package/dist/utilities/combineFieldLabel.js.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.js +29 -13
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
- package/dist/utilities/renderTable.js +82 -26
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/views/BrowseByFolder/index.js +168 -56
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js +67 -23
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +147 -47
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +67 -23
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +91 -31
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/index.js +117 -41
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/GroupByHeader/index.js +19 -7
- package/dist/views/List/GroupByHeader/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.js +62 -22
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.js +49 -17
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/dist/views/List/index.js +162 -54
- package/dist/views/List/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider, useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport './index.scss'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__previewSizes`}\n margin={false}\n onClick={() => {\n openModal(sizePreviewSlug)\n }}\n size=\"small\"\n >\n {t('upload:previewSizes')}\n </Button>\n )}\n {enableAdjustments && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__edit`}\n margin={false}\n onClick={() => {\n openModal(editDrawerSlug)\n }}\n size=\"small\"\n >\n {t('upload:editImage')}\n </Button>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n return (\n <UploadControlsProvider>\n <Upload_v4\n {...props}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={uploadEdits}\n />\n </UploadControlsProvider>\n )\n}\n\nexport type UploadProps_v4 = {\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadEdits?: UploadEdits\n} & UploadProps\n\nexport const Upload_v4: React.FC<UploadProps_v4> = (props) => {\n const {\n collectionSlug,\n customActions,\n initialState,\n onChange,\n resetUploadEdits,\n updateUploadEdits,\n uploadConfig,\n UploadControls,\n uploadEdits,\n } = props\n\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { id, data, docPermissions, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [showUrlInput, setShowUrlInput] = useState(false)\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const urlInputRef = useRef<HTMLInputElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n\n setValue(file)\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(file)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange({ file: fileToUpload })\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const fileName = uploadControlFileName || decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`)\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n serverURL,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n if (showUrlInput && urlInputRef.current) {\n // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true\n }\n }, [showUrlInput])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload = docPermissions?.update\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {data && data.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={data}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !data?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && !showUrlInput && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n setShowUrlInput(true)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"small\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n\n {UploadControls ? UploadControls : null}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {showUrlInput && (\n <React.Fragment>\n <div className={`${baseClass}__remote-file-wrap`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__remote-file`}\n onChange={(e) => {\n setFileUrl(e.target.value)\n }}\n ref={urlInputRef}\n title={fileUrl}\n type=\"text\"\n value={fileUrl}\n />\n <div className={`${baseClass}__add-file-wrap`}>\n <button\n className={`${baseClass}__add-file`}\n onClick={() => {\n void handleUrlSubmit()\n }}\n type=\"button\"\n >\n {t('upload:addFile')}\n </button>\n </div>\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() => {\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n {value && fileSrc && (\n <React.Fragment>\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n title={filename || value.name}\n type=\"text\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && data?.filename && !removedFile}\n mimeType={value.type}\n />\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n </div>\n )}\n {(value || data?.filename) && (\n <EditDepthProvider>\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n fileName={value?.name || data?.filename}\n fileSrc={data?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || data?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || data?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n </div>\n )\n}\n"],"names":["useModal","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","UploadControlsProvider","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","name","UploadActions","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","openModal","fileTypeIsAdjustable","length","div","className","buttonStyle","margin","onClick","size","map","CustomAction","i","Upload","props","resetUploadEdits","updateUploadEdits","uploadEdits","Upload_v4","collectionSlug","initialState","onChange","uploadConfig","UploadControls","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","config","routes","api","serverURL","setModified","id","data","docPermissions","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","showUrlInput","setShowUrlInput","fileUrl","setFileUrl","urlInputRef","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","file","isNewFile","File","URL","createObjectURL","renameFile","fileToChange","newName","newFile","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","fileName","decodeURIComponent","split","pop","_clientError","error","encodeURIComponent","serverResponse","_serverError","current","canRemoveUpload","update","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","handleControlFileUrl","handleControlFile","filter","message","customUploadActions","doc","handleRemove","hideRemoveFile","hideFileInputOnCreate","click","input","accept","aria-hidden","hidden","ref","span","p","title","button","icon","iconStyle","round","tooltip","Header","slug","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","label"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider, useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport './index.scss'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__previewSizes`}\n margin={false}\n onClick={() => {\n openModal(sizePreviewSlug)\n }}\n size=\"small\"\n >\n {t('upload:previewSizes')}\n </Button>\n )}\n {enableAdjustments && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__edit`}\n margin={false}\n onClick={() => {\n openModal(editDrawerSlug)\n }}\n size=\"small\"\n >\n {t('upload:editImage')}\n </Button>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n return (\n <UploadControlsProvider>\n <Upload_v4\n {...props}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={uploadEdits}\n />\n </UploadControlsProvider>\n )\n}\n\nexport type UploadProps_v4 = {\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadEdits?: UploadEdits\n} & UploadProps\n\nexport const Upload_v4: React.FC<UploadProps_v4> = (props) => {\n const {\n collectionSlug,\n customActions,\n initialState,\n onChange,\n resetUploadEdits,\n updateUploadEdits,\n uploadConfig,\n UploadControls,\n uploadEdits,\n } = props\n\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { id, data, docPermissions, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [showUrlInput, setShowUrlInput] = useState(false)\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const urlInputRef = useRef<HTMLInputElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n\n setValue(file)\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(file)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange({ file: fileToUpload })\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const fileName = uploadControlFileName || decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`)\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n serverURL,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n if (showUrlInput && urlInputRef.current) {\n // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true\n }\n }, [showUrlInput])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload = docPermissions?.update\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {data && data.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={data}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !data?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && !showUrlInput && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n setShowUrlInput(true)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"small\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n\n {UploadControls ? UploadControls : null}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {showUrlInput && (\n <React.Fragment>\n <div className={`${baseClass}__remote-file-wrap`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__remote-file`}\n onChange={(e) => {\n setFileUrl(e.target.value)\n }}\n ref={urlInputRef}\n title={fileUrl}\n type=\"text\"\n value={fileUrl}\n />\n <div className={`${baseClass}__add-file-wrap`}>\n <button\n className={`${baseClass}__add-file`}\n onClick={() => {\n void handleUrlSubmit()\n }}\n type=\"button\"\n >\n {t('upload:addFile')}\n </button>\n </div>\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() => {\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n {value && fileSrc && (\n <React.Fragment>\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n title={filename || value.name}\n type=\"text\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && data?.filename && !removedFile}\n mimeType={value.type}\n />\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n </div>\n )}\n {(value || data?.filename) && (\n <EditDepthProvider>\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n fileName={value?.name || data?.filename}\n fileSrc={data?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || data?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || data?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n </div>\n )\n}\n"],"names":["useModal","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","UploadControlsProvider","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","name","UploadActions","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","openModal","fileTypeIsAdjustable","length","div","className","buttonStyle","margin","onClick","size","map","CustomAction","i","Upload","props","resetUploadEdits","updateUploadEdits","uploadEdits","Upload_v4","collectionSlug","initialState","onChange","uploadConfig","UploadControls","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","config","routes","api","serverURL","setModified","id","data","docPermissions","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","showUrlInput","setShowUrlInput","fileUrl","setFileUrl","urlInputRef","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","file","isNewFile","File","URL","createObjectURL","renameFile","fileToChange","newName","newFile","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","fileName","decodeURIComponent","split","pop","_clientError","error","encodeURIComponent","serverResponse","_serverError","current","canRemoveUpload","update","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","handleControlFileUrl","handleControlFile","filter","message","customUploadActions","doc","handleRemove","hideRemoveFile","hideFileInputOnCreate","click","input","accept","aria-hidden","hidden","ref","span","p","title","button","icon","iconStyle","round","tooltip","Header","slug","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","label"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
@@ -10,10 +10,14 @@ export function ViewDescription(props) {
|
|
|
10
10
|
const { i18n } = useTranslation();
|
|
11
11
|
const { description } = props;
|
|
12
12
|
if (description) {
|
|
13
|
-
return /*#__PURE__*/
|
|
13
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
14
14
|
className: "custom-view-description",
|
|
15
15
|
children: getTranslation(description, i18n)
|
|
16
|
-
}
|
|
16
|
+
}, void 0, false, {
|
|
17
|
+
fileName: "src/elements/ViewDescription/index.tsx",
|
|
18
|
+
lineNumber: 22,
|
|
19
|
+
columnNumber: 12
|
|
20
|
+
}, this);
|
|
17
21
|
}
|
|
18
22
|
return null;
|
|
19
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/ViewDescription/index.tsx"],"sourcesContent":["'use client'\nimport type { DescriptionFunction, StaticDescription, ViewDescriptionClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport type ViewDescriptionComponent = React.ComponentType<any>\n\ntype Description = DescriptionFunction | StaticDescription | string | ViewDescriptionComponent\n\nexport function isComponent(description: Description): description is ViewDescriptionComponent {\n return React.isValidElement(description)\n}\n\nexport function ViewDescription(props: ViewDescriptionClientProps) {\n const { i18n } = useTranslation()\n const { description } = props\n\n if (description) {\n return <div className=\"custom-view-description\">{getTranslation(description, i18n)}</div>\n }\n\n return null\n}\n"],"names":["getTranslation","React","useTranslation","isComponent","description","isValidElement","ViewDescription","props","i18n","div","className"],"mappings":"AAAA;;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAEzB,SAASC,cAAc,QAAQ,uCAAsC;AAMrE,OAAO,SAASC,YAAYC,WAAwB;IAClD,qBAAOH,MAAMI,cAAc,CAACD;AAC9B;AAEA,OAAO,SAASE,gBAAgBC,KAAiC;IAC/D,MAAM,EAAEC,IAAI,EAAE,GAAGN;IACjB,MAAM,EAAEE,WAAW,EAAE,GAAGG;IAExB,IAAIH,aAAa;QACf,qBAAO,
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/ViewDescription/index.tsx"],"sourcesContent":["'use client'\nimport type { DescriptionFunction, StaticDescription, ViewDescriptionClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport type ViewDescriptionComponent = React.ComponentType<any>\n\ntype Description = DescriptionFunction | StaticDescription | string | ViewDescriptionComponent\n\nexport function isComponent(description: Description): description is ViewDescriptionComponent {\n return React.isValidElement(description)\n}\n\nexport function ViewDescription(props: ViewDescriptionClientProps) {\n const { i18n } = useTranslation()\n const { description } = props\n\n if (description) {\n return <div className=\"custom-view-description\">{getTranslation(description, i18n)}</div>\n }\n\n return null\n}\n"],"names":["getTranslation","React","useTranslation","isComponent","description","isValidElement","ViewDescription","props","i18n","div","className"],"mappings":"AAAA;;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAEzB,SAASC,cAAc,QAAQ,uCAAsC;AAMrE,OAAO,SAASC,YAAYC,WAAwB;IAClD,qBAAOH,MAAMI,cAAc,CAACD;AAC9B;AAEA,OAAO,SAASE,gBAAgBC,KAAiC;IAC/D,MAAM,EAAEC,IAAI,EAAE,GAAGN;IACjB,MAAM,EAAEE,WAAW,EAAE,GAAGG;IAExB,IAAIH,aAAa;QACf,qBAAO,QAACK;YAAIC,WAAU;sBAA2BV,eAAeI,aAAaI;;;;;;IAC/E;IAEA,OAAO;AACT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { useTranslation } from '../../../../providers/Translation/index.js';
|
|
@@ -8,16 +8,24 @@ const baseClass = 'condition-value-date';
|
|
|
8
8
|
export const DateFilter = ({ disabled, field: { admin }, onChange, value })=>{
|
|
9
9
|
const { date } = admin || {};
|
|
10
10
|
const { i18n, t } = useTranslation();
|
|
11
|
-
return /*#__PURE__*/
|
|
11
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
12
12
|
className: baseClass,
|
|
13
|
-
children: /*#__PURE__*/
|
|
13
|
+
children: /*#__PURE__*/ _jsxDEV(DatePickerField, {
|
|
14
14
|
...date,
|
|
15
15
|
onChange: onChange,
|
|
16
16
|
placeholder: getTranslation(admin.placeholder, i18n) || t('general:enterAValue'),
|
|
17
17
|
readOnly: disabled,
|
|
18
18
|
value: value
|
|
19
|
-
}
|
|
20
|
-
|
|
19
|
+
}, void 0, false, {
|
|
20
|
+
fileName: "src/elements/WhereBuilder/Condition/Date/index.tsx",
|
|
21
|
+
lineNumber: 18,
|
|
22
|
+
columnNumber: 7
|
|
23
|
+
}, this)
|
|
24
|
+
}, void 0, false, {
|
|
25
|
+
fileName: "src/elements/WhereBuilder/Condition/Date/index.tsx",
|
|
26
|
+
lineNumber: 17,
|
|
27
|
+
columnNumber: 5
|
|
28
|
+
}, this);
|
|
21
29
|
};
|
|
22
30
|
|
|
23
31
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Date/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DateFilterProps as Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { DatePickerField } from '../../../DatePicker/index.js'\n\nconst baseClass = 'condition-value-date'\n\nexport const DateFilter: React.FC<Props> = ({ disabled, field: { admin }, onChange, value }) => {\n const { date } = admin || {}\n const { i18n, t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <DatePickerField\n {...date}\n onChange={onChange}\n placeholder={getTranslation(admin.placeholder, i18n) || t('general:enterAValue')}\n readOnly={disabled}\n value={value as Date}\n />\n </div>\n )\n}\n"],"names":["getTranslation","React","useTranslation","DatePickerField","baseClass","DateFilter","disabled","field","admin","onChange","value","date","i18n","t","div","className","placeholder","readOnly"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,eAAe,QAAQ,+BAA8B;AAE9D,MAAMC,YAAY;AAElB,OAAO,MAAMC,aAA8B,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,EAAE,EAAEC,QAAQ,EAAEC,KAAK,EAAE;IACzF,MAAM,EAAEC,IAAI,EAAE,GAAGH,SAAS,CAAC;IAC3B,MAAM,EAAEI,IAAI,EAAEC,CAAC,EAAE,GAAGX;IAEpB,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Date/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { DateFilterProps as Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { DatePickerField } from '../../../DatePicker/index.js'\n\nconst baseClass = 'condition-value-date'\n\nexport const DateFilter: React.FC<Props> = ({ disabled, field: { admin }, onChange, value }) => {\n const { date } = admin || {}\n const { i18n, t } = useTranslation()\n\n return (\n <div className={baseClass}>\n <DatePickerField\n {...date}\n onChange={onChange}\n placeholder={getTranslation(admin.placeholder, i18n) || t('general:enterAValue')}\n readOnly={disabled}\n value={value as Date}\n />\n </div>\n )\n}\n"],"names":["getTranslation","React","useTranslation","DatePickerField","baseClass","DateFilter","disabled","field","admin","onChange","value","date","i18n","t","div","className","placeholder","readOnly"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,eAAe,QAAQ,+BAA8B;AAE9D,MAAMC,YAAY;AAElB,OAAO,MAAMC,aAA8B,CAAC,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,EAAE,EAAEC,QAAQ,EAAEC,KAAK,EAAE;IACzF,MAAM,EAAEC,IAAI,EAAE,GAAGH,SAAS,CAAC;IAC3B,MAAM,EAAEI,IAAI,EAAEC,CAAC,EAAE,GAAGX;IAEpB,qBACE,QAACY;QAAIC,WAAWX;kBACd,cAAA,QAACD;YACE,GAAGQ,IAAI;YACRF,UAAUA;YACVO,aAAahB,eAAeQ,MAAMQ,WAAW,EAAEJ,SAASC,EAAE;YAC1DI,UAAUX;YACVI,OAAOA;;;;;;;;;;;AAIf,EAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { DateFilter } from '../Date/index.js';
|
|
4
4
|
import { NumberFilter } from '../Number/index.js';
|
|
@@ -10,7 +10,7 @@ export const DefaultFilter = ({ booleanSelect, disabled, filterOptions, internal
|
|
|
10
10
|
'radio',
|
|
11
11
|
'select'
|
|
12
12
|
].includes(internalField?.field?.type)) {
|
|
13
|
-
return /*#__PURE__*/
|
|
13
|
+
return /*#__PURE__*/ _jsxDEV(Select, {
|
|
14
14
|
disabled: disabled,
|
|
15
15
|
field: internalField.field,
|
|
16
16
|
isClearable: !booleanSelect,
|
|
@@ -18,60 +18,84 @@ export const DefaultFilter = ({ booleanSelect, disabled, filterOptions, internal
|
|
|
18
18
|
operator: operator,
|
|
19
19
|
options: options,
|
|
20
20
|
value: value
|
|
21
|
-
}
|
|
21
|
+
}, void 0, false, {
|
|
22
|
+
fileName: "src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx",
|
|
23
|
+
lineNumber: 42,
|
|
24
|
+
columnNumber: 7
|
|
25
|
+
}, this);
|
|
22
26
|
}
|
|
23
27
|
switch(internalField?.field?.type){
|
|
24
28
|
case 'date':
|
|
25
29
|
{
|
|
26
|
-
return /*#__PURE__*/
|
|
30
|
+
return /*#__PURE__*/ _jsxDEV(DateFilter, {
|
|
27
31
|
disabled: disabled,
|
|
28
32
|
field: internalField.field,
|
|
29
33
|
onChange: onChange,
|
|
30
34
|
operator: operator,
|
|
31
35
|
value: value
|
|
32
|
-
}
|
|
36
|
+
}, void 0, false, {
|
|
37
|
+
fileName: "src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx",
|
|
38
|
+
lineNumber: 57,
|
|
39
|
+
columnNumber: 9
|
|
40
|
+
}, this);
|
|
33
41
|
}
|
|
34
42
|
case 'number':
|
|
35
43
|
{
|
|
36
|
-
return /*#__PURE__*/
|
|
44
|
+
return /*#__PURE__*/ _jsxDEV(NumberFilter, {
|
|
37
45
|
disabled: disabled,
|
|
38
46
|
field: internalField.field,
|
|
39
47
|
onChange: onChange,
|
|
40
48
|
operator: operator,
|
|
41
49
|
value: value
|
|
42
|
-
}
|
|
50
|
+
}, void 0, false, {
|
|
51
|
+
fileName: "src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx",
|
|
52
|
+
lineNumber: 69,
|
|
53
|
+
columnNumber: 9
|
|
54
|
+
}, this);
|
|
43
55
|
}
|
|
44
56
|
case 'relationship':
|
|
45
57
|
{
|
|
46
|
-
return /*#__PURE__*/
|
|
58
|
+
return /*#__PURE__*/ _jsxDEV(RelationshipFilter, {
|
|
47
59
|
disabled: disabled,
|
|
48
60
|
field: internalField.field,
|
|
49
61
|
filterOptions: filterOptions,
|
|
50
62
|
onChange: onChange,
|
|
51
63
|
operator: operator,
|
|
52
64
|
value: value
|
|
53
|
-
}
|
|
65
|
+
}, void 0, false, {
|
|
66
|
+
fileName: "src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx",
|
|
67
|
+
lineNumber: 81,
|
|
68
|
+
columnNumber: 9
|
|
69
|
+
}, this);
|
|
54
70
|
}
|
|
55
71
|
case 'upload':
|
|
56
72
|
{
|
|
57
|
-
return /*#__PURE__*/
|
|
73
|
+
return /*#__PURE__*/ _jsxDEV(RelationshipFilter, {
|
|
58
74
|
disabled: disabled,
|
|
59
75
|
field: internalField.field,
|
|
60
76
|
filterOptions: filterOptions,
|
|
61
77
|
onChange: onChange,
|
|
62
78
|
operator: operator,
|
|
63
79
|
value: value
|
|
64
|
-
}
|
|
80
|
+
}, void 0, false, {
|
|
81
|
+
fileName: "src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx",
|
|
82
|
+
lineNumber: 94,
|
|
83
|
+
columnNumber: 9
|
|
84
|
+
}, this);
|
|
65
85
|
}
|
|
66
86
|
default:
|
|
67
87
|
{
|
|
68
|
-
return /*#__PURE__*/
|
|
88
|
+
return /*#__PURE__*/ _jsxDEV(Text, {
|
|
69
89
|
disabled: disabled,
|
|
70
90
|
field: internalField?.field,
|
|
71
91
|
onChange: onChange,
|
|
72
92
|
operator: operator,
|
|
73
93
|
value: value
|
|
74
|
-
}
|
|
94
|
+
}, void 0, false, {
|
|
95
|
+
fileName: "src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx",
|
|
96
|
+
lineNumber: 107,
|
|
97
|
+
columnNumber: 9
|
|
98
|
+
}, this);
|
|
75
99
|
}
|
|
76
100
|
}
|
|
77
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx"],"sourcesContent":["import type {\n Operator,\n Option,\n ResolvedFilterOptions,\n SelectFieldClient,\n TextFieldClient,\n} from 'payload'\n\nimport React from 'react'\n\nimport type { ReducedField, Value } from '../../types.js'\n\nimport { DateFilter } from '../Date/index.js'\nimport { NumberFilter } from '../Number/index.js'\nimport { RelationshipFilter } from '../Relationship/index.js'\nimport { Select } from '../Select/index.js'\nimport { Text } from '../Text/index.js'\n\ntype Props = {\n booleanSelect: boolean\n disabled: boolean\n filterOptions: ResolvedFilterOptions\n internalField: ReducedField\n onChange: React.Dispatch<React.SetStateAction<string>>\n operator: Operator\n options: Option[]\n value: Value\n}\n\nexport const DefaultFilter: React.FC<Props> = ({\n booleanSelect,\n disabled,\n filterOptions,\n internalField,\n onChange,\n operator,\n options,\n value,\n}) => {\n if (booleanSelect || ['radio', 'select'].includes(internalField?.field?.type)) {\n return (\n <Select\n disabled={disabled}\n field={internalField.field as SelectFieldClient}\n isClearable={!booleanSelect}\n onChange={onChange}\n operator={operator}\n options={options}\n value={value as string}\n />\n )\n }\n\n switch (internalField?.field?.type) {\n case 'date': {\n return (\n <DateFilter\n disabled={disabled}\n field={internalField.field}\n onChange={onChange}\n operator={operator}\n value={value as Date | string}\n />\n )\n }\n\n case 'number': {\n return (\n <NumberFilter\n disabled={disabled}\n field={internalField.field}\n onChange={onChange}\n operator={operator}\n value={value as number | number[]}\n />\n )\n }\n\n case 'relationship': {\n return (\n <RelationshipFilter\n disabled={disabled}\n field={internalField.field}\n filterOptions={filterOptions}\n onChange={onChange}\n operator={operator}\n value={value}\n />\n )\n }\n\n case 'upload': {\n return (\n <RelationshipFilter\n disabled={disabled}\n field={internalField.field}\n filterOptions={filterOptions}\n onChange={onChange}\n operator={operator}\n value={value}\n />\n )\n }\n\n default: {\n return (\n <Text\n disabled={disabled}\n field={internalField?.field as TextFieldClient}\n onChange={onChange}\n operator={operator}\n value={value as string | string[]}\n />\n )\n }\n }\n}\n"],"names":["React","DateFilter","NumberFilter","RelationshipFilter","Select","Text","DefaultFilter","booleanSelect","disabled","filterOptions","internalField","onChange","operator","options","value","includes","field","type","isClearable"],"mappings":";AAQA,OAAOA,WAAW,QAAO;AAIzB,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,YAAY,QAAQ,qBAAoB;AACjD,SAASC,kBAAkB,QAAQ,2BAA0B;AAC7D,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,IAAI,QAAQ,mBAAkB;AAavC,OAAO,MAAMC,gBAAiC,CAAC,EAC7CC,aAAa,EACbC,QAAQ,EACRC,aAAa,EACbC,aAAa,EACbC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACN;IACC,IAAIP,iBAAiB;QAAC;QAAS;KAAS,CAACQ,QAAQ,CAACL,eAAeM,OAAOC,OAAO;QAC7E,qBACE,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/DefaultFilter/index.tsx"],"sourcesContent":["import type {\n Operator,\n Option,\n ResolvedFilterOptions,\n SelectFieldClient,\n TextFieldClient,\n} from 'payload'\n\nimport React from 'react'\n\nimport type { ReducedField, Value } from '../../types.js'\n\nimport { DateFilter } from '../Date/index.js'\nimport { NumberFilter } from '../Number/index.js'\nimport { RelationshipFilter } from '../Relationship/index.js'\nimport { Select } from '../Select/index.js'\nimport { Text } from '../Text/index.js'\n\ntype Props = {\n booleanSelect: boolean\n disabled: boolean\n filterOptions: ResolvedFilterOptions\n internalField: ReducedField\n onChange: React.Dispatch<React.SetStateAction<string>>\n operator: Operator\n options: Option[]\n value: Value\n}\n\nexport const DefaultFilter: React.FC<Props> = ({\n booleanSelect,\n disabled,\n filterOptions,\n internalField,\n onChange,\n operator,\n options,\n value,\n}) => {\n if (booleanSelect || ['radio', 'select'].includes(internalField?.field?.type)) {\n return (\n <Select\n disabled={disabled}\n field={internalField.field as SelectFieldClient}\n isClearable={!booleanSelect}\n onChange={onChange}\n operator={operator}\n options={options}\n value={value as string}\n />\n )\n }\n\n switch (internalField?.field?.type) {\n case 'date': {\n return (\n <DateFilter\n disabled={disabled}\n field={internalField.field}\n onChange={onChange}\n operator={operator}\n value={value as Date | string}\n />\n )\n }\n\n case 'number': {\n return (\n <NumberFilter\n disabled={disabled}\n field={internalField.field}\n onChange={onChange}\n operator={operator}\n value={value as number | number[]}\n />\n )\n }\n\n case 'relationship': {\n return (\n <RelationshipFilter\n disabled={disabled}\n field={internalField.field}\n filterOptions={filterOptions}\n onChange={onChange}\n operator={operator}\n value={value}\n />\n )\n }\n\n case 'upload': {\n return (\n <RelationshipFilter\n disabled={disabled}\n field={internalField.field}\n filterOptions={filterOptions}\n onChange={onChange}\n operator={operator}\n value={value}\n />\n )\n }\n\n default: {\n return (\n <Text\n disabled={disabled}\n field={internalField?.field as TextFieldClient}\n onChange={onChange}\n operator={operator}\n value={value as string | string[]}\n />\n )\n }\n }\n}\n"],"names":["React","DateFilter","NumberFilter","RelationshipFilter","Select","Text","DefaultFilter","booleanSelect","disabled","filterOptions","internalField","onChange","operator","options","value","includes","field","type","isClearable"],"mappings":";AAQA,OAAOA,WAAW,QAAO;AAIzB,SAASC,UAAU,QAAQ,mBAAkB;AAC7C,SAASC,YAAY,QAAQ,qBAAoB;AACjD,SAASC,kBAAkB,QAAQ,2BAA0B;AAC7D,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,IAAI,QAAQ,mBAAkB;AAavC,OAAO,MAAMC,gBAAiC,CAAC,EAC7CC,aAAa,EACbC,QAAQ,EACRC,aAAa,EACbC,aAAa,EACbC,QAAQ,EACRC,QAAQ,EACRC,OAAO,EACPC,KAAK,EACN;IACC,IAAIP,iBAAiB;QAAC;QAAS;KAAS,CAACQ,QAAQ,CAACL,eAAeM,OAAOC,OAAO;QAC7E,qBACE,QAACb;YACCI,UAAUA;YACVQ,OAAON,cAAcM,KAAK;YAC1BE,aAAa,CAACX;YACdI,UAAUA;YACVC,UAAUA;YACVC,SAASA;YACTC,OAAOA;;;;;;IAGb;IAEA,OAAQJ,eAAeM,OAAOC;QAC5B,KAAK;YAAQ;gBACX,qBACE,QAAChB;oBACCO,UAAUA;oBACVQ,OAAON,cAAcM,KAAK;oBAC1BL,UAAUA;oBACVC,UAAUA;oBACVE,OAAOA;;;;;;YAGb;QAEA,KAAK;YAAU;gBACb,qBACE,QAACZ;oBACCM,UAAUA;oBACVQ,OAAON,cAAcM,KAAK;oBAC1BL,UAAUA;oBACVC,UAAUA;oBACVE,OAAOA;;;;;;YAGb;QAEA,KAAK;YAAgB;gBACnB,qBACE,QAACX;oBACCK,UAAUA;oBACVQ,OAAON,cAAcM,KAAK;oBAC1BP,eAAeA;oBACfE,UAAUA;oBACVC,UAAUA;oBACVE,OAAOA;;;;;;YAGb;QAEA,KAAK;YAAU;gBACb,qBACE,QAACX;oBACCK,UAAUA;oBACVQ,OAAON,cAAcM,KAAK;oBAC1BP,eAAeA;oBACfE,UAAUA;oBACVC,UAAUA;oBACVE,OAAOA;;;;;;YAGb;QAEA;YAAS;gBACP,qBACE,QAACT;oBACCG,UAAUA;oBACVQ,OAAON,eAAeM;oBACtBL,UAAUA;oBACVC,UAAUA;oBACVE,OAAOA;;;;;;YAGb;IACF;AACF,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import { getTranslation } from '@payloadcms/translations';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { useTranslation } from '../../../../providers/Translation/index.js';
|
|
@@ -52,7 +52,7 @@ export const NumberFilter = (props)=>{
|
|
|
52
52
|
value
|
|
53
53
|
]);
|
|
54
54
|
const placeholder = getTranslation(admin?.placeholder, i18n) || t('general:enterAValue');
|
|
55
|
-
return isMulti ? /*#__PURE__*/
|
|
55
|
+
return isMulti ? /*#__PURE__*/ _jsxDEV(ReactSelect, {
|
|
56
56
|
disabled: disabled,
|
|
57
57
|
isClearable: true,
|
|
58
58
|
isCreatable: true,
|
|
@@ -63,14 +63,22 @@ export const NumberFilter = (props)=>{
|
|
|
63
63
|
options: [],
|
|
64
64
|
placeholder: placeholder,
|
|
65
65
|
value: valueToRender || []
|
|
66
|
-
}
|
|
66
|
+
}, void 0, false, {
|
|
67
|
+
fileName: "src/elements/WhereBuilder/Condition/Number/index.tsx",
|
|
68
|
+
lineNumber: 70,
|
|
69
|
+
columnNumber: 5
|
|
70
|
+
}, this) : /*#__PURE__*/ _jsxDEV("input", {
|
|
67
71
|
className: baseClass,
|
|
68
72
|
disabled: disabled,
|
|
69
73
|
onChange: (e)=>onChange(e.target.value),
|
|
70
74
|
placeholder: placeholder,
|
|
71
75
|
type: "number",
|
|
72
76
|
value: value
|
|
73
|
-
}
|
|
77
|
+
}, void 0, false, {
|
|
78
|
+
fileName: "src/elements/WhereBuilder/Condition/Number/index.tsx",
|
|
79
|
+
lineNumber: 83,
|
|
80
|
+
columnNumber: 5
|
|
81
|
+
}, this);
|
|
74
82
|
};
|
|
75
83
|
|
|
76
84
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Number/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { NumberFilterProps as Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition-value-number'\n\nexport const NumberFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin, hasMany },\n onChange,\n operator,\n value,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const isMulti = ['in', 'not_in'].includes(operator) || hasMany\n\n const [valueToRender, setValueToRender] = React.useState<\n { id: string; label: string; value: { value: number } }[]\n >([])\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n if (Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n toString: () => `${val}${index}`,\n value: (val as any)?.value || val,\n },\n }\n }),\n )\n } else {\n setValueToRender([])\n }\n }, [value])\n\n const placeholder = getTranslation(admin?.placeholder, i18n) || t('general:enterAValue')\n\n return isMulti ? (\n <ReactSelect\n disabled={disabled}\n isClearable\n isCreatable\n isMulti={isMulti}\n isSortable\n numberOnly\n onChange={onSelect}\n options={[]}\n placeholder={placeholder}\n value={valueToRender || []}\n />\n ) : (\n <input\n className={baseClass}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n type=\"number\"\n value={value as number}\n />\n )\n}\n"],"names":["getTranslation","React","useTranslation","ReactSelect","baseClass","NumberFilter","props","disabled","field","admin","hasMany","onChange","operator","value","i18n","t","isMulti","includes","valueToRender","setValueToRender","useState","onSelect","useCallback","selectedOption","newValue","Array","isArray","map","option","Number","useEffect","val","index","id","label","toString","placeholder","isClearable","isCreatable","isSortable","numberOnly","options","input","className","e","target","type"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,WAAW,QAAQ,gCAA+B;AAC3D,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,eAAgC,CAACC;IAC5C,MAAM,EACJC,QAAQ,EACRC,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAE,EACzBC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACN,GAAGP;IAEJ,MAAM,EAAEQ,IAAI,EAAEC,CAAC,EAAE,GAAGb;IAEpB,MAAMc,UAAU;QAAC;QAAM;KAAS,CAACC,QAAQ,CAACL,aAAaF;IAEvD,MAAM,CAACQ,eAAeC,iBAAiB,GAAGlB,MAAMmB,QAAQ,CAEtD,EAAE;IAEJ,MAAMC,WAAWpB,MAAMqB,WAAW,CAChC,CAACC;QACC,IAAIC;QACJ,IAAI,CAACD,gBAAgB;YACnBC,WAAW,EAAE;QACf,OAAO,IAAIR,SAAS;YAClB,IAAIS,MAAMC,OAAO,CAACH,iBAAiB;gBACjCC,WAAWD,eAAeI,GAAG,CAAC,CAACC,SAAWC,OAAOD,OAAOf,KAAK,EAAEA,SAASe,OAAOf,KAAK;YACtF,OAAO;gBACLW,WAAW;oBAACK,OAAON,eAAeV,KAAK,EAAEA,SAASU,eAAeV,KAAK;iBAAE;YAC1E;QACF;QAEAF,SAASa;IACX,GACA;QAACR;QAASL;KAAS;IAGrBV,MAAM6B,SAAS,CAAC;QACd,IAAIL,MAAMC,OAAO,CAACb,QAAQ;YACxBM,iBACEN,MAAMc,GAAG,CAAC,CAACI,KAAKC;gBACd,OAAO;oBACLC,IAAI,GAAGF,MAAMC,OAAO;oBAAE,mEAAmE;oBACzFE,OAAO,GAAGH,KAAK;oBACflB,OAAO;wBACLsB,UAAU,IAAM,GAAGJ,MAAMC,OAAO;wBAChCnB,OAAO,AAACkB,KAAalB,SAASkB;oBAChC;gBACF;YACF;QAEJ,OAAO;YACLZ,iBAAiB,EAAE;QACrB;IACF,GAAG;QAACN;KAAM;IAEV,MAAMuB,cAAcpC,eAAeS,OAAO2B,aAAatB,SAASC,EAAE;IAElE,OAAOC,wBACL,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Number/index.tsx"],"sourcesContent":["'use client'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { NumberFilterProps as Props } from './types.js'\n\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport './index.scss'\n\nconst baseClass = 'condition-value-number'\n\nexport const NumberFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin, hasMany },\n onChange,\n operator,\n value,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const isMulti = ['in', 'not_in'].includes(operator) || hasMany\n\n const [valueToRender, setValueToRender] = React.useState<\n { id: string; label: string; value: { value: number } }[]\n >([])\n\n const onSelect = React.useCallback(\n (selectedOption) => {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (isMulti) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n }\n\n onChange(newValue)\n },\n [isMulti, onChange],\n )\n\n React.useEffect(() => {\n if (Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n toString: () => `${val}${index}`,\n value: (val as any)?.value || val,\n },\n }\n }),\n )\n } else {\n setValueToRender([])\n }\n }, [value])\n\n const placeholder = getTranslation(admin?.placeholder, i18n) || t('general:enterAValue')\n\n return isMulti ? (\n <ReactSelect\n disabled={disabled}\n isClearable\n isCreatable\n isMulti={isMulti}\n isSortable\n numberOnly\n onChange={onSelect}\n options={[]}\n placeholder={placeholder}\n value={valueToRender || []}\n />\n ) : (\n <input\n className={baseClass}\n disabled={disabled}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n type=\"number\"\n value={value as number}\n />\n )\n}\n"],"names":["getTranslation","React","useTranslation","ReactSelect","baseClass","NumberFilter","props","disabled","field","admin","hasMany","onChange","operator","value","i18n","t","isMulti","includes","valueToRender","setValueToRender","useState","onSelect","useCallback","selectedOption","newValue","Array","isArray","map","option","Number","useEffect","val","index","id","label","toString","placeholder","isClearable","isCreatable","isSortable","numberOnly","options","input","className","e","target","type"],"mappings":"AAAA;;AACA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAIzB,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,WAAW,QAAQ,gCAA+B;AAC3D,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,eAAgC,CAACC;IAC5C,MAAM,EACJC,QAAQ,EACRC,OAAO,EAAEC,KAAK,EAAEC,OAAO,EAAE,EACzBC,QAAQ,EACRC,QAAQ,EACRC,KAAK,EACN,GAAGP;IAEJ,MAAM,EAAEQ,IAAI,EAAEC,CAAC,EAAE,GAAGb;IAEpB,MAAMc,UAAU;QAAC;QAAM;KAAS,CAACC,QAAQ,CAACL,aAAaF;IAEvD,MAAM,CAACQ,eAAeC,iBAAiB,GAAGlB,MAAMmB,QAAQ,CAEtD,EAAE;IAEJ,MAAMC,WAAWpB,MAAMqB,WAAW,CAChC,CAACC;QACC,IAAIC;QACJ,IAAI,CAACD,gBAAgB;YACnBC,WAAW,EAAE;QACf,OAAO,IAAIR,SAAS;YAClB,IAAIS,MAAMC,OAAO,CAACH,iBAAiB;gBACjCC,WAAWD,eAAeI,GAAG,CAAC,CAACC,SAAWC,OAAOD,OAAOf,KAAK,EAAEA,SAASe,OAAOf,KAAK;YACtF,OAAO;gBACLW,WAAW;oBAACK,OAAON,eAAeV,KAAK,EAAEA,SAASU,eAAeV,KAAK;iBAAE;YAC1E;QACF;QAEAF,SAASa;IACX,GACA;QAACR;QAASL;KAAS;IAGrBV,MAAM6B,SAAS,CAAC;QACd,IAAIL,MAAMC,OAAO,CAACb,QAAQ;YACxBM,iBACEN,MAAMc,GAAG,CAAC,CAACI,KAAKC;gBACd,OAAO;oBACLC,IAAI,GAAGF,MAAMC,OAAO;oBAAE,mEAAmE;oBACzFE,OAAO,GAAGH,KAAK;oBACflB,OAAO;wBACLsB,UAAU,IAAM,GAAGJ,MAAMC,OAAO;wBAChCnB,OAAO,AAACkB,KAAalB,SAASkB;oBAChC;gBACF;YACF;QAEJ,OAAO;YACLZ,iBAAiB,EAAE;QACrB;IACF,GAAG;QAACN;KAAM;IAEV,MAAMuB,cAAcpC,eAAeS,OAAO2B,aAAatB,SAASC,EAAE;IAElE,OAAOC,wBACL,QAACb;QACCI,UAAUA;QACV8B,WAAW;QACXC,WAAW;QACXtB,SAASA;QACTuB,UAAU;QACVC,UAAU;QACV7B,UAAUU;QACVoB,SAAS,EAAE;QACXL,aAAaA;QACbvB,OAAOK,iBAAiB,EAAE;;;;;6BAG5B,QAACwB;QACCC,WAAWvC;QACXG,UAAUA;QACVI,UAAU,CAACiC,IAAMjC,SAASiC,EAAEC,MAAM,CAAChC,KAAK;QACxCuB,aAAaA;QACbU,MAAK;QACLjC,OAAOA;;;;;;AAGb,EAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
|
|
3
3
|
import * as qs from 'qs-esm';
|
|
4
4
|
import React, { useCallback, useEffect, useReducer, useState } from 'react';
|
|
5
5
|
import { useDebounce } from '../../../../hooks/useDebounce.js';
|
|
@@ -323,12 +323,16 @@ export const RelationshipFilter = (props)=>{
|
|
|
323
323
|
errorLoading && 'error-loading'
|
|
324
324
|
].filter(Boolean).join(' ');
|
|
325
325
|
const valueToRender = findOptionsByValue() || value;
|
|
326
|
-
return /*#__PURE__*/
|
|
326
|
+
return /*#__PURE__*/ _jsxDEV("div", {
|
|
327
327
|
className: classes,
|
|
328
|
-
children: errorLoading ? /*#__PURE__*/
|
|
328
|
+
children: errorLoading ? /*#__PURE__*/ _jsxDEV("div", {
|
|
329
329
|
className: `${baseClass}__error-loading`,
|
|
330
330
|
children: errorLoading
|
|
331
|
-
}
|
|
331
|
+
}, void 0, false, {
|
|
332
|
+
fileName: "src/elements/WhereBuilder/Condition/Relationship/index.tsx",
|
|
333
|
+
lineNumber: 381,
|
|
334
|
+
columnNumber: 9
|
|
335
|
+
}, this) : /*#__PURE__*/ _jsxDEV(ReactSelect, {
|
|
332
336
|
disabled: disabled,
|
|
333
337
|
isMulti: hasMany,
|
|
334
338
|
isSortable: isSortable,
|
|
@@ -361,8 +365,16 @@ export const RelationshipFilter = (props)=>{
|
|
|
361
365
|
options: options,
|
|
362
366
|
placeholder: placeholder,
|
|
363
367
|
value: valueToRender
|
|
364
|
-
}
|
|
365
|
-
|
|
368
|
+
}, void 0, false, {
|
|
369
|
+
fileName: "src/elements/WhereBuilder/Condition/Relationship/index.tsx",
|
|
370
|
+
lineNumber: 383,
|
|
371
|
+
columnNumber: 9
|
|
372
|
+
}, this)
|
|
373
|
+
}, void 0, false, {
|
|
374
|
+
fileName: "src/elements/WhereBuilder/Condition/Relationship/index.tsx",
|
|
375
|
+
lineNumber: 379,
|
|
376
|
+
columnNumber: 5
|
|
377
|
+
}, this);
|
|
366
378
|
};
|
|
367
379
|
|
|
368
380
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { RelationshipFilterProps as Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport optionsReducer from './optionsReducer.js'\nimport './index.scss'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin = {}, hasMany, relationTo },\n filterOptions,\n onChange,\n value,\n } = props\n\n const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined\n const isSortable = admin?.isSortable\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const debouncedSearch = useDebounce(search, 300)\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n\n const loadedRelationships = React.useRef<\n Map<\n string,\n {\n hasLoadedAll: boolean\n nextPage: number\n }\n >\n >(\n new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n ),\n )\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadOptions = useEffectEvent(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const loadedRelationship = loadedRelationships.current.get(relationSlug)\n\n if (relationSlug && !loadedRelationship.hasLoadedAll) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n\n const where: Where = {\n and: [],\n }\n\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n locale: locale.code,\n page: loadedRelationship.nextPage,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (filterOptions && filterOptions?.[relationSlug]) {\n query.where.and.push(filterOptions[relationSlug])\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n `${serverURL}${api}/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: false,\n nextPage: data.nextPage,\n })\n } else {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: true,\n nextPage: null,\n })\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n )\n\n const handleScrollToBottom = React.useCallback(() => {\n const relationshipToLoad = loadedRelationships.current.entries().next().value\n\n if (relationshipToLoad[0] && !relationshipToLoad[1].hasLoadedAll) {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relationshipToLoad[0],\n })\n }\n }, [])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (input: string) => {\n if (input !== search) {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n setSearch(input)\n }\n },\n [i18n, relationTo, search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n /**\n * When `relationTo` changes externally, reset the options and reload them from scratch\n * The `loadOptions` dependency is a useEffectEvent which has no dependencies of its own\n * This means we can safely depend on it without it triggering this effect to run\n * This is useful because this effect should _only_ run when `relationTo` changes\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relations.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n setHasLoadedFirstOptions(false)\n\n const abortControllers: AbortController[] = []\n\n relations.forEach((relation) => {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relation,\n })\n\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, relationTo, debouncedSearch, filterOptions])\n\n /**\n * Load any other options that might exist in the value that were not loaded already\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {errorLoading ? (\n <div className={`${baseClass}__error-loading`}>{errorLoading}</div>\n ) : (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n\n if (hasMany && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={handleScrollToBottom}\n options={options}\n placeholder={placeholder}\n value={valueToRender}\n />\n )}\n </div>\n )\n}\n"],"names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useEffectEvent","useConfig","useLocale","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","props","disabled","field","admin","hasMany","relationTo","filterOptions","onChange","value","placeholder","undefined","isSortable","config","routes","api","serverURL","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","debouncedSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","i18n","t","locale","relationSlugs","loadedRelationships","useRef","Map","map","relation","hasLoadedAll","nextPage","addOptions","data","collection","collectionSlug","type","loadOptions","abortController","relationSlug","loadedRelationship","current","get","fieldToSearch","useAsTitle","where","and","query","depth","limit","code","page","select","push","like","response","fetch","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","set","e","aborted","console","error","handleScrollToBottom","relationshipToLoad","entries","next","AbortController","findOptionsByValue","val","matchedOption","forEach","opt","some","subOpt","find","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","div","className","isMulti","selected","onInputChange","onMenuScrollToBottom"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/elements/WhereBuilder/Condition/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type { PaginatedDocs, Where } from 'payload'\n\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { Option } from '../../../ReactSelect/types.js'\nimport type { RelationshipFilterProps as Props, ValueWithRelation } from './types.js'\n\nimport { useDebounce } from '../../../../hooks/useDebounce.js'\nimport { useEffectEvent } from '../../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useLocale } from '../../../../providers/Locale/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { ReactSelect } from '../../../ReactSelect/index.js'\nimport optionsReducer from './optionsReducer.js'\nimport './index.scss'\n\nconst baseClass = 'condition-value-relationship'\n\nconst maxResultsPerRequest = 10\n\nexport const RelationshipFilter: React.FC<Props> = (props) => {\n const {\n disabled,\n field: { admin = {}, hasMany, relationTo },\n filterOptions,\n onChange,\n value,\n } = props\n\n const placeholder = 'placeholder' in admin ? admin?.placeholder : undefined\n const isSortable = admin?.isSortable\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const hasMultipleRelations = Array.isArray(relationTo)\n const [options, dispatchOptions] = useReducer(optionsReducer, [])\n const [search, setSearch] = useState('')\n const debouncedSearch = useDebounce(search, 300)\n const [errorLoading, setErrorLoading] = useState('')\n const [hasLoadedFirstOptions, setHasLoadedFirstOptions] = useState(false)\n const { i18n, t } = useTranslation()\n const locale = useLocale()\n\n const relationSlugs = hasMultipleRelations ? relationTo : [relationTo]\n\n const loadedRelationships = React.useRef<\n Map<\n string,\n {\n hasLoadedAll: boolean\n nextPage: number\n }\n >\n >(\n new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n ),\n )\n\n const addOptions = useCallback(\n (data, relation) => {\n const collection = getEntityConfig({ collectionSlug: relation })\n dispatchOptions({ type: 'ADD', collection, data, hasMultipleRelations, i18n, relation })\n },\n [hasMultipleRelations, i18n, getEntityConfig],\n )\n\n const loadOptions = useEffectEvent(\n async ({\n abortController,\n relationSlug,\n }: {\n abortController: AbortController\n relationSlug: string\n }) => {\n const loadedRelationship = loadedRelationships.current.get(relationSlug)\n\n if (relationSlug && !loadedRelationship.hasLoadedAll) {\n const collection = getEntityConfig({\n collectionSlug: relationSlug,\n })\n\n const fieldToSearch = collection?.admin?.useAsTitle || 'id'\n\n const where: Where = {\n and: [],\n }\n\n const query = {\n depth: 0,\n limit: maxResultsPerRequest,\n locale: locale.code,\n page: loadedRelationship.nextPage,\n select: {\n [fieldToSearch]: true,\n },\n where,\n }\n\n if (filterOptions && filterOptions?.[relationSlug]) {\n query.where.and.push(filterOptions[relationSlug])\n }\n\n if (debouncedSearch) {\n query.where.and.push({\n [fieldToSearch]: {\n like: debouncedSearch,\n },\n })\n }\n\n try {\n const response = await fetch(\n `${serverURL}${api}/${relationSlug}${qs.stringify(query, { addQueryPrefix: true })}`,\n {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n },\n )\n\n if (response.ok) {\n const data: PaginatedDocs = await response.json()\n if (data.docs.length > 0) {\n addOptions(data, relationSlug)\n\n if (data.nextPage) {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: false,\n nextPage: data.nextPage,\n })\n } else {\n loadedRelationships.current.set(relationSlug, {\n hasLoadedAll: true,\n nextPage: null,\n })\n }\n }\n } else {\n setErrorLoading(t('error:unspecific'))\n }\n } catch (e) {\n if (!abortController.signal.aborted) {\n console.error(e) // eslint-disable-line no-console\n }\n }\n }\n\n setHasLoadedFirstOptions(true)\n },\n )\n\n const handleScrollToBottom = React.useCallback(() => {\n const relationshipToLoad = loadedRelationships.current.entries().next().value\n\n if (relationshipToLoad[0] && !relationshipToLoad[1].hasLoadedAll) {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relationshipToLoad[0],\n })\n }\n }, [])\n\n const findOptionsByValue = useCallback((): Option | Option[] => {\n if (value) {\n if (hasMany) {\n if (Array.isArray(value)) {\n return value.map((val) => {\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n options.forEach((opt) => {\n if (opt.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == val.value) {\n matchedOption = subOpt\n return true\n }\n\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == val)\n })\n }\n\n return undefined\n }\n\n if (hasMultipleRelations) {\n let matchedOption: Option\n\n const valueWithRelation = value as ValueWithRelation\n\n options.forEach((opt) => {\n if (opt?.options) {\n opt.options.some((subOpt) => {\n if (subOpt?.value == valueWithRelation.value) {\n matchedOption = subOpt\n return true\n }\n return false\n })\n }\n })\n\n return matchedOption\n }\n\n return options.find((opt) => opt.value == value)\n }\n\n return undefined\n }, [hasMany, hasMultipleRelations, value, options])\n\n const handleInputChange = useCallback(\n (input: string) => {\n if (input !== search) {\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n\n const relationSlugs = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relationSlugs.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n setSearch(input)\n }\n },\n [i18n, relationTo, search],\n )\n\n const addOptionByID = useCallback(\n async (id, relation) => {\n if (!errorLoading && id !== 'null' && id && relation) {\n const response = await fetch(`${serverURL}${api}/${relation}/${id}?depth=0`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n\n if (response.ok) {\n const data = await response.json()\n addOptions({ docs: [data] }, relation)\n } else {\n // eslint-disable-next-line no-console\n console.error(t('error:loadingDocument', { id }))\n }\n }\n },\n [i18n, addOptions, api, errorLoading, serverURL, t],\n )\n\n /**\n * When `relationTo` changes externally, reset the options and reload them from scratch\n * The `loadOptions` dependency is a useEffectEvent which has no dependencies of its own\n * This means we can safely depend on it without it triggering this effect to run\n * This is useful because this effect should _only_ run when `relationTo` changes\n */\n useEffect(() => {\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n loadedRelationships.current = new Map(\n relations.map((relation) => [\n relation,\n {\n hasLoadedAll: false,\n nextPage: 1,\n },\n ]),\n )\n\n dispatchOptions({ type: 'CLEAR', i18n, required: false })\n setHasLoadedFirstOptions(false)\n\n const abortControllers: AbortController[] = []\n\n relations.forEach((relation) => {\n const abortController = new AbortController()\n\n void loadOptions({\n abortController,\n relationSlug: relation,\n })\n\n abortControllers.push(abortController)\n })\n\n return () => {\n abortControllers.forEach((controller) => {\n if (controller.signal) {\n try {\n controller.abort()\n } catch (_err) {\n // swallow error\n }\n }\n })\n }\n }, [i18n, relationTo, debouncedSearch, filterOptions])\n\n /**\n * Load any other options that might exist in the value that were not loaded already\n */\n useEffect(() => {\n if (value && hasLoadedFirstOptions) {\n if (hasMany) {\n const matchedOptions = findOptionsByValue()\n\n ;((matchedOptions as Option[]) || []).forEach((option, i) => {\n if (!option) {\n if (hasMultipleRelations) {\n void addOptionByID(value[i].value, value[i].relationTo)\n } else {\n void addOptionByID(value[i], relationTo)\n }\n }\n })\n } else {\n const matchedOption = findOptionsByValue()\n\n if (!matchedOption) {\n if (hasMultipleRelations) {\n const valueWithRelation = value as ValueWithRelation\n void addOptionByID(valueWithRelation.value, valueWithRelation.relationTo)\n } else {\n void addOptionByID(value, relationTo)\n }\n }\n }\n }\n }, [\n addOptionByID,\n findOptionsByValue,\n hasMany,\n hasMultipleRelations,\n relationTo,\n value,\n hasLoadedFirstOptions,\n ])\n\n const classes = ['field-type', baseClass, errorLoading && 'error-loading']\n .filter(Boolean)\n .join(' ')\n\n const valueToRender = (findOptionsByValue() || value) as Option\n\n return (\n <div className={classes}>\n {errorLoading ? (\n <div className={`${baseClass}__error-loading`}>{errorLoading}</div>\n ) : (\n <ReactSelect\n disabled={disabled}\n isMulti={hasMany}\n isSortable={isSortable}\n onChange={(selected) => {\n if (!selected) {\n onChange(null)\n return\n }\n\n if (hasMany && Array.isArray(selected)) {\n onChange(\n selected\n ? selected.map((option) => {\n if (hasMultipleRelations) {\n return {\n relationTo: option?.relationTo,\n value: option?.value,\n }\n }\n\n return option?.value\n })\n : null,\n )\n } else if (hasMultipleRelations && !Array.isArray(selected)) {\n onChange({\n relationTo: selected?.relationTo,\n value: selected?.value,\n })\n } else if (!Array.isArray(selected)) {\n onChange(selected?.value)\n }\n }}\n onInputChange={handleInputChange}\n onMenuScrollToBottom={handleScrollToBottom}\n options={options}\n placeholder={placeholder}\n value={valueToRender}\n />\n )}\n </div>\n )\n}\n"],"names":["qs","React","useCallback","useEffect","useReducer","useState","useDebounce","useEffectEvent","useConfig","useLocale","useTranslation","ReactSelect","optionsReducer","baseClass","maxResultsPerRequest","RelationshipFilter","props","disabled","field","admin","hasMany","relationTo","filterOptions","onChange","value","placeholder","undefined","isSortable","config","routes","api","serverURL","getEntityConfig","hasMultipleRelations","Array","isArray","options","dispatchOptions","search","setSearch","debouncedSearch","errorLoading","setErrorLoading","hasLoadedFirstOptions","setHasLoadedFirstOptions","i18n","t","locale","relationSlugs","loadedRelationships","useRef","Map","map","relation","hasLoadedAll","nextPage","addOptions","data","collection","collectionSlug","type","loadOptions","abortController","relationSlug","loadedRelationship","current","get","fieldToSearch","useAsTitle","where","and","query","depth","limit","code","page","select","push","like","response","fetch","stringify","addQueryPrefix","credentials","headers","language","signal","ok","json","docs","length","set","e","aborted","console","error","handleScrollToBottom","relationshipToLoad","entries","next","AbortController","findOptionsByValue","val","matchedOption","forEach","opt","some","subOpt","find","valueWithRelation","handleInputChange","input","required","addOptionByID","id","relations","abortControllers","controller","abort","_err","matchedOptions","option","i","classes","filter","Boolean","join","valueToRender","div","className","isMulti","selected","onInputChange","onMenuScrollToBottom"],"mappings":"AAAA;;AAGA,YAAYA,QAAQ,SAAQ;AAC5B,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,QAAO;AAK3E,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,SAAS,QAAQ,wCAAuC;AACjE,SAASC,cAAc,QAAQ,6CAA4C;AAC3E,SAASC,WAAW,QAAQ,gCAA+B;AAC3D,OAAOC,oBAAoB,sBAAqB;AAChD,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,MAAMC,uBAAuB;AAE7B,OAAO,MAAMC,qBAAsC,CAACC;IAClD,MAAM,EACJC,QAAQ,EACRC,OAAO,EAAEC,QAAQ,CAAC,CAAC,EAAEC,OAAO,EAAEC,UAAU,EAAE,EAC1CC,aAAa,EACbC,QAAQ,EACRC,KAAK,EACN,GAAGR;IAEJ,MAAMS,cAAc,iBAAiBN,QAAQA,OAAOM,cAAcC;IAClE,MAAMC,aAAaR,OAAOQ;IAE1B,MAAM,EACJC,QAAQ,EACNC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,EACDC,eAAe,EAChB,GAAGxB;IAEJ,MAAMyB,uBAAuBC,MAAMC,OAAO,CAACd;IAC3C,MAAM,CAACe,SAASC,gBAAgB,GAAGjC,WAAWQ,gBAAgB,EAAE;IAChE,MAAM,CAAC0B,QAAQC,UAAU,GAAGlC,SAAS;IACrC,MAAMmC,kBAAkBlC,YAAYgC,QAAQ;IAC5C,MAAM,CAACG,cAAcC,gBAAgB,GAAGrC,SAAS;IACjD,MAAM,CAACsC,uBAAuBC,yBAAyB,GAAGvC,SAAS;IACnE,MAAM,EAAEwC,IAAI,EAAEC,CAAC,EAAE,GAAGpC;IACpB,MAAMqC,SAAStC;IAEf,MAAMuC,gBAAgBf,uBAAuBZ,aAAa;QAACA;KAAW;IAEtE,MAAM4B,sBAAsBhD,MAAMiD,MAAM,CAStC,IAAIC,IACFH,cAAcI,GAAG,CAAC,CAACC,WAAa;YAC9BA;YACA;gBACEC,cAAc;gBACdC,UAAU;YACZ;SACD;IAIL,MAAMC,aAAatD,YACjB,CAACuD,MAAMJ;QACL,MAAMK,aAAa1B,gBAAgB;YAAE2B,gBAAgBN;QAAS;QAC9DhB,gBAAgB;YAAEuB,MAAM;YAAOF;YAAYD;YAAMxB;YAAsBY;YAAMQ;QAAS;IACxF,GACA;QAACpB;QAAsBY;QAAMb;KAAgB;IAG/C,MAAM6B,cAActD,eAClB,OAAO,EACLuD,eAAe,EACfC,YAAY,EAIb;QACC,MAAMC,qBAAqBf,oBAAoBgB,OAAO,CAACC,GAAG,CAACH;QAE3D,IAAIA,gBAAgB,CAACC,mBAAmBV,YAAY,EAAE;YACpD,MAAMI,aAAa1B,gBAAgB;gBACjC2B,gBAAgBI;YAClB;YAEA,MAAMI,gBAAgBT,YAAYvC,OAAOiD,cAAc;YAEvD,MAAMC,QAAe;gBACnBC,KAAK,EAAE;YACT;YAEA,MAAMC,QAAQ;gBACZC,OAAO;gBACPC,OAAO3D;gBACPiC,QAAQA,OAAO2B,IAAI;gBACnBC,MAAMX,mBAAmBT,QAAQ;gBACjCqB,QAAQ;oBACN,CAACT,cAAc,EAAE;gBACnB;gBACAE;YACF;YAEA,IAAI/C,iBAAiBA,eAAe,CAACyC,aAAa,EAAE;gBAClDQ,MAAMF,KAAK,CAACC,GAAG,CAACO,IAAI,CAACvD,aAAa,CAACyC,aAAa;YAClD;YAEA,IAAIvB,iBAAiB;gBACnB+B,MAAMF,KAAK,CAACC,GAAG,CAACO,IAAI,CAAC;oBACnB,CAACV,cAAc,EAAE;wBACfW,MAAMtC;oBACR;gBACF;YACF;YAEA,IAAI;gBACF,MAAMuC,WAAW,MAAMC,MACrB,GAAGjD,YAAYD,IAAI,CAAC,EAAEiC,eAAe/D,GAAGiF,SAAS,CAACV,OAAO;oBAAEW,gBAAgB;gBAAK,IAAI,EACpF;oBACEC,aAAa;oBACbC,SAAS;wBACP,mBAAmBvC,KAAKwC,QAAQ;oBAClC;oBACAC,QAAQxB,gBAAgBwB,MAAM;gBAChC;gBAGF,IAAIP,SAASQ,EAAE,EAAE;oBACf,MAAM9B,OAAsB,MAAMsB,SAASS,IAAI;oBAC/C,IAAI/B,KAAKgC,IAAI,CAACC,MAAM,GAAG,GAAG;wBACxBlC,WAAWC,MAAMM;wBAEjB,IAAIN,KAAKF,QAAQ,EAAE;4BACjBN,oBAAoBgB,OAAO,CAAC0B,GAAG,CAAC5B,cAAc;gCAC5CT,cAAc;gCACdC,UAAUE,KAAKF,QAAQ;4BACzB;wBACF,OAAO;4BACLN,oBAAoBgB,OAAO,CAAC0B,GAAG,CAAC5B,cAAc;gCAC5CT,cAAc;gCACdC,UAAU;4BACZ;wBACF;oBACF;gBACF,OAAO;oBACLb,gBAAgBI,EAAE;gBACpB;YACF,EAAE,OAAO8C,GAAG;gBACV,IAAI,CAAC9B,gBAAgBwB,MAAM,CAACO,OAAO,EAAE;oBACnCC,QAAQC,KAAK,CAACH;gBAChB;YACF;QACF;QAHuB,iCAAiC;QAKxDhD,yBAAyB;IAC3B;IAGF,MAAMoD,uBAAuB/F,MAAMC,WAAW,CAAC;QAC7C,MAAM+F,qBAAqBhD,oBAAoBgB,OAAO,CAACiC,OAAO,GAAGC,IAAI,GAAG3E,KAAK;QAE7E,IAAIyE,kBAAkB,CAAC,EAAE,IAAI,CAACA,kBAAkB,CAAC,EAAE,CAAC3C,YAAY,EAAE;YAChE,MAAMQ,kBAAkB,IAAIsC;YAE5B,KAAKvC,YAAY;gBACfC;gBACAC,cAAckC,kBAAkB,CAAC,EAAE;YACrC;QACF;IACF,GAAG,EAAE;IAEL,MAAMI,qBAAqBnG,YAAY;QACrC,IAAIsB,OAAO;YACT,IAAIJ,SAAS;gBACX,IAAIc,MAAMC,OAAO,CAACX,QAAQ;oBACxB,OAAOA,MAAM4B,GAAG,CAAC,CAACkD;wBAChB,IAAIrE,sBAAsB;4BACxB,IAAIsE;4BAEJnE,QAAQoE,OAAO,CAAC,CAACC;gCACf,IAAIA,IAAIrE,OAAO,EAAE;oCACfqE,IAAIrE,OAAO,CAACsE,IAAI,CAAC,CAACC;wCAChB,IAAIA,QAAQnF,SAAS8E,IAAI9E,KAAK,EAAE;4CAC9B+E,gBAAgBI;4CAChB,OAAO;wCACT;wCAEA,OAAO;oCACT;gCACF;4BACF;4BAEA,OAAOJ;wBACT;wBAEA,OAAOnE,QAAQwE,IAAI,CAAC,CAACH,MAAQA,IAAIjF,KAAK,IAAI8E;oBAC5C;gBACF;gBAEA,OAAO5E;YACT;YAEA,IAAIO,sBAAsB;gBACxB,IAAIsE;gBAEJ,MAAMM,oBAAoBrF;gBAE1BY,QAAQoE,OAAO,CAAC,CAACC;oBACf,IAAIA,KAAKrE,SAAS;wBAChBqE,IAAIrE,OAAO,CAACsE,IAAI,CAAC,CAACC;4BAChB,IAAIA,QAAQnF,SAASqF,kBAAkBrF,KAAK,EAAE;gCAC5C+E,gBAAgBI;gCAChB,OAAO;4BACT;4BACA,OAAO;wBACT;oBACF;gBACF;gBAEA,OAAOJ;YACT;YAEA,OAAOnE,QAAQwE,IAAI,CAAC,CAACH,MAAQA,IAAIjF,KAAK,IAAIA;QAC5C;QAEA,OAAOE;IACT,GAAG;QAACN;QAASa;QAAsBT;QAAOY;KAAQ;IAElD,MAAM0E,oBAAoB5G,YACxB,CAAC6G;QACC,IAAIA,UAAUzE,QAAQ;YACpBD,gBAAgB;gBAAEuB,MAAM;gBAASf;gBAAMmE,UAAU;YAAM;YAEvD,MAAMhE,gBAAgBd,MAAMC,OAAO,CAACd,cAAcA,aAAa;gBAACA;aAAW;YAE3E4B,oBAAoBgB,OAAO,GAAG,IAAId,IAChCH,cAAcI,GAAG,CAAC,CAACC,WAAa;oBAC9BA;oBACA;wBACEC,cAAc;wBACdC,UAAU;oBACZ;iBACD;YAGHhB,UAAUwE;QACZ;IACF,GACA;QAAClE;QAAMxB;QAAYiB;KAAO;IAG5B,MAAM2E,gBAAgB/G,YACpB,OAAOgH,IAAI7D;QACT,IAAI,CAACZ,gBAAgByE,OAAO,UAAUA,MAAM7D,UAAU;YACpD,MAAM0B,WAAW,MAAMC,MAAM,GAAGjD,YAAYD,IAAI,CAAC,EAAEuB,SAAS,CAAC,EAAE6D,GAAG,QAAQ,CAAC,EAAE;gBAC3E/B,aAAa;gBACbC,SAAS;oBACP,mBAAmBvC,KAAKwC,QAAQ;gBAClC;YACF;YAEA,IAAIN,SAASQ,EAAE,EAAE;gBACf,MAAM9B,OAAO,MAAMsB,SAASS,IAAI;gBAChChC,WAAW;oBAAEiC,MAAM;wBAAChC;qBAAK;gBAAC,GAAGJ;YAC/B,OAAO;gBACL,sCAAsC;gBACtCyC,QAAQC,KAAK,CAACjD,EAAE,yBAAyB;oBAAEoE;gBAAG;YAChD;QACF;IACF,GACA;QAACrE;QAAMW;QAAY1B;QAAKW;QAAcV;QAAWe;KAAE;IAGrD;;;;;GAKC,GACD3C,UAAU;QACR,MAAMgH,YAAYjF,MAAMC,OAAO,CAACd,cAAcA,aAAa;YAACA;SAAW;QAEvE4B,oBAAoBgB,OAAO,GAAG,IAAId,IAChCgE,UAAU/D,GAAG,CAAC,CAACC,WAAa;gBAC1BA;gBACA;oBACEC,cAAc;oBACdC,UAAU;gBACZ;aACD;QAGHlB,gBAAgB;YAAEuB,MAAM;YAASf;YAAMmE,UAAU;QAAM;QACvDpE,yBAAyB;QAEzB,MAAMwE,mBAAsC,EAAE;QAE9CD,UAAUX,OAAO,CAAC,CAACnD;YACjB,MAAMS,kBAAkB,IAAIsC;YAE5B,KAAKvC,YAAY;gBACfC;gBACAC,cAAcV;YAChB;YAEA+D,iBAAiBvC,IAAI,CAACf;QACxB;QAEA,OAAO;YACLsD,iBAAiBZ,OAAO,CAAC,CAACa;gBACxB,IAAIA,WAAW/B,MAAM,EAAE;oBACrB,IAAI;wBACF+B,WAAWC,KAAK;oBAClB,EAAE,OAAOC,MAAM,CAEf;gBACF;YACF;QACF;IACF,GALU,gBAAgB;IAKvB;QAAC1E;QAAMxB;QAAYmB;QAAiBlB;KAAc;IAErD;;GAEC,GACDnB,UAAU;QACR,IAAIqB,SAASmB,uBAAuB;YAClC,IAAIvB,SAAS;gBACX,MAAMoG,iBAAiBnB;gBAErB,CAAA,AAACmB,kBAA+B,EAAE,AAAD,EAAGhB,OAAO,CAAC,CAACiB,QAAQC;oBACrD,IAAI,CAACD,QAAQ;wBACX,IAAIxF,sBAAsB;4BACxB,KAAKgF,cAAczF,KAAK,CAACkG,EAAE,CAAClG,KAAK,EAAEA,KAAK,CAACkG,EAAE,CAACrG,UAAU;wBACxD,OAAO;4BACL,KAAK4F,cAAczF,KAAK,CAACkG,EAAE,EAAErG;wBAC/B;oBACF;gBACF;YACF,OAAO;gBACL,MAAMkF,gBAAgBF;gBAEtB,IAAI,CAACE,eAAe;oBAClB,IAAItE,sBAAsB;wBACxB,MAAM4E,oBAAoBrF;wBAC1B,KAAKyF,cAAcJ,kBAAkBrF,KAAK,EAAEqF,kBAAkBxF,UAAU;oBAC1E,OAAO;wBACL,KAAK4F,cAAczF,OAAOH;oBAC5B;gBACF;YACF;QACF;IACF,GAAG;QACD4F;QACAZ;QACAjF;QACAa;QACAZ;QACAG;QACAmB;KACD;IAED,MAAMgF,UAAU;QAAC;QAAc9G;QAAW4B,gBAAgB;KAAgB,CACvEmF,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,MAAMC,gBAAiB1B,wBAAwB7E;IAE/C,qBACE,QAACwG;QAAIC,WAAWN;kBACblF,6BACC,QAACuF;YAAIC,WAAW,GAAGpH,UAAU,eAAe,CAAC;sBAAG4B;;;;;iCAEhD,QAAC9B;YACCM,UAAUA;YACViH,SAAS9G;YACTO,YAAYA;YACZJ,UAAU,CAAC4G;gBACT,IAAI,CAACA,UAAU;oBACb5G,SAAS;oBACT;gBACF;gBAEA,IAAIH,WAAWc,MAAMC,OAAO,CAACgG,WAAW;oBACtC5G,SACE4G,WACIA,SAAS/E,GAAG,CAAC,CAACqE;wBACZ,IAAIxF,sBAAsB;4BACxB,OAAO;gCACLZ,YAAYoG,QAAQpG;gCACpBG,OAAOiG,QAAQjG;4BACjB;wBACF;wBAEA,OAAOiG,QAAQjG;oBACjB,KACA;gBAER,OAAO,IAAIS,wBAAwB,CAACC,MAAMC,OAAO,CAACgG,WAAW;oBAC3D5G,SAAS;wBACPF,YAAY8G,UAAU9G;wBACtBG,OAAO2G,UAAU3G;oBACnB;gBACF,OAAO,IAAI,CAACU,MAAMC,OAAO,CAACgG,WAAW;oBACnC5G,SAAS4G,UAAU3G;gBACrB;YACF;YACA4G,eAAetB;YACfuB,sBAAsBrC;YACtB5D,SAASA;YACTX,aAAaA;YACbD,OAAOuG;;;;;;;;;;;AAKjB,EAAC"}
|