payload 4.0.0-canary.3 → 4.0.0-internal.011fd46

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.
@@ -19,7 +19,7 @@ import { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adap
19
19
  import { PinoPretty } from 'pino-pretty';
20
20
  import { DatePickerProps } from 'react-datepicker';
21
21
 
22
- declare const clientTranslationKeys: ("authentication:account" | "authentication:accountOfCurrentUser" | "authentication:accountVerified" | "authentication:alreadyActivated" | "authentication:alreadyLoggedIn" | "authentication:apiKey" | "authentication:authenticated" | "authentication:backToLogin" | "authentication:beginCreateFirstUser" | "authentication:changePassword" | "authentication:checkYourEmailForPasswordReset" | "authentication:confirmGeneration" | "authentication:confirmPassword" | "authentication:createFirstUser" | "authentication:createUser" | "authentication:emailNotValid" | "authentication:emailOrUsername" | "authentication:emailSent" | "authentication:emailVerified" | "authentication:emailVerifiedRedirecting" | "authentication:enableAPIKey" | "authentication:failedToUnlock" | "authentication:forceUnlock" | "authentication:forgotPassword" | "authentication:forgotPasswordEmailInstructions" | "authentication:forgotPasswordUsernameInstructions" | "authentication:usernameNotValid" | "authentication:forgotPasswordQuestion" | "authentication:generate" | "authentication:generateNewAPIKey" | "authentication:generatingNewAPIKeyWillInvalidate" | "authentication:logBackIn" | "authentication:loggedIn" | "authentication:loggedInChangePassword" | "authentication:loggedOutInactivity" | "authentication:loggedOutSuccessfully" | "authentication:loggingOut" | "authentication:login" | "authentication:logOut" | "authentication:logout" | "authentication:logoutSuccessful" | "authentication:logoutUser" | "authentication:newAPIKeyGenerated" | "authentication:newPassword" | "authentication:notRedirected" | "authentication:passed" | "authentication:passwordResetSuccessfully" | "authentication:resetPassword" | "authentication:stayLoggedIn" | "authentication:successfullyRegisteredFirstUser" | "authentication:successfullyUnlocked" | "authentication:tokenRefreshSuccessful" | "authentication:unableToVerify" | "authentication:username" | "authentication:verified" | "authentication:verifiedSuccessfully" | "authentication:verify" | "authentication:verifyUser" | "authentication:youAreInactive" | "commandPalette:createNew" | "commandPalette:hintClose" | "commandPalette:hintCreate" | "commandPalette:hintNavigate" | "commandPalette:hintSelect" | "commandPalette:noResults" | "commandPalette:placeholder" | "commandPalette:title" | "dashboard:addButton" | "dashboard:addWidget" | "dashboard:deleteWidget" | "dashboard:discardConfirmLabel" | "dashboard:discardMessage" | "dashboard:discardTitle" | "dashboard:editDashboard" | "dashboard:editingDashboard" | "dashboard:noItems" | "dashboard:resetLayout" | "dashboard:searchWidgets" | "error:autosaving" | "error:correctInvalidFields" | "error:deletingTitle" | "error:documentNotFound" | "error:emailOrPasswordIncorrect" | "error:failedToResetLayout" | "error:failedToSaveLayout" | "error:insufficientClipboardPermissions" | "error:invalidClipboardData" | "error:invalidFileType" | "error:invalidRequestArgs" | "error:loadingDocument" | "error:logoutFailed" | "error:noMatchedField" | "error:notAllowedToAccessPage" | "error:notAllowedToPerformAction" | "error:previewing" | "error:problemUploadingFile" | "error:restoringTitle" | "error:revertingDocument" | "error:tokenNotProvided" | "error:unableToCopy" | "error:unableToDeleteCount" | "error:unableToReindexCollection" | "error:unableToUpdateCount" | "error:unauthorized" | "error:unauthorizedAdmin" | "error:unknown" | "error:unPublishingDocument" | "error:unspecific" | "error:unverifiedEmail" | "error:userEmailAlreadyRegistered" | "error:usernameAlreadyRegistered" | "error:usernameOrPasswordIncorrect" | "fields:blocks" | "fields:addLabel" | "fields:addLink" | "fields:addNew" | "fields:addNewLabel" | "fields:addRelationship" | "fields:addUpload" | "fields:block" | "fields:blockType" | "fields:chooseBetweenCustomTextOrDocument" | "fields:chooseDocumentToLink" | "fields:chooseFromExisting" | "fields:collapseAll" | "fields:customURL" | "fields:editLink" | "fields:editRelationship" | "fields:enterURL" | "fields:hidePassword" | "fields:internalLink" | "fields:itemsAndMore" | "fields:labelRelationship" | "fields:latitude" | "fields:linkedTo" | "fields:linkType" | "fields:longitude" | "fields:openInNewTab" | "fields:passwordsDoNotMatch" | "fields:removeRelationship" | "fields:removeUpload" | "fields:saveChanges" | "fields:searchForBlock" | "fields:searchForLanguage" | "fields:selectFieldsToEdit" | "fields:showAll" | "fields:showPassword" | "fields:swapRelationship" | "fields:swapUpload" | "fields:textToDisplay" | "fields:toggleBlock" | "fields:uploadNewLabel" | "general:items" | "general:of" | "general:language" | "general:dashboard" | "general:error" | "general:username" | "general:createNew" | "general:noResults" | "general:notFound" | "general:unauthorized" | "general:newLabel" | "general:saveChanges" | "general:name" | "general:aboutToDelete" | "general:aboutToPermanentlyDelete" | "general:aboutToPermanentlyDeleteTrash" | "general:aboutToRestore" | "general:aboutToRestoreAsDraft" | "general:aboutToRestoreAsDraftCount" | "general:aboutToRestoreCount" | "general:aboutToTrash" | "general:aboutToTrashCount" | "general:accepts" | "general:addBelow" | "general:addFilter" | "general:adminTheme" | "general:all" | "general:allCollections" | "general:allLocales" | "general:and" | "general:anotherUser" | "general:anotherUserTakenOver" | "general:applyChanges" | "general:ascending" | "general:auto" | "general:automatic" | "general:backToDashboard" | "general:by" | "general:cancel" | "general:changesNotSaved" | "general:checked" | "general:clear" | "general:clearAll" | "general:close" | "general:collapse" | "general:collection" | "general:collections" | "general:columns" | "general:columnToSort" | "general:confirm" | "general:confirmCopy" | "general:confirmDeletion" | "general:confirmDuplication" | "general:confirmMove" | "general:confirmReindex" | "general:confirmReindexAll" | "general:confirmReindexDescription" | "general:confirmReindexDescriptionAll" | "general:confirmRestoration" | "general:copied" | "general:copy" | "general:copyField" | "general:copying" | "general:copyRow" | "general:copyWarning" | "general:create" | "general:created" | "general:createdAt" | "general:createNewLabel" | "general:creating" | "general:creatingNewLabel" | "general:currentlyEditing" | "general:custom" | "general:dark" | "general:decrement" | "general:delete" | "general:deleted" | "general:deletedAgo" | "general:deletedAt" | "general:deletedCountSuccessfully" | "general:deletedSuccessfully" | "general:deleteLabel" | "general:deletePermanently" | "general:deleting" | "general:depth" | "general:descending" | "general:deselectAllRows" | "general:document" | "general:documentIsTrashed" | "general:documentLocked" | "general:documentModified" | "general:documentOutOfDate" | "general:documents" | "general:dragToReorder" | "general:duplicate" | "general:duplicateWithoutSaving" | "general:edit" | "general:editAll" | "general:editColumns" | "general:editedSince" | "general:editing" | "general:editingTakenOver" | "general:editLabel" | "general:email" | "general:emailAddress" | "general:emptyTrash" | "general:emptyTrashLabel" | "general:enhancedContrastMode" | "general:enterANumber" | "general:enterAValue" | "general:errors" | "general:exitLivePreview" | "general:expand" | "general:export" | "general:fallbackToDefaultLocale" | "general:false" | "general:field" | "general:filter" | "general:filters" | "general:filterWhere" | "general:globals" | "general:goBack" | "general:groupByLabel" | "general:hideSidebar" | "general:import" | "general:increment" | "general:isEditing" | "general:item" | "general:lastModified" | "general:layout" | "general:leaveAnyway" | "general:leaveWithoutSaving" | "general:light" | "general:livePreview" | "general:loading" | "general:loadMore" | "general:locale" | "general:locales" | "general:lock" | "general:manageLabel" | "general:menu" | "general:moreOptions" | "general:move" | "general:moveConfirm" | "general:moveCount" | "general:moveDown" | "general:moveUp" | "general:moving" | "general:movingCount" | "general:next" | "general:no" | "general:noDateSelected" | "general:noFiltersSet" | "general:noLabel" | "general:noMatchesFound" | "general:none" | "general:noOptions" | "general:noResultsDescription" | "general:noResultsFound" | "general:nothingFound" | "general:noTrashResults" | "general:notShownInTable" | "general:noUpcomingEventsScheduled" | "general:noValue" | "general:only" | "general:open" | "general:openInNewWindow" | "general:or" | "general:order" | "general:overwriteExistingData" | "general:pageNotFound" | "general:password" | "general:pasteField" | "general:pasteRow" | "general:payloadSettings" | "general:permanentlyDelete" | "general:permanentlyDeletedCountSuccessfully" | "general:perPage" | "general:perPageLabel" | "general:previous" | "general:reindex" | "general:reindexingAll" | "general:reloadDocument" | "general:remove" | "general:rename" | "general:reset" | "general:resetPreferences" | "general:resetPreferencesDescription" | "general:resettingPreferences" | "general:restore" | "general:restoreAsPublished" | "general:restoredCountSuccessfully" | "general:restoring" | "general:retry" | "general:row" | "general:rows" | "general:save" | "general:saving" | "general:schedulePublishFor" | "general:searchBy" | "general:searchColumns" | "general:select" | "general:selectAll" | "general:selectAllRows" | "general:selectedCount" | "general:selectLabel" | "general:selectValue" | "general:settings" | "general:showAllLabel" | "general:shownInTable" | "general:showSidebar" | "general:sorryNotFound" | "general:sort" | "general:sortByLabelDirection" | "general:stayOnThisPage" | "general:submissionSuccessful" | "general:submit" | "general:submitting" | "general:success" | "general:successfullyCreated" | "general:successfullyDuplicated" | "general:successfullyReindexed" | "general:takeOver" | "general:theme" | "general:thisLanguage" | "general:time" | "general:timezone" | "general:titleDeleted" | "general:titleRestored" | "general:titleTrashed" | "general:toggle" | "general:trash" | "general:trashedCountSuccessfully" | "general:true" | "general:unchecked" | "general:unlock" | "general:unsavedChanges" | "general:unsavedChangesDuplicate" | "general:untitled" | "general:upcomingEvents" | "general:updatedAgo" | "general:updatedAt" | "general:updatedCountSuccessfully" | "general:updatedLabelSuccessfully" | "general:updatedSuccessfully" | "general:updateForEveryone" | "general:updating" | "general:uploading" | "general:uploadingBulk" | "general:user" | "general:users" | "general:value" | "general:viewing" | "general:viewReadOnly" | "general:welcome" | "general:where" | "general:yes" | "hierarchy:noResults" | "hierarchy:itemsMovedTo" | "hierarchy:itemsMovedToRoot" | "hierarchy:moveItemsToRootConfirmation" | "hierarchy:moveToRoot" | "hierarchy:noParent" | "hierarchy:searchLabel" | "localization:cannotCopySameLocale" | "localization:copyFrom" | "localization:copyFromTo" | "localization:copyTo" | "localization:copyToLocale" | "localization:localeToPublish" | "localization:selectedLocales" | "localization:selectLocaleToCopy" | "localization:selectLocaleToDuplicate" | "operators:contains" | "operators:equals" | "operators:exists" | "operators:intersects" | "operators:near" | "operators:within" | "operators:isGreaterThan" | "operators:isGreaterThanOrEqualTo" | "operators:isIn" | "operators:isLessThan" | "operators:isLessThanOrEqualTo" | "operators:isLike" | "operators:isNotEqualTo" | "operators:isNotIn" | "operators:isNotLike" | "upload:addFile" | "upload:addFiles" | "upload:bulkUpload" | "upload:crop" | "upload:cropToolDescription" | "upload:download" | "upload:dragAndDrop" | "upload:editImage" | "upload:fileName" | "upload:fileSize" | "upload:filesToUpload" | "upload:fileToUpload" | "upload:focalPoint" | "upload:focalPointDescription" | "upload:height" | "upload:noFile" | "upload:pasteURL" | "upload:previewSizes" | "upload:selectCollectionToBrowse" | "upload:selectFile" | "upload:setCropArea" | "upload:setFocalPoint" | "upload:sizes" | "upload:sizesFor" | "upload:width" | "validation:username" | "validation:emailAddress" | "validation:enterNumber" | "validation:fieldHasNo" | "validation:greaterThanMax" | "validation:invalidBlock" | "validation:invalidBlocks" | "validation:invalidInput" | "validation:invalidSelection" | "validation:invalidSelections" | "validation:latitudeOutOfBounds" | "validation:lessThanMin" | "validation:limitReached" | "validation:longerThanMin" | "validation:longitudeOutOfBounds" | "validation:notValidDate" | "validation:required" | "validation:requiresAtLeast" | "validation:requiresNoMoreThan" | "validation:requiresTwoNumbers" | "validation:shorterThanMax" | "validation:timezoneRequired" | "validation:trueOrFalse" | "validation:validUploadID" | "version:version" | "version:aboutToRestore" | "version:restoring" | "version:type" | "version:aboutToPublishSelection" | "version:aboutToRestoreGlobal" | "version:aboutToRevertToPublished" | "version:aboutToUnpublish" | "version:aboutToUnpublishIn" | "version:aboutToUnpublishSelection" | "version:autosave" | "version:autosavedSuccessfully" | "version:autosavedVersion" | "version:changed" | "version:compareVersions" | "version:comparingAgainst" | "version:confirmPublish" | "version:confirmRevertToSaved" | "version:confirmUnpublish" | "version:confirmVersionRestoration" | "version:currentDraft" | "version:currentlyPublished" | "version:currentlyViewing" | "version:currentPublishedVersion" | "version:draft" | "version:draftHasPublishedVersion" | "version:draftSavedSuccessfully" | "version:lastSavedAgo" | "version:modifiedOnly" | "version:moreVersions" | "version:noFurtherVersionsFound" | "version:noLabelGroup" | "version:noRowsFound" | "version:noRowsSelected" | "version:preview" | "version:previouslyDraft" | "version:previouslyPublished" | "version:previousVersion" | "version:problemRestoringVersion" | "version:publish" | "version:publishAllLocales" | "version:publishChanges" | "version:published" | "version:publishIn" | "version:publishing" | "version:restoreAsDraft" | "version:restoredSuccessfully" | "version:restoreThisVersion" | "version:reverting" | "version:revertToPublished" | "version:revertUnsuccessful" | "version:saveDraft" | "version:scheduledSuccessfully" | "version:schedulePublish" | "version:selectLocales" | "version:selectVersionToCompare" | "version:showLocales" | "version:specificVersion" | "version:status" | "version:unpublish" | "version:unpublished" | "version:unpublishedSuccessfully" | "version:unpublishIn" | "version:unpublishing" | "version:versionAgo" | "version:versionID" | "version:versions" | "version:viewingVersion" | "version:viewingVersionGlobal" | "version:viewingVersions" | "version:viewingVersionsGlobal" | "general:aboutToDeleteCount" | "general:editingLabel" | "version:changedFieldsCount")[];
22
+ declare const clientTranslationKeys: ("authentication:account" | "authentication:accountOfCurrentUser" | "authentication:accountVerified" | "authentication:alreadyActivated" | "authentication:alreadyLoggedIn" | "authentication:apiKey" | "authentication:authenticated" | "authentication:backToLogin" | "authentication:beginCreateFirstUser" | "authentication:changePassword" | "authentication:checkYourEmailForPasswordReset" | "authentication:confirmGeneration" | "authentication:confirmPassword" | "authentication:createFirstUser" | "authentication:createUser" | "authentication:emailNotValid" | "authentication:emailOrUsername" | "authentication:emailSent" | "authentication:emailVerified" | "authentication:emailVerifiedRedirecting" | "authentication:enableAPIKey" | "authentication:failedToUnlock" | "authentication:forceUnlock" | "authentication:forgotPassword" | "authentication:forgotPasswordEmailInstructions" | "authentication:forgotPasswordUsernameInstructions" | "authentication:usernameNotValid" | "authentication:forgotPasswordQuestion" | "authentication:generate" | "authentication:generateNewAPIKey" | "authentication:generatingNewAPIKeyWillInvalidate" | "authentication:logBackIn" | "authentication:loggedIn" | "authentication:loggedInChangePassword" | "authentication:loggedOutInactivity" | "authentication:loggedOutSuccessfully" | "authentication:loggingOut" | "authentication:login" | "authentication:logOut" | "authentication:logout" | "authentication:logoutSuccessful" | "authentication:logoutUser" | "authentication:newAPIKeyGenerated" | "authentication:newPassword" | "authentication:notRedirected" | "authentication:passed" | "authentication:passwordResetSuccessfully" | "authentication:resetPassword" | "authentication:stayLoggedIn" | "authentication:successfullyRegisteredFirstUser" | "authentication:successfullyUnlocked" | "authentication:tokenRefreshSuccessful" | "authentication:unableToVerify" | "authentication:username" | "authentication:verified" | "authentication:verifiedSuccessfully" | "authentication:verify" | "authentication:verifyUser" | "authentication:youAreInactive" | "commandPalette:createNew" | "commandPalette:hintClose" | "commandPalette:hintCreate" | "commandPalette:hintNavigate" | "commandPalette:hintSelect" | "commandPalette:noResults" | "commandPalette:placeholder" | "commandPalette:title" | "dashboard:addButton" | "dashboard:addWidget" | "dashboard:deleteWidget" | "dashboard:discardConfirmLabel" | "dashboard:discardMessage" | "dashboard:discardTitle" | "dashboard:editDashboard" | "dashboard:editingDashboard" | "dashboard:noItems" | "dashboard:resetLayout" | "dashboard:searchWidgets" | "error:autosaving" | "error:correctInvalidFields" | "error:deletingTitle" | "error:documentNotFound" | "error:emailOrPasswordIncorrect" | "error:failedToResetLayout" | "error:failedToSaveLayout" | "error:insufficientClipboardPermissions" | "error:invalidClipboardData" | "error:invalidFileType" | "error:invalidRequestArgs" | "error:loadingDocument" | "error:logoutFailed" | "error:noMatchedField" | "error:notAllowedToAccessPage" | "error:notAllowedToPerformAction" | "error:previewing" | "error:problemUploadingFile" | "error:restoringTitle" | "error:revertingDocument" | "error:tokenNotProvided" | "error:unableToCopy" | "error:unableToDeleteCount" | "error:unableToReindexCollection" | "error:unableToUpdateCount" | "error:unauthorized" | "error:unauthorizedAdmin" | "error:unknown" | "error:unPublishingDocument" | "error:unspecific" | "error:unverifiedEmail" | "error:userEmailAlreadyRegistered" | "error:usernameAlreadyRegistered" | "error:usernameOrPasswordIncorrect" | "fields:blocks" | "fields:addLabel" | "fields:addLink" | "fields:addNew" | "fields:addNewLabel" | "fields:addRelationship" | "fields:addUpload" | "fields:block" | "fields:blockType" | "fields:chooseBetweenCustomTextOrDocument" | "fields:chooseDocumentToLink" | "fields:chooseFromExisting" | "fields:collapseAll" | "fields:customURL" | "fields:editLink" | "fields:editRelationship" | "fields:enterURL" | "fields:hidePassword" | "fields:internalLink" | "fields:itemsAndMore" | "fields:labelRelationship" | "fields:latitude" | "fields:linkedTo" | "fields:linkType" | "fields:longitude" | "fields:openInNewTab" | "fields:passwordsDoNotMatch" | "fields:removeRelationship" | "fields:removeUpload" | "fields:saveChanges" | "fields:searchForBlock" | "fields:searchForLanguage" | "fields:selectFieldsToEdit" | "fields:showAll" | "fields:showPassword" | "fields:swapRelationship" | "fields:swapUpload" | "fields:textToDisplay" | "fields:toggleBlock" | "fields:uploadNewLabel" | "general:items" | "general:of" | "general:language" | "general:dashboard" | "general:error" | "general:username" | "general:createNew" | "general:noResults" | "general:notFound" | "general:unauthorized" | "general:newLabel" | "general:saveChanges" | "general:name" | "general:aboutToDelete" | "general:aboutToPermanentlyDelete" | "general:aboutToPermanentlyDeleteTrash" | "general:aboutToRestore" | "general:aboutToRestoreAsDraft" | "general:aboutToRestoreAsDraftCount" | "general:aboutToRestoreCount" | "general:aboutToTrash" | "general:aboutToTrashCount" | "general:accepts" | "general:access" | "general:addBelow" | "general:addFilter" | "general:adminTheme" | "general:all" | "general:allCollections" | "general:allLocales" | "general:and" | "general:anotherUser" | "general:anotherUserTakenOver" | "general:applyChanges" | "general:ascending" | "general:auto" | "general:automatic" | "general:backToDashboard" | "general:by" | "general:cancel" | "general:changesNotSaved" | "general:checked" | "general:clear" | "general:clearAll" | "general:close" | "general:collapse" | "general:collection" | "general:collections" | "general:columns" | "general:columnToSort" | "general:confirm" | "general:confirmCopy" | "general:confirmDeletion" | "general:confirmDuplication" | "general:confirmMove" | "general:confirmReindex" | "general:confirmReindexAll" | "general:confirmReindexDescription" | "general:confirmReindexDescriptionAll" | "general:confirmRestoration" | "general:copied" | "general:copy" | "general:copyField" | "general:copying" | "general:copyRow" | "general:copyWarning" | "general:create" | "general:created" | "general:createdAt" | "general:createNewLabel" | "general:creating" | "general:creatingNewLabel" | "general:currentlyEditing" | "general:custom" | "general:dark" | "general:decrement" | "general:delete" | "general:deleted" | "general:deletedAgo" | "general:deletedAt" | "general:deletedCountSuccessfully" | "general:deletedSuccessfully" | "general:deleteLabel" | "general:deletePermanently" | "general:deleting" | "general:depth" | "general:descending" | "general:deselectAllRows" | "general:document" | "general:documentIsTrashed" | "general:documentLocked" | "general:documentModified" | "general:documentOutOfDate" | "general:documents" | "general:dragToReorder" | "general:duplicate" | "general:duplicateWithoutSaving" | "general:edit" | "general:editAll" | "general:editColumns" | "general:editedSince" | "general:editing" | "general:editingTakenOver" | "general:editLabel" | "general:email" | "general:emailAddress" | "general:emptyTrash" | "general:emptyTrashLabel" | "general:enhancedContrastMode" | "general:enterANumber" | "general:enterAValue" | "general:errors" | "general:exitLivePreview" | "general:expand" | "general:export" | "general:fallbackToDefaultLocale" | "general:false" | "general:field" | "general:filter" | "general:filters" | "general:filterWhere" | "general:globals" | "general:goBack" | "general:groupByLabel" | "general:hideSidebar" | "general:import" | "general:increment" | "general:isEditing" | "general:item" | "general:lastModified" | "general:layout" | "general:leaveAnyway" | "general:leaveWithoutSaving" | "general:light" | "general:livePreview" | "general:loading" | "general:loadMore" | "general:locale" | "general:locales" | "general:lock" | "general:manageLabel" | "general:menu" | "general:moreOptions" | "general:move" | "general:moveConfirm" | "general:moveCount" | "general:moveDown" | "general:moveUp" | "general:moving" | "general:movingCount" | "general:next" | "general:no" | "general:noDateSelected" | "general:noFiltersSet" | "general:noLabel" | "general:noMatchesFound" | "general:none" | "general:noOptions" | "general:noResultsDescription" | "general:noResultsFound" | "general:nothingFound" | "general:noTrashResults" | "general:notShownInTable" | "general:noUpcomingEventsScheduled" | "general:noValue" | "general:only" | "general:open" | "general:openInNewWindow" | "general:or" | "general:order" | "general:overwriteExistingData" | "general:pageNotFound" | "general:password" | "general:pasteField" | "general:pasteRow" | "general:payloadSettings" | "general:permanentlyDelete" | "general:permanentlyDeletedCountSuccessfully" | "general:perPage" | "general:perPageLabel" | "general:presets" | "general:previous" | "general:reindex" | "general:reindexingAll" | "general:reloadDocument" | "general:remove" | "general:rename" | "general:reset" | "general:resetPreferences" | "general:resetPreferencesDescription" | "general:resettingPreferences" | "general:restore" | "general:restoreAsPublished" | "general:restoredCountSuccessfully" | "general:restoring" | "general:retry" | "general:row" | "general:rows" | "general:save" | "general:saving" | "general:schedulePublishFor" | "general:searchBy" | "general:searchColumns" | "general:select" | "general:selectAll" | "general:selectAllRows" | "general:selectedCount" | "general:selectLabel" | "general:selectValue" | "general:settings" | "general:showAllLabel" | "general:shownInTable" | "general:showSidebar" | "general:sorryNotFound" | "general:sort" | "general:sortByLabelDirection" | "general:stayOnThisPage" | "general:submissionSuccessful" | "general:submit" | "general:submitting" | "general:success" | "general:successfullyCreated" | "general:successfullyDuplicated" | "general:successfullyReindexed" | "general:takeOver" | "general:theme" | "general:thisLanguage" | "general:time" | "general:timezone" | "general:titleDeleted" | "general:titleRestored" | "general:titleTrashed" | "general:toggle" | "general:trash" | "general:trashedCountSuccessfully" | "general:true" | "general:unchecked" | "general:unlock" | "general:unsavedChanges" | "general:unsavedChangesDuplicate" | "general:untitled" | "general:upcomingEvents" | "general:updatedAgo" | "general:updatedAt" | "general:updatedCountSuccessfully" | "general:updatedLabelSuccessfully" | "general:updatedSuccessfully" | "general:updateForEveryone" | "general:updating" | "general:uploading" | "general:uploadingBulk" | "general:user" | "general:users" | "general:value" | "general:viewing" | "general:viewReadOnly" | "general:welcome" | "general:where" | "general:yes" | "hierarchy:noResults" | "hierarchy:itemsMovedTo" | "hierarchy:itemsMovedToRoot" | "hierarchy:moveItemsToRootConfirmation" | "hierarchy:moveToRoot" | "hierarchy:noParent" | "hierarchy:searchLabel" | "localization:cannotCopySameLocale" | "localization:copyFrom" | "localization:copyFromTo" | "localization:copyTo" | "localization:copyToLocale" | "localization:localeToPublish" | "localization:selectedLocales" | "localization:selectLocaleToCopy" | "localization:selectLocaleToDuplicate" | "operators:contains" | "operators:equals" | "operators:exists" | "operators:intersects" | "operators:near" | "operators:within" | "operators:isGreaterThan" | "operators:isGreaterThanOrEqualTo" | "operators:isIn" | "operators:isLessThan" | "operators:isLessThanOrEqualTo" | "operators:isLike" | "operators:isNotEqualTo" | "operators:isNotIn" | "operators:isNotLike" | "upload:addFile" | "upload:addFiles" | "upload:bulkUpload" | "upload:crop" | "upload:cropToolDescription" | "upload:download" | "upload:dragAndDrop" | "upload:editImage" | "upload:fileName" | "upload:fileSize" | "upload:filesToUpload" | "upload:fileToUpload" | "upload:focalPoint" | "upload:focalPointDescription" | "upload:height" | "upload:noFile" | "upload:pasteURL" | "upload:previewSizes" | "upload:selectCollectionToBrowse" | "upload:selectFile" | "upload:setCropArea" | "upload:setFocalPoint" | "upload:sizes" | "upload:sizesFor" | "upload:width" | "validation:username" | "validation:emailAddress" | "validation:enterNumber" | "validation:fieldHasNo" | "validation:greaterThanMax" | "validation:invalidBlock" | "validation:invalidBlocks" | "validation:invalidInput" | "validation:invalidSelection" | "validation:invalidSelections" | "validation:latitudeOutOfBounds" | "validation:lessThanMin" | "validation:limitReached" | "validation:longerThanMin" | "validation:longitudeOutOfBounds" | "validation:notValidDate" | "validation:required" | "validation:requiresAtLeast" | "validation:requiresNoMoreThan" | "validation:requiresTwoNumbers" | "validation:shorterThanMax" | "validation:timezoneRequired" | "validation:trueOrFalse" | "validation:validUploadID" | "version:version" | "version:aboutToRestore" | "version:restoring" | "version:type" | "version:aboutToPublishSelection" | "version:aboutToRestoreGlobal" | "version:aboutToRevertToPublished" | "version:aboutToUnpublish" | "version:aboutToUnpublishIn" | "version:aboutToUnpublishSelection" | "version:autosave" | "version:autosavedSuccessfully" | "version:autosavedVersion" | "version:changed" | "version:compareVersions" | "version:comparingAgainst" | "version:confirmPublish" | "version:confirmRevertToSaved" | "version:confirmUnpublish" | "version:confirmVersionRestoration" | "version:currentDraft" | "version:currentlyPublished" | "version:currentlyViewing" | "version:currentPublishedVersion" | "version:draft" | "version:draftHasPublishedVersion" | "version:draftSavedSuccessfully" | "version:lastSavedAgo" | "version:modifiedOnly" | "version:moreVersions" | "version:noFurtherVersionsFound" | "version:noLabelGroup" | "version:noRowsFound" | "version:noRowsSelected" | "version:preview" | "version:previouslyDraft" | "version:previouslyPublished" | "version:previousVersion" | "version:problemRestoringVersion" | "version:publish" | "version:publishAllLocales" | "version:publishChanges" | "version:published" | "version:publishIn" | "version:publishing" | "version:restoreAsDraft" | "version:restoredSuccessfully" | "version:restoreThisVersion" | "version:reverting" | "version:revertToPublished" | "version:revertUnsuccessful" | "version:saveDraft" | "version:scheduledSuccessfully" | "version:schedulePublish" | "version:selectLocales" | "version:selectVersionToCompare" | "version:showLocales" | "version:specificVersion" | "version:status" | "version:unpublish" | "version:unpublished" | "version:unpublishedSuccessfully" | "version:unpublishIn" | "version:unpublishing" | "version:versionAgo" | "version:versionID" | "version:versions" | "version:viewingVersion" | "version:viewingVersionGlobal" | "version:viewingVersions" | "version:viewingVersionsGlobal" | "general:aboutToDeleteCount" | "general:editingLabel" | "version:changedFieldsCount")[];
23
23
 
24
24
  declare const enTranslations: {
25
25
  authentication: {
@@ -242,6 +242,7 @@ declare const enTranslations: {
242
242
  aboutToTrash: string;
243
243
  aboutToTrashCount: string;
244
244
  accepts: string;
245
+ access: string;
245
246
  addBelow: string;
246
247
  addFilter: string;
247
248
  adminTheme: string;
@@ -411,6 +412,7 @@ declare const enTranslations: {
411
412
  permanentlyDeletedCountSuccessfully: string;
412
413
  perPage: string;
413
414
  perPageLabel: string;
415
+ presets: string;
414
416
  previous: string;
415
417
  reindex: string;
416
418
  reindexingAll: string;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/query-presets/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAShD,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG,gBA8KrD,CAAA"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/query-presets/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAShD,eAAO,MAAM,0BAA0B,0BAA0B,CAAA;AAEjE,eAAO,MAAM,qBAAqB,GAAI,QAAQ,MAAM,KAAG,gBAqNrD,CAAA"}
@@ -23,25 +23,64 @@ export const getQueryPresetsConfig = (config)=>({
23
23
  {
24
24
  name: 'title',
25
25
  type: 'text',
26
+ admin: {
27
+ className: 'query-preset-title'
28
+ },
26
29
  required: true
27
30
  },
28
31
  {
29
- name: 'isShared',
30
- type: 'checkbox',
31
- defaultValue: false,
32
- validate: (isShared, { data })=>{
33
- const typedData = data;
34
- // ensure the `isShared` is only true if all constraints are 'onlyMe'
35
- if (typedData?.access) {
36
- const someOperationsAreShared = Object.values(typedData.access).some((operation)=>operation.constraint !== 'onlyMe');
37
- if (!isShared && someOperationsAreShared) {
38
- return 'If any constraint is not "onlyMe", the preset must be shared';
32
+ type: 'row',
33
+ admin: {
34
+ className: 'query-preset-controls-row'
35
+ },
36
+ fields: [
37
+ {
38
+ name: 'presetsHeading',
39
+ type: 'ui',
40
+ admin: {
41
+ components: {
42
+ Field: {
43
+ clientProps: {
44
+ i18nKey: 'general:presets'
45
+ },
46
+ path: '@payloadcms/ui#QueryPresetsHeading'
47
+ }
48
+ }
49
+ }
50
+ },
51
+ {
52
+ name: 'groupBy',
53
+ type: 'text',
54
+ admin: {
55
+ components: {
56
+ Cell: '@payloadcms/ui#QueryPresetsGroupByCell',
57
+ Field: '@payloadcms/ui#QueryPresetsGroupByField'
58
+ }
59
+ },
60
+ label: 'Group By'
61
+ },
62
+ {
63
+ name: 'columns',
64
+ type: 'json',
65
+ admin: {
66
+ components: {
67
+ Cell: '@payloadcms/ui#QueryPresetsColumnsCell',
68
+ Field: '@payloadcms/ui#QueryPresetsColumnField'
69
+ }
70
+ },
71
+ validate: (value)=>{
72
+ if (value) {
73
+ try {
74
+ JSON.parse(JSON.stringify(value));
75
+ } catch {
76
+ return 'Invalid JSON';
77
+ }
78
+ }
79
+ return true;
39
80
  }
40
81
  }
41
- return true;
42
- }
82
+ ]
43
83
  },
44
- getConstraints(config),
45
84
  {
46
85
  name: 'where',
47
86
  type: 'json',
@@ -69,36 +108,36 @@ export const getQueryPresetsConfig = (config)=>({
69
108
  label: 'Filters'
70
109
  },
71
110
  {
72
- name: 'columns',
73
- type: 'json',
111
+ name: 'accessHeading',
112
+ type: 'ui',
74
113
  admin: {
75
114
  components: {
76
- Cell: '@payloadcms/ui#QueryPresetsColumnsCell',
77
- Field: '@payloadcms/ui#QueryPresetsColumnField'
78
- }
79
- },
80
- validate: (value)=>{
81
- if (value) {
82
- try {
83
- JSON.parse(JSON.stringify(value));
84
- } catch {
85
- return 'Invalid JSON';
115
+ Field: {
116
+ clientProps: {
117
+ i18nKey: 'general:access'
118
+ },
119
+ path: '@payloadcms/ui#QueryPresetsHeading'
86
120
  }
87
121
  }
88
- return true;
89
122
  }
90
123
  },
91
124
  {
92
- name: 'groupBy',
93
- type: 'text',
94
- admin: {
95
- components: {
96
- Cell: '@payloadcms/ui#QueryPresetsGroupByCell',
97
- Field: '@payloadcms/ui#QueryPresetsGroupByField'
125
+ name: 'isShared',
126
+ type: 'checkbox',
127
+ defaultValue: false,
128
+ validate: (isShared, { data })=>{
129
+ const typedData = data;
130
+ // ensure the `isShared` is only true if all constraints are 'onlyMe'
131
+ if (typedData?.access) {
132
+ const someOperationsAreShared = Object.values(typedData.access).some((operation)=>operation.constraint !== 'onlyMe');
133
+ if (!isShared && someOperationsAreShared) {
134
+ return 'If any constraint is not "onlyMe", the preset must be shared';
135
+ }
98
136
  }
99
- },
100
- label: 'Group By'
137
+ return true;
138
+ }
101
139
  },
140
+ getConstraints(config),
102
141
  {
103
142
  name: 'relatedCollection',
104
143
  type: 'select',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-presets/config.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type { Option } from '../fields/config/types.js'\n\nimport { transformWhereQuery } from '../utilities/transformWhereQuery.js'\nimport { validateWhereQuery } from '../utilities/validateWhereQuery.js'\nimport { getAccess } from './access.js'\nimport { getConstraints } from './constraints.js'\nimport { operations, type QueryPreset } from './types.js'\n\nexport const queryPresetsCollectionSlug = 'payload-query-presets'\n\nexport const getQueryPresetsConfig = (config: Config): CollectionConfig => ({\n slug: queryPresetsCollectionSlug,\n access: getAccess(config),\n admin: {\n defaultColumns: ['title', 'isShared', 'access', 'where', 'columns', 'groupBy'],\n hidden: true,\n useAsTitle: 'title',\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n required: true,\n },\n {\n name: 'isShared',\n type: 'checkbox',\n defaultValue: false,\n validate: (isShared, { data }) => {\n const typedData = data as QueryPreset\n\n // ensure the `isShared` is only true if all constraints are 'onlyMe'\n if (typedData?.access) {\n const someOperationsAreShared = Object.values(typedData.access).some(\n (operation) => operation.constraint !== 'onlyMe',\n )\n\n if (!isShared && someOperationsAreShared) {\n return 'If any constraint is not \"onlyMe\", the preset must be shared'\n }\n }\n\n return true\n },\n },\n getConstraints(config),\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsWhereCell',\n Field: '@payloadcms/ui#QueryPresetsWhereField',\n },\n },\n hooks: {\n beforeValidate: [\n ({ data }) => {\n // transform the \"where\" query here so that the client-side doesn't have to\n if (data?.where) {\n if (validateWhereQuery(data.where)) {\n return data.where\n } else {\n return transformWhereQuery(data.where)\n }\n }\n\n return data?.where\n },\n ],\n },\n label: 'Filters',\n },\n {\n name: 'columns',\n type: 'json',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsColumnsCell',\n Field: '@payloadcms/ui#QueryPresetsColumnField',\n },\n },\n validate: (value) => {\n if (value) {\n try {\n JSON.parse(JSON.stringify(value))\n } catch {\n return 'Invalid JSON'\n }\n }\n\n return true\n },\n },\n {\n name: 'groupBy',\n type: 'text',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsGroupByCell',\n Field: '@payloadcms/ui#QueryPresetsGroupByField',\n },\n },\n label: 'Group By',\n },\n {\n name: 'relatedCollection',\n type: 'select',\n admin: {\n hidden: true,\n },\n options: config.collections\n ? config.collections.reduce((acc, collection) => {\n if (collection.enableQueryPresets) {\n acc.push({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })\n }\n return acc\n }, [] as Option[])\n : [],\n required: true,\n },\n {\n name: 'isTemp',\n type: 'checkbox',\n admin: {\n description:\n \"This is a temporary field used to determine if updating the preset would remove the user's access to it. When `true`, this record will be deleted after running the preset's `validate` function.\",\n disabled: true,\n hidden: true,\n },\n },\n ],\n hooks: {\n beforeValidate: [\n ({ data, operation }) => {\n // TODO: type this\n const typedData = data as any\n\n if (operation === 'create' || operation === 'update') {\n // Ensure all operations have a constraint\n operations.forEach((operation) => {\n if (!typedData.access) {\n typedData.access = {}\n }\n\n if (!typedData.access?.[operation]) {\n typedData[operation] = {}\n }\n\n // Ensure all operations have a constraint\n if (!typedData.access[operation]?.constraint) {\n typedData.access[operation] = {\n ...typedData.access[operation],\n constraint: 'onlyMe',\n }\n }\n })\n\n // If at least one constraint is not `onlyMe` then `isShared` must be true\n if (typedData?.access) {\n const someOperationsAreShared = Object.values(typedData.access).some(\n // TODO: remove the `any` here\n (operation: any) => operation.constraint !== 'onlyMe',\n )\n\n typedData.isShared = someOperationsAreShared\n }\n }\n\n return typedData\n },\n ],\n },\n labels: {\n plural: 'Presets',\n singular: 'Preset',\n ...(config.queryPresets?.labels || {}),\n },\n lockDocuments: false,\n select: ({ select }) => (select ? { ...select, relatedCollection: true } : undefined),\n versions: false,\n})\n"],"names":["transformWhereQuery","validateWhereQuery","getAccess","getConstraints","operations","queryPresetsCollectionSlug","getQueryPresetsConfig","config","slug","access","admin","defaultColumns","hidden","useAsTitle","fields","name","type","required","defaultValue","validate","isShared","data","typedData","someOperationsAreShared","Object","values","some","operation","constraint","components","Cell","Field","hooks","beforeValidate","where","label","value","JSON","parse","stringify","options","collections","reduce","acc","collection","enableQueryPresets","push","labels","plural","description","disabled","forEach","singular","queryPresets","lockDocuments","select","relatedCollection","undefined","versions"],"mappings":"AAIA,SAASA,mBAAmB,QAAQ,sCAAqC;AACzE,SAASC,kBAAkB,QAAQ,qCAAoC;AACvE,SAASC,SAAS,QAAQ,cAAa;AACvC,SAASC,cAAc,QAAQ,mBAAkB;AACjD,SAASC,UAAU,QAA0B,aAAY;AAEzD,OAAO,MAAMC,6BAA6B,wBAAuB;AAEjE,OAAO,MAAMC,wBAAwB,CAACC,SAAsC,CAAA;QAC1EC,MAAMH;QACNI,QAAQP,UAAUK;QAClBG,OAAO;YACLC,gBAAgB;gBAAC;gBAAS;gBAAY;gBAAU;gBAAS;gBAAW;aAAU;YAC9EC,QAAQ;YACRC,YAAY;QACd;QACAC,QAAQ;YACN;gBACEC,MAAM;gBACNC,MAAM;gBACNC,UAAU;YACZ;YACA;gBACEF,MAAM;gBACNC,MAAM;gBACNE,cAAc;gBACdC,UAAU,CAACC,UAAU,EAAEC,IAAI,EAAE;oBAC3B,MAAMC,YAAYD;oBAElB,qEAAqE;oBACrE,IAAIC,WAAWb,QAAQ;wBACrB,MAAMc,0BAA0BC,OAAOC,MAAM,CAACH,UAAUb,MAAM,EAAEiB,IAAI,CAClE,CAACC,YAAcA,UAAUC,UAAU,KAAK;wBAG1C,IAAI,CAACR,YAAYG,yBAAyB;4BACxC,OAAO;wBACT;oBACF;oBAEA,OAAO;gBACT;YACF;YACApB,eAAeI;YACf;gBACEQ,MAAM;gBACNC,MAAM;gBACNN,OAAO;oBACLmB,YAAY;wBACVC,MAAM;wBACNC,OAAO;oBACT;gBACF;gBACAC,OAAO;oBACLC,gBAAgB;wBACd,CAAC,EAAEZ,IAAI,EAAE;4BACP,2EAA2E;4BAC3E,IAAIA,MAAMa,OAAO;gCACf,IAAIjC,mBAAmBoB,KAAKa,KAAK,GAAG;oCAClC,OAAOb,KAAKa,KAAK;gCACnB,OAAO;oCACL,OAAOlC,oBAAoBqB,KAAKa,KAAK;gCACvC;4BACF;4BAEA,OAAOb,MAAMa;wBACf;qBACD;gBACH;gBACAC,OAAO;YACT;YACA;gBACEpB,MAAM;gBACNC,MAAM;gBACNN,OAAO;oBACLmB,YAAY;wBACVC,MAAM;wBACNC,OAAO;oBACT;gBACF;gBACAZ,UAAU,CAACiB;oBACT,IAAIA,OAAO;wBACT,IAAI;4BACFC,KAAKC,KAAK,CAACD,KAAKE,SAAS,CAACH;wBAC5B,EAAE,OAAM;4BACN,OAAO;wBACT;oBACF;oBAEA,OAAO;gBACT;YACF;YACA;gBACErB,MAAM;gBACNC,MAAM;gBACNN,OAAO;oBACLmB,YAAY;wBACVC,MAAM;wBACNC,OAAO;oBACT;gBACF;gBACAI,OAAO;YACT;YACA;gBACEpB,MAAM;gBACNC,MAAM;gBACNN,OAAO;oBACLE,QAAQ;gBACV;gBACA4B,SAASjC,OAAOkC,WAAW,GACvBlC,OAAOkC,WAAW,CAACC,MAAM,CAAC,CAACC,KAAKC;oBAC9B,IAAIA,WAAWC,kBAAkB,EAAE;wBACjCF,IAAIG,IAAI,CAAC;4BACPX,OAAOS,WAAWG,MAAM,EAAEC,UAAUJ,WAAWpC,IAAI;4BACnD4B,OAAOQ,WAAWpC,IAAI;wBACxB;oBACF;oBACA,OAAOmC;gBACT,GAAG,EAAE,IACL,EAAE;gBACN1B,UAAU;YACZ;YACA;gBACEF,MAAM;gBACNC,MAAM;gBACNN,OAAO;oBACLuC,aACE;oBACFC,UAAU;oBACVtC,QAAQ;gBACV;YACF;SACD;QACDoB,OAAO;YACLC,gBAAgB;gBACd,CAAC,EAAEZ,IAAI,EAAEM,SAAS,EAAE;oBAClB,kBAAkB;oBAClB,MAAML,YAAYD;oBAElB,IAAIM,cAAc,YAAYA,cAAc,UAAU;wBACpD,0CAA0C;wBAC1CvB,WAAW+C,OAAO,CAAC,CAACxB;4BAClB,IAAI,CAACL,UAAUb,MAAM,EAAE;gCACrBa,UAAUb,MAAM,GAAG,CAAC;4BACtB;4BAEA,IAAI,CAACa,UAAUb,MAAM,EAAE,CAACkB,UAAU,EAAE;gCAClCL,SAAS,CAACK,UAAU,GAAG,CAAC;4BAC1B;4BAEA,0CAA0C;4BAC1C,IAAI,CAACL,UAAUb,MAAM,CAACkB,UAAU,EAAEC,YAAY;gCAC5CN,UAAUb,MAAM,CAACkB,UAAU,GAAG;oCAC5B,GAAGL,UAAUb,MAAM,CAACkB,UAAU;oCAC9BC,YAAY;gCACd;4BACF;wBACF;wBAEA,0EAA0E;wBAC1E,IAAIN,WAAWb,QAAQ;4BACrB,MAAMc,0BAA0BC,OAAOC,MAAM,CAACH,UAAUb,MAAM,EAAEiB,IAAI,CAClE,8BAA8B;4BAC9B,CAACC,YAAmBA,UAAUC,UAAU,KAAK;4BAG/CN,UAAUF,QAAQ,GAAGG;wBACvB;oBACF;oBAEA,OAAOD;gBACT;aACD;QACH;QACAyB,QAAQ;YACNC,QAAQ;YACRI,UAAU;YACV,GAAI7C,OAAO8C,YAAY,EAAEN,UAAU,CAAC,CAAC;QACvC;QACAO,eAAe;QACfC,QAAQ,CAAC,EAAEA,MAAM,EAAE,GAAMA,SAAS;gBAAE,GAAGA,MAAM;gBAAEC,mBAAmB;YAAK,IAAIC;QAC3EC,UAAU;IACZ,CAAA,EAAE"}
1
+ {"version":3,"sources":["../../src/query-presets/config.ts"],"sourcesContent":["import type { CollectionConfig } from '../collections/config/types.js'\nimport type { Config } from '../config/types.js'\nimport type { Option } from '../fields/config/types.js'\n\nimport { transformWhereQuery } from '../utilities/transformWhereQuery.js'\nimport { validateWhereQuery } from '../utilities/validateWhereQuery.js'\nimport { getAccess } from './access.js'\nimport { getConstraints } from './constraints.js'\nimport { operations, type QueryPreset } from './types.js'\n\nexport const queryPresetsCollectionSlug = 'payload-query-presets'\n\nexport const getQueryPresetsConfig = (config: Config): CollectionConfig => ({\n slug: queryPresetsCollectionSlug,\n access: getAccess(config),\n admin: {\n defaultColumns: ['title', 'isShared', 'access', 'where', 'columns', 'groupBy'],\n hidden: true,\n useAsTitle: 'title',\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n admin: {\n className: 'query-preset-title',\n },\n required: true,\n },\n {\n type: 'row',\n admin: {\n className: 'query-preset-controls-row',\n },\n fields: [\n {\n name: 'presetsHeading',\n type: 'ui',\n admin: {\n components: {\n Field: {\n clientProps: {\n i18nKey: 'general:presets',\n },\n path: '@payloadcms/ui#QueryPresetsHeading',\n },\n },\n },\n },\n {\n name: 'groupBy',\n type: 'text',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsGroupByCell',\n Field: '@payloadcms/ui#QueryPresetsGroupByField',\n },\n },\n label: 'Group By',\n },\n {\n name: 'columns',\n type: 'json',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsColumnsCell',\n Field: '@payloadcms/ui#QueryPresetsColumnField',\n },\n },\n validate: (value) => {\n if (value) {\n try {\n JSON.parse(JSON.stringify(value))\n } catch {\n return 'Invalid JSON'\n }\n }\n\n return true\n },\n },\n ],\n },\n {\n name: 'where',\n type: 'json',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsWhereCell',\n Field: '@payloadcms/ui#QueryPresetsWhereField',\n },\n },\n hooks: {\n beforeValidate: [\n ({ data }) => {\n // transform the \"where\" query here so that the client-side doesn't have to\n if (data?.where) {\n if (validateWhereQuery(data.where)) {\n return data.where\n } else {\n return transformWhereQuery(data.where)\n }\n }\n\n return data?.where\n },\n ],\n },\n label: 'Filters',\n },\n {\n name: 'accessHeading',\n type: 'ui',\n admin: {\n components: {\n Field: {\n clientProps: {\n i18nKey: 'general:access',\n },\n path: '@payloadcms/ui#QueryPresetsHeading',\n },\n },\n },\n },\n {\n name: 'isShared',\n type: 'checkbox',\n defaultValue: false,\n validate: (isShared, { data }) => {\n const typedData = data as QueryPreset\n\n // ensure the `isShared` is only true if all constraints are 'onlyMe'\n if (typedData?.access) {\n const someOperationsAreShared = Object.values(typedData.access).some(\n (operation) => operation.constraint !== 'onlyMe',\n )\n\n if (!isShared && someOperationsAreShared) {\n return 'If any constraint is not \"onlyMe\", the preset must be shared'\n }\n }\n\n return true\n },\n },\n getConstraints(config),\n {\n name: 'relatedCollection',\n type: 'select',\n admin: {\n hidden: true,\n },\n options: config.collections\n ? config.collections.reduce((acc, collection) => {\n if (collection.enableQueryPresets) {\n acc.push({\n label: collection.labels?.plural || collection.slug,\n value: collection.slug,\n })\n }\n return acc\n }, [] as Option[])\n : [],\n required: true,\n },\n {\n name: 'isTemp',\n type: 'checkbox',\n admin: {\n description:\n \"This is a temporary field used to determine if updating the preset would remove the user's access to it. When `true`, this record will be deleted after running the preset's `validate` function.\",\n disabled: true,\n hidden: true,\n },\n },\n ],\n hooks: {\n beforeValidate: [\n ({ data, operation }) => {\n // TODO: type this\n const typedData = data as any\n\n if (operation === 'create' || operation === 'update') {\n // Ensure all operations have a constraint\n operations.forEach((operation) => {\n if (!typedData.access) {\n typedData.access = {}\n }\n\n if (!typedData.access?.[operation]) {\n typedData[operation] = {}\n }\n\n // Ensure all operations have a constraint\n if (!typedData.access[operation]?.constraint) {\n typedData.access[operation] = {\n ...typedData.access[operation],\n constraint: 'onlyMe',\n }\n }\n })\n\n // If at least one constraint is not `onlyMe` then `isShared` must be true\n if (typedData?.access) {\n const someOperationsAreShared = Object.values(typedData.access).some(\n // TODO: remove the `any` here\n (operation: any) => operation.constraint !== 'onlyMe',\n )\n\n typedData.isShared = someOperationsAreShared\n }\n }\n\n return typedData\n },\n ],\n },\n labels: {\n plural: 'Presets',\n singular: 'Preset',\n ...(config.queryPresets?.labels || {}),\n },\n lockDocuments: false,\n select: ({ select }) => (select ? { ...select, relatedCollection: true } : undefined),\n versions: false,\n})\n"],"names":["transformWhereQuery","validateWhereQuery","getAccess","getConstraints","operations","queryPresetsCollectionSlug","getQueryPresetsConfig","config","slug","access","admin","defaultColumns","hidden","useAsTitle","fields","name","type","className","required","components","Field","clientProps","i18nKey","path","Cell","label","validate","value","JSON","parse","stringify","hooks","beforeValidate","data","where","defaultValue","isShared","typedData","someOperationsAreShared","Object","values","some","operation","constraint","options","collections","reduce","acc","collection","enableQueryPresets","push","labels","plural","description","disabled","forEach","singular","queryPresets","lockDocuments","select","relatedCollection","undefined","versions"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/query-presets/constraints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,2BAA2B,CAAA;AAuB9D,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,KA2F9C,CAAA"}
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../../src/query-presets/constraints.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,KAAK,EAAU,MAAM,2BAA2B,CAAA;AAuB9D,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,KA4F9C,CAAA"}
@@ -21,6 +21,7 @@ export const getConstraints = (config)=>({
21
21
  name: 'access',
22
22
  type: 'group',
23
23
  admin: {
24
+ className: 'query-preset-access-group',
24
25
  components: {
25
26
  Cell: '@payloadcms/ui#QueryPresetsAccessCell'
26
27
  },
@@ -96,7 +97,7 @@ export const getConstraints = (config)=>({
96
97
  ],
97
98
  label: ()=>toWords(constraintOperation)
98
99
  })),
99
- label: 'Sharing settings',
100
+ label: false,
100
101
  validate: preventLockout
101
102
  });
102
103
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/query-presets/constraints.ts"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\n\nimport type { Config } from '../config/types.js'\nimport type { Field, Option } from '../fields/config/types.js'\nimport type { QueryPresetConstraint } from './types.js'\n\nimport { fieldAffectsData } from '../fields/config/types.js'\nimport { toWords } from '../utilities/formatLabels.js'\nimport { preventLockout } from './preventLockout.js'\nimport { operations } from './types.js'\n\nconst defaultConstraintOptions: Option[] = [\n {\n label: 'Everyone',\n value: 'everyone',\n },\n {\n label: 'Only Me',\n value: 'onlyMe',\n },\n {\n label: 'Specific Users',\n value: 'specificUsers',\n },\n]\n\nexport const getConstraints = (config: Config): Field => ({\n name: 'access',\n type: 'group',\n admin: {\n components: {\n Cell: '@payloadcms/ui#QueryPresetsAccessCell',\n },\n condition: (data) => Boolean(data?.isShared),\n },\n fields: operations.map((constraintOperation) => ({\n type: 'collapsible',\n fields: [\n {\n name: constraintOperation,\n type: 'group',\n admin: {\n hideGutter: true,\n },\n fields: [\n {\n name: 'constraint',\n type: 'select',\n defaultValue: 'onlyMe',\n filterOptions: (args) =>\n typeof config?.queryPresets?.filterConstraints === 'function'\n ? config.queryPresets.filterConstraints(args)\n : args.options,\n label: ({ i18n }) =>\n `Specify who can ${constraintOperation} this ${getTranslation(config.queryPresets?.labels?.singular || 'Preset', i18n)}`,\n options: [\n ...defaultConstraintOptions,\n ...(config?.queryPresets?.constraints?.[constraintOperation]?.map(\n (option: QueryPresetConstraint) => ({\n label: option.label,\n value: option.value,\n }),\n ) || []),\n ],\n },\n {\n name: 'users',\n type: 'relationship',\n admin: {\n condition: (data) =>\n Boolean(data?.access?.[constraintOperation]?.constraint === 'specificUsers'),\n },\n hasMany: true,\n hooks: {\n beforeChange: [\n ({ data, req }) => {\n if (data?.access?.[constraintOperation]?.constraint === 'onlyMe' && req.user) {\n return [req.user.id]\n }\n\n if (\n data?.access?.[constraintOperation]?.constraint === 'specificUsers' &&\n req.user\n ) {\n return [...(data?.access?.[constraintOperation]?.users || []), req.user.id]\n }\n },\n ],\n },\n relationTo: config.admin?.user ?? 'users', // TODO: remove this fallback when the args are properly typed as `SanitizedConfig`\n },\n ...(config?.queryPresets?.constraints?.[constraintOperation]?.reduce(\n (acc: Field[], option: QueryPresetConstraint) => {\n option.fields?.forEach((field, index) => {\n acc.push({ ...field })\n\n if (fieldAffectsData(field)) {\n acc[index]!.admin = {\n ...(acc[index]?.admin || {}),\n condition: (data) =>\n Boolean(data?.access?.[constraintOperation]?.constraint === option.value),\n }\n }\n })\n\n return acc\n },\n [] as Field[],\n ) || []),\n ],\n label: false,\n },\n ],\n label: () => toWords(constraintOperation),\n })),\n label: 'Sharing settings',\n validate: preventLockout,\n})\n"],"names":["getTranslation","fieldAffectsData","toWords","preventLockout","operations","defaultConstraintOptions","label","value","getConstraints","config","name","type","admin","components","Cell","condition","data","Boolean","isShared","fields","map","constraintOperation","hideGutter","defaultValue","filterOptions","args","queryPresets","filterConstraints","options","i18n","labels","singular","constraints","option","access","constraint","hasMany","hooks","beforeChange","req","user","id","users","relationTo","reduce","acc","forEach","field","index","push","validate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/query-presets/constraints.ts"],"sourcesContent":["import { getTranslation } from '@payloadcms/translations'\n\nimport type { Config } from '../config/types.js'\nimport type { Field, Option } from '../fields/config/types.js'\nimport type { QueryPresetConstraint } from './types.js'\n\nimport { fieldAffectsData } from '../fields/config/types.js'\nimport { toWords } from '../utilities/formatLabels.js'\nimport { preventLockout } from './preventLockout.js'\nimport { operations } from './types.js'\n\nconst defaultConstraintOptions: Option[] = [\n {\n label: 'Everyone',\n value: 'everyone',\n },\n {\n label: 'Only Me',\n value: 'onlyMe',\n },\n {\n label: 'Specific Users',\n value: 'specificUsers',\n },\n]\n\nexport const getConstraints = (config: Config): Field => ({\n name: 'access',\n type: 'group',\n admin: {\n className: 'query-preset-access-group',\n components: {\n Cell: '@payloadcms/ui#QueryPresetsAccessCell',\n },\n condition: (data) => Boolean(data?.isShared),\n },\n fields: operations.map((constraintOperation) => ({\n type: 'collapsible',\n fields: [\n {\n name: constraintOperation,\n type: 'group',\n admin: {\n hideGutter: true,\n },\n fields: [\n {\n name: 'constraint',\n type: 'select',\n defaultValue: 'onlyMe',\n filterOptions: (args) =>\n typeof config?.queryPresets?.filterConstraints === 'function'\n ? config.queryPresets.filterConstraints(args)\n : args.options,\n label: ({ i18n }) =>\n `Specify who can ${constraintOperation} this ${getTranslation(config.queryPresets?.labels?.singular || 'Preset', i18n)}`,\n options: [\n ...defaultConstraintOptions,\n ...(config?.queryPresets?.constraints?.[constraintOperation]?.map(\n (option: QueryPresetConstraint) => ({\n label: option.label,\n value: option.value,\n }),\n ) || []),\n ],\n },\n {\n name: 'users',\n type: 'relationship',\n admin: {\n condition: (data) =>\n Boolean(data?.access?.[constraintOperation]?.constraint === 'specificUsers'),\n },\n hasMany: true,\n hooks: {\n beforeChange: [\n ({ data, req }) => {\n if (data?.access?.[constraintOperation]?.constraint === 'onlyMe' && req.user) {\n return [req.user.id]\n }\n\n if (\n data?.access?.[constraintOperation]?.constraint === 'specificUsers' &&\n req.user\n ) {\n return [...(data?.access?.[constraintOperation]?.users || []), req.user.id]\n }\n },\n ],\n },\n relationTo: config.admin?.user ?? 'users', // TODO: remove this fallback when the args are properly typed as `SanitizedConfig`\n },\n ...(config?.queryPresets?.constraints?.[constraintOperation]?.reduce(\n (acc: Field[], option: QueryPresetConstraint) => {\n option.fields?.forEach((field, index) => {\n acc.push({ ...field })\n\n if (fieldAffectsData(field)) {\n acc[index]!.admin = {\n ...(acc[index]?.admin || {}),\n condition: (data) =>\n Boolean(data?.access?.[constraintOperation]?.constraint === option.value),\n }\n }\n })\n\n return acc\n },\n [] as Field[],\n ) || []),\n ],\n label: false,\n },\n ],\n label: () => toWords(constraintOperation),\n })),\n label: false,\n validate: preventLockout,\n})\n"],"names":["getTranslation","fieldAffectsData","toWords","preventLockout","operations","defaultConstraintOptions","label","value","getConstraints","config","name","type","admin","className","components","Cell","condition","data","Boolean","isShared","fields","map","constraintOperation","hideGutter","defaultValue","filterOptions","args","queryPresets","filterConstraints","options","i18n","labels","singular","constraints","option","access","constraint","hasMany","hooks","beforeChange","req","user","id","users","relationTo","reduce","acc","forEach","field","index","push","validate"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "4.0.0-canary.3",
3
+ "version": "4.0.0-internal.011fd46",
4
4
  "description": "Node, React, Headless CMS and Application Framework built on Next.js",
5
5
  "keywords": [
6
6
  "admin panel",
@@ -115,7 +115,7 @@
115
115
  "undici": "7.25.0",
116
116
  "uuid": "14.0.0",
117
117
  "ws": "^8.16.0",
118
- "@payloadcms/translations": "4.0.0-canary.3"
118
+ "@payloadcms/translations": "4.0.0-internal.011fd46"
119
119
  },
120
120
  "devDependencies": {
121
121
  "@hyrious/esbuild-plugin-commonjs": "0.2.6",