@payloadcms/ui 3.55.0-internal.d44d1d3 → 3.55.0-internal.df60e35

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.
Files changed (171) hide show
  1. package/dist/elements/Autosave/index.js +2 -2
  2. package/dist/elements/Autosave/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/EditForm/index.js +4 -18
  4. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  5. package/dist/elements/ClipboardAction/index.js +173 -74
  6. package/dist/elements/ClipboardAction/index.js.map +1 -1
  7. package/dist/elements/CodeEditor/CodeEditor.js +155 -67
  8. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  9. package/dist/elements/Collapsible/index.js +15 -7
  10. package/dist/elements/Collapsible/index.js.map +1 -1
  11. package/dist/elements/ConfirmationModal/index.js +44 -8
  12. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  13. package/dist/elements/CopyLocaleData/index.js +97 -89
  14. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  15. package/dist/elements/CopyToClipboard/index.js +22 -2
  16. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.js +83 -47
  18. package/dist/elements/DeleteMany/index.js.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +55 -27
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
  22. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.js +99 -47
  24. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  25. package/dist/elements/DocumentFields/index.scss +1 -1
  26. package/dist/elements/Drawer/index.js +57 -23
  27. package/dist/elements/Drawer/index.js.map +1 -1
  28. package/dist/elements/DrawerActionHeader/index.js +21 -3
  29. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  30. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
  31. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  32. package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
  33. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  34. package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
  35. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  36. package/dist/elements/FullscreenModal/index.js +20 -10
  37. package/dist/elements/FullscreenModal/index.js.map +1 -1
  38. package/dist/elements/ListDrawer/index.js +24 -18
  39. package/dist/elements/ListDrawer/index.js.map +1 -1
  40. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
  41. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  42. package/dist/elements/ListHeaderTabs/DefaultListPill.js +8 -15
  43. package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +1 -1
  44. package/dist/elements/ListSelection/index.js +27 -11
  45. package/dist/elements/ListSelection/index.js.map +1 -1
  46. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  47. package/dist/elements/LivePreview/Window/index.js +152 -71
  48. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  49. package/dist/elements/Loading/index.js +11 -2
  50. package/dist/elements/Loading/index.js.map +1 -1
  51. package/dist/elements/LoadingOverlay/index.js +102 -46
  52. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  53. package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
  54. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  55. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  56. package/dist/elements/PublishButton/index.js +22 -11
  57. package/dist/elements/PublishButton/index.js.map +1 -1
  58. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
  59. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  60. package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
  61. package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
  62. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  63. package/dist/elements/SelectRow/index.js +40 -39
  64. package/dist/elements/SelectRow/index.js.map +1 -1
  65. package/dist/elements/ShimmerEffect/index.js +12 -20
  66. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  67. package/dist/elements/SortColumn/index.js +30 -21
  68. package/dist/elements/SortColumn/index.js.map +1 -1
  69. package/dist/elements/Status/index.d.ts.map +1 -1
  70. package/dist/elements/Status/index.js +19 -9
  71. package/dist/elements/Status/index.js.map +1 -1
  72. package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
  73. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  74. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
  75. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  76. package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
  77. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  78. package/dist/elements/Thumbnail/index.js +75 -35
  79. package/dist/elements/Thumbnail/index.js.map +1 -1
  80. package/dist/elements/ThumbnailCard/index.js +26 -17
  81. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  82. package/dist/elements/Tooltip/index.js +127 -51
  83. package/dist/elements/Tooltip/index.js.map +1 -1
  84. package/dist/elements/Upload/index.js +10 -2
  85. package/dist/elements/Upload/index.js.map +1 -1
  86. package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
  87. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  88. package/dist/exports/client/{CodeEditor-O6BWJHD2.js → CodeEditor-MIIBUJZ4.js} +2 -2
  89. package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
  90. package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
  91. package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
  92. package/dist/exports/client/{chunk-FXAFULZQ.js → chunk-Z6O2JA43.js} +6 -6
  93. package/dist/exports/client/{chunk-FXAFULZQ.js.map → chunk-Z6O2JA43.js.map} +3 -3
  94. package/dist/exports/client/index.d.ts +2 -3
  95. package/dist/exports/client/index.d.ts.map +1 -1
  96. package/dist/exports/client/index.js +24 -24
  97. package/dist/exports/client/index.js.map +4 -4
  98. package/dist/fields/Array/ArrayRow.d.ts +3 -2
  99. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  100. package/dist/fields/Array/ArrayRow.js +23 -13
  101. package/dist/fields/Array/ArrayRow.js.map +1 -1
  102. package/dist/fields/Array/index.js +477 -273
  103. package/dist/fields/Array/index.js.map +1 -1
  104. package/dist/fields/Checkbox/Input.js +19 -2
  105. package/dist/fields/Checkbox/Input.js.map +1 -1
  106. package/dist/fields/FieldError/index.js +29 -30
  107. package/dist/fields/FieldError/index.js.map +1 -1
  108. package/dist/fields/FieldLabel/index.js +64 -12
  109. package/dist/fields/FieldLabel/index.js.map +1 -1
  110. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
  111. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  112. package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
  113. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  114. package/dist/fields/Row/index.d.ts +3 -1
  115. package/dist/fields/Row/index.d.ts.map +1 -1
  116. package/dist/fields/Select/Input.js +31 -18
  117. package/dist/fields/Select/Input.js.map +1 -1
  118. package/dist/fields/Tabs/Tab/index.js +11 -2
  119. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  120. package/dist/fields/Tabs/index.d.ts +1 -2
  121. package/dist/fields/Tabs/index.d.ts.map +1 -1
  122. package/dist/fields/Tabs/index.js +225 -185
  123. package/dist/fields/Tabs/index.js.map +1 -1
  124. package/dist/fields/Upload/RelationshipContent/index.js +127 -79
  125. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  126. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  127. package/dist/forms/Form/fieldReducer.js +15 -13
  128. package/dist/forms/Form/fieldReducer.js.map +1 -1
  129. package/dist/forms/RenderFields/RenderField.js +237 -245
  130. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  131. package/dist/forms/RenderFields/types.d.ts +10 -2
  132. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  133. package/dist/forms/RenderFields/types.js.map +1 -1
  134. package/dist/forms/useField/index.d.ts +0 -5
  135. package/dist/forms/useField/index.d.ts.map +1 -1
  136. package/dist/forms/useField/index.js +45 -74
  137. package/dist/forms/useField/index.js.map +1 -1
  138. package/dist/hooks/useIntersect.js +53 -35
  139. package/dist/hooks/useIntersect.js.map +1 -1
  140. package/dist/hooks/usePayloadAPI.js +44 -36
  141. package/dist/hooks/usePayloadAPI.js.map +1 -1
  142. package/dist/providers/LivePreview/context.d.ts +0 -2
  143. package/dist/providers/LivePreview/context.d.ts.map +1 -1
  144. package/dist/providers/LivePreview/context.js +0 -1
  145. package/dist/providers/LivePreview/context.js.map +1 -1
  146. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  147. package/dist/providers/LivePreview/index.js +0 -12
  148. package/dist/providers/LivePreview/index.js.map +1 -1
  149. package/dist/providers/ServerFunctions/index.d.ts +1 -1
  150. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  151. package/dist/providers/ServerFunctions/index.js.map +1 -1
  152. package/dist/styles.css +1 -1
  153. package/dist/utilities/buildFormState.d.ts.map +1 -1
  154. package/dist/utilities/buildFormState.js +5 -0
  155. package/dist/utilities/buildFormState.js.map +1 -1
  156. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  157. package/dist/utilities/reduceFieldsToOptions.js +16 -1
  158. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  159. package/dist/utilities/traverseForLocalizedFields.d.ts +3 -0
  160. package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -0
  161. package/dist/utilities/traverseForLocalizedFields.js +40 -0
  162. package/dist/utilities/traverseForLocalizedFields.js.map +1 -0
  163. package/dist/views/BrowseByFolder/index.js +55 -37
  164. package/dist/views/BrowseByFolder/index.js.map +1 -1
  165. package/dist/views/CollectionFolder/index.js +40 -13
  166. package/dist/views/CollectionFolder/index.js.map +1 -1
  167. package/dist/views/Edit/Auth/index.js +105 -93
  168. package/dist/views/Edit/Auth/index.js.map +1 -1
  169. package/package.json +8 -8
  170. /package/dist/exports/client/{CodeEditor-O6BWJHD2.js.map → CodeEditor-MIIBUJZ4.js.map} +0 -0
  171. /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAsD9B,CAAA;AAED,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CAoJrC,CAAA"}
1
+ {"version":3,"file":"buildFormState.d.ts","sourceRoot":"","sources":["../../src/utilities/buildFormState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACf,MAAM,SAAS,CAAA;AAYhB,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACnC,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,KAAK,EAAE,SAAS,CAAA;CACjB,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,2BAA2B,CAAA;AAE1F,eAAO,MAAM,qBAAqB,EAAE,cAAc,CAChD,kBAAkB,EAClB,OAAO,CAAC,oBAAoB,CAAC,CAsD9B,CAAA;AAED,eAAO,MAAM,cAAc,SACnB,kBAAkB,KACvB,OAAO,CAAC,2BAA2B,CA0JrC,CAAA"}
@@ -139,6 +139,11 @@ export const buildFormState = async args => {
139
139
  * so we can safely map over them within `fieldSchemasToFormState`
140
140
  */
141
141
  const fields = Array.isArray(fieldOrEntityConfig) ? fieldOrEntityConfig : 'fields' in fieldOrEntityConfig ? fieldOrEntityConfig.fields : [fieldOrEntityConfig];
142
+ // Ensure data.id is present during form state requests, where the data
143
+ // is passed from the client as an argument, without the ID
144
+ if (!data.id && id) {
145
+ data.id = id;
146
+ }
142
147
  const formStateResult = await fieldSchemasToFormState({
143
148
  id,
144
149
  clientFieldSchemaMap: clientSchemaMap,
@@ -1 +1 @@
1
- {"version":3,"file":"buildFormState.js","names":["formatErrors","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","buildFormStateHandler","args","req","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","res","buildFormState","err","logger","error","msg","message","id","idFromArgs","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","readOnly","renderAllFields","i18n","returnLockStatus","schemaPath","select","skipValidation","updateLastEdited","selectMode","undefined","schemaMap","clientSchemaMap","importMap","fieldOrEntityConfig","get","fields","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","upload","file","lockedStateResult","lockedState","state"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { formatErrors } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user: ClientUser | number | string\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n lockedState?: LockedState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n lockedState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n try {\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const res = await buildFormState(args)\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new Error('Unauthorized')\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLockStatus,\n schemaPath = collectionSlug || globalSlug,\n select,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n if (!collectionSlug && !globalSlug) {\n throw new Error('Either collectionSlug or globalSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({ config, i18n, importMap: req.payload.importMap }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n return {\n lockedState: lockedStateResult,\n state: formStateResult,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"buildFormState.js","names":["formatErrors","getSelectMode","reduceFieldsToValues","fieldSchemasToFormState","renderField","getClientConfig","getClientSchemaMap","getSchemaMap","handleFormStateLocking","buildFormStateHandler","args","req","incomingUserSlug","user","collection","adminUserSlug","payload","config","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","res","buildFormState","err","logger","error","msg","message","id","idFromArgs","collectionSlug","data","incomingData","docPermissions","docPreferences","documentFormState","formState","globalSlug","initialBlockData","initialBlockFormState","mockRSCs","operation","readOnly","renderAllFields","i18n","returnLockStatus","schemaPath","select","skipValidation","updateLastEdited","selectMode","undefined","schemaMap","clientSchemaMap","importMap","fieldOrEntityConfig","get","fields","type","documentData","blockData","Array","isArray","formStateResult","clientFieldSchemaMap","fieldSchemaMap","permissions","preferences","previousFormState","renderFieldFn","upload","file","lockedStateResult","lockedState","state"],"sources":["../../src/utilities/buildFormState.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientConfig,\n ClientUser,\n ErrorResult,\n FormState,\n ServerFunction,\n} from 'payload'\n\nimport { formatErrors } from 'payload'\nimport { getSelectMode, reduceFieldsToValues } from 'payload/shared'\n\nimport { fieldSchemasToFormState } from '../forms/fieldSchemasToFormState/index.js'\nimport { renderField } from '../forms/fieldSchemasToFormState/renderField.js'\nimport { getClientConfig } from './getClientConfig.js'\nimport { getClientSchemaMap } from './getClientSchemaMap.js'\nimport { getSchemaMap } from './getSchemaMap.js'\nimport { handleFormStateLocking } from './handleFormStateLocking.js'\n\nexport type LockedState = {\n isLocked: boolean\n lastEditedAt: string\n user: ClientUser | number | string\n}\n\ntype BuildFormStateSuccessResult = {\n clientConfig?: ClientConfig\n errors?: never\n indexPath?: string\n lockedState?: LockedState\n state: FormState\n}\n\ntype BuildFormStateErrorResult = {\n lockedState?: never\n state?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport type BuildFormStateResult = BuildFormStateErrorResult | BuildFormStateSuccessResult\n\nexport const buildFormStateHandler: ServerFunction<\n BuildFormStateArgs,\n Promise<BuildFormStateResult>\n> = async (args) => {\n const { req } = args\n\n const incomingUserSlug = req.user?.collection\n const adminUserSlug = req.payload.config.admin.user\n\n try {\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = req.payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await req.payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const res = await buildFormState(args)\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n throw new Error('Unauthorized')\n }\n\n return formatErrors(err)\n }\n}\n\nexport const buildFormState = async (\n args: BuildFormStateArgs,\n): Promise<BuildFormStateSuccessResult> => {\n const {\n id: idFromArgs,\n collectionSlug,\n data: incomingData,\n docPermissions,\n docPreferences,\n documentFormState,\n formState,\n globalSlug,\n initialBlockData,\n initialBlockFormState,\n mockRSCs,\n operation,\n readOnly,\n renderAllFields,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n },\n returnLockStatus,\n schemaPath = collectionSlug || globalSlug,\n select,\n skipValidation,\n updateLastEdited,\n } = args\n\n const selectMode = select ? getSelectMode(select) : undefined\n\n if (!collectionSlug && !globalSlug) {\n throw new Error('Either collectionSlug or globalSlug must be provided')\n }\n\n const schemaMap = getSchemaMap({\n collectionSlug,\n config,\n globalSlug,\n i18n,\n })\n\n const clientSchemaMap = getClientSchemaMap({\n collectionSlug,\n config: getClientConfig({ config, i18n, importMap: req.payload.importMap }),\n globalSlug,\n i18n,\n payload,\n schemaMap,\n })\n\n const id = collectionSlug ? idFromArgs : undefined\n const fieldOrEntityConfig = schemaMap.get(schemaPath)\n\n if (!fieldOrEntityConfig) {\n throw new Error(`Could not find \"${schemaPath}\" in the fieldSchemaMap`)\n }\n\n if (\n (!('fields' in fieldOrEntityConfig) ||\n !fieldOrEntityConfig.fields ||\n !fieldOrEntityConfig.fields.length) &&\n 'type' in fieldOrEntityConfig &&\n fieldOrEntityConfig.type !== 'blocks'\n ) {\n throw new Error(\n `The field found in fieldSchemaMap for \"${schemaPath}\" does not contain any subfields.`,\n )\n }\n\n // If there is form state but no data, deduce data from that form state, e.g. on initial load\n // Otherwise, use the incoming data as the source of truth, e.g. on subsequent saves\n const data = incomingData || reduceFieldsToValues(formState, true)\n\n let documentData = undefined\n\n if (documentFormState) {\n documentData = reduceFieldsToValues(documentFormState, true)\n }\n\n let blockData = initialBlockData\n\n if (initialBlockFormState) {\n blockData = reduceFieldsToValues(initialBlockFormState, true)\n }\n\n /**\n * When building state for sub schemas we need to adjust:\n * - `fields`\n * - `parentSchemaPath`\n * - `parentPath`\n *\n * Type assertion is fine because we wrap sub schemas in an array\n * so we can safely map over them within `fieldSchemasToFormState`\n */\n const fields = Array.isArray(fieldOrEntityConfig)\n ? fieldOrEntityConfig\n : 'fields' in fieldOrEntityConfig\n ? fieldOrEntityConfig.fields\n : [fieldOrEntityConfig]\n\n // Ensure data.id is present during form state requests, where the data\n // is passed from the client as an argument, without the ID\n if (!data.id && id) {\n data.id = id\n }\n\n const formStateResult = await fieldSchemasToFormState({\n id,\n clientFieldSchemaMap: clientSchemaMap,\n collectionSlug,\n data,\n documentData,\n fields,\n fieldSchemaMap: schemaMap,\n initialBlockData: blockData,\n mockRSCs,\n operation,\n permissions: docPermissions?.fields || {},\n preferences: docPreferences || { fields: {} },\n previousFormState: formState,\n readOnly,\n renderAllFields,\n renderFieldFn: renderField,\n req,\n schemaPath,\n select,\n selectMode,\n skipValidation,\n })\n\n // Maintain form state of auth / upload fields\n if (collectionSlug && formState) {\n if (payload.collections[collectionSlug]?.config?.upload && formState.file) {\n formStateResult.file = formState.file\n }\n }\n\n let lockedStateResult\n\n if (returnLockStatus) {\n lockedStateResult = await handleFormStateLocking({\n id,\n collectionSlug,\n globalSlug,\n req,\n updateLastEdited,\n })\n }\n\n return {\n lockedState: lockedStateResult,\n state: formStateResult,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"reduceFieldsToOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/reduceFieldsToOptions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAMrE,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,+CAK/B,sBAAsB,KAAG,YAAY,EAuLvC,CAAA"}
1
+ {"version":3,"file":"reduceFieldsToOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/reduceFieldsToOptions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAK1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AAMrE,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,UAAU,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,+CAK/B,sBAAsB,KAAG,YAAY,EA2MvC,CAAA"}
@@ -17,7 +17,22 @@ export const reduceFieldsToOptions = ({
17
17
  }) => {
18
18
  return fields.reduce((reduced, field) => {
19
19
  // Do not filter out `field.admin.disableListFilter` fields here, as these should still render as disabled if they appear in the URL query
20
- if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {
20
+ // Filter out `virtual: true` fields since they are regular virtuals and not backed by a DB field
21
+ if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field) || 'virtual' in field && field.virtual === true) {
22
+ return reduced;
23
+ }
24
+ // Handle virtual:string fields (virtual relationships, e.g. "post.title")
25
+ if ('virtual' in field && typeof field.virtual === 'string') {
26
+ const baseLabel = 'label' in field && field.label || 'name' in field && field.name || '';
27
+ const localizedLabel = getTranslation(baseLabel, i18n);
28
+ reduced.push({
29
+ label: localizedLabel,
30
+ plainTextLabel: localizedLabel,
31
+ value: field.virtual,
32
+ ...fieldTypes[field.type],
33
+ field,
34
+ operators: fieldTypes[field.type].operators
35
+ });
21
36
  return reduced;
22
37
  }
23
38
  if (field.type === 'tabs' && 'tabs' in field) {
@@ -1 +1 @@
1
- {"version":3,"file":"reduceFieldsToOptions.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","fieldIsID","tabHasName","fieldTypes","arrayOperators","createNestedClientFieldPath","combineFieldLabel","reduceFieldsToOptions","fields","i18n","labelPrefix","pathPrefix","reduce","reduced","field","type","tabs","forEach","tab","label","localizedTabLabel","labelWithPrefix","tabPathPrefix","name","push","translatedLabel","pathWithPrefix","operatorKeys","Set","fieldOperators","hasMany","operators","acc","operator","has","value","add","operatorKey","t","localizedLabel","formattedLabel","prefix","fieldPath","formattedField","plainTextLabel"],"sources":["../../src/utilities/reduceFieldsToOptions.tsx"],"sourcesContent":["'use client'\nimport type { ClientTranslationKeys, I18nClient } from '@payloadcms/translations'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, fieldIsID, tabHasName } from 'payload/shared'\n\nimport type { ReducedField } from '../elements/WhereBuilder/types.js'\n\nimport fieldTypes, { arrayOperators } from '../elements/WhereBuilder/field-types.js'\nimport { createNestedClientFieldPath } from '../forms/Form/createNestedClientFieldPath.js'\nimport { combineFieldLabel } from './combineFieldLabel.js'\n\ntype ReduceFieldOptionsArgs = {\n fields: ClientField[]\n i18n: I18nClient\n labelPrefix?: string\n pathPrefix?: string\n}\n\n/**\n * Reduces a field map to a flat array of fields with labels and values.\n * Used in the WhereBuilder component to render the fields in the dropdown.\n */\nexport const reduceFieldsToOptions = ({\n fields,\n i18n,\n labelPrefix,\n pathPrefix,\n}: ReduceFieldOptionsArgs): ReducedField[] => {\n return fields.reduce((reduced, field) => {\n // Do not filter out `field.admin.disableListFilter` fields here, as these should still render as disabled if they appear in the URL query\n if (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) {\n return reduced\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const tabs = field.tabs\n\n tabs.forEach((tab) => {\n if (typeof tab.label !== 'boolean') {\n const localizedTabLabel = getTranslation(tab.label, i18n)\n\n const labelWithPrefix = labelPrefix\n ? labelPrefix + ' > ' + localizedTabLabel\n : localizedTabLabel\n\n // Make sure we handle nested tabs\n const tabPathPrefix =\n tabHasName(tab) && tab.name\n ? pathPrefix\n ? pathPrefix + '.' + tab.name\n : tab.name\n : pathPrefix\n\n if (typeof localizedTabLabel === 'string') {\n reduced.push(\n ...reduceFieldsToOptions({\n fields: tab.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: tabPathPrefix,\n }),\n )\n }\n }\n })\n return reduced\n }\n\n // Rows cant have labels, so we need to handle them differently\n if (field.type === 'row' && 'fields' in field) {\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix,\n pathPrefix,\n }),\n )\n return reduced\n }\n\n if (field.type === 'collapsible' && 'fields' in field) {\n const localizedTabLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? labelPrefix + ' > ' + localizedTabLabel\n : localizedTabLabel\n\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix,\n }),\n )\n return reduced\n }\n\n if (field.type === 'group' && 'fields' in field) {\n const translatedLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? translatedLabel\n ? labelPrefix + ' > ' + translatedLabel\n : labelPrefix\n : translatedLabel\n\n if (fieldAffectsData(field)) {\n // Make sure we handle deeply nested groups\n const pathWithPrefix = field.name\n ? pathPrefix\n ? pathPrefix + '.' + field.name\n : field.name\n : pathPrefix\n\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: pathWithPrefix,\n }),\n )\n } else {\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix,\n }),\n )\n }\n\n return reduced\n }\n\n if (field.type === 'array' && 'fields' in field) {\n const translatedLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? translatedLabel\n ? labelPrefix + ' > ' + translatedLabel\n : labelPrefix\n : translatedLabel\n\n // Make sure we handle deeply nested groups\n const pathWithPrefix = field.name\n ? pathPrefix\n ? pathPrefix + '.' + field.name\n : field.name\n : pathPrefix\n\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: pathWithPrefix,\n }),\n )\n\n return reduced\n }\n\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n\n const fieldOperators =\n 'hasMany' in field && field.hasMany ? arrayOperators : fieldTypes[field.type].operators\n\n const operators = fieldOperators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n const operatorKey = `operators:${operator.label}` as ClientTranslationKeys\n acc.push({\n ...operator,\n label: i18n.t(operatorKey),\n })\n }\n\n return acc\n }, [])\n\n const localizedLabel = getTranslation(field.label || '', i18n)\n\n const formattedLabel = labelPrefix\n ? combineFieldLabel({\n field,\n prefix: labelPrefix,\n })\n : localizedLabel\n\n const fieldPath = pathPrefix ? createNestedClientFieldPath(pathPrefix, field) : field.name\n\n const formattedField: ReducedField = {\n label: formattedLabel,\n plainTextLabel: `${labelPrefix ? labelPrefix + ' > ' : ''}${localizedLabel}`,\n value: fieldPath,\n ...fieldTypes[field.type],\n field,\n operators,\n }\n\n reduced.push(formattedField)\n return reduced\n }\n return reduced\n }, [])\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"reduceFieldsToOptions.js","names":["getTranslation","fieldAffectsData","fieldIsHiddenOrDisabled","fieldIsID","tabHasName","fieldTypes","arrayOperators","createNestedClientFieldPath","combineFieldLabel","reduceFieldsToOptions","fields","i18n","labelPrefix","pathPrefix","reduce","reduced","field","virtual","baseLabel","label","name","localizedLabel","push","plainTextLabel","value","type","operators","tabs","forEach","tab","localizedTabLabel","labelWithPrefix","tabPathPrefix","translatedLabel","pathWithPrefix","operatorKeys","Set","fieldOperators","hasMany","acc","operator","has","add","operatorKey","t","formattedLabel","prefix","fieldPath","formattedField"],"sources":["../../src/utilities/reduceFieldsToOptions.tsx"],"sourcesContent":["'use client'\nimport type { ClientTranslationKeys, I18nClient } from '@payloadcms/translations'\nimport type { ClientField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsHiddenOrDisabled, fieldIsID, tabHasName } from 'payload/shared'\n\nimport type { ReducedField } from '../elements/WhereBuilder/types.js'\n\nimport fieldTypes, { arrayOperators } from '../elements/WhereBuilder/field-types.js'\nimport { createNestedClientFieldPath } from '../forms/Form/createNestedClientFieldPath.js'\nimport { combineFieldLabel } from './combineFieldLabel.js'\n\ntype ReduceFieldOptionsArgs = {\n fields: ClientField[]\n i18n: I18nClient\n labelPrefix?: string\n pathPrefix?: string\n}\n\n/**\n * Reduces a field map to a flat array of fields with labels and values.\n * Used in the WhereBuilder component to render the fields in the dropdown.\n */\nexport const reduceFieldsToOptions = ({\n fields,\n i18n,\n labelPrefix,\n pathPrefix,\n}: ReduceFieldOptionsArgs): ReducedField[] => {\n return fields.reduce((reduced, field) => {\n // Do not filter out `field.admin.disableListFilter` fields here, as these should still render as disabled if they appear in the URL query\n // Filter out `virtual: true` fields since they are regular virtuals and not backed by a DB field\n if (\n (fieldIsHiddenOrDisabled(field) && !fieldIsID(field)) ||\n ('virtual' in field && field.virtual === true)\n ) {\n return reduced\n }\n\n // Handle virtual:string fields (virtual relationships, e.g. \"post.title\")\n if ('virtual' in field && typeof field.virtual === 'string') {\n const baseLabel = ('label' in field && field.label) || ('name' in field && field.name) || ''\n const localizedLabel = getTranslation(baseLabel, i18n)\n\n reduced.push({\n label: localizedLabel,\n plainTextLabel: localizedLabel,\n value: field.virtual, // e.g. \"post.title\"\n ...fieldTypes[field.type],\n field,\n operators: fieldTypes[field.type].operators,\n })\n return reduced\n }\n\n if (field.type === 'tabs' && 'tabs' in field) {\n const tabs = field.tabs\n\n tabs.forEach((tab) => {\n if (typeof tab.label !== 'boolean') {\n const localizedTabLabel = getTranslation(tab.label, i18n)\n\n const labelWithPrefix = labelPrefix\n ? labelPrefix + ' > ' + localizedTabLabel\n : localizedTabLabel\n\n // Make sure we handle nested tabs\n const tabPathPrefix =\n tabHasName(tab) && tab.name\n ? pathPrefix\n ? pathPrefix + '.' + tab.name\n : tab.name\n : pathPrefix\n\n if (typeof localizedTabLabel === 'string') {\n reduced.push(\n ...reduceFieldsToOptions({\n fields: tab.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: tabPathPrefix,\n }),\n )\n }\n }\n })\n return reduced\n }\n\n // Rows cant have labels, so we need to handle them differently\n if (field.type === 'row' && 'fields' in field) {\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix,\n pathPrefix,\n }),\n )\n return reduced\n }\n\n if (field.type === 'collapsible' && 'fields' in field) {\n const localizedTabLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? labelPrefix + ' > ' + localizedTabLabel\n : localizedTabLabel\n\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix,\n }),\n )\n return reduced\n }\n\n if (field.type === 'group' && 'fields' in field) {\n const translatedLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? translatedLabel\n ? labelPrefix + ' > ' + translatedLabel\n : labelPrefix\n : translatedLabel\n\n if (fieldAffectsData(field)) {\n // Make sure we handle deeply nested groups\n const pathWithPrefix = field.name\n ? pathPrefix\n ? pathPrefix + '.' + field.name\n : field.name\n : pathPrefix\n\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: pathWithPrefix,\n }),\n )\n } else {\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix,\n }),\n )\n }\n\n return reduced\n }\n\n if (field.type === 'array' && 'fields' in field) {\n const translatedLabel = getTranslation(field.label || '', i18n)\n\n const labelWithPrefix = labelPrefix\n ? translatedLabel\n ? labelPrefix + ' > ' + translatedLabel\n : labelPrefix\n : translatedLabel\n\n // Make sure we handle deeply nested groups\n const pathWithPrefix = field.name\n ? pathPrefix\n ? pathPrefix + '.' + field.name\n : field.name\n : pathPrefix\n\n reduced.push(\n ...reduceFieldsToOptions({\n fields: field.fields,\n i18n,\n labelPrefix: labelWithPrefix,\n pathPrefix: pathWithPrefix,\n }),\n )\n\n return reduced\n }\n\n if (typeof fieldTypes[field.type] === 'object') {\n const operatorKeys = new Set()\n\n const fieldOperators =\n 'hasMany' in field && field.hasMany ? arrayOperators : fieldTypes[field.type].operators\n\n const operators = fieldOperators.reduce((acc, operator) => {\n if (!operatorKeys.has(operator.value)) {\n operatorKeys.add(operator.value)\n const operatorKey = `operators:${operator.label}` as ClientTranslationKeys\n acc.push({\n ...operator,\n label: i18n.t(operatorKey),\n })\n }\n\n return acc\n }, [])\n\n const localizedLabel = getTranslation(field.label || '', i18n)\n\n const formattedLabel = labelPrefix\n ? combineFieldLabel({\n field,\n prefix: labelPrefix,\n })\n : localizedLabel\n\n const fieldPath = pathPrefix ? createNestedClientFieldPath(pathPrefix, field) : field.name\n\n const formattedField: ReducedField = {\n label: formattedLabel,\n plainTextLabel: `${labelPrefix ? labelPrefix + ' > ' : ''}${localizedLabel}`,\n value: fieldPath,\n ...fieldTypes[field.type],\n field,\n operators,\n }\n\n reduced.push(formattedField)\n return reduced\n }\n return reduced\n }, [])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,3 @@
1
+ import type { ClientField } from 'payload';
2
+ export declare const traverseForLocalizedFields: (fields: ClientField[]) => boolean;
3
+ //# sourceMappingURL=traverseForLocalizedFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseForLocalizedFields.d.ts","sourceRoot":"","sources":["../../src/utilities/traverseForLocalizedFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,0BAA0B,WAAY,WAAW,EAAE,KAAG,OA0ClE,CAAA"}
@@ -0,0 +1,40 @@
1
+ export const traverseForLocalizedFields = fields => {
2
+ for (const field of fields) {
3
+ if ('localized' in field && field.localized) {
4
+ return true;
5
+ }
6
+ switch (field.type) {
7
+ case 'array':
8
+ case 'collapsible':
9
+ case 'group':
10
+ case 'row':
11
+ if (field.fields && traverseForLocalizedFields(field.fields)) {
12
+ return true;
13
+ }
14
+ break;
15
+ case 'blocks':
16
+ if (field.blocks) {
17
+ for (const block of field.blocks) {
18
+ if (block.fields && traverseForLocalizedFields(block.fields)) {
19
+ return true;
20
+ }
21
+ }
22
+ }
23
+ break;
24
+ case 'tabs':
25
+ if (field.tabs) {
26
+ for (const tab of field.tabs) {
27
+ if ('localized' in tab && tab.localized) {
28
+ return true;
29
+ }
30
+ if ('fields' in tab && tab.fields && traverseForLocalizedFields(tab.fields)) {
31
+ return true;
32
+ }
33
+ }
34
+ }
35
+ break;
36
+ }
37
+ }
38
+ return false;
39
+ };
40
+ //# sourceMappingURL=traverseForLocalizedFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseForLocalizedFields.js","names":["traverseForLocalizedFields","fields","field","localized","type","blocks","block","tabs","tab"],"sources":["../../src/utilities/traverseForLocalizedFields.ts"],"sourcesContent":["import type { ClientField } from 'payload'\n\nexport const traverseForLocalizedFields = (fields: ClientField[]): boolean => {\n for (const field of fields) {\n if ('localized' in field && field.localized) {\n return true\n }\n\n switch (field.type) {\n case 'array':\n case 'collapsible':\n case 'group':\n case 'row':\n if (field.fields && traverseForLocalizedFields(field.fields)) {\n return true\n }\n break\n\n case 'blocks':\n if (field.blocks) {\n for (const block of field.blocks) {\n if (block.fields && traverseForLocalizedFields(block.fields)) {\n return true\n }\n }\n }\n break\n\n case 'tabs':\n if (field.tabs) {\n for (const tab of field.tabs) {\n if ('localized' in tab && tab.localized) {\n return true\n }\n if ('fields' in tab && tab.fields && traverseForLocalizedFields(tab.fields)) {\n return true\n }\n }\n }\n break\n }\n }\n\n return false\n}\n"],"mappings":"AAEA,OAAO,MAAMA,0BAAA,GAA8BC,MAAA;EACzC,KAAK,MAAMC,KAAA,IAASD,MAAA,EAAQ;IAC1B,IAAI,eAAeC,KAAA,IAASA,KAAA,CAAMC,SAAS,EAAE;MAC3C,OAAO;IACT;IAEA,QAAQD,KAAA,CAAME,IAAI;MAChB,KAAK;MACL,KAAK;MACL,KAAK;MACL,KAAK;QACH,IAAIF,KAAA,CAAMD,MAAM,IAAID,0BAAA,CAA2BE,KAAA,CAAMD,MAAM,GAAG;UAC5D,OAAO;QACT;QACA;MAEF,KAAK;QACH,IAAIC,KAAA,CAAMG,MAAM,EAAE;UAChB,KAAK,MAAMC,KAAA,IAASJ,KAAA,CAAMG,MAAM,EAAE;YAChC,IAAIC,KAAA,CAAML,MAAM,IAAID,0BAAA,CAA2BM,KAAA,CAAML,MAAM,GAAG;cAC5D,OAAO;YACT;UACF;QACF;QACA;MAEF,KAAK;QACH,IAAIC,KAAA,CAAMK,IAAI,EAAE;UACd,KAAK,MAAMC,GAAA,IAAON,KAAA,CAAMK,IAAI,EAAE;YAC5B,IAAI,eAAeC,GAAA,IAAOA,GAAA,CAAIL,SAAS,EAAE;cACvC,OAAO;YACT;YACA,IAAI,YAAYK,GAAA,IAAOA,GAAA,CAAIP,MAAM,IAAID,0BAAA,CAA2BQ,GAAA,CAAIP,MAAM,GAAG;cAC3E,OAAO;YACT;UACF;QACF;QACA;IACJ;EACF;EAEA,OAAO;AACT","ignoreList":[]}
@@ -64,7 +64,7 @@ export function DefaultBrowseByFolderView({
64
64
  });
65
65
  }
66
66
  function BrowseByFolderViewInContext(props) {
67
- const $ = _c(24);
67
+ const $ = _c(30);
68
68
  const {
69
69
  AfterFolderList,
70
70
  AfterFolderListTable,
@@ -162,10 +162,19 @@ function BrowseByFolderViewInContext(props) {
162
162
  }
163
163
  const onDragEnd = t2;
164
164
  const totalDocsAndSubfolders = documents.length + subfolders.length;
165
- const listHeaderTitle = !breadcrumbs.length ? t("folder:browseByFolder") : breadcrumbs[breadcrumbs.length - 1].name;
166
165
  let t3;
167
- if ($[9] !== getEntityConfig || $[10] !== i18n || $[11] !== t) {
168
- t3 = (acc, slug, index, array) => {
166
+ if ($[9] !== breadcrumbs || $[10] !== t) {
167
+ t3 = !breadcrumbs.length ? t("folder:browseByFolder") : breadcrumbs[breadcrumbs.length - 1].name;
168
+ $[9] = breadcrumbs;
169
+ $[10] = t;
170
+ $[11] = t3;
171
+ } else {
172
+ t3 = $[11];
173
+ }
174
+ const listHeaderTitle = t3;
175
+ let t4;
176
+ if ($[12] !== getEntityConfig || $[13] !== i18n || $[14] !== t) {
177
+ t4 = (acc, slug, index, array) => {
169
178
  const collectionConfig = getEntityConfig({
170
179
  collectionSlug: slug
171
180
  });
@@ -177,24 +186,24 @@ function BrowseByFolderViewInContext(props) {
177
186
  }
178
187
  return `${acc}, ${getTranslation(collectionConfig.labels?.plural, i18n)}`;
179
188
  };
180
- $[9] = getEntityConfig;
181
- $[10] = i18n;
182
- $[11] = t;
183
- $[12] = t3;
189
+ $[12] = getEntityConfig;
190
+ $[13] = i18n;
191
+ $[14] = t;
192
+ $[15] = t4;
184
193
  } else {
185
- t3 = $[12];
194
+ t4 = $[15];
186
195
  }
187
- const noResultsLabel = visibleCollectionSlugs.reduce(t3, "");
196
+ const noResultsLabel = visibleCollectionSlugs.reduce(t4, "");
188
197
  const handleSetViewType = view => {
189
198
  setPreference("browse-by-folder", {
190
199
  viewPreference: view
191
200
  });
192
201
  setActiveView(view);
193
202
  };
194
- let t4;
195
203
  let t5;
196
- if ($[13] !== breadcrumbs || $[14] !== drawerDepth || $[15] !== getFolderRoute || $[16] !== router || $[17] !== setStepNav || $[18] !== startRouteTransition || $[19] !== t) {
197
- t4 = () => {
204
+ let t6;
205
+ if ($[16] !== breadcrumbs || $[17] !== drawerDepth || $[18] !== getFolderRoute || $[19] !== router || $[20] !== setStepNav || $[21] !== startRouteTransition || $[22] !== t) {
206
+ t5 = () => {
198
207
  if (!drawerDepth) {
199
208
  setStepNav([!breadcrumbs.length ? {
200
209
  label: _jsxs("div", {
@@ -226,34 +235,46 @@ function BrowseByFolderViewInContext(props) {
226
235
  }))]);
227
236
  }
228
237
  };
229
- t5 = [breadcrumbs, drawerDepth, getFolderRoute, router, setStepNav, startRouteTransition, t];
230
- $[13] = breadcrumbs;
231
- $[14] = drawerDepth;
232
- $[15] = getFolderRoute;
233
- $[16] = router;
234
- $[17] = setStepNav;
235
- $[18] = startRouteTransition;
236
- $[19] = t;
237
- $[20] = t4;
238
- $[21] = t5;
238
+ t6 = [breadcrumbs, drawerDepth, getFolderRoute, router, setStepNav, startRouteTransition, t];
239
+ $[16] = breadcrumbs;
240
+ $[17] = drawerDepth;
241
+ $[18] = getFolderRoute;
242
+ $[19] = router;
243
+ $[20] = setStepNav;
244
+ $[21] = startRouteTransition;
245
+ $[22] = t;
246
+ $[23] = t5;
247
+ $[24] = t6;
239
248
  } else {
240
- t4 = $[20];
241
- t5 = $[21];
249
+ t5 = $[23];
250
+ t6 = $[24];
242
251
  }
243
- React.useEffect(t4, t5);
252
+ React.useEffect(t5, t6);
244
253
  const nonFolderCollectionSlugs = allowCreateCollectionSlugs.filter(slug_0 => slug_0 !== folderCollectionConfig.slug);
245
- let t6;
246
- if ($[22] !== refineFolderData) {
247
- t6 = search_0 => refineFolderData({
254
+ let t7;
255
+ if ($[25] !== refineFolderData) {
256
+ t7 = search_0 => refineFolderData({
248
257
  query: {
249
258
  search: search_0
250
259
  },
251
260
  updateURL: true
252
261
  });
253
- $[22] = refineFolderData;
254
- $[23] = t6;
262
+ $[25] = refineFolderData;
263
+ $[26] = t7;
255
264
  } else {
256
- t6 = $[23];
265
+ t7 = $[26];
266
+ }
267
+ let t8;
268
+ if ($[27] !== dragOverlayItem || $[28] !== selectedItemKeys.size) {
269
+ t8 = selectedItemKeys.size > 0 && dragOverlayItem && _jsx(DragOverlaySelection, {
270
+ item: dragOverlayItem,
271
+ selectedCount: selectedItemKeys.size
272
+ });
273
+ $[27] = dragOverlayItem;
274
+ $[28] = selectedItemKeys.size;
275
+ $[29] = t8;
276
+ } else {
277
+ t8 = $[29];
257
278
  }
258
279
  return _jsxs(Fragment, {
259
280
  children: [_jsx(DndEventListener, {
@@ -284,7 +305,7 @@ function BrowseByFolderViewInContext(props) {
284
305
  setActiveView: handleSetViewType
285
306
  }, "toggle-view-buttons"), _jsx(CurrentFolderActions, {}, "current-folder-actions")].filter(Boolean),
286
307
  label: searchPlaceholder,
287
- onSearchChange: t6,
308
+ onSearchChange: t7,
288
309
  searchQueryParam: search
289
310
  }), BeforeFolderListTable, totalDocsAndSubfolders > 0 && _jsx(_Fragment, {
290
311
  children: activeView === "grid" ? _jsxs("div", {
@@ -324,10 +345,7 @@ function BrowseByFolderViewInContext(props) {
324
345
  })
325
346
  }), AfterFolderListTable]
326
347
  }), AfterFolderList]
327
- }), selectedItemKeys.size > 0 && dragOverlayItem && _jsx(DragOverlaySelection, {
328
- item: dragOverlayItem,
329
- selectedCount: selectedItemKeys.size
330
- })]
348
+ }), t8]
331
349
  });
332
350
  }
333
351
  function DndEventListener(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useDndMonitor","getTranslation","useRouter","React","Fragment","DroppableBreadcrumb","ColoredFolderIcon","CurrentFolderActions","DragOverlaySelection","FilterFolderTypePill","FolderFileTable","ItemCardGrid","SortByPill","ToggleViewButtons","Gutter","ListHeader","ListCreateNewDocInFolderButton","NoListResults","SearchBar","useStepNav","useConfig","useEditDepth","FolderProvider","useFolder","usePreferences","useRouteCache","useRouteTransition","useTranslation","useWindowInfo","ListSelection","baseClass","DefaultBrowseByFolderView","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","baseFolderPath","breadcrumbs","documents","folderFieldName","folderID","FolderResultsComponent","search","subfolders","restOfProps","_jsx","BrowseByFolderViewInContext","props","$","AfterFolderList","AfterFolderListTable","BeforeFolderList","BeforeFolderListTable","Description","disableBulkDelete","disableBulkEdit","folderAssignedCollections","viewPreference","router","getEntityConfig","i18n","t","drawerDepth","setStepNav","startRouteTransition","clearRouteCache","breakpoints","t0","s","smallBreak","setPreference","visibleCollectionSlugs","dragOverlayItem","folderCollectionConfig","folderType","getFolderRoute","getSelectedItems","moveToFolder","refineFolderData","selectedItemKeys","setIsDragging","activeView","setActiveView","useState","t1","locationLabel","length","labels","plural","name","folderName","searchPlaceholder","t2","event","over","data","current","type","itemsToMove","toFolderID","id","onDragEnd","totalDocsAndSubfolders","listHeaderTitle","t3","acc","slug","index","array","collectionConfig","collectionSlug","toLowerCase","noResultsLabel","reduce","handleSetViewType","view","t4","t5","label","_jsxs","className","children","filter","Boolean","join","onClick","push","map","crumb","crumbIndex","useEffect","nonFolderCollectionSlugs","slug_0","t6","search_0","query","updateURL","DndEventListener","Actions","AfterListHeaderContent","title","TitleActions","buttonLabel","collectionSlugs","Array","isArray","onCreateSuccess","slugPrefix","onSearchChange","searchQueryParam","_Fragment","items","subfolderCount","includes","singular","Message","size","item","selectedCount","onDragCancel","onDragStart"],"sources":["../../../src/views/BrowseByFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DragEndEvent } from '@dnd-kit/core'\nimport type { FolderListViewClientProps } from 'payload'\n\nimport { useDndMonitor } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js'\nimport { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js'\nimport { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js'\nimport { FilterFolderTypePill } from '../../elements/FolderView/FilterFolderTypePill/index.js'\nimport { FolderFileTable } from '../../elements/FolderView/FolderFileTable/index.js'\nimport { ItemCardGrid } from '../../elements/FolderView/ItemCardGrid/index.js'\nimport { SortByPill } from '../../elements/FolderView/SortByPill/index.js'\nimport { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListHeader } from '../../elements/ListHeader/index.js'\nimport { ListCreateNewDocInFolderButton } from '../../elements/ListHeader/TitleActions/index.js'\nimport { NoListResults } from '../../elements/NoListResults/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { FolderProvider, useFolder } from '../../providers/Folders/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListSelection } from '../CollectionFolder/ListSelection/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-list'\n\nexport function DefaultBrowseByFolderView({\n activeCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath,\n breadcrumbs,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n search,\n subfolders,\n ...restOfProps\n}: FolderListViewClientProps) {\n return (\n <FolderProvider\n activeCollectionFolderSlugs={activeCollectionFolderSlugs}\n allCollectionFolderSlugs={allCollectionFolderSlugs}\n allowCreateCollectionSlugs={allowCreateCollectionSlugs}\n baseFolderPath={baseFolderPath}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n search={search}\n subfolders={subfolders}\n >\n <BrowseByFolderViewInContext {...restOfProps} />\n </FolderProvider>\n )\n}\n\ntype BrowseByFolderViewInContextProps = Omit<\n FolderListViewClientProps,\n | 'activeCollectionFolderSlugs'\n | 'allCollectionFolderSlugs'\n | 'allowCreateCollectionSlugs'\n | 'baseFolderPath'\n | 'breadcrumbs'\n | 'documents'\n | 'folderFieldName'\n | 'folderID'\n | 'FolderResultsComponent'\n | 'subfolders'\n>\n\nfunction BrowseByFolderViewInContext(props: BrowseByFolderViewInContextProps) {\n const {\n AfterFolderList,\n AfterFolderListTable,\n BeforeFolderList,\n BeforeFolderListTable,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n folderAssignedCollections,\n viewPreference,\n } = props\n\n const router = useRouter()\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const drawerDepth = useEditDepth()\n const { setStepNav } = useStepNav()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const { setPreference } = usePreferences()\n const {\n activeCollectionFolderSlugs: visibleCollectionSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n documents,\n dragOverlayItem,\n folderCollectionConfig,\n folderID,\n folderType,\n getFolderRoute,\n getSelectedItems,\n moveToFolder,\n refineFolderData,\n search,\n selectedItemKeys,\n setIsDragging,\n subfolders,\n } = useFolder()\n\n const [activeView, setActiveView] = React.useState<'grid' | 'list'>(viewPreference || 'grid')\n const [searchPlaceholder] = React.useState(() => {\n const locationLabel =\n breadcrumbs.length === 0\n ? getTranslation(folderCollectionConfig.labels?.plural, i18n)\n : breadcrumbs[breadcrumbs.length - 1].name\n return t('folder:searchByNameInFolder', {\n folderName: locationLabel,\n })\n })\n\n const onDragEnd = React.useCallback(\n async (event: DragEndEvent) => {\n if (!event.over) {\n return\n }\n\n if (event.over.data.current.type === 'folder' && 'id' in event.over.data.current) {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: event.over.data.current.id || null,\n })\n clearRouteCache()\n }\n },\n [moveToFolder, getSelectedItems, clearRouteCache],\n )\n\n const totalDocsAndSubfolders = documents.length + subfolders.length\n const listHeaderTitle = !breadcrumbs.length\n ? t('folder:browseByFolder')\n : breadcrumbs[breadcrumbs.length - 1].name\n const noResultsLabel = visibleCollectionSlugs.reduce((acc, slug, index, array) => {\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n if (index === 0) {\n return getTranslation(collectionConfig.labels?.plural, i18n)\n }\n if (index === array.length - 1) {\n return `${acc} ${t('general:or').toLowerCase()} ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }\n return `${acc}, ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }, '')\n\n const handleSetViewType = React.useCallback(\n (view: 'grid' | 'list') => {\n void setPreference('browse-by-folder', {\n viewPreference: view,\n })\n setActiveView(view)\n },\n [setPreference],\n )\n\n React.useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n !breadcrumbs.length\n ? {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`} key=\"root\">\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </div>\n ),\n }\n : {\n label: (\n <DroppableBreadcrumb\n className={[\n `${baseClass}__step-nav-droppable`,\n `${baseClass}__step-nav-icon-label`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={null}\n key=\"root\"\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(null))\n })\n }}\n >\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </DroppableBreadcrumb>\n ),\n },\n ...breadcrumbs.map((crumb, crumbIndex) => {\n return {\n label:\n crumbIndex === breadcrumbs.length - 1 ? (\n crumb.name\n ) : (\n <DroppableBreadcrumb\n className={`${baseClass}__step-nav-droppable`}\n id={crumb.id}\n key={crumb.id}\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(crumb.id))\n })\n }}\n >\n {crumb.name}\n </DroppableBreadcrumb>\n ),\n }\n }),\n ])\n }\n }, [breadcrumbs, drawerDepth, getFolderRoute, router, setStepNav, startRouteTransition, t])\n\n const nonFolderCollectionSlugs = allowCreateCollectionSlugs.filter(\n (slug) => slug !== folderCollectionConfig.slug,\n )\n\n return (\n <Fragment>\n <DndEventListener onDragEnd={onDragEnd} setIsDragging={setIsDragging} />\n <div className={`${baseClass} ${baseClass}--folders`}>\n {BeforeFolderList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n folderAssignedCollections={folderAssignedCollections}\n key=\"list-selection\"\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n title={listHeaderTitle}\n TitleActions={[\n allowCreateCollectionSlugs.length && (\n <ListCreateNewDocInFolderButton\n buttonLabel={t('general:createNew')}\n collectionSlugs={allowCreateCollectionSlugs}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-new-button\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--header-pill\"\n />\n ),\n ].filter(Boolean)}\n />\n <SearchBar\n Actions={[\n <SortByPill key=\"sort-by-pill\" />,\n folderID && <FilterFolderTypePill key=\"collection-type\" />,\n <ToggleViewButtons\n activeView={activeView}\n key=\"toggle-view-buttons\"\n setActiveView={handleSetViewType}\n />,\n <CurrentFolderActions key=\"current-folder-actions\" />,\n ].filter(Boolean)}\n label={searchPlaceholder}\n onSearchChange={(search) => refineFolderData({ query: { search }, updateURL: true })}\n searchQueryParam={search}\n />\n {BeforeFolderListTable}\n {totalDocsAndSubfolders > 0 && (\n <>\n {activeView === 'grid' ? (\n <div>\n {subfolders.length ? (\n <>\n <ItemCardGrid items={subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {documents.length ? (\n <>\n <ItemCardGrid\n items={documents}\n subfolderCount={subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n ) : (\n <FolderFileTable />\n )}\n </>\n )}\n {totalDocsAndSubfolders === 0 && (\n <NoListResults\n Actions={[\n allowCreateCollectionSlugs.includes(folderCollectionConfig.slug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n collectionSlugs={[folderCollectionConfig.slug]}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-folder\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-folder--no-results\"\n />\n ),\n folderID && nonFolderCollectionSlugs.length > 0 && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${t('general:document').toLowerCase()}`}\n collectionSlugs={nonFolderCollectionSlugs}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-document\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--no-results\"\n />\n ),\n ].filter(Boolean)}\n Message={\n <p>\n {i18n.t('general:noResults', {\n label: noResultsLabel,\n })}\n </p>\n }\n />\n )}\n {AfterFolderListTable}\n </Gutter>\n {AfterFolderList}\n </div>\n {selectedItemKeys.size > 0 && dragOverlayItem && (\n <DragOverlaySelection item={dragOverlayItem} selectedCount={selectedItemKeys.size} />\n )}\n </Fragment>\n )\n}\nfunction DndEventListener({ onDragEnd, setIsDragging }) {\n useDndMonitor({\n onDragCancel() {\n setIsDragging(false)\n },\n onDragEnd(event) {\n setIsDragging(false)\n onDragEnd(event)\n },\n onDragStart() {\n setIsDragging(true)\n },\n })\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useDndMonitor","getTranslation","useRouter","React","Fragment","DroppableBreadcrumb","ColoredFolderIcon","CurrentFolderActions","DragOverlaySelection","FilterFolderTypePill","FolderFileTable","ItemCardGrid","SortByPill","ToggleViewButtons","Gutter","ListHeader","ListCreateNewDocInFolderButton","NoListResults","SearchBar","useStepNav","useConfig","useEditDepth","FolderProvider","useFolder","usePreferences","useRouteCache","useRouteTransition","useTranslation","useWindowInfo","ListSelection","baseClass","DefaultBrowseByFolderView","activeCollectionFolderSlugs","allCollectionFolderSlugs","allowCreateCollectionSlugs","baseFolderPath","breadcrumbs","documents","folderFieldName","folderID","FolderResultsComponent","search","subfolders","restOfProps","_jsx","BrowseByFolderViewInContext","props","$","AfterFolderList","AfterFolderListTable","BeforeFolderList","BeforeFolderListTable","Description","disableBulkDelete","disableBulkEdit","folderAssignedCollections","viewPreference","router","getEntityConfig","i18n","t","drawerDepth","setStepNav","startRouteTransition","clearRouteCache","breakpoints","t0","s","smallBreak","setPreference","visibleCollectionSlugs","dragOverlayItem","folderCollectionConfig","folderType","getFolderRoute","getSelectedItems","moveToFolder","refineFolderData","selectedItemKeys","setIsDragging","activeView","setActiveView","useState","t1","locationLabel","length","labels","plural","name","folderName","searchPlaceholder","t2","event","over","data","current","type","itemsToMove","toFolderID","id","onDragEnd","totalDocsAndSubfolders","t3","listHeaderTitle","t4","acc","slug","index","array","collectionConfig","collectionSlug","toLowerCase","noResultsLabel","reduce","handleSetViewType","view","t5","t6","label","_jsxs","className","children","filter","Boolean","join","onClick","push","map","crumb","crumbIndex","useEffect","nonFolderCollectionSlugs","slug_0","t7","search_0","query","updateURL","t8","size","item","selectedCount","DndEventListener","Actions","AfterListHeaderContent","title","TitleActions","buttonLabel","collectionSlugs","Array","isArray","onCreateSuccess","slugPrefix","onSearchChange","searchQueryParam","_Fragment","items","subfolderCount","includes","singular","Message","onDragCancel","onDragStart"],"sources":["../../../src/views/BrowseByFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { DragEndEvent } from '@dnd-kit/core'\nimport type { FolderListViewClientProps } from 'payload'\n\nimport { useDndMonitor } from '@dnd-kit/core'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { Fragment } from 'react'\n\nimport { DroppableBreadcrumb } from '../../elements/FolderView/Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../elements/FolderView/ColoredFolderIcon/index.js'\nimport { CurrentFolderActions } from '../../elements/FolderView/CurrentFolderActions/index.js'\nimport { DragOverlaySelection } from '../../elements/FolderView/DragOverlaySelection/index.js'\nimport { FilterFolderTypePill } from '../../elements/FolderView/FilterFolderTypePill/index.js'\nimport { FolderFileTable } from '../../elements/FolderView/FolderFileTable/index.js'\nimport { ItemCardGrid } from '../../elements/FolderView/ItemCardGrid/index.js'\nimport { SortByPill } from '../../elements/FolderView/SortByPill/index.js'\nimport { ToggleViewButtons } from '../../elements/FolderView/ToggleViewButtons/index.js'\nimport { Gutter } from '../../elements/Gutter/index.js'\nimport { ListHeader } from '../../elements/ListHeader/index.js'\nimport { ListCreateNewDocInFolderButton } from '../../elements/ListHeader/TitleActions/index.js'\nimport { NoListResults } from '../../elements/NoListResults/index.js'\nimport { SearchBar } from '../../elements/SearchBar/index.js'\nimport { useStepNav } from '../../elements/StepNav/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { FolderProvider, useFolder } from '../../providers/Folders/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useWindowInfo } from '../../providers/WindowInfo/index.js'\nimport { ListSelection } from '../CollectionFolder/ListSelection/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-list'\n\nexport function DefaultBrowseByFolderView({\n activeCollectionFolderSlugs,\n allCollectionFolderSlugs,\n allowCreateCollectionSlugs,\n baseFolderPath,\n breadcrumbs,\n documents,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n search,\n subfolders,\n ...restOfProps\n}: FolderListViewClientProps) {\n return (\n <FolderProvider\n activeCollectionFolderSlugs={activeCollectionFolderSlugs}\n allCollectionFolderSlugs={allCollectionFolderSlugs}\n allowCreateCollectionSlugs={allowCreateCollectionSlugs}\n baseFolderPath={baseFolderPath}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n search={search}\n subfolders={subfolders}\n >\n <BrowseByFolderViewInContext {...restOfProps} />\n </FolderProvider>\n )\n}\n\ntype BrowseByFolderViewInContextProps = Omit<\n FolderListViewClientProps,\n | 'activeCollectionFolderSlugs'\n | 'allCollectionFolderSlugs'\n | 'allowCreateCollectionSlugs'\n | 'baseFolderPath'\n | 'breadcrumbs'\n | 'documents'\n | 'folderFieldName'\n | 'folderID'\n | 'FolderResultsComponent'\n | 'subfolders'\n>\n\nfunction BrowseByFolderViewInContext(props: BrowseByFolderViewInContextProps) {\n const {\n AfterFolderList,\n AfterFolderListTable,\n BeforeFolderList,\n BeforeFolderListTable,\n Description,\n disableBulkDelete,\n disableBulkEdit,\n folderAssignedCollections,\n viewPreference,\n } = props\n\n const router = useRouter()\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const drawerDepth = useEditDepth()\n const { setStepNav } = useStepNav()\n const { startRouteTransition } = useRouteTransition()\n const { clearRouteCache } = useRouteCache()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n const { setPreference } = usePreferences()\n const {\n activeCollectionFolderSlugs: visibleCollectionSlugs,\n allowCreateCollectionSlugs,\n breadcrumbs,\n documents,\n dragOverlayItem,\n folderCollectionConfig,\n folderID,\n folderType,\n getFolderRoute,\n getSelectedItems,\n moveToFolder,\n refineFolderData,\n search,\n selectedItemKeys,\n setIsDragging,\n subfolders,\n } = useFolder()\n\n const [activeView, setActiveView] = React.useState<'grid' | 'list'>(viewPreference || 'grid')\n const [searchPlaceholder] = React.useState(() => {\n const locationLabel =\n breadcrumbs.length === 0\n ? getTranslation(folderCollectionConfig.labels?.plural, i18n)\n : breadcrumbs[breadcrumbs.length - 1].name\n return t('folder:searchByNameInFolder', {\n folderName: locationLabel,\n })\n })\n\n const onDragEnd = React.useCallback(\n async (event: DragEndEvent) => {\n if (!event.over) {\n return\n }\n\n if (event.over.data.current.type === 'folder' && 'id' in event.over.data.current) {\n await moveToFolder({\n itemsToMove: getSelectedItems(),\n toFolderID: event.over.data.current.id || null,\n })\n clearRouteCache()\n }\n },\n [moveToFolder, getSelectedItems, clearRouteCache],\n )\n\n const totalDocsAndSubfolders = documents.length + subfolders.length\n const listHeaderTitle = !breadcrumbs.length\n ? t('folder:browseByFolder')\n : breadcrumbs[breadcrumbs.length - 1].name\n const noResultsLabel = visibleCollectionSlugs.reduce((acc, slug, index, array) => {\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n if (index === 0) {\n return getTranslation(collectionConfig.labels?.plural, i18n)\n }\n if (index === array.length - 1) {\n return `${acc} ${t('general:or').toLowerCase()} ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }\n return `${acc}, ${getTranslation(collectionConfig.labels?.plural, i18n)}`\n }, '')\n\n const handleSetViewType = React.useCallback(\n (view: 'grid' | 'list') => {\n void setPreference('browse-by-folder', {\n viewPreference: view,\n })\n setActiveView(view)\n },\n [setPreference],\n )\n\n React.useEffect(() => {\n if (!drawerDepth) {\n setStepNav([\n !breadcrumbs.length\n ? {\n label: (\n <div className={`${baseClass}__step-nav-icon-label`} key=\"root\">\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </div>\n ),\n }\n : {\n label: (\n <DroppableBreadcrumb\n className={[\n `${baseClass}__step-nav-droppable`,\n `${baseClass}__step-nav-icon-label`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={null}\n key=\"root\"\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(null))\n })\n }}\n >\n <ColoredFolderIcon />\n {t('folder:browseByFolder')}\n </DroppableBreadcrumb>\n ),\n },\n ...breadcrumbs.map((crumb, crumbIndex) => {\n return {\n label:\n crumbIndex === breadcrumbs.length - 1 ? (\n crumb.name\n ) : (\n <DroppableBreadcrumb\n className={`${baseClass}__step-nav-droppable`}\n id={crumb.id}\n key={crumb.id}\n onClick={() => {\n startRouteTransition(() => {\n router.push(getFolderRoute(crumb.id))\n })\n }}\n >\n {crumb.name}\n </DroppableBreadcrumb>\n ),\n }\n }),\n ])\n }\n }, [breadcrumbs, drawerDepth, getFolderRoute, router, setStepNav, startRouteTransition, t])\n\n const nonFolderCollectionSlugs = allowCreateCollectionSlugs.filter(\n (slug) => slug !== folderCollectionConfig.slug,\n )\n\n return (\n <Fragment>\n <DndEventListener onDragEnd={onDragEnd} setIsDragging={setIsDragging} />\n <div className={`${baseClass} ${baseClass}--folders`}>\n {BeforeFolderList}\n <Gutter className={`${baseClass}__wrap`}>\n <ListHeader\n Actions={[\n !smallBreak && (\n <ListSelection\n disableBulkDelete={disableBulkDelete}\n disableBulkEdit={disableBulkEdit}\n folderAssignedCollections={folderAssignedCollections}\n key=\"list-selection\"\n />\n ),\n ].filter(Boolean)}\n AfterListHeaderContent={Description}\n title={listHeaderTitle}\n TitleActions={[\n allowCreateCollectionSlugs.length && (\n <ListCreateNewDocInFolderButton\n buttonLabel={t('general:createNew')}\n collectionSlugs={allowCreateCollectionSlugs}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-new-button\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--header-pill\"\n />\n ),\n ].filter(Boolean)}\n />\n <SearchBar\n Actions={[\n <SortByPill key=\"sort-by-pill\" />,\n folderID && <FilterFolderTypePill key=\"collection-type\" />,\n <ToggleViewButtons\n activeView={activeView}\n key=\"toggle-view-buttons\"\n setActiveView={handleSetViewType}\n />,\n <CurrentFolderActions key=\"current-folder-actions\" />,\n ].filter(Boolean)}\n label={searchPlaceholder}\n onSearchChange={(search) => refineFolderData({ query: { search }, updateURL: true })}\n searchQueryParam={search}\n />\n {BeforeFolderListTable}\n {totalDocsAndSubfolders > 0 && (\n <>\n {activeView === 'grid' ? (\n <div>\n {subfolders.length ? (\n <>\n <ItemCardGrid items={subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {documents.length ? (\n <>\n <ItemCardGrid\n items={documents}\n subfolderCount={subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n ) : (\n <FolderFileTable />\n )}\n </>\n )}\n {totalDocsAndSubfolders === 0 && (\n <NoListResults\n Actions={[\n allowCreateCollectionSlugs.includes(folderCollectionConfig.slug) && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n collectionSlugs={[folderCollectionConfig.slug]}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-folder\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-folder--no-results\"\n />\n ),\n folderID && nonFolderCollectionSlugs.length > 0 && (\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${t('general:document').toLowerCase()}`}\n collectionSlugs={nonFolderCollectionSlugs}\n folderAssignedCollections={Array.isArray(folderType) ? folderType : []}\n key=\"create-document\"\n onCreateSuccess={clearRouteCache}\n slugPrefix=\"create-document--no-results\"\n />\n ),\n ].filter(Boolean)}\n Message={\n <p>\n {i18n.t('general:noResults', {\n label: noResultsLabel,\n })}\n </p>\n }\n />\n )}\n {AfterFolderListTable}\n </Gutter>\n {AfterFolderList}\n </div>\n {selectedItemKeys.size > 0 && dragOverlayItem && (\n <DragOverlaySelection item={dragOverlayItem} selectedCount={selectedItemKeys.size} />\n )}\n </Fragment>\n )\n}\nfunction DndEventListener({ onDragEnd, setIsDragging }) {\n useDndMonitor({\n onDragCancel() {\n setIsDragging(false)\n },\n onDragEnd(event) {\n setIsDragging(false)\n onDragEnd(event)\n },\n onDragStart() {\n setIsDragging(true)\n },\n })\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -65,7 +65,7 @@ export function DefaultCollectionFolderView({
65
65
  });
66
66
  }
67
67
  function CollectionFolderViewInContext(props) {
68
- const $ = _c(6);
68
+ const $ = _c(20);
69
69
  const {
70
70
  AfterFolderList,
71
71
  AfterFolderListTable,
@@ -165,6 +165,24 @@ function CollectionFolderViewInContext(props) {
165
165
  });
166
166
  clearRouteCache();
167
167
  };
168
+ const t2 = labels?.plural;
169
+ let t3;
170
+ if ($[4] !== breadcrumbs || $[5] !== collectionSlug || $[6] !== config.folders || $[7] !== config.routes.admin || $[8] !== drawerDepth || $[9] !== i18n || $[10] !== router || $[11] !== setStepNav || $[12] !== startRouteTransition || $[13] !== t2) {
171
+ t3 = [breadcrumbs, collectionSlug, config.folders, config.routes.admin, drawerDepth, i18n, t2, router, setStepNav, startRouteTransition];
172
+ $[4] = breadcrumbs;
173
+ $[5] = collectionSlug;
174
+ $[6] = config.folders;
175
+ $[7] = config.routes.admin;
176
+ $[8] = drawerDepth;
177
+ $[9] = i18n;
178
+ $[10] = router;
179
+ $[11] = setStepNav;
180
+ $[12] = startRouteTransition;
181
+ $[13] = t2;
182
+ $[14] = t3;
183
+ } else {
184
+ t3 = $[14];
185
+ }
168
186
  React.useEffect(() => {
169
187
  if (!drawerDepth) {
170
188
  setStepNav([!breadcrumbs.length ? {
@@ -206,20 +224,32 @@ function CollectionFolderViewInContext(props) {
206
224
  }, crumb.id)
207
225
  }))]);
208
226
  }
209
- }, [breadcrumbs, collectionSlug, config.folders, config.routes.admin, drawerDepth, i18n, labels?.plural, router, setStepNav, startRouteTransition]);
227
+ }, t3);
210
228
  const totalDocsAndSubfolders = documents.length + subfolders.length;
211
- let t2;
212
- if ($[4] !== refineFolderData) {
213
- t2 = search_0 => refineFolderData({
229
+ let t4;
230
+ if ($[15] !== refineFolderData) {
231
+ t4 = search_0 => refineFolderData({
214
232
  query: {
215
233
  search: search_0
216
234
  },
217
235
  updateURL: true
218
236
  });
219
- $[4] = refineFolderData;
220
- $[5] = t2;
237
+ $[15] = refineFolderData;
238
+ $[16] = t4;
221
239
  } else {
222
- t2 = $[5];
240
+ t4 = $[16];
241
+ }
242
+ let t5;
243
+ if ($[17] !== dragOverlayItem || $[18] !== selectedItemKeys.size) {
244
+ t5 = selectedItemKeys.size > 0 && dragOverlayItem && _jsx(DragOverlaySelection, {
245
+ item: dragOverlayItem,
246
+ selectedCount: selectedItemKeys.size
247
+ });
248
+ $[17] = dragOverlayItem;
249
+ $[18] = selectedItemKeys.size;
250
+ $[19] = t5;
251
+ } else {
252
+ t5 = $[19];
223
253
  }
224
254
  return _jsxs(Fragment, {
225
255
  children: [_jsx(DndEventListener, {
@@ -268,7 +298,7 @@ function CollectionFolderViewInContext(props) {
268
298
  label: t("general:searchBy", {
269
299
  label: t("general:name")
270
300
  }),
271
- onSearchChange: t2,
301
+ onSearchChange: t4,
272
302
  searchQueryParam: search
273
303
  }), BeforeFolderListTable, totalDocsAndSubfolders > 0 && FolderResultsComponent, totalDocsAndSubfolders === 0 && _jsx(NoListResults, {
274
304
  Actions: [allowCreateCollectionSlugs.includes(folderCollectionSlug) && _jsx(ListCreateNewDocInFolderButton, {
@@ -291,10 +321,7 @@ function CollectionFolderViewInContext(props) {
291
321
  })
292
322
  }), AfterFolderListTable]
293
323
  }), AfterFolderList]
294
- }), selectedItemKeys.size > 0 && dragOverlayItem && _jsx(DragOverlaySelection, {
295
- item: dragOverlayItem,
296
- selectedCount: selectedItemKeys.size
297
- })]
324
+ }), t5]
298
325
  });
299
326
  }
300
327
  function DndEventListener(t0) {