@payloadcms/ui 3.23.0 → 3.24.0-canary.1cfcb91

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 (97) hide show
  1. package/dist/elements/ListControls/index.d.ts +2 -1
  2. package/dist/elements/ListControls/index.d.ts.map +1 -1
  3. package/dist/elements/ListControls/index.js +5 -3
  4. package/dist/elements/ListControls/index.js.map +1 -1
  5. package/dist/elements/Nav/context.d.ts.map +1 -1
  6. package/dist/elements/Nav/context.js +3 -1
  7. package/dist/elements/Nav/context.js.map +1 -1
  8. package/dist/elements/Table/DefaultCell/fields/Blocks/index.d.ts.map +1 -1
  9. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +12 -4
  10. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  11. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  12. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts +2 -1
  13. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.d.ts.map +1 -1
  14. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +2 -0
  15. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  16. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  17. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +4 -0
  18. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  19. package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts +2 -1
  20. package/dist/elements/WhereBuilder/Condition/Relationship/types.d.ts.map +1 -1
  21. package/dist/elements/WhereBuilder/Condition/Relationship/types.js.map +1 -1
  22. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -1
  23. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  24. package/dist/elements/WhereBuilder/Condition/index.js +2 -0
  25. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  26. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  27. package/dist/elements/WhereBuilder/index.js +3 -1
  28. package/dist/elements/WhereBuilder/index.js.map +1 -1
  29. package/dist/elements/WhereBuilder/types.d.ts +2 -1
  30. package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
  31. package/dist/elements/WhereBuilder/types.js.map +1 -1
  32. package/dist/exports/client/{CodeEditor-BMYVMDNZ.js → CodeEditor-G3Y4UHC4.js} +2 -2
  33. package/dist/exports/client/chunk-4L367VSB.js +26 -0
  34. package/dist/exports/client/{chunk-CQQHQHCB.js.map → chunk-4L367VSB.js.map} +3 -3
  35. package/dist/exports/client/index.js +10 -10
  36. package/dist/exports/client/index.js.map +3 -3
  37. package/dist/exports/rsc/index.d.ts +1 -0
  38. package/dist/exports/rsc/index.d.ts.map +1 -1
  39. package/dist/exports/rsc/index.js +1 -0
  40. package/dist/exports/rsc/index.js.map +1 -1
  41. package/dist/fields/Blocks/BlockRow.d.ts +1 -1
  42. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  43. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  44. package/dist/fields/Blocks/BlocksDrawer/index.d.ts +1 -1
  45. package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
  46. package/dist/fields/Blocks/BlocksDrawer/index.js +31 -23
  47. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  48. package/dist/fields/Blocks/RowActions.d.ts +1 -1
  49. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  50. package/dist/fields/Blocks/RowActions.js.map +1 -1
  51. package/dist/fields/Blocks/index.d.ts.map +1 -1
  52. package/dist/fields/Blocks/index.js +6 -4
  53. package/dist/fields/Blocks/index.js.map +1 -1
  54. package/dist/fields/Join/index.d.ts.map +1 -1
  55. package/dist/fields/Join/index.js +9 -2
  56. package/dist/fields/Join/index.js.map +1 -1
  57. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  58. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +4 -3
  59. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  60. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.d.ts.map +1 -1
  61. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js +1 -1
  62. package/dist/forms/fieldSchemasToFormState/calculateDefaultValues/promise.js.map +1 -1
  63. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  64. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  65. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  66. package/dist/providers/Config/index.d.ts +2 -2
  67. package/dist/providers/Config/index.d.ts.map +1 -1
  68. package/dist/providers/Config/index.js +17 -2
  69. package/dist/providers/Config/index.js.map +1 -1
  70. package/dist/styles.css +1 -1
  71. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
  72. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +3 -1
  73. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
  74. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  75. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +4 -1
  76. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  77. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -1
  78. package/dist/utilities/copyDataFromLocale.js +13 -15
  79. package/dist/utilities/copyDataFromLocale.js.map +1 -1
  80. package/dist/utilities/getClientConfig.js.map +1 -1
  81. package/dist/utilities/renderTable.d.ts.map +1 -1
  82. package/dist/utilities/renderTable.js +37 -0
  83. package/dist/utilities/renderTable.js.map +1 -1
  84. package/dist/utilities/resolveFilterOptions.d.ts +5 -0
  85. package/dist/utilities/resolveFilterOptions.d.ts.map +1 -0
  86. package/dist/{forms/fieldSchemasToFormState/getFilterOptionsQuery.js → utilities/resolveFilterOptions.js} +2 -2
  87. package/dist/utilities/resolveFilterOptions.js.map +1 -0
  88. package/dist/views/List/index.d.ts +2 -1
  89. package/dist/views/List/index.d.ts.map +1 -1
  90. package/dist/views/List/index.js +3 -1
  91. package/dist/views/List/index.js.map +1 -1
  92. package/package.json +5 -5
  93. package/dist/exports/client/chunk-CQQHQHCB.js +0 -26
  94. package/dist/forms/fieldSchemasToFormState/getFilterOptionsQuery.d.ts +0 -7
  95. package/dist/forms/fieldSchemasToFormState/getFilterOptionsQuery.d.ts.map +0 -1
  96. package/dist/forms/fieldSchemasToFormState/getFilterOptionsQuery.js.map +0 -1
  97. /package/dist/exports/client/{CodeEditor-BMYVMDNZ.js.map → CodeEditor-G3Y4UHC4.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildClientFieldSchemaMap/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAGzB,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAGhB,KAAK,IAAI,GAAG;IACV,eAAe,EAAE,oBAAoB,CAAA;IACrC,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,cAAc,sGASxB,IAAI,SAqIN,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildClientFieldSchemaMap/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EAGzB,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAA;AAGhB,KAAK,IAAI,GAAG;IACV,eAAe,EAAE,oBAAoB,CAAA;IACrC,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,cAAc,sGASxB,IAAI,SA4IN,CAAA"}
@@ -37,7 +37,9 @@ export const traverseFields = ({
37
37
  });
38
38
  break;
39
39
  case 'blocks':
40
- field.blocks.map(block => {
40
+ ;
41
+ (field.blockReferences ?? field.blocks).map(_block => {
42
+ const block = typeof _block === 'string' ? config.blocksMap ? config.blocksMap[_block] : config.blocks.find(block => typeof block !== 'string' && block.slug === _block) : _block;
41
43
  const blockSchemaPath = `${schemaPath}.${block.slug}`;
42
44
  clientSchemaMap.set(blockSchemaPath, block);
43
45
  traverseFields({
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.js","names":["createClientFields","getFieldPaths","tabHasName","traverseFields","clientSchemaMap","config","fields","i18n","parentIndexPath","parentSchemaPath","payload","schemaMap","index","field","entries","indexPath","schemaPath","parentPath","set","type","blocks","map","block","blockSchemaPath","slug","richTextFieldSchemaMap","Map","path","subField","startsWith","isFieldsOnly","Object","keys","length","clientFields","defaultIDType","db","disableAddingID","importMap","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabSchemaPath"],"sources":["../../../src/utilities/buildClientFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\n\nimport {\n type ClientConfig,\n type ClientField,\n type ClientFieldSchemaMap,\n createClientFields,\n type Field,\n type FieldSchemaMap,\n type Payload,\n} from 'payload'\nimport { getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n clientSchemaMap: ClientFieldSchemaMap\n config: ClientConfig\n fields: ClientField[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n payload: Payload\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n clientSchemaMap,\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n payload,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n clientSchemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array':\n case 'group':\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n\n case 'blocks':\n field.blocks.map((block) => {\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n clientSchemaMap.set(blockSchemaPath, block)\n traverseFields({\n clientSchemaMap,\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: blockSchemaPath,\n payload,\n schemaMap,\n })\n })\n\n break\n case 'collapsible':\n case 'row':\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath,\n payload,\n schemaMap,\n })\n break\n\n case 'richText': {\n // richText sub-fields are not part of the ClientConfig or the Config.\n // They only exist in the field schema map.\n // Thus, we need to\n // 1. get them from the field schema map\n // 2. convert them to client fields\n // 3. add them to the client schema map\n\n // So these would basically be all fields that are not part of the client config already\n const richTextFieldSchemaMap: FieldSchemaMap = new Map()\n for (const [path, subField] of schemaMap.entries()) {\n if (path.startsWith(`${schemaPath}.`)) {\n richTextFieldSchemaMap.set(path, subField)\n }\n }\n\n // Now loop through them, convert each entry to a client field and add it to the client schema map\n for (const [path, subField] of richTextFieldSchemaMap.entries()) {\n // check if fields is the only key in the subField object\n const isFieldsOnly = Object.keys(subField).length === 1 && 'fields' in subField\n\n const clientFields = createClientFields({\n defaultIDType: payload.config.db.defaultIDType,\n disableAddingID: true,\n fields: isFieldsOnly ? subField.fields : [subField as Field],\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(\n path,\n isFieldsOnly\n ? {\n fields: clientFields,\n }\n : clientFields[0],\n )\n }\n break\n }\n\n case 'tabs':\n field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const { indexPath: tabIndexPath, schemaPath: tabSchemaPath } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n clientSchemaMap.set(tabSchemaPath, tab)\n\n traverseFields({\n clientSchemaMap,\n config,\n fields: tab.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n payload,\n schemaMap,\n })\n })\n\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"traverseFields.js","names":["createClientFields","getFieldPaths","tabHasName","traverseFields","clientSchemaMap","config","fields","i18n","parentIndexPath","parentSchemaPath","payload","schemaMap","index","field","entries","indexPath","schemaPath","parentPath","set","type","blockReferences","blocks","map","_block","block","blocksMap","find","slug","blockSchemaPath","richTextFieldSchemaMap","Map","path","subField","startsWith","isFieldsOnly","Object","keys","length","clientFields","defaultIDType","db","disableAddingID","importMap","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabSchemaPath"],"sources":["../../../src/utilities/buildClientFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\n\nimport {\n type ClientBlock,\n type ClientConfig,\n type ClientField,\n type ClientFieldSchemaMap,\n createClientFields,\n type Field,\n type FieldSchemaMap,\n type Payload,\n} from 'payload'\nimport { getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n clientSchemaMap: ClientFieldSchemaMap\n config: ClientConfig\n fields: ClientField[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n payload: Payload\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n clientSchemaMap,\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n payload,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n clientSchemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array':\n case 'group':\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n payload,\n schemaMap,\n })\n\n break\n\n case 'blocks':\n ;(field.blockReferences ?? field.blocks).map((_block) => {\n const block =\n typeof _block === 'string'\n ? config.blocksMap\n ? config.blocksMap[_block]\n : config.blocks.find((block) => typeof block !== 'string' && block.slug === _block)\n : _block\n\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n clientSchemaMap.set(blockSchemaPath, block)\n traverseFields({\n clientSchemaMap,\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: blockSchemaPath,\n payload,\n schemaMap,\n })\n })\n\n break\n case 'collapsible':\n case 'row':\n traverseFields({\n clientSchemaMap,\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath,\n payload,\n schemaMap,\n })\n break\n\n case 'richText': {\n // richText sub-fields are not part of the ClientConfig or the Config.\n // They only exist in the field schema map.\n // Thus, we need to\n // 1. get them from the field schema map\n // 2. convert them to client fields\n // 3. add them to the client schema map\n\n // So these would basically be all fields that are not part of the client config already\n const richTextFieldSchemaMap: FieldSchemaMap = new Map()\n for (const [path, subField] of schemaMap.entries()) {\n if (path.startsWith(`${schemaPath}.`)) {\n richTextFieldSchemaMap.set(path, subField)\n }\n }\n\n // Now loop through them, convert each entry to a client field and add it to the client schema map\n for (const [path, subField] of richTextFieldSchemaMap.entries()) {\n // check if fields is the only key in the subField object\n const isFieldsOnly = Object.keys(subField).length === 1 && 'fields' in subField\n\n const clientFields = createClientFields({\n defaultIDType: payload.config.db.defaultIDType,\n disableAddingID: true,\n fields: isFieldsOnly ? subField.fields : [subField as Field],\n i18n,\n importMap: payload.importMap,\n })\n\n clientSchemaMap.set(\n path,\n isFieldsOnly\n ? {\n fields: clientFields,\n }\n : clientFields[0],\n )\n }\n break\n }\n\n case 'tabs':\n field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const { indexPath: tabIndexPath, schemaPath: tabSchemaPath } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n clientSchemaMap.set(tabSchemaPath, tab)\n\n traverseFields({\n clientSchemaMap,\n config,\n fields: tab.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n payload,\n schemaMap,\n })\n })\n\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildFieldSchemaMap/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKrE,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,cAAc,4EAOxB,IAAI,SA0GN,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildFieldSchemaMap/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKrE,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,eAAe,CAAA;IACvB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,SAAS,EAAE,cAAc,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,cAAc,4EAOxB,IAAI,SA8GN,CAAA"}
@@ -33,7 +33,10 @@ export const traverseFields = ({
33
33
  });
34
34
  break;
35
35
  case 'blocks':
36
- field.blocks.map(block => {
36
+ ;
37
+ (field.blockReferences ?? field.blocks).map(_block => {
38
+ // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks
39
+ const block = typeof _block === 'string' ? config.blocks.find(b => b.slug === _block) : _block;
37
40
  const blockSchemaPath = `${schemaPath}.${block.slug}`;
38
41
  schemaMap.set(blockSchemaPath, block);
39
42
  traverseFields({
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.js","names":["MissingEditorProp","getFieldPaths","tabHasName","traverseFields","config","fields","i18n","parentIndexPath","parentSchemaPath","schemaMap","index","field","entries","indexPath","schemaPath","parentPath","set","type","blocks","map","block","blockSchemaPath","slug","editor","Error","generateSchemaMap","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabSchemaPath"],"sources":["../../../src/utilities/buildFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Field, FieldSchemaMap, SanitizedConfig } from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport { getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n config: SanitizedConfig\n fields: Field[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n schemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array':\n case 'group':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n\n case 'blocks':\n field.blocks.map((block) => {\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n schemaMap.set(blockSchemaPath, block)\n traverseFields({\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: blockSchemaPath,\n schemaMap,\n })\n })\n\n break\n case 'collapsible':\n case 'row':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath,\n schemaMap,\n })\n\n break\n\n case 'richText':\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (typeof field.editor.generateSchemaMap === 'function') {\n field.editor.generateSchemaMap({\n config,\n field,\n i18n,\n schemaMap,\n schemaPath,\n })\n }\n\n break\n\n case 'tabs':\n field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const { indexPath: tabIndexPath, schemaPath: tabSchemaPath } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n schemaMap.set(tabSchemaPath, tab)\n\n traverseFields({\n config,\n fields: tab.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n schemaMap,\n })\n })\n\n break\n }\n }\n}\n"],"mappings":"AAGA,SAASA,iBAAiB,QAAQ;AAClC,SAASC,aAAa,EAAEC,UAAU,QAAQ;AAW1C,OAAO,MAAMC,cAAA,GAAiBA,CAAC;EAC7BC,MAAM;EACNC,MAAM;EACNC,IAAI;EACJC,eAAe;EACfC,gBAAgB;EAChBC;AAAS,CACJ;EACL,KAAK,MAAM,CAACC,KAAA,EAAOC,KAAA,CAAM,IAAIN,MAAA,CAAOO,OAAO,IAAI;IAC7C,MAAM;MAAEC,SAAS;MAAEC;IAAU,CAAE,GAAGb,aAAA,CAAc;MAC9CU,KAAA;MACAD,KAAA;MACAH,eAAA,EAAiB,UAAUI,KAAA,GAAQ,KAAKJ,eAAA;MACxCQ,UAAA,EAAY;MACZP;IACF;IAEAC,SAAA,CAAUO,GAAG,CAACF,UAAA,EAAYH,KAAA;IAE1B,QAAQA,KAAA,CAAMM,IAAI;MAChB,KAAK;MACL,KAAK;QACHd,cAAA,CAAe;UACbC,MAAA;UACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;UACpBC,IAAA;UACAC,eAAA,EAAiB;UACjBC,gBAAA,EAAkBM,UAAA;UAClBL;QACF;QAEA;MAEF,KAAK;QACHE,KAAA,CAAMO,MAAM,CAACC,GAAG,CAAEC,KAAA;UAChB,MAAMC,eAAA,GAAkB,GAAGP,UAAA,IAAcM,KAAA,CAAME,IAAI,EAAE;UAErDb,SAAA,CAAUO,GAAG,CAACK,eAAA,EAAiBD,KAAA;UAC/BjB,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQe,KAAA,CAAMf,MAAM;YACpBC,IAAA;YACAC,eAAA,EAAiB;YACjBC,gBAAA,EAAkBa,eAAA;YAClBZ;UACF;QACF;QAEA;MACF,KAAK;MACL,KAAK;QACHN,cAAA,CAAe;UACbC,MAAA;UACAC,MAAA,EAAQM,KAAA,CAAMN,MAAM;UACpBC,IAAA;UACAC,eAAA,EAAiBM,SAAA;UACjBL,gBAAA;UACAC;QACF;QAEA;MAEF,KAAK;QACH,IAAI,CAACE,KAAA,EAAOY,MAAA,EAAQ;UAClB,MAAM,IAAIvB,iBAAA,CAAkBW,KAAA,EAAO;UAAA;QACrC;QAEA,IAAI,OAAOA,KAAA,CAAMY,MAAM,KAAK,YAAY;UACtC,MAAM,IAAIC,KAAA,CAAM;QAClB;QAEA,IAAI,OAAOb,KAAA,CAAMY,MAAM,CAACE,iBAAiB,KAAK,YAAY;UACxDd,KAAA,CAAMY,MAAM,CAACE,iBAAiB,CAAC;YAC7BrB,MAAA;YACAO,KAAA;YACAL,IAAA;YACAG,SAAA;YACAK;UACF;QACF;QAEA;MAEF,KAAK;QACHH,KAAA,CAAMe,IAAI,CAACP,GAAG,CAAC,CAACQ,GAAA,EAAKC,QAAA;UACnB,MAAMC,UAAA,GAAa3B,UAAA,CAAWyB,GAAA;UAE9B,MAAM;YAAEd,SAAA,EAAWiB,YAAY;YAAEhB,UAAA,EAAYiB;UAAa,CAAE,GAAG9B,aAAA,CAAc;YAC3EU,KAAA,EAAO;cACL,GAAGgB,GAAG;cACNV,IAAA,EAAM;YACR;YACAP,KAAA,EAAOkB,QAAA;YACPrB,eAAA,EAAiBM,SAAA;YACjBE,UAAA,EAAY;YACZP;UACF;UAEAC,SAAA,CAAUO,GAAG,CAACe,aAAA,EAAeJ,GAAA;UAE7BxB,cAAA,CAAe;YACbC,MAAA;YACAC,MAAA,EAAQsB,GAAA,CAAItB,MAAM;YAClBC,IAAA;YACAC,eAAA,EAAiBsB,UAAA,GAAa,KAAKC,YAAA;YACnCtB,gBAAA,EAAkBqB,UAAA,GAAaE,aAAA,GAAgBvB,gBAAA;YAC/CC;UACF;QACF;QAEA;IACJ;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"traverseFields.js","names":["MissingEditorProp","getFieldPaths","tabHasName","traverseFields","config","fields","i18n","parentIndexPath","parentSchemaPath","schemaMap","index","field","entries","indexPath","schemaPath","parentPath","set","type","blockReferences","blocks","map","_block","block","find","b","slug","blockSchemaPath","editor","Error","generateSchemaMap","tabs","tab","tabIndex","isNamedTab","tabIndexPath","tabSchemaPath"],"sources":["../../../src/utilities/buildFieldSchemaMap/traverseFields.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { Field, FieldSchemaMap, SanitizedConfig } from 'payload'\n\nimport { MissingEditorProp } from 'payload'\nimport { getFieldPaths, tabHasName } from 'payload/shared'\n\ntype Args = {\n config: SanitizedConfig\n fields: Field[]\n i18n: I18n<any, any>\n parentIndexPath: string\n parentSchemaPath: string\n schemaMap: FieldSchemaMap\n}\n\nexport const traverseFields = ({\n config,\n fields,\n i18n,\n parentIndexPath,\n parentSchemaPath,\n schemaMap,\n}: Args) => {\n for (const [index, field] of fields.entries()) {\n const { indexPath, schemaPath } = getFieldPaths({\n field,\n index,\n parentIndexPath: 'name' in field ? '' : parentIndexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n schemaMap.set(schemaPath, field)\n\n switch (field.type) {\n case 'array':\n case 'group':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: schemaPath,\n schemaMap,\n })\n\n break\n\n case 'blocks':\n ;(field.blockReferences ?? field.blocks).map((_block) => {\n // TODO: iterate over blocks mapped to block slug in v4, or pass through payload.blocks\n const block =\n typeof _block === 'string' ? config.blocks.find((b) => b.slug === _block) : _block\n\n const blockSchemaPath = `${schemaPath}.${block.slug}`\n\n schemaMap.set(blockSchemaPath, block)\n traverseFields({\n config,\n fields: block.fields,\n i18n,\n parentIndexPath: '',\n parentSchemaPath: blockSchemaPath,\n schemaMap,\n })\n })\n\n break\n case 'collapsible':\n case 'row':\n traverseFields({\n config,\n fields: field.fields,\n i18n,\n parentIndexPath: indexPath,\n parentSchemaPath,\n schemaMap,\n })\n\n break\n\n case 'richText':\n if (!field?.editor) {\n throw new MissingEditorProp(field) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof field.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (typeof field.editor.generateSchemaMap === 'function') {\n field.editor.generateSchemaMap({\n config,\n field,\n i18n,\n schemaMap,\n schemaPath,\n })\n }\n\n break\n\n case 'tabs':\n field.tabs.map((tab, tabIndex) => {\n const isNamedTab = tabHasName(tab)\n\n const { indexPath: tabIndexPath, schemaPath: tabSchemaPath } = getFieldPaths({\n field: {\n ...tab,\n type: 'tab',\n },\n index: tabIndex,\n parentIndexPath: indexPath,\n parentPath: '',\n parentSchemaPath,\n })\n\n schemaMap.set(tabSchemaPath, tab)\n\n traverseFields({\n config,\n fields: tab.fields,\n i18n,\n parentIndexPath: isNamedTab ? '' : tabIndexPath,\n parentSchemaPath: isNamedTab ? tabSchemaPath : parentSchemaPath,\n schemaMap,\n })\n })\n\n break\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"copyDataFromLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/copyDataFromLocale.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAInB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AA6HD,eAAO,MAAM,yBAAyB,SAAgB,sBAAsB,0EAiB3E,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,sBAAsB,0CAgHpE,CAAA"}
1
+ {"version":3,"file":"copyDataFromLocale.d.ts","sourceRoot":"","sources":["../../src/utilities/copyDataFromLocale.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAKnB,KAAK,cAAc,EACpB,MAAM,SAAS,CAAA;AAMhB,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,cAAc,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAyID,eAAO,MAAM,yBAAyB,SAAgB,sBAAsB,0EAiB3E,CAAA;AAED,eAAO,MAAM,kBAAkB,SAAgB,sBAAsB,0CAsHpE,CAAA"}
@@ -2,7 +2,7 @@ import ObjectIdImport from 'bson-objectid';
2
2
  import { formatErrors } from 'payload';
3
3
  import { fieldAffectsData, tabHasName } from 'payload/shared';
4
4
  const ObjectId = ObjectIdImport.default || ObjectIdImport;
5
- function iterateFields(fields, fromLocaleData, toLocaleData) {
5
+ function iterateFields(fields, fromLocaleData, toLocaleData, req) {
6
6
  fields.map(field => {
7
7
  if (fieldAffectsData(field)) {
8
8
  switch (field.type) {
@@ -22,7 +22,7 @@ function iterateFields(fields, fromLocaleData, toLocaleData) {
22
22
  if (field.localized) {
23
23
  toLocaleData[field.name][index].id = new ObjectId().toHexString();
24
24
  }
25
- iterateFields(field.fields, fromLocaleData[field.name][index], item);
25
+ iterateFields(field.fields, fromLocaleData[field.name][index], item, req);
26
26
  }
27
27
  });
28
28
  }
@@ -38,15 +38,13 @@ function iterateFields(fields, fromLocaleData, toLocaleData) {
38
38
  // if the field has a value - loop over the data from target
39
39
  if (field.name in toLocaleData) {
40
40
  toLocaleData[field.name].map((blockData, index) => {
41
- const blockFields = field.blocks.find(({
42
- slug
43
- }) => slug === blockData.blockType)?.fields;
41
+ const block = req.payload.blocks[blockData.blockType] ?? (field.blockReferences ?? field.blocks).find(block => typeof block !== 'string' && block.slug === blockData.blockType);
44
42
  // Generate new IDs if the field is localized to prevent errors with relational DBs.
45
43
  if (field.localized) {
46
44
  toLocaleData[field.name][index].id = new ObjectId().toHexString();
47
45
  }
48
- if (blockFields?.length) {
49
- iterateFields(blockFields, fromLocaleData[field.name][index], blockData);
46
+ if (block?.fields?.length) {
47
+ iterateFields(block?.fields, fromLocaleData[field.name][index], blockData, req);
50
48
  }
51
49
  });
52
50
  }
@@ -74,7 +72,7 @@ function iterateFields(fields, fromLocaleData, toLocaleData) {
74
72
  case 'group':
75
73
  {
76
74
  if (field.name in toLocaleData && fromLocaleData?.[field.name] !== undefined) {
77
- iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name]);
75
+ iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name], req);
78
76
  }
79
77
  break;
80
78
  }
@@ -83,16 +81,16 @@ function iterateFields(fields, fromLocaleData, toLocaleData) {
83
81
  switch (field.type) {
84
82
  case 'collapsible':
85
83
  case 'row':
86
- iterateFields(field.fields, fromLocaleData, toLocaleData);
84
+ iterateFields(field.fields, fromLocaleData, toLocaleData, req);
87
85
  break;
88
86
  case 'tabs':
89
87
  field.tabs.map(tab => {
90
88
  if (tabHasName(tab)) {
91
89
  if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {
92
- iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name]);
90
+ iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name], req);
93
91
  }
94
92
  } else {
95
- iterateFields(tab.fields, fromLocaleData, toLocaleData);
93
+ iterateFields(tab.fields, fromLocaleData, toLocaleData, req);
96
94
  }
97
95
  });
98
96
  break;
@@ -100,8 +98,8 @@ function iterateFields(fields, fromLocaleData, toLocaleData) {
100
98
  }
101
99
  });
102
100
  }
103
- function mergeData(fromLocaleData, toLocaleData, fields) {
104
- iterateFields(fields, fromLocaleData, toLocaleData);
101
+ function mergeData(fromLocaleData, toLocaleData, fields, req) {
102
+ iterateFields(fields, fromLocaleData, toLocaleData, req);
105
103
  return toLocaleData;
106
104
  }
107
105
  export const copyDataFromLocaleHandler = async args => {
@@ -194,7 +192,7 @@ export const copyDataFromLocale = async args => {
194
192
  }
195
193
  return globalSlug ? await payload.updateGlobal({
196
194
  slug: globalSlug,
197
- data: overrideData ? fromLocaleData.value : mergeData(fromLocaleData.value, toLocaleData.value, globals[globalSlug].config.fields),
195
+ data: overrideData ? fromLocaleData.value : mergeData(fromLocaleData.value, toLocaleData.value, globals[globalSlug].config.fields, req),
198
196
  locale: toLocale,
199
197
  overrideAccess: false,
200
198
  req,
@@ -202,7 +200,7 @@ export const copyDataFromLocale = async args => {
202
200
  }) : await payload.update({
203
201
  id: docID,
204
202
  collection: collectionSlug,
205
- data: overrideData ? fromLocaleData.value : mergeData(fromLocaleData.value, toLocaleData.value, collections[collectionSlug].config.fields),
203
+ data: overrideData ? fromLocaleData.value : mergeData(fromLocaleData.value, toLocaleData.value, collections[collectionSlug].config.fields, req),
206
204
  locale: toLocale,
207
205
  overrideAccess: false,
208
206
  req,
@@ -1 +1 @@
1
- {"version":3,"file":"copyDataFromLocale.js","names":["ObjectIdImport","formatErrors","fieldAffectsData","tabHasName","ObjectId","default","iterateFields","fields","fromLocaleData","toLocaleData","map","field","type","name","undefined","includes","item","index","localized","id","toHexString","blockData","blockFields","blocks","find","slug","blockType","length","tabs","tab","mergeData","copyDataFromLocaleHandler","args","req","copyDataFromLocale","err","payload","logger","error","msg","fromLocale","toLocale","message","collectionSlug","docID","globalSlug","overrideData","collections","globals","user","incomingUserSlug","collection","adminUserSlug","config","admin","adminAccessFunction","access","canAccessAdmin","Error","Promise","allSettled","findGlobal","depth","locale","overrideAccess","findByID","joins","status","updateGlobal","data","value","update"],"sources":["../../src/utilities/copyDataFromLocale.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\nimport {\n type CollectionSlug,\n type Data,\n type Field,\n formatErrors,\n type PayloadRequest,\n} from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type CopyDataFromLocaleArgs = {\n collectionSlug?: CollectionSlug\n docID?: number | string\n fromLocale: string\n globalSlug?: string\n overrideData?: boolean\n req: PayloadRequest\n toLocale: string\n}\n\nfunction iterateFields(fields: Field[], fromLocaleData: Data, toLocaleData: Data): void {\n fields.map((field) => {\n if (fieldAffectsData(field)) {\n switch (field.type) {\n case 'array':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((item: Data, index: number) => {\n if (fromLocaleData[field.name]?.[index]) {\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (field.localized) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n iterateFields(field.fields, fromLocaleData[field.name][index], item)\n }\n })\n }\n break\n\n case 'blocks':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((blockData: Data, index: number) => {\n const blockFields = field.blocks.find(\n ({ slug }) => slug === blockData.blockType,\n )?.fields\n\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (field.localized) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n if (blockFields?.length) {\n iterateFields(blockFields, fromLocaleData[field.name][index], blockData)\n }\n })\n }\n\n break\n\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload':\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n }\n break\n\n case 'group': {\n if (field.name in toLocaleData && fromLocaleData?.[field.name] !== undefined) {\n iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name])\n }\n break\n }\n }\n } else {\n switch (field.type) {\n case 'collapsible':\n case 'row':\n iterateFields(field.fields, fromLocaleData, toLocaleData)\n break\n\n case 'tabs':\n field.tabs.map((tab) => {\n if (tabHasName(tab)) {\n if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {\n iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name])\n }\n } else {\n iterateFields(tab.fields, fromLocaleData, toLocaleData)\n }\n })\n break\n }\n }\n })\n}\n\nfunction mergeData(fromLocaleData: Data, toLocaleData: Data, fields: Field[]): Data {\n iterateFields(fields, fromLocaleData, toLocaleData)\n\n return toLocaleData\n}\n\nexport const copyDataFromLocaleHandler = async (args: CopyDataFromLocaleArgs) => {\n const { req } = args\n\n try {\n return await copyDataFromLocale(args)\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error copying data from \"${args.fromLocale}\" to \"${args.toLocale}\"`,\n })\n\n if (err.message === 'Unauthorized') {\n return null\n }\n\n return formatErrors(err)\n }\n}\n\nexport const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => {\n const {\n collectionSlug,\n docID,\n fromLocale,\n globalSlug,\n overrideData = false,\n req: {\n payload,\n payload: { collections, globals },\n user,\n },\n req,\n toLocale,\n } = args\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = 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: args.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 }\n\n const [fromLocaleData, toLocaleData] = await Promise.allSettled([\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n joins: false,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n joins: false,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n ])\n\n if (fromLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${fromLocale}\"`)\n }\n\n if (toLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${toLocale}\"`)\n }\n\n return globalSlug\n ? await payload.updateGlobal({\n slug: globalSlug,\n data: overrideData\n ? fromLocaleData.value\n : mergeData(fromLocaleData.value, toLocaleData.value, globals[globalSlug].config.fields),\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n : await payload.update({\n id: docID,\n collection: collectionSlug,\n data: overrideData\n ? fromLocaleData.value\n : mergeData(\n fromLocaleData.value,\n toLocaleData.value,\n collections[collectionSlug].config.fields,\n ),\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"copyDataFromLocale.js","names":["ObjectIdImport","formatErrors","fieldAffectsData","tabHasName","ObjectId","default","iterateFields","fields","fromLocaleData","toLocaleData","req","map","field","type","name","undefined","includes","item","index","localized","id","toHexString","blockData","block","payload","blocks","blockType","blockReferences","find","slug","length","tabs","tab","mergeData","copyDataFromLocaleHandler","args","copyDataFromLocale","err","logger","error","msg","fromLocale","toLocale","message","collectionSlug","docID","globalSlug","overrideData","collections","globals","user","incomingUserSlug","collection","adminUserSlug","config","admin","adminAccessFunction","access","canAccessAdmin","Error","Promise","allSettled","findGlobal","depth","locale","overrideAccess","findByID","joins","status","updateGlobal","data","value","update"],"sources":["../../src/utilities/copyDataFromLocale.ts"],"sourcesContent":["import ObjectIdImport from 'bson-objectid'\nimport {\n type CollectionSlug,\n type Data,\n type Field,\n type FlattenedBlock,\n formatErrors,\n type PayloadRequest,\n} from 'payload'\nimport { fieldAffectsData, tabHasName } from 'payload/shared'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type CopyDataFromLocaleArgs = {\n collectionSlug?: CollectionSlug\n docID?: number | string\n fromLocale: string\n globalSlug?: string\n overrideData?: boolean\n req: PayloadRequest\n toLocale: string\n}\n\nfunction iterateFields(\n fields: Field[],\n fromLocaleData: Data,\n toLocaleData: Data,\n req: PayloadRequest,\n): void {\n fields.map((field) => {\n if (fieldAffectsData(field)) {\n switch (field.type) {\n case 'array':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((item: Data, index: number) => {\n if (fromLocaleData[field.name]?.[index]) {\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (field.localized) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n iterateFields(field.fields, fromLocaleData[field.name][index], item, req)\n }\n })\n }\n break\n\n case 'blocks':\n // if the field has no value, take the source value\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n break\n }\n\n // if the field has a value - loop over the data from target\n if (field.name in toLocaleData) {\n toLocaleData[field.name].map((blockData: Data, index: number) => {\n const block =\n req.payload.blocks[blockData.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockData.blockType,\n ) as FlattenedBlock | undefined)\n\n // Generate new IDs if the field is localized to prevent errors with relational DBs.\n if (field.localized) {\n toLocaleData[field.name][index].id = new ObjectId().toHexString()\n }\n\n if (block?.fields?.length) {\n iterateFields(block?.fields, fromLocaleData[field.name][index], blockData, req)\n }\n })\n }\n\n break\n\n case 'checkbox':\n case 'code':\n case 'date':\n case 'email':\n case 'json':\n case 'number':\n case 'point':\n case 'radio':\n case 'relationship':\n case 'richText':\n case 'select':\n case 'text':\n case 'textarea':\n case 'upload':\n if (\n field.name in toLocaleData &&\n // only replace if the target value is null or undefined\n [null, undefined].includes(toLocaleData[field.name]) &&\n field.name in fromLocaleData\n ) {\n toLocaleData[field.name] = fromLocaleData[field.name]\n }\n break\n\n case 'group': {\n if (field.name in toLocaleData && fromLocaleData?.[field.name] !== undefined) {\n iterateFields(field.fields, fromLocaleData[field.name], toLocaleData[field.name], req)\n }\n break\n }\n }\n } else {\n switch (field.type) {\n case 'collapsible':\n case 'row':\n iterateFields(field.fields, fromLocaleData, toLocaleData, req)\n break\n\n case 'tabs':\n field.tabs.map((tab) => {\n if (tabHasName(tab)) {\n if (tab.name in toLocaleData && fromLocaleData?.[tab.name] !== undefined) {\n iterateFields(tab.fields, fromLocaleData[tab.name], toLocaleData[tab.name], req)\n }\n } else {\n iterateFields(tab.fields, fromLocaleData, toLocaleData, req)\n }\n })\n break\n }\n }\n })\n}\n\nfunction mergeData(\n fromLocaleData: Data,\n toLocaleData: Data,\n fields: Field[],\n req: PayloadRequest,\n): Data {\n iterateFields(fields, fromLocaleData, toLocaleData, req)\n\n return toLocaleData\n}\n\nexport const copyDataFromLocaleHandler = async (args: CopyDataFromLocaleArgs) => {\n const { req } = args\n\n try {\n return await copyDataFromLocale(args)\n } catch (err) {\n req.payload.logger.error({\n err,\n msg: `There was an error copying data from \"${args.fromLocale}\" to \"${args.toLocale}\"`,\n })\n\n if (err.message === 'Unauthorized') {\n return null\n }\n\n return formatErrors(err)\n }\n}\n\nexport const copyDataFromLocale = async (args: CopyDataFromLocaleArgs) => {\n const {\n collectionSlug,\n docID,\n fromLocale,\n globalSlug,\n overrideData = false,\n req: {\n payload,\n payload: { collections, globals },\n user,\n },\n req,\n toLocale,\n } = args\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = payload.config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = 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: args.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 }\n\n const [fromLocaleData, toLocaleData] = await Promise.allSettled([\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n joins: false,\n locale: fromLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n globalSlug\n ? payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n })\n : payload.findByID({\n id: docID,\n collection: collectionSlug,\n depth: 0,\n joins: false,\n locale: toLocale,\n overrideAccess: false,\n user,\n // `select` would allow us to select only the fields we need in the future\n }),\n ])\n\n if (fromLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${fromLocale}\"`)\n }\n\n if (toLocaleData.status === 'rejected') {\n throw new Error(`Error fetching data from locale \"${toLocale}\"`)\n }\n\n return globalSlug\n ? await payload.updateGlobal({\n slug: globalSlug,\n data: overrideData\n ? fromLocaleData.value\n : mergeData(\n fromLocaleData.value,\n toLocaleData.value,\n globals[globalSlug].config.fields,\n req,\n ),\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n : await payload.update({\n id: docID,\n collection: collectionSlug,\n data: overrideData\n ? fromLocaleData.value\n : mergeData(\n fromLocaleData.value,\n toLocaleData.value,\n collections[collectionSlug].config.fields,\n req,\n ),\n locale: toLocale,\n overrideAccess: false,\n req,\n user,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"getClientConfig.js","names":["createClientConfig","cache","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","_payload_doNotCacheClientConfig","config","i18n","importMap"],"sources":["../../src/utilities/getClientConfig.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientConfig, ImportMap, SanitizedConfig } from 'payload'\n\nimport { createClientConfig } from 'payload'\nimport { cache } from 'react'\n\nlet cachedClientConfig = global._payload_clientConfig\n\nif (!cachedClientConfig) {\n cachedClientConfig = global._payload_clientConfig = null\n}\n\nexport const getClientConfig = cache(\n (args: { config: SanitizedConfig; i18n: I18nClient; importMap: ImportMap }): ClientConfig => {\n if (cachedClientConfig && !global._payload_doNotCacheClientConfig) {\n return cachedClientConfig\n }\n\n const { config, i18n, importMap } = args\n\n cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n global._payload_clientConfig = cachedClientConfig\n\n global._payload_doNotCacheClientConfig = false\n\n return cachedClientConfig\n },\n)\n"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,IAAIC,kBAAA,GAAqBC,MAAA,CAAOC,qBAAqB;AAErD,IAAI,CAACF,kBAAA,EAAoB;EACvBA,kBAAA,GAAqBC,MAAA,CAAOC,qBAAqB,GAAG;AACtD;AAEA,OAAO,MAAMC,eAAA,GAAkBJ,KAAA,CAC5BK,IAAA;EACC,IAAIJ,kBAAA,IAAsB,CAACC,MAAA,CAAOI,+BAA+B,EAAE;IACjE,OAAOL,kBAAA;EACT;EAEA,MAAM;IAAEM,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGJ,IAAA;EAEpCJ,kBAAA,GAAqBF,kBAAA,CAAmB;IACtCQ,MAAA;IACAC,IAAA;IACAC;EACF;EAEAP,MAAA,CAAOC,qBAAqB,GAAGF,kBAAA;EAE/BC,MAAA,CAAOI,+BAA+B,GAAG;EAEzC,OAAOL,kBAAA;AACT","ignoreList":[]}
1
+ {"version":3,"file":"getClientConfig.js","names":["createClientConfig","cache","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","_payload_doNotCacheClientConfig","config","i18n","importMap"],"sources":["../../src/utilities/getClientConfig.ts"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type { ClientConfig, ImportMap, SanitizedConfig } from 'payload'\n\nimport { createClientConfig } from 'payload'\nimport { cache } from 'react'\n\nlet cachedClientConfig: ClientConfig | null = global._payload_clientConfig\n\nif (!cachedClientConfig) {\n cachedClientConfig = global._payload_clientConfig = null\n}\n\nexport const getClientConfig = cache(\n (args: { config: SanitizedConfig; i18n: I18nClient; importMap: ImportMap }): ClientConfig => {\n if (cachedClientConfig && !global._payload_doNotCacheClientConfig) {\n return cachedClientConfig\n }\n\n const { config, i18n, importMap } = args\n\n cachedClientConfig = createClientConfig({\n config,\n i18n,\n importMap,\n })\n\n global._payload_clientConfig = cachedClientConfig\n\n global._payload_doNotCacheClientConfig = false\n\n return cachedClientConfig\n },\n)\n"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,IAAIC,kBAAA,GAA0CC,MAAA,CAAOC,qBAAqB;AAE1E,IAAI,CAACF,kBAAA,EAAoB;EACvBA,kBAAA,GAAqBC,MAAA,CAAOC,qBAAqB,GAAG;AACtD;AAEA,OAAO,MAAMC,eAAA,GAAkBJ,KAAA,CAC5BK,IAAA;EACC,IAAIJ,kBAAA,IAAsB,CAACC,MAAA,CAAOI,+BAA+B,EAAE;IACjE,OAAOL,kBAAA;EACT;EAEA,MAAM;IAAEM,MAAM;IAAEC,IAAI;IAAEC;EAAS,CAAE,GAAGJ,IAAA;EAEpCJ,kBAAA,GAAqBF,kBAAA,CAAmB;IACtCQ,MAAA;IACAC,IAAA;IACAC;EACF;EAEAP,MAAA,CAAOC,qBAAqB,GAAGF,kBAAA;EAE/BC,MAAA,CAAOI,+BAA+B,GAAG;EAEzC,OAAOL,kBAAA;AACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAI1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AASxD,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AAEH,eAAO,MAAM,WAAW,uMAarB;IACD,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACpD,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CAmEvB,CAAA"}
1
+ {"version":3,"file":"renderTable.d.ts","sourceRoot":"","sources":["../../src/utilities/renderTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,EAEL,SAAS,EACT,eAAe,EACf,aAAa,EACb,OAAO,EACP,yBAAyB,EAE1B,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAI1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAUxD,eAAO,MAAM,aAAa,WAChB,KAAK,EAAE,aACJ,SAAS,KACnB,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAoB3B,CAAA;AA8CH,eAAO,MAAM,WAAW,uMAarB;IACD,sBAAsB,EAAE,sBAAsB,CAAA;IAC9C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IAC7C,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAA;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACrC,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,IAAI,EAAE,UAAU,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,eAAe,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;IACzC,UAAU,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAA;CACpD,KAAG;IACF,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CAmEvB,CAAA"}
@@ -19,6 +19,43 @@ export const renderFilters = (fields, importMap) => fields.reduce((acc, field) =
19
19
  }
20
20
  return acc;
21
21
  }, new Map());
22
+ // export const resolveFilterOptions = async ({
23
+ // fields,
24
+ // relationTo,
25
+ // req,
26
+ // user,
27
+ // }: { fields: Field[] } & MarkOptional<
28
+ // FilterOptionsProps,
29
+ // 'blockData' | 'data' | 'id' | 'siblingData'
30
+ // >): Promise<Map<string, Where>> => {
31
+ // const acc = new Map<string, Where>()
32
+ // for (const field of fields) {
33
+ // if (fieldIsHiddenOrDisabled(field)) {
34
+ // continue
35
+ // }
36
+ // if ('name' in field && 'filterOptions' in field && field.filterOptions) {
37
+ // let resolvedFilterOption = {} as Where
38
+ // if (typeof field.filterOptions === 'function') {
39
+ // const result = await field.filterOptions({
40
+ // id: undefined,
41
+ // blockData: undefined,
42
+ // data: {}, // use empty object to prevent breaking queries when accessing properties of data
43
+ // relationTo,
44
+ // req,
45
+ // siblingData: {}, // use empty object to prevent breaking queries when accessing properties of siblingData
46
+ // user,
47
+ // })
48
+ // if (result && typeof result === 'object') {
49
+ // resolvedFilterOption = result
50
+ // }
51
+ // } else {
52
+ // resolvedFilterOption = field.filterOptions
53
+ // }
54
+ // acc.set(field.name, resolvedFilterOption)
55
+ // }
56
+ // }
57
+ // return acc
58
+ // }
22
59
  export const renderTable = ({
23
60
  clientCollectionConfig,
24
61
  collectionConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"renderTable.js","names":["getTranslation","fieldIsHiddenOrDisabled","flattenTopLevelFields","RenderServerComponent","buildColumnState","filterFields","getInitialColumns","Pill","SelectAll","SelectRow","Table","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","collectionConfig","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","payload","renderRowTypes","tableAppearance","useAsTitle","filter","column","some","accessor","defaultColumns","columnState","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","_","i","_jsx","labels","singular","rowData","appearance","data"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n CollectionConfig,\n Field,\n ImportMap,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n} from 'payload'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport type { Column } from '../exports/client/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport { buildColumnState } from '../elements/TableColumns/buildColumnState.js'\nimport { filterFields } from '../elements/TableColumns/filterFields.js'\nimport { getInitialColumns } from '../elements/TableColumns/getInitialColumns.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\nexport const renderTable = ({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, any>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n payload: Payload\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientCollectionConfig.fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(\n filterFields(clientCollectionConfig.fields),\n useAsTitle,\n clientCollectionConfig?.admin?.defaultColumns,\n )\n\n const columnState = buildColumnState({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: docs.map((_, i) => (\n <Pill key={i}>{getTranslation(clientCollectionConfig.labels.singular, i18n)}</Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\n }\n\n return {\n columnState,\n Table: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} />,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"renderTable.js","names":["getTranslation","fieldIsHiddenOrDisabled","flattenTopLevelFields","RenderServerComponent","buildColumnState","filterFields","getInitialColumns","Pill","SelectAll","SelectRow","Table","renderFilters","fields","importMap","reduce","acc","field","admin","components","Filter","set","name","Component","Map","renderTable","clientCollectionConfig","collectionConfig","columnPreferences","columns","columnsFromArgs","customCellProps","docs","enableRowSelections","i18n","payload","renderRowTypes","tableAppearance","useAsTitle","filter","column","some","accessor","defaultColumns","columnState","columnsToUse","unshift","active","disabled","hidden","Heading","t","renderedCells","map","_","i","_jsx","labels","singular","rowData","appearance","data"],"sources":["../../src/utilities/renderTable.tsx"],"sourcesContent":["import type {\n ClientCollectionConfig,\n CollectionConfig,\n Field,\n FilterOptionsProps,\n ImportMap,\n ListPreferences,\n PaginatedDocs,\n Payload,\n SanitizedCollectionConfig,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { getTranslation, type I18nClient } from '@payloadcms/translations'\nimport { fieldIsHiddenOrDisabled, flattenTopLevelFields } from 'payload/shared'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport type { Column } from '../exports/client/index.js'\n\nimport { RenderServerComponent } from '../elements/RenderServerComponent/index.js'\nimport { buildColumnState } from '../elements/TableColumns/buildColumnState.js'\nimport { filterFields } from '../elements/TableColumns/filterFields.js'\nimport { getInitialColumns } from '../elements/TableColumns/getInitialColumns.js'\n\n// eslint-disable-next-line payload/no-imports-from-exports-dir\nimport { Pill, SelectAll, SelectRow, Table } from '../exports/client/index.js'\n\nexport const renderFilters = (\n fields: Field[],\n importMap: ImportMap,\n): Map<string, React.ReactNode> =>\n fields.reduce(\n (acc, field) => {\n if (fieldIsHiddenOrDisabled(field)) {\n return acc\n }\n\n if ('name' in field && field.admin?.components?.Filter) {\n acc.set(\n field.name,\n RenderServerComponent({\n Component: field.admin.components?.Filter,\n importMap,\n }),\n )\n }\n\n return acc\n },\n new Map() as Map<string, React.ReactNode>,\n )\n\n// export const resolveFilterOptions = async ({\n// fields,\n// relationTo,\n// req,\n// user,\n// }: { fields: Field[] } & MarkOptional<\n// FilterOptionsProps,\n// 'blockData' | 'data' | 'id' | 'siblingData'\n// >): Promise<Map<string, Where>> => {\n// const acc = new Map<string, Where>()\n\n// for (const field of fields) {\n// if (fieldIsHiddenOrDisabled(field)) {\n// continue\n// }\n\n// if ('name' in field && 'filterOptions' in field && field.filterOptions) {\n// let resolvedFilterOption = {} as Where\n\n// if (typeof field.filterOptions === 'function') {\n// const result = await field.filterOptions({\n// id: undefined,\n// blockData: undefined,\n// data: {}, // use empty object to prevent breaking queries when accessing properties of data\n// relationTo,\n// req,\n// siblingData: {}, // use empty object to prevent breaking queries when accessing properties of siblingData\n// user,\n// })\n\n// if (result && typeof result === 'object') {\n// resolvedFilterOption = result\n// }\n// } else {\n// resolvedFilterOption = field.filterOptions\n// }\n\n// acc.set(field.name, resolvedFilterOption)\n// }\n// }\n\n// return acc\n// }\n\nexport const renderTable = ({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns: columnsFromArgs,\n customCellProps,\n docs,\n enableRowSelections,\n i18n,\n payload,\n renderRowTypes,\n tableAppearance,\n useAsTitle,\n}: {\n clientCollectionConfig: ClientCollectionConfig\n collectionConfig: SanitizedCollectionConfig\n columnPreferences: ListPreferences['columns']\n columns?: ListPreferences['columns']\n customCellProps?: Record<string, any>\n docs: PaginatedDocs['docs']\n drawerSlug?: string\n enableRowSelections: boolean\n i18n: I18nClient\n payload: Payload\n renderRowTypes?: boolean\n tableAppearance?: 'condensed' | 'default'\n useAsTitle: CollectionConfig['admin']['useAsTitle']\n}): {\n columnState: Column[]\n Table: React.ReactNode\n} => {\n // Ensure that columns passed as args comply with the field config, i.e. `hidden`, `disableListColumn`, etc.\n const columns = columnsFromArgs\n ? columnsFromArgs?.filter((column) =>\n flattenTopLevelFields(clientCollectionConfig.fields, true)?.some(\n (field) => 'name' in field && field.name === column.accessor,\n ),\n )\n : getInitialColumns(\n filterFields(clientCollectionConfig.fields),\n useAsTitle,\n clientCollectionConfig?.admin?.defaultColumns,\n )\n\n const columnState = buildColumnState({\n clientCollectionConfig,\n collectionConfig,\n columnPreferences,\n columns,\n enableRowSelections,\n i18n,\n // sortColumnProps,\n customCellProps,\n docs,\n payload,\n useAsTitle,\n })\n\n const columnsToUse = [...columnState]\n\n if (renderRowTypes) {\n columnsToUse.unshift({\n accessor: 'collection',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: i18n.t('version:type'),\n renderedCells: docs.map((_, i) => (\n <Pill key={i}>{getTranslation(clientCollectionConfig.labels.singular, i18n)}</Pill>\n )),\n } as Column)\n }\n\n if (enableRowSelections) {\n columnsToUse.unshift({\n accessor: '_select',\n active: true,\n field: {\n admin: {\n disabled: true,\n },\n hidden: true,\n },\n Heading: <SelectAll />,\n renderedCells: docs.map((_, i) => <SelectRow key={i} rowData={docs[i]} />),\n } as Column)\n }\n\n return {\n columnState,\n Table: <Table appearance={tableAppearance} columns={columnsToUse} data={docs} />,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import type { FilterOptions, FilterOptionsProps, ResolvedFilterOptions } from 'payload';
2
+ export declare const resolveFilterOptions: (filterOptions: FilterOptions, options: {
3
+ relationTo: string | string[];
4
+ } & Omit<FilterOptionsProps, "relationTo">) => Promise<ResolvedFilterOptions>;
5
+ //# sourceMappingURL=resolveFilterOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveFilterOptions.d.ts","sourceRoot":"","sources":["../../src/utilities/resolveFilterOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEvF,eAAO,MAAM,oBAAoB,kBAChB,aAAa,WACnB;IAAE,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,YAAY,CAAC,KAClF,OAAO,CAAC,qBAAqB,CA4B/B,CAAA"}
@@ -1,4 +1,4 @@
1
- export const getFilterOptionsQuery = async (filterOptions, options) => {
1
+ export const resolveFilterOptions = async (filterOptions, options) => {
2
2
  const {
3
3
  relationTo
4
4
  } = options;
@@ -25,4 +25,4 @@ export const getFilterOptionsQuery = async (filterOptions, options) => {
25
25
  }
26
26
  return query;
27
27
  };
28
- //# sourceMappingURL=getFilterOptionsQuery.js.map
28
+ //# sourceMappingURL=resolveFilterOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveFilterOptions.js","names":["resolveFilterOptions","filterOptions","options","relationTo","relations","Array","isArray","query","Promise","all","map","relation","id","exists"],"sources":["../../src/utilities/resolveFilterOptions.ts"],"sourcesContent":["import type { FilterOptions, FilterOptionsProps, ResolvedFilterOptions } from 'payload'\n\nexport const resolveFilterOptions = async (\n filterOptions: FilterOptions,\n options: { relationTo: string | string[] } & Omit<FilterOptionsProps, 'relationTo'>,\n): Promise<ResolvedFilterOptions> => {\n const { relationTo } = options\n\n const relations = Array.isArray(relationTo) ? relationTo : [relationTo]\n\n const query = {}\n\n if (typeof filterOptions !== 'undefined') {\n await Promise.all(\n relations.map(async (relation) => {\n query[relation] =\n typeof filterOptions === 'function'\n ? await filterOptions({ ...options, relationTo: relation })\n : filterOptions\n\n if (query[relation] === true) {\n query[relation] = {}\n }\n\n // this is an ugly way to prevent results from being returned\n if (query[relation] === false) {\n query[relation] = { id: { exists: false } }\n }\n }),\n )\n }\n\n return query\n}\n"],"mappings":"AAEA,OAAO,MAAMA,oBAAA,GAAuB,MAAAA,CAClCC,aAAA,EACAC,OAAA;EAEA,MAAM;IAAEC;EAAU,CAAE,GAAGD,OAAA;EAEvB,MAAME,SAAA,GAAYC,KAAA,CAAMC,OAAO,CAACH,UAAA,IAAcA,UAAA,GAAa,CAACA,UAAA,CAAW;EAEvE,MAAMI,KAAA,GAAQ,CAAC;EAEf,IAAI,OAAON,aAAA,KAAkB,aAAa;IACxC,MAAMO,OAAA,CAAQC,GAAG,CACfL,SAAA,CAAUM,GAAG,CAAC,MAAOC,QAAA;MACnBJ,KAAK,CAACI,QAAA,CAAS,GACb,OAAOV,aAAA,KAAkB,aACrB,MAAMA,aAAA,CAAc;QAAE,GAAGC,OAAO;QAAEC,UAAA,EAAYQ;MAAS,KACvDV,aAAA;MAEN,IAAIM,KAAK,CAACI,QAAA,CAAS,KAAK,MAAM;QAC5BJ,KAAK,CAACI,QAAA,CAAS,GAAG,CAAC;MACrB;MAEA;MACA,IAAIJ,KAAK,CAACI,QAAA,CAAS,KAAK,OAAO;QAC7BJ,KAAK,CAACI,QAAA,CAAS,GAAG;UAAEC,EAAA,EAAI;YAAEC,MAAA,EAAQ;UAAM;QAAE;MAC5C;IACF;EAEJ;EAEA,OAAON,KAAA;AACT","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import type { ListPreferences } from 'payload';
1
+ import type { ListPreferences, ResolvedFilterOptions } from 'payload';
2
2
  import React from 'react';
3
3
  import type { Column } from '../../elements/Table/index.js';
4
4
  import './index.scss';
@@ -22,6 +22,7 @@ export type ListViewClientProps = {
22
22
  newDocumentURL: string;
23
23
  preferenceKey?: string;
24
24
  renderedFilters?: Map<string, React.ReactNode>;
25
+ resolvedFilterOptions?: Map<string, ResolvedFilterOptions>;
25
26
  } & ListViewSlots;
26
27
  export declare const DefaultListView: React.FC<ListViewClientProps>;
27
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,OAAO,KAAwC,MAAM,OAAO,CAAA;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA6B3D,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;CAC/C,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAsPzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/List/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAMrE,OAAO,KAAwC,MAAM,OAAO,CAAA;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,+BAA+B,CAAA;AA6B3D,OAAO,cAAc,CAAA;AAKrB,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACjC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC7B,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,mBAAmB,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IAC9C,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;CAC3D,GAAG,aAAa,CAAA;AAEjB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAwPzD,CAAA"}
@@ -56,6 +56,7 @@ export const DefaultListView = props => {
56
56
  newDocumentURL,
57
57
  preferenceKey,
58
58
  renderedFilters,
59
+ resolvedFilterOptions,
59
60
  Table: InitialTable
60
61
  } = props;
61
62
  const [Table, setTable] = useState(InitialTable);
@@ -227,7 +228,8 @@ export const DefaultListView = props => {
227
228
  collectionSlug,
228
229
  disableBulkDelete,
229
230
  disableBulkEdit,
230
- renderedFilters
231
+ renderedFilters,
232
+ resolvedFilterOptions
231
233
  }), BeforeListTable, docs.length > 0 && _jsx(RelationshipProvider, {
232
234
  children: Table
233
235
  }), docs.length === 0 && _jsxs("div", {