@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,4 +1,5 @@
1
1
  export { copyDataFromLocaleHandler } from '../../utilities/copyDataFromLocale.js';
2
2
  export { renderFilters, renderTable } from '../../utilities/renderTable.js';
3
+ export { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js';
3
4
  export { upsertPreferences } from '../../utilities/upsertPreferences.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/rsc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/exports/rsc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAA;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA"}
@@ -1,4 +1,5 @@
1
1
  export { copyDataFromLocaleHandler } from '../../utilities/copyDataFromLocale.js';
2
2
  export { renderFilters, renderTable } from '../../utilities/renderTable.js';
3
+ export { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js';
3
4
  export { upsertPreferences } from '../../utilities/upsertPreferences.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["copyDataFromLocaleHandler","renderFilters","renderTable","upsertPreferences"],"sources":["../../../src/exports/rsc/index.ts"],"sourcesContent":["export { copyDataFromLocaleHandler } from '../../utilities/copyDataFromLocale.js'\nexport { renderFilters, renderTable } from '../../utilities/renderTable.js'\nexport { upsertPreferences } from '../../utilities/upsertPreferences.js'\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,aAAa,EAAEC,WAAW,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["copyDataFromLocaleHandler","renderFilters","renderTable","resolveFilterOptions","upsertPreferences"],"sources":["../../../src/exports/rsc/index.ts"],"sourcesContent":["export { copyDataFromLocaleHandler } from '../../utilities/copyDataFromLocale.js'\nexport { renderFilters, renderTable } from '../../utilities/renderTable.js'\nexport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nexport { upsertPreferences } from '../../utilities/upsertPreferences.js'\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ;AAC1C,SAASC,aAAa,EAAEC,WAAW,QAAQ;AAC3C,SAASC,oBAAoB,QAAQ;AACrC,SAASC,iBAAiB,QAAQ","ignoreList":[]}
@@ -4,7 +4,7 @@ import type { UseDraggableSortableReturn } from '../../elements/DraggableSortabl
4
4
  type BlocksFieldProps = {
5
5
  addRow: (rowIndex: number, blockType: string) => Promise<void> | void;
6
6
  block: ClientBlock;
7
- blocks: ClientBlock[];
7
+ blocks: (ClientBlock | string)[] | ClientBlock[];
8
8
  duplicateRow: (rowIndex: number) => void;
9
9
  errorCount: number;
10
10
  fields: ClientField[];
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG/F,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAgBhH,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,GAAG,0BAA0B,CAAA;AAE9B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0I/C,CAAA"}
1
+ {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAG/F,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAgBhH,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,GAAG,WAAW,EAAE,CAAA;IAChD,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,yBAAyB,CAAA;IACtC,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,GAAG,0BAA0B,CAAA;AAE9B,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0I/C,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRow.js","names":["c","_c","getTranslation","React","Fragment","Collapsible","ErrorPill","Pill","ShimmerEffect","useFormSubmitted","RenderFields","useThrottledValue","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","t0","$","addRow","attributes","block","blocks","duplicateRow","errorCount","fields","hasMaxRows","isLoading","isLoadingFromProps","isSortable","Label","labels","listeners","moveRow","parentPath","path","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","t1","t2","filter","Boolean","classNames","join","blockPermissions","permissionsBlockSpecific","slug","t3","split","t4","blockType","collapsed","id","t5","_jsx","ref","style","children","actions","className","collapsibleStyle","dragHandleProps","undefined","header","height","width","_jsxs","String","padStart","pillStyle","singular","count","withMessage","onToggle","margins","parentIndexPath","parentSchemaPath"],"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels, Row, SanitizedFieldPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment } from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { RenderFieldsProps } from '../../forms/RenderFields/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useThrottledValue } from '../../hooks/useThrottledValue.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlocksFieldProps = {\n addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n block: ClientBlock\n blocks: ClientBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fields: ClientField[]\n hasMaxRows?: boolean\n isLoading?: boolean\n isSortable?: boolean\n Label?: React.ReactNode\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n parentPath: string\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n} & UseDraggableSortableReturn\n\nexport const BlockRow: React.FC<BlocksFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n fields,\n hasMaxRows,\n isLoading: isLoadingFromProps,\n isSortable,\n Label,\n labels,\n listeners,\n moveRow,\n parentPath,\n path,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const isLoading = useThrottledValue(isLoadingFromProps, 500)\n\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let blockPermissions: RenderFieldsProps['permissions'] = undefined\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[block.slug]\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n\n return (\n <div\n id={`${parentPath?.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blocks={blocks}\n blockType={row.blockType}\n duplicateRow={duplicateRow}\n fields={block.fields}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n isLoading ? (\n <ShimmerEffect height=\"1rem\" width=\"8rem\" />\n ) : (\n <div className={`${baseClass}__block-header`}>\n {Label || (\n <Fragment>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </Fragment>\n )}\n </div>\n )\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n {isLoading ? (\n <ShimmerEffect />\n ) : (\n <RenderFields\n className={`${baseClass}__fields`}\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={blockPermissions}\n readOnly={readOnly}\n />\n )}\n </Collapsible>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BlockRow.js","names":["c","_c","getTranslation","React","Fragment","Collapsible","ErrorPill","Pill","ShimmerEffect","useFormSubmitted","RenderFields","useThrottledValue","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","t0","$","addRow","attributes","block","blocks","duplicateRow","errorCount","fields","hasMaxRows","isLoading","isLoadingFromProps","isSortable","Label","labels","listeners","moveRow","parentPath","path","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","t1","t2","filter","Boolean","classNames","join","blockPermissions","permissionsBlockSpecific","slug","t3","split","t4","blockType","collapsed","id","t5","_jsx","ref","style","children","actions","className","collapsibleStyle","dragHandleProps","undefined","header","height","width","_jsxs","String","padStart","pillStyle","singular","count","withMessage","onToggle","margins","parentIndexPath","parentSchemaPath"],"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels, Row, SanitizedFieldPermissions } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment } from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { RenderFieldsProps } from '../../forms/RenderFields/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useThrottledValue } from '../../hooks/useThrottledValue.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlocksFieldProps = {\n addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n block: ClientBlock\n blocks: (ClientBlock | string)[] | ClientBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fields: ClientField[]\n hasMaxRows?: boolean\n isLoading?: boolean\n isSortable?: boolean\n Label?: React.ReactNode\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n parentPath: string\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n} & UseDraggableSortableReturn\n\nexport const BlockRow: React.FC<BlocksFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n fields,\n hasMaxRows,\n isLoading: isLoadingFromProps,\n isSortable,\n Label,\n labels,\n listeners,\n moveRow,\n parentPath,\n path,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const isLoading = useThrottledValue(isLoadingFromProps, 500)\n\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let blockPermissions: RenderFieldsProps['permissions'] = undefined\n\n if (permissions === true) {\n blockPermissions = true\n } else {\n const permissionsBlockSpecific = permissions?.blocks?.[block.slug]\n if (permissionsBlockSpecific === true) {\n blockPermissions = true\n } else {\n blockPermissions = permissionsBlockSpecific?.fields\n }\n }\n\n return (\n <div\n id={`${parentPath?.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blocks={blocks}\n blockType={row.blockType}\n duplicateRow={duplicateRow}\n fields={block.fields}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n isLoading ? (\n <ShimmerEffect height=\"1rem\" width=\"8rem\" />\n ) : (\n <div className={`${baseClass}__block-header`}>\n {Label || (\n <Fragment>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </Fragment>\n )}\n </div>\n )\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n {isLoading ? (\n <ShimmerEffect />\n ) : (\n <RenderFields\n className={`${baseClass}__fields`}\n fields={fields}\n margins=\"small\"\n parentIndexPath=\"\"\n parentPath={path}\n parentSchemaPath={schemaPath}\n permissions={blockPermissions}\n readOnly={readOnly}\n />\n )}\n </Collapsible>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import './index.scss';
4
4
  export type Props = {
5
5
  readonly addRow: (index: number, blockType?: string) => Promise<void> | void;
6
6
  readonly addRowIndex: number;
7
- readonly blocks: ClientBlock[];
7
+ readonly blocks: (ClientBlock | string)[];
8
8
  readonly drawerSlug: string;
9
9
  readonly labels: Labels;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAOlD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAcD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAiExC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAIlD,OAAO,KAA8B,MAAM,OAAO,CAAA;AAOlD,OAAO,cAAc,CAAA;AAGrB,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5E,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAcD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAqExC,CAAA"}
@@ -8,9 +8,10 @@ import React, { useEffect, useState } from 'react';
8
8
  import { Drawer } from '../../../elements/Drawer/index.js';
9
9
  import { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js';
10
10
  import { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js';
11
+ import { useConfig } from '../../../providers/Config/index.js';
11
12
  import { useTranslation } from '../../../providers/Translation/index.js';
12
- import { BlockSearch } from './BlockSearch/index.js';
13
13
  import './index.scss';
14
+ import { BlockSearch } from './BlockSearch/index.js';
14
15
  const baseClass = 'blocks-drawer';
15
16
  const getBlockLabel = (block, i18n) => {
16
17
  if (typeof block.labels.singular === 'string') {
@@ -22,7 +23,7 @@ const getBlockLabel = (block, i18n) => {
22
23
  return '';
23
24
  };
24
25
  export const BlocksDrawer = props => {
25
- const $ = _c(18);
26
+ const $ = _c(20);
26
27
  const {
27
28
  addRow,
28
29
  addRowIndex,
@@ -40,6 +41,9 @@ export const BlocksDrawer = props => {
40
41
  i18n,
41
42
  t
42
43
  } = useTranslation();
44
+ const {
45
+ config
46
+ } = useConfig();
43
47
  let t0;
44
48
  let t1;
45
49
  if ($[0] !== drawerSlug || $[1] !== isModalOpen) {
@@ -60,10 +64,11 @@ export const BlocksDrawer = props => {
60
64
  useEffect(t0, t1);
61
65
  let t2;
62
66
  let t3;
63
- if ($[4] !== blocks || $[5] !== i18n || $[6] !== searchTerm) {
67
+ if ($[4] !== blocks || $[5] !== config.blocksMap || $[6] !== i18n || $[7] !== searchTerm) {
64
68
  t2 = () => {
65
69
  const searchTermToUse = searchTerm.toLowerCase();
66
- const matchingBlocks = blocks?.reduce((matchedBlocks, block) => {
70
+ const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => {
71
+ const block = typeof _block === "string" ? config.blocksMap[_block] : _block;
67
72
  const blockLabel = getBlockLabel(block, i18n);
68
73
  if (blockLabel.includes(searchTermToUse)) {
69
74
  matchedBlocks.push(block);
@@ -72,19 +77,20 @@ export const BlocksDrawer = props => {
72
77
  }, []);
73
78
  setFilteredBlocks(matchingBlocks);
74
79
  };
75
- t3 = [searchTerm, blocks, i18n];
80
+ t3 = [searchTerm, blocks, i18n, config.blocksMap];
76
81
  $[4] = blocks;
77
- $[5] = i18n;
78
- $[6] = searchTerm;
79
- $[7] = t2;
80
- $[8] = t3;
82
+ $[5] = config.blocksMap;
83
+ $[6] = i18n;
84
+ $[7] = searchTerm;
85
+ $[8] = t2;
86
+ $[9] = t3;
81
87
  } else {
82
- t2 = $[7];
83
- t3 = $[8];
88
+ t2 = $[8];
89
+ t3 = $[9];
84
90
  }
85
91
  useEffect(t2, t3);
86
92
  let t4;
87
- if ($[9] !== addRow || $[10] !== addRowIndex || $[11] !== closeModal || $[12] !== drawerSlug || $[13] !== filteredBlocks || $[14] !== i18n || $[15] !== labels.singular || $[16] !== t) {
93
+ if ($[10] !== addRow || $[11] !== addRowIndex || $[12] !== closeModal || $[13] !== config.blocksMap || $[14] !== drawerSlug || $[15] !== filteredBlocks || $[16] !== i18n || $[17] !== labels.singular || $[18] !== t) {
88
94
  t4 = _jsxs(Drawer, {
89
95
  slug: drawerSlug,
90
96
  title: t("fields:addLabel", {
@@ -96,7 +102,8 @@ export const BlocksDrawer = props => {
96
102
  className: `${baseClass}__blocks-wrapper`,
97
103
  children: _jsx("ul", {
98
104
  className: `${baseClass}__blocks`,
99
- children: filteredBlocks?.map((block_0, index) => {
105
+ children: filteredBlocks?.map((_block_0, index) => {
106
+ const block_0 = typeof _block_0 === "string" ? config.blocksMap[_block_0] : _block_0;
100
107
  const {
101
108
  slug,
102
109
  imageAltText,
@@ -125,17 +132,18 @@ export const BlocksDrawer = props => {
125
132
  })
126
133
  })]
127
134
  });
128
- $[9] = addRow;
129
- $[10] = addRowIndex;
130
- $[11] = closeModal;
131
- $[12] = drawerSlug;
132
- $[13] = filteredBlocks;
133
- $[14] = i18n;
134
- $[15] = labels.singular;
135
- $[16] = t;
136
- $[17] = t4;
135
+ $[10] = addRow;
136
+ $[11] = addRowIndex;
137
+ $[12] = closeModal;
138
+ $[13] = config.blocksMap;
139
+ $[14] = drawerSlug;
140
+ $[15] = filteredBlocks;
141
+ $[16] = i18n;
142
+ $[17] = labels.singular;
143
+ $[18] = t;
144
+ $[19] = t4;
137
145
  } else {
138
- t4 = $[17];
146
+ t4 = $[19];
139
147
  }
140
148
  return t4;
141
149
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useEffect","useState","Drawer","ThumbnailCard","DefaultBlockImage","useTranslation","BlockSearch","baseClass","getBlockLabel","block","i18n","labels","singular","toLowerCase","BlocksDrawer","props","$","addRow","addRowIndex","blocks","drawerSlug","searchTerm","setSearchTerm","filteredBlocks","setFilteredBlocks","closeModal","isModalOpen","t","t0","t1","t2","t3","searchTermToUse","matchingBlocks","reduce","matchedBlocks","blockLabel","includes","push","t4","_jsxs","slug","title","label","children","_jsx","className","map","block_0","index","imageAltText","imageURL","blockLabels","alignLabel","onClick","thumbnail","alt","src"],"sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport { Drawer } from '../../../elements/Drawer/index.js'\nimport { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js'\nimport { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { BlockSearch } from './BlockSearch/index.js'\nimport './index.scss'\n\nexport type Props = {\n readonly addRow: (index: number, blockType?: string) => Promise<void> | void\n readonly addRowIndex: number\n readonly blocks: ClientBlock[]\n readonly drawerSlug: string\n readonly labels: Labels\n}\n\nconst baseClass = 'blocks-drawer'\n\nconst getBlockLabel = (block: ClientBlock, i18n: I18nClient) => {\n if (typeof block.labels.singular === 'string') {\n return block.labels.singular.toLowerCase()\n }\n if (typeof block.labels.singular === 'object') {\n return getTranslation(block.labels.singular, i18n).toLowerCase()\n }\n return ''\n}\n\nexport const BlocksDrawer: React.FC<Props> = (props) => {\n const { addRow, addRowIndex, blocks, drawerSlug, labels } = props\n\n const [searchTerm, setSearchTerm] = useState('')\n const [filteredBlocks, setFilteredBlocks] = useState(blocks)\n const { closeModal, isModalOpen } = useModal()\n const { i18n, t } = useTranslation()\n\n useEffect(() => {\n if (!isModalOpen(drawerSlug)) {\n setSearchTerm('')\n }\n }, [isModalOpen, drawerSlug])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingBlocks = blocks?.reduce((matchedBlocks, block) => {\n const blockLabel = getBlockLabel(block, i18n)\n if (blockLabel.includes(searchTermToUse)) {\n matchedBlocks.push(block)\n }\n return matchedBlocks\n }, [])\n\n setFilteredBlocks(matchingBlocks)\n }, [searchTerm, blocks, i18n])\n\n return (\n <Drawer\n slug={drawerSlug}\n title={t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n >\n <BlockSearch setSearchTerm={setSearchTerm} />\n <div className={`${baseClass}__blocks-wrapper`}>\n <ul className={`${baseClass}__blocks`}>\n {filteredBlocks?.map((block, index) => {\n const { slug, imageAltText, imageURL, labels: blockLabels } = block\n\n return (\n <li className={`${baseClass}__block`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={getTranslation(blockLabels?.singular, i18n)}\n onClick={() => {\n void addRow(addRowIndex, slug)\n closeModal(drawerSlug)\n }}\n thumbnail={\n imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <div className={`${baseClass}__default-image`}>\n <DefaultBlockImage />\n </div>\n )\n }\n />\n </li>\n )\n })}\n </ul>\n </div>\n </Drawer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","React","useEffect","useState","Drawer","ThumbnailCard","DefaultBlockImage","useConfig","useTranslation","BlockSearch","baseClass","getBlockLabel","block","i18n","labels","singular","toLowerCase","BlocksDrawer","props","$","addRow","addRowIndex","blocks","drawerSlug","searchTerm","setSearchTerm","filteredBlocks","setFilteredBlocks","closeModal","isModalOpen","t","config","t0","t1","t2","t3","blocksMap","searchTermToUse","matchingBlocks","reduce","matchedBlocks","_block","blockLabel","includes","push","t4","_jsxs","slug","title","label","children","_jsx","className","map","_block_0","index","block_0","imageAltText","imageURL","blockLabels","alignLabel","onClick","thumbnail","alt","src"],"sources":["../../../../src/fields/Blocks/BlocksDrawer/index.tsx"],"sourcesContent":["'use client'\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientBlock, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useState } from 'react'\n\nimport { Drawer } from '../../../elements/Drawer/index.js'\nimport { ThumbnailCard } from '../../../elements/ThumbnailCard/index.js'\nimport { DefaultBlockImage } from '../../../graphics/DefaultBlockImage/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport './index.scss'\nimport { BlockSearch } from './BlockSearch/index.js'\n\nexport type Props = {\n readonly addRow: (index: number, blockType?: string) => Promise<void> | void\n readonly addRowIndex: number\n readonly blocks: (ClientBlock | string)[]\n readonly drawerSlug: string\n readonly labels: Labels\n}\n\nconst baseClass = 'blocks-drawer'\n\nconst getBlockLabel = (block: ClientBlock, i18n: I18nClient) => {\n if (typeof block.labels.singular === 'string') {\n return block.labels.singular.toLowerCase()\n }\n if (typeof block.labels.singular === 'object') {\n return getTranslation(block.labels.singular, i18n).toLowerCase()\n }\n return ''\n}\n\nexport const BlocksDrawer: React.FC<Props> = (props) => {\n const { addRow, addRowIndex, blocks, drawerSlug, labels } = props\n\n const [searchTerm, setSearchTerm] = useState('')\n const [filteredBlocks, setFilteredBlocks] = useState(blocks)\n const { closeModal, isModalOpen } = useModal()\n const { i18n, t } = useTranslation()\n const { config } = useConfig()\n\n useEffect(() => {\n if (!isModalOpen(drawerSlug)) {\n setSearchTerm('')\n }\n }, [isModalOpen, drawerSlug])\n\n useEffect(() => {\n const searchTermToUse = searchTerm.toLowerCase()\n\n const matchingBlocks = blocks?.reduce((matchedBlocks, _block) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n const blockLabel = getBlockLabel(block, i18n)\n if (blockLabel.includes(searchTermToUse)) {\n matchedBlocks.push(block)\n }\n return matchedBlocks\n }, [])\n\n setFilteredBlocks(matchingBlocks)\n }, [searchTerm, blocks, i18n, config.blocksMap])\n\n return (\n <Drawer\n slug={drawerSlug}\n title={t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n >\n <BlockSearch setSearchTerm={setSearchTerm} />\n <div className={`${baseClass}__blocks-wrapper`}>\n <ul className={`${baseClass}__blocks`}>\n {filteredBlocks?.map((_block, index) => {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const { slug, imageAltText, imageURL, labels: blockLabels } = block\n\n return (\n <li className={`${baseClass}__block`} key={index}>\n <ThumbnailCard\n alignLabel=\"center\"\n label={getTranslation(blockLabels?.singular, i18n)}\n onClick={() => {\n void addRow(addRowIndex, slug)\n closeModal(drawerSlug)\n }}\n thumbnail={\n imageURL ? (\n <img alt={imageAltText} src={imageURL} />\n ) : (\n <div className={`${baseClass}__default-image`}>\n <DefaultBlockImage />\n </div>\n )\n }\n />\n </li>\n )\n })}\n </ul>\n </div>\n </Drawer>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,SAAS,EAAEC,QAAQ,QAAQ;AAE3C,SAASC,MAAM,QAAQ;AACvB,SAASC,aAAa,QAAQ;AAC9B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AACP,SAASC,WAAW,QAAQ;AAU5B,MAAMC,SAAA,GAAY;AAElB,MAAMC,aAAA,GAAgBA,CAACC,KAAA,EAAoBC,IAAA;EACzC,IAAI,OAAOD,KAAA,CAAME,MAAM,CAACC,QAAQ,KAAK,UAAU;IAC7C,OAAOH,KAAA,CAAME,MAAM,CAACC,QAAQ,CAACC,WAAW;EAC1C;EACA,IAAI,OAAOJ,KAAA,CAAME,MAAM,CAACC,QAAQ,KAAK,UAAU;IAC7C,OAAOf,cAAA,CAAeY,KAAA,CAAME,MAAM,CAACC,QAAQ,EAAEF,IAAA,EAAMG,WAAW;EAChE;EACA,OAAO;AACT;AAEA,OAAO,MAAMC,YAAA,GAAgCC,KAAA;EAAA,MAAAC,CAAA,GAAArB,EAAA;EAC3C;IAAAsB,MAAA;IAAAC,WAAA;IAAAC,MAAA;IAAAC,UAAA;IAAAT;EAAA,IAA4DI,KAAA;EAE5D,OAAAM,UAAA,EAAAC,aAAA,IAAoCtB,QAAA,CAAS;EAC7C,OAAAuB,cAAA,EAAAC,iBAAA,IAA4CxB,QAAA,CAASmB,MAAA;EACrD;IAAAM,UAAA;IAAAC;EAAA,IAAoC9B,QAAA;EACpC;IAAAc,IAAA;IAAAiB;EAAA,IAAoBtB,cAAA;EACpB;IAAAuB;EAAA,IAAmBxB,SAAA;EAAA,IAAAyB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAI,UAAA,IAAAJ,CAAA,QAAAU,WAAA;IAETG,EAAA,GAAAA,CAAA;MAAA,KACHH,WAAA,CAAYN,UAAA;QACfE,aAAA,CAAc;MAAA;IAAA;IAEfQ,EAAA,IAACJ,WAAA,EAAaN,UAAA;IAAWJ,CAAA,MAAAI,UAAA;IAAAJ,CAAA,MAAAU,WAAA;IAAAV,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJ5BjB,SAAA,CAAU8B,EAIV,EAAGC,EAAyB;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhB,CAAA,QAAAG,MAAA,IAAAH,CAAA,QAAAY,MAAA,CAAAK,SAAA,IAAAjB,CAAA,QAAAN,IAAA,IAAAM,CAAA,QAAAK,UAAA;IAElBU,EAAA,GAAAA,CAAA;MACR,MAAAG,eAAA,GAAwBb,UAAA,CAAAR,WAAA,CAAsB;MAE9C,MAAAsB,cAAA,GAAuBhB,MAAA,EAAAiB,MAAA,EAAAC,aAAA,EAAAC,MAAA;QACrB,MAAA7B,KAAA,GAAc,OAAO6B,MAAA,KAAW,WAAWV,MAAA,CAAAK,SAAA,CAAiBK,MAAA,IAAUA,MAAA;QACtE,MAAAC,UAAA,GAAmB/B,aAAA,CAAcC,KAAA,EAAOC,IAAA;QAAA,IACpC6B,UAAA,CAAAC,QAAA,CAAoBN,eAAA;UACtBG,aAAA,CAAAI,IAAA,CAAmBhC,KAAA;QAAA;QAAA,OAEd4B,aAAA;MAAA;MAGTb,iBAAA,CAAkBW,cAAA;IAAA;IACjBH,EAAA,IAACX,UAAA,EAAYF,MAAA,EAAQT,IAAA,EAAMkB,MAAA,CAAAK,SAAA;IAAiBjB,CAAA,MAAAG,MAAA;IAAAH,CAAA,MAAAY,MAAA,CAAAK,SAAA;IAAAjB,CAAA,MAAAN,IAAA;IAAAM,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAgB,EAAA;EAAA;IAAAD,EAAA,GAAAf,CAAA;IAAAgB,EAAA,GAAAhB,CAAA;EAAA;EAb/CjB,SAAA,CAAUgC,EAaV,EAAGC,EAA4C;EAAA,IAAAU,EAAA;EAAA,IAAA1B,CAAA,SAAAC,MAAA,IAAAD,CAAA,SAAAE,WAAA,IAAAF,CAAA,SAAAS,UAAA,IAAAT,CAAA,SAAAY,MAAA,CAAAK,SAAA,IAAAjB,CAAA,SAAAI,UAAA,IAAAJ,CAAA,SAAAO,cAAA,IAAAP,CAAA,SAAAN,IAAA,IAAAM,CAAA,SAAAL,MAAA,CAAAC,QAAA,IAAAI,CAAA,SAAAW,CAAA;IAG7Ce,EAAA,GAAAC,KAAA,CAAA1C,MAAA;MAAA2C,IAAA,EACQxB,UAAA;MAAAyB,KAAA,EACClB,CAAA,CAAE;QAAAmB,KAAA,EAA4BjD,cAAA,CAAec,MAAA,CAAAC,QAAA,EAAiBF,IAAA;MAAA,CAAM;MAAAqC,QAAA,GAE3EC,IAAA,CAAA1C,WAAA;QAAAgB;MAAA,C,GACA0B,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAA1C,SAAA,kBAA8B;QAAAwC,QAAA,EAC5CC,IAAA,CAAC;UAAAC,SAAA,EAAc,GAAA1C,SAAA,UAAsB;UAAAwC,QAAA,EAClCxB,cAAA,EAAA2B,GAAA,EAAAC,QAAA,EAAAC,KAAA;YACC,MAAAC,OAAA,GAAc,OAAOf,QAAA,KAAW,WAAWV,MAAA,CAAAK,SAAA,CAAiBK,QAAA,IAAUA,QAAA;YAEtE;cAAAM,IAAA;cAAAU,YAAA;cAAAC,QAAA;cAAA5C,MAAA,EAAA6C;YAAA,IAA8D/C,OAAA;YAAA,OAG5DuC,IAAA,CAAC;cAAAC,SAAA,EAAc,GAAA1C,SAAA,SAAqB;cAAAwC,QAAA,EAClCC,IAAA,CAAA9C,aAAA;gBAAAuD,UAAA,EACa;gBAAAX,KAAA,EACJjD,cAAA,CAAe2D,WAAA,EAAA5C,QAAA,EAAuBF,IAAA;gBAAAgD,OAAA,EAAAA,CAAA;kBAEtCzC,MAAA,CAAOC,WAAA,EAAa0B,IAAA;kBACzBnB,UAAA,CAAWL,UAAA;gBAAA;gBAAAuC,SAAA,EAGXJ,QAAA,GACEP,IAAA,CAAC;kBAAAY,GAAA,EAASN,YAAA;kBAAAO,GAAA,EAAmBN;gBAAA,C,IAE7BP,IAAA,CAAC;kBAAAC,SAAA,EAAe,GAAA1C,SAAA,iBAA6B;kBAAAwC,QAAA,EAC3CC,IAAA,CAAA7C,iBAAA,IAAC;gBAAA,C;;eAbgCiD,KAAA;UAAA;QAAA,C;;;;;;;;;;;;;;;;SAbrDV,E;CAsCJ","ignoreList":[]}
@@ -2,7 +2,7 @@ import type { ClientBlock, ClientField, Labels } from 'payload';
2
2
  import React from 'react';
3
3
  export declare const RowActions: React.FC<{
4
4
  readonly addRow: (rowIndex: number, blockType: string) => Promise<void> | void;
5
- readonly blocks: ClientBlock[];
5
+ readonly blocks: (ClientBlock | string)[];
6
6
  readonly blockType: string;
7
7
  readonly duplicateRow: (rowIndex: number, blockType: string) => void;
8
8
  readonly fields: ClientField[];
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC9E,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACpE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAiDA,CAAA"}
1
+ {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAG/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC9E,QAAQ,CAAC,MAAM,EAAE,CAAC,WAAW,GAAG,MAAM,CAAC,EAAE,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACpE,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,CAAA;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9D,QAAQ,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAiDA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.js","names":["c","_c","useModal","React","ArrayAction","useDrawerSlug","BlocksDrawer","RowActions","props","$","addRow","blocks","blockType","duplicateRow","hasMaxRows","isSortable","labels","moveRow","removeRow","rowCount","rowIndex","closeModal","openModal","drawerSlug","indexToAdd","setIndexToAdd","useState","t0","_","rowBlockType","t1","t2","index","t3","_jsxs","Fragment","children","_jsx","addRowIndex"],"sources":["../../../src/fields/Blocks/RowActions.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nexport const RowActions: React.FC<{\n readonly addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n readonly blocks: ClientBlock[]\n readonly blockType: string\n readonly duplicateRow: (rowIndex: number, blockType: string) => void\n readonly fields: ClientField[]\n readonly hasMaxRows?: boolean\n readonly isSortable?: boolean\n readonly labels: Labels\n readonly moveRow: (fromIndex: number, toIndex: number) => void\n readonly removeRow: (rowIndex: number) => void\n readonly rowCount: number\n readonly rowIndex: number\n}> = (props) => {\n const {\n addRow,\n blocks,\n blockType,\n duplicateRow,\n hasMaxRows,\n isSortable,\n labels,\n moveRow,\n removeRow,\n rowCount,\n rowIndex,\n } = props\n\n const { closeModal, openModal } = useModal()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n\n const [indexToAdd, setIndexToAdd] = React.useState<null | number>(null)\n\n return (\n <React.Fragment>\n <BlocksDrawer\n addRow={(_, rowBlockType) => {\n if (typeof addRow === 'function') {\n void addRow(indexToAdd, rowBlockType)\n }\n closeModal(drawerSlug)\n }}\n addRowIndex={rowIndex}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n <ArrayAction\n addRow={(index) => {\n setIndexToAdd(index)\n openModal(drawerSlug)\n }}\n duplicateRow={() => duplicateRow(rowIndex, blockType)}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n isSortable={isSortable}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"RowActions.js","names":["c","_c","useModal","React","ArrayAction","useDrawerSlug","BlocksDrawer","RowActions","props","$","addRow","blocks","blockType","duplicateRow","hasMaxRows","isSortable","labels","moveRow","removeRow","rowCount","rowIndex","closeModal","openModal","drawerSlug","indexToAdd","setIndexToAdd","useState","t0","_","rowBlockType","t1","t2","index","t3","_jsxs","Fragment","children","_jsx","addRowIndex"],"sources":["../../../src/fields/Blocks/RowActions.tsx"],"sourcesContent":["'use client'\nimport type { ClientBlock, ClientField, Labels } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React from 'react'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\n\nexport const RowActions: React.FC<{\n readonly addRow: (rowIndex: number, blockType: string) => Promise<void> | void\n readonly blocks: (ClientBlock | string)[]\n readonly blockType: string\n readonly duplicateRow: (rowIndex: number, blockType: string) => void\n readonly fields: ClientField[]\n readonly hasMaxRows?: boolean\n readonly isSortable?: boolean\n readonly labels: Labels\n readonly moveRow: (fromIndex: number, toIndex: number) => void\n readonly removeRow: (rowIndex: number) => void\n readonly rowCount: number\n readonly rowIndex: number\n}> = (props) => {\n const {\n addRow,\n blocks,\n blockType,\n duplicateRow,\n hasMaxRows,\n isSortable,\n labels,\n moveRow,\n removeRow,\n rowCount,\n rowIndex,\n } = props\n\n const { closeModal, openModal } = useModal()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n\n const [indexToAdd, setIndexToAdd] = React.useState<null | number>(null)\n\n return (\n <React.Fragment>\n <BlocksDrawer\n addRow={(_, rowBlockType) => {\n if (typeof addRow === 'function') {\n void addRow(indexToAdd, rowBlockType)\n }\n closeModal(drawerSlug)\n }}\n addRowIndex={rowIndex}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n <ArrayAction\n addRow={(index) => {\n setIndexToAdd(index)\n openModal(drawerSlug)\n }}\n duplicateRow={() => duplicateRow(rowIndex, blockType)}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n isSortable={isSortable}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AA0BpD,OAAO,cAAc,CAAA;AAyUrB,eAAO,MAAM,WAAW;;;;+EAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAgC,MAAM,OAAO,CAAA;AA0BpD,OAAO,cAAc,CAAA;AA+UrB,eAAO,MAAM,WAAW;;;;+EAAsC,CAAA"}
@@ -47,6 +47,7 @@ const BlocksFieldComponent = props => {
47
47
  const {
48
48
  name,
49
49
  admin: t1,
50
+ blockReferences,
50
51
  blocks,
51
52
  label,
52
53
  labels: labelsFromProps,
@@ -83,7 +84,8 @@ const BlocksFieldComponent = props => {
83
84
  code: locale
84
85
  } = useLocale();
85
86
  const {
86
- config: t4
87
+ config: t4,
88
+ config
87
89
  } = useConfig();
88
90
  const {
89
91
  localization
@@ -421,7 +423,7 @@ const BlocksFieldComponent = props => {
421
423
  blockType: blockType_0,
422
424
  isLoading
423
425
  } = row_0;
424
- const blockConfig = blocks.find(block => block.slug === blockType_0);
426
+ const blockConfig = config.blocksMap[blockType_0] ?? (blockReferences ?? blocks).find(block => typeof block !== "string" && block.slug === blockType_0);
425
427
  if (blockConfig) {
426
428
  const rowPath = `${path}.${i}`;
427
429
  const rowErrorCount = errorPaths.filter(errorPath => errorPath.startsWith(rowPath + ".")).length;
@@ -432,7 +434,7 @@ const BlocksFieldComponent = props => {
432
434
  ...draggableSortableItemProps,
433
435
  addRow,
434
436
  block: blockConfig,
435
- blocks,
437
+ blocks: blockReferences ?? blocks,
436
438
  duplicateRow,
437
439
  errorCount: rowErrorCount,
438
440
  fields: blockConfig.fields,
@@ -488,7 +490,7 @@ const BlocksFieldComponent = props => {
488
490
  }), _jsx(BlocksDrawer, {
489
491
  addRow,
490
492
  addRowIndex: rows?.length || 0,
491
- blocks,
493
+ blocks: blockReferences ?? blocks,
492
494
  drawerSlug,
493
495
  labels
494
496
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","$","i18n","t","field","t0","path","permissions","readOnly","schemaPath","schemaPathFromProps","validate","name","admin","t1","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","t2","undefined","className","description","isSortable","t3","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","config","t4","localization","drawerSlug","submitted","plural","singular","t5","bb0","fallback","defaultLocale","editingDefaultLocale","t6","value","options","memoizedValidate","t7","hasRows","customComponents","t8","errorPaths","rows","t9","showError","valid","value_0","t10","AfterInput","BeforeInput","Description","Error","Label","RowLabels","t11","t12","rowIndex","blockType","setTimeout","addRow","t13","rowIndex_0","type","duplicateRow","t14","rowIndex_1","removeRow","t15","moveFromIndex","moveToIndex","moveRow","t16","collapsed","collapsedIDs","updatedRows","toggleCollapseAll","t17","rowID","collapsed_0","collapsedIDs_0","updatedRows_0","setCollapse","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","t18","t19","filter","Boolean","t20","_jsx","CustomComponent","Fallback","t21","count","withMessage","_jsxs","join","id","replace","children","onClick","fieldValue","ids","map","_temp","onDragEnd","t22","moveFromIndex_0","moveToIndex_0","row_0","i","blockType_0","isLoading","row","blockConfig","find","block","slug","rowPath","rowErrorCount","errorPath","startsWith","disabled","draggableSortableItemProps","errorCount","fields","parentPath","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field: {\n name,\n admin: { className, description, isSortable = true } = {},\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = (minRowsProp ?? required) ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label, RowLabels } = {},\n errorPaths,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({\n type: 'REMOVE_ROW',\n path,\n rowIndex,\n })\n\n setModified(true)\n },\n [path, dispatchFields, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n const blockConfig = blocks.find((block) => block.slug === blockType)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n blocks={blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={RowLabels?.[i]}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={readOnly}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"icon-label\"\n disabled={readOnly}\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n blocks={blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","RenderCustomComponent","useForm","useFormSubmitted","extractRowsAndCollapsedIDs","toggleAllRows","NullifyLocaleField","useField","withCondition","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","FieldDescription","FieldError","FieldLabel","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","BlocksFieldComponent","props","$","i18n","t","field","t0","path","permissions","readOnly","schemaPath","schemaPathFromProps","validate","name","admin","t1","blockReferences","blocks","label","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","required","t2","undefined","className","description","isSortable","t3","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","config","t4","localization","drawerSlug","submitted","plural","singular","t5","bb0","fallback","defaultLocale","editingDefaultLocale","t6","value","options","memoizedValidate","t7","hasRows","customComponents","t8","errorPaths","rows","t9","showError","valid","value_0","t10","AfterInput","BeforeInput","Description","Error","Label","RowLabels","t11","t12","rowIndex","blockType","setTimeout","addRow","t13","rowIndex_0","type","duplicateRow","t14","rowIndex_1","removeRow","t15","moveFromIndex","moveToIndex","moveRow","t16","collapsed","collapsedIDs","updatedRows","toggleCollapseAll","t17","rowID","collapsed_0","collapsedIDs_0","updatedRows_0","setCollapse","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","t18","t19","filter","Boolean","t20","_jsx","CustomComponent","Fallback","t21","count","withMessage","_jsxs","join","id","replace","children","onClick","fieldValue","ids","map","_temp","onDragEnd","t22","moveFromIndex_0","moveToIndex_0","row_0","i","blockType_0","isLoading","row","blockConfig","blocksMap","find","block","slug","rowPath","rowErrorCount","errorPath","startsWith","disabled","draggableSortableItemProps","errorCount","fields","parentPath","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\nimport type { BlocksFieldClientComponent, ClientBlock } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useCallback } from 'react'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { DrawerToggler } from '../../elements/Drawer/index.js'\nimport { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { extractRowsAndCollapsedIDs, toggleAllRows } from '../../forms/Form/rowHelpers.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { BlockRow } from './BlockRow.js'\nimport { BlocksDrawer } from './BlocksDrawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'blocks-field'\n\nconst BlocksFieldComponent: BlocksFieldClientComponent = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n field: {\n name,\n admin: { className, description, isSortable = true } = {},\n blockReferences,\n blocks,\n label,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n required,\n },\n path,\n permissions,\n readOnly,\n schemaPath: schemaPathFromProps,\n validate,\n } = props\n const schemaPath = schemaPathFromProps ?? name\n\n const minRows = (minRowsProp ?? required) ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const { code: locale } = useLocale()\n const {\n config: { localization },\n config,\n } = useConfig()\n const drawerSlug = useDrawerSlug('blocks-drawer')\n const submitted = useFormSubmitted()\n\n const labels = {\n plural: t('fields:blocks'),\n singular: t('fields:block'),\n ...labelsFromProps,\n }\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label, RowLabels } = {},\n errorPaths,\n rows = [],\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n (rowIndex: number, blockType: string) => {\n addFieldRow({\n blockType,\n path,\n rowIndex,\n schemaPath,\n })\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({\n type: 'REMOVE_ROW',\n path,\n rowIndex,\n })\n\n setModified(true)\n },\n [path, dispatchFields, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = toggleAllRows({\n collapsed,\n rows,\n })\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n const { collapsedIDs, updatedRows } = extractRowsAndCollapsedIDs({\n collapsed,\n rowID,\n rows,\n })\n dispatchFields({ type: 'SET_ROW_COLLAPSED', path, updatedRows })\n setDocFieldPreferences(path, { collapsed: collapsedIDs })\n },\n [dispatchFields, path, rows, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && fieldErrorCount + (valid ? 0 : 1) > 0\n\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n const showRequired = readOnly && rows.length === 0\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n {showError && (\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </header>\n {BeforeInput}\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const { blockType, isLoading } = row\n const blockConfig: ClientBlock =\n config.blocksMap[blockType] ??\n ((blockReferences ?? blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockType,\n ) as ClientBlock)\n\n if (blockConfig) {\n const rowPath = `${path}.${i}`\n\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(rowPath + '.'),\n ).length\n\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockConfig}\n blocks={blockReferences ?? blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fields={blockConfig.fields}\n hasMaxRows={hasMaxRows}\n isLoading={isLoading}\n isSortable={isSortable}\n Label={RowLabels?.[i]}\n labels={labels}\n moveRow={moveRow}\n parentPath={path}\n path={rowPath}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath + blockConfig.slug}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n }\n\n return null\n })}\n {!editingDefaultLocale && (\n <React.Fragment>\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!hasMaxRows && (\n <Fragment>\n <DrawerToggler\n className={`${baseClass}__drawer-toggler`}\n disabled={readOnly}\n slug={drawerSlug}\n >\n <Button\n buttonStyle=\"icon-label\"\n disabled={readOnly}\n el=\"span\"\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n </DrawerToggler>\n <BlocksDrawer\n addRow={addRow}\n addRowIndex={rows?.length || 0}\n blocks={blockReferences ?? blocks}\n drawerSlug={drawerSlug}\n labels={labels}\n />\n </Fragment>\n )}\n {AfterInput}\n </div>\n )\n}\n\nexport const BlocksField = withCondition(BlocksFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AAuMtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AA+MtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
@@ -19,6 +19,7 @@ const ObjectId = ObjectIdImport.default || ObjectIdImport;
19
19
  */
20
20
  const getInitialDrawerData = ({
21
21
  collectionSlug,
22
+ config,
22
23
  docID,
23
24
  fields,
24
25
  segments
@@ -46,6 +47,7 @@ const getInitialDrawerData = ({
46
47
  return {
47
48
  [field.name]: getInitialDrawerData({
48
49
  collectionSlug,
50
+ config,
49
51
  docID,
50
52
  fields: field.fields,
51
53
  segments: nextSegments
@@ -55,6 +57,7 @@ const getInitialDrawerData = ({
55
57
  if (field.type === 'array') {
56
58
  const initialData = getInitialDrawerData({
57
59
  collectionSlug,
60
+ config,
58
61
  docID,
59
62
  fields: field.fields,
60
63
  segments: nextSegments
@@ -65,9 +68,11 @@ const getInitialDrawerData = ({
65
68
  };
66
69
  }
67
70
  if (field.type === 'blocks') {
68
- for (const block of field.blocks) {
71
+ for (const _block of field.blockReferences ?? field.blocks) {
72
+ const block = typeof _block === 'string' ? config.blocksMap[_block] : _block;
69
73
  const blockInitialData = getInitialDrawerData({
70
74
  collectionSlug,
75
+ config,
71
76
  docID,
72
77
  fields: block.fields,
73
78
  segments: nextSegments
@@ -103,6 +108,7 @@ const JoinFieldComponent = props => {
103
108
  docConfig
104
109
  } = useDocumentInfo();
105
110
  const {
111
+ config,
106
112
  getEntityConfig
107
113
  } = useConfig();
108
114
  const {
@@ -145,11 +151,12 @@ const JoinFieldComponent = props => {
145
151
  });
146
152
  return getInitialDrawerData({
147
153
  collectionSlug: docConfig?.slug,
154
+ config,
148
155
  docID,
149
156
  fields: relatedCollection.fields,
150
157
  segments: field.on.split('.')
151
158
  });
152
- }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID]);
159
+ }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config]);
153
160
  if (!docConfig) {
154
161
  return null;
155
162
  }