@payloadcms/ui 3.0.0-beta.26 → 3.0.0-beta.27

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.
@@ -5,6 +5,7 @@ export type Props = {
5
5
  duplicateRow: (current: number) => void;
6
6
  hasMaxRows: boolean;
7
7
  index: number;
8
+ isSortable?: boolean;
8
9
  moveRow: (from: number, to: number) => void;
9
10
  removeRow: (index: number) => void;
10
11
  rowCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAwFvC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ArrayAction/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,UAAU,EAAE,OAAO,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAyFvC,CAAA"}
@@ -8,7 +8,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
8
8
  import { PopupList } from '../Popup/index.js';
9
9
  import { Popup } from '../Popup/index.js';
10
10
  const baseClass = 'array-actions';
11
- export const ArrayAction = ({ addRow, duplicateRow, hasMaxRows, index, moveRow, removeRow, rowCount })=>{
11
+ export const ArrayAction = ({ addRow, duplicateRow, hasMaxRows, index, isSortable, moveRow, removeRow, rowCount })=>{
12
12
  const { t } = useTranslation();
13
13
  return /*#__PURE__*/ React.createElement(Popup, {
14
14
  button: /*#__PURE__*/ React.createElement(MoreIcon, null),
@@ -18,7 +18,7 @@ export const ArrayAction = ({ addRow, duplicateRow, hasMaxRows, index, moveRow,
18
18
  render: ({ close })=>{
19
19
  return /*#__PURE__*/ React.createElement(PopupList.ButtonGroup, {
20
20
  buttonSize: "small"
21
- }, index !== 0 && /*#__PURE__*/ React.createElement(PopupList.Button, {
21
+ }, isSortable && index !== 0 && /*#__PURE__*/ React.createElement(PopupList.Button, {
22
22
  className: `${baseClass}__action ${baseClass}__move-up`,
23
23
  onClick: ()=>{
24
24
  moveRow(index, index - 1);
@@ -28,7 +28,7 @@ export const ArrayAction = ({ addRow, duplicateRow, hasMaxRows, index, moveRow,
28
28
  className: `${baseClass}__action-chevron`
29
29
  }, /*#__PURE__*/ React.createElement(Chevron, {
30
30
  direction: "up"
31
- })), t('general:moveUp')), index < rowCount - 1 && /*#__PURE__*/ React.createElement(PopupList.Button, {
31
+ })), t('general:moveUp')), isSortable && index < rowCount - 1 && /*#__PURE__*/ React.createElement(PopupList.Button, {
32
32
  className: `${baseClass}__action`,
33
33
  onClick: ()=>{
34
34
  moveRow(index, index + 1);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { Copy } from '../../icons/Copy/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { Plus } from '../../icons/Plus/index.js'\nimport { X } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Popup } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n moveRow: (from: number, to: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n duplicateRow,\n hasMaxRows,\n index,\n moveRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonClassName={`${baseClass}__button`}\n className={baseClass}\n horizontalAlign=\"center\"\n render={({ close }) => {\n return (\n <PopupList.ButtonGroup buttonSize=\"small\">\n {index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <Chevron direction=\"up\" />\n </div>\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <Chevron />\n </div>\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n onClick={() => {\n addRow(index + 1)\n close()\n }}\n >\n <Plus />\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n <Copy />\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n <X />\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }}\n size=\"medium\"\n />\n )\n}\n"],"names":["React","Chevron","Copy","MoreIcon","Plus","X","useTranslation","PopupList","Popup","baseClass","ArrayAction","addRow","duplicateRow","hasMaxRows","index","moveRow","removeRow","rowCount","t","button","buttonClassName","className","horizontalAlign","render","close","ButtonGroup","buttonSize","Button","onClick","div","direction","Fragment","size"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,oBAAmB;AAC7C,SAASC,KAAK,QAAQ,oBAAmB;AAGzC,MAAMC,YAAY;AAYlB,OAAO,MAAMC,cAA+B,CAAC,EAC3CC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,KAAK,EACLC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACT;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGZ;IAEd,qBACE,oBAACE;QACCW,sBAAQ,oBAAChB;QACTiB,iBAAiB,CAAC,EAAEX,UAAU,QAAQ,CAAC;QACvCY,WAAWZ;QACXa,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE;YAChB,qBACE,oBAACjB,UAAUkB,WAAW;gBAACC,YAAW;eAC/BZ,UAAU,mBACT,oBAACP,UAAUoB,MAAM;gBACfN,WAAW,CAAC,EAAEZ,UAAU,SAAS,EAAEA,UAAU,SAAS,CAAC;gBACvDmB,SAAS;oBACPb,QAAQD,OAAOA,QAAQ;oBACvBU;gBACF;6BAEA,oBAACK;gBAAIR,WAAW,CAAC,EAAEZ,UAAU,gBAAgB,CAAC;6BAC5C,oBAACR;gBAAQ6B,WAAU;iBAEpBZ,EAAE,oBAGNJ,QAAQG,WAAW,mBAClB,oBAACV,UAAUoB,MAAM;gBACfN,WAAW,CAAC,EAAEZ,UAAU,QAAQ,CAAC;gBACjCmB,SAAS;oBACPb,QAAQD,OAAOA,QAAQ;oBACvBU;gBACF;6BAEA,oBAACK;gBAAIR,WAAW,CAAC,EAAEZ,UAAU,gBAAgB,CAAC;6BAC5C,oBAACR,iBAEFiB,EAAE,sBAGN,CAACL,4BACA,oBAACb,MAAM+B,QAAQ,sBACb,oBAACxB,UAAUoB,MAAM;gBACfN,WAAW,CAAC,EAAEZ,UAAU,SAAS,EAAEA,UAAU,KAAK,CAAC;gBACnDmB,SAAS;oBACPjB,OAAOG,QAAQ;oBACfU;gBACF;6BAEA,oBAACpB,aACAc,EAAE,oCAEL,oBAACX,UAAUoB,MAAM;gBACfN,WAAW,CAAC,EAAEZ,UAAU,SAAS,EAAEA,UAAU,WAAW,CAAC;gBACzDmB,SAAS;oBACPhB,aAAaE;oBACbU;gBACF;6BAEA,oBAACtB,aACAgB,EAAE,sCAIT,oBAACX,UAAUoB,MAAM;gBACfN,WAAW,CAAC,EAAEZ,UAAU,SAAS,EAAEA,UAAU,QAAQ,CAAC;gBACtDmB,SAAS;oBACPZ,UAAUF;oBACVU;gBACF;6BAEA,oBAACnB,UACAa,EAAE;QAIX;QACAc,MAAK;;AAGX,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ArrayAction/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { Copy } from '../../icons/Copy/index.js'\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { Plus } from '../../icons/Plus/index.js'\nimport { X } from '../../icons/X/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Popup } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-actions'\n\nexport type Props = {\n addRow: (current: number, blockType?: string) => void\n duplicateRow: (current: number) => void\n hasMaxRows: boolean\n index: number\n isSortable?: boolean\n moveRow: (from: number, to: number) => void\n removeRow: (index: number) => void\n rowCount: number\n}\n\nexport const ArrayAction: React.FC<Props> = ({\n addRow,\n duplicateRow,\n hasMaxRows,\n index,\n isSortable,\n moveRow,\n removeRow,\n rowCount,\n}) => {\n const { t } = useTranslation()\n\n return (\n <Popup\n button={<MoreIcon />}\n buttonClassName={`${baseClass}__button`}\n className={baseClass}\n horizontalAlign=\"center\"\n render={({ close }) => {\n return (\n <PopupList.ButtonGroup buttonSize=\"small\">\n {isSortable && index !== 0 && (\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__move-up`}\n onClick={() => {\n moveRow(index, index - 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <Chevron direction=\"up\" />\n </div>\n {t('general:moveUp')}\n </PopupList.Button>\n )}\n {isSortable && index < rowCount - 1 && (\n <PopupList.Button\n className={`${baseClass}__action`}\n onClick={() => {\n moveRow(index, index + 1)\n close()\n }}\n >\n <div className={`${baseClass}__action-chevron`}>\n <Chevron />\n </div>\n {t('general:moveDown')}\n </PopupList.Button>\n )}\n {!hasMaxRows && (\n <React.Fragment>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__add`}\n onClick={() => {\n addRow(index + 1)\n close()\n }}\n >\n <Plus />\n {t('general:addBelow')}\n </PopupList.Button>\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__duplicate`}\n onClick={() => {\n duplicateRow(index)\n close()\n }}\n >\n <Copy />\n {t('general:duplicate')}\n </PopupList.Button>\n </React.Fragment>\n )}\n <PopupList.Button\n className={`${baseClass}__action ${baseClass}__remove`}\n onClick={() => {\n removeRow(index)\n close()\n }}\n >\n <X />\n {t('general:remove')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n }}\n size=\"medium\"\n />\n )\n}\n"],"names":["React","Chevron","Copy","MoreIcon","Plus","X","useTranslation","PopupList","Popup","baseClass","ArrayAction","addRow","duplicateRow","hasMaxRows","index","isSortable","moveRow","removeRow","rowCount","t","button","buttonClassName","className","horizontalAlign","render","close","ButtonGroup","buttonSize","Button","onClick","div","direction","Fragment","size"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,SAAS,QAAQ,oBAAmB;AAC7C,SAASC,KAAK,QAAQ,oBAAmB;AAGzC,MAAMC,YAAY;AAalB,OAAO,MAAMC,cAA+B,CAAC,EAC3CC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACT;IACC,MAAM,EAAEC,CAAC,EAAE,GAAGb;IAEd,qBACE,oBAACE;QACCY,sBAAQ,oBAACjB;QACTkB,iBAAiB,CAAC,EAAEZ,UAAU,QAAQ,CAAC;QACvCa,WAAWb;QACXc,iBAAgB;QAChBC,QAAQ,CAAC,EAAEC,KAAK,EAAE;YAChB,qBACE,oBAAClB,UAAUmB,WAAW;gBAACC,YAAW;eAC/BZ,cAAcD,UAAU,mBACvB,oBAACP,UAAUqB,MAAM;gBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,SAAS,CAAC;gBACvDoB,SAAS;oBACPb,QAAQF,OAAOA,QAAQ;oBACvBW;gBACF;6BAEA,oBAACK;gBAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;6BAC5C,oBAACR;gBAAQ8B,WAAU;iBAEpBZ,EAAE,oBAGNJ,cAAcD,QAAQI,WAAW,mBAChC,oBAACX,UAAUqB,MAAM;gBACfN,WAAW,CAAC,EAAEb,UAAU,QAAQ,CAAC;gBACjCoB,SAAS;oBACPb,QAAQF,OAAOA,QAAQ;oBACvBW;gBACF;6BAEA,oBAACK;gBAAIR,WAAW,CAAC,EAAEb,UAAU,gBAAgB,CAAC;6BAC5C,oBAACR,iBAEFkB,EAAE,sBAGN,CAACN,4BACA,oBAACb,MAAMgC,QAAQ,sBACb,oBAACzB,UAAUqB,MAAM;gBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,KAAK,CAAC;gBACnDoB,SAAS;oBACPlB,OAAOG,QAAQ;oBACfW;gBACF;6BAEA,oBAACrB,aACAe,EAAE,oCAEL,oBAACZ,UAAUqB,MAAM;gBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,WAAW,CAAC;gBACzDoB,SAAS;oBACPjB,aAAaE;oBACbW;gBACF;6BAEA,oBAACvB,aACAiB,EAAE,sCAIT,oBAACZ,UAAUqB,MAAM;gBACfN,WAAW,CAAC,EAAEb,UAAU,SAAS,EAAEA,UAAU,QAAQ,CAAC;gBACtDoB,SAAS;oBACPZ,UAAUH;oBACVW;gBACF;6BAEA,oBAACpB,UACAc,EAAE;QAIX;QACAc,MAAK;;AAGX,EAAC"}
@@ -13,6 +13,7 @@ type ArrayRowProps = UseDraggableSortableReturn & {
13
13
  forceRender?: boolean;
14
14
  hasMaxRows?: boolean;
15
15
  indexPath: string;
16
+ isSortable?: boolean;
16
17
  labels: ArrayField['labels'];
17
18
  moveRow: (fromIndex: number, toIndex: number) => void;
18
19
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/ArrayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AASvF,OAAO,cAAc,CAAA;AAIrB,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,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,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAsG5C,CAAA"}
1
+ {"version":3,"file":"ArrayRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/ArrayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AASvF,OAAO,cAAc,CAAA;AAIrB,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,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,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4G5C,CAAA"}
@@ -8,7 +8,7 @@ import { RenderFields } from '../../forms/RenderFields/index.js';
8
8
  import { RowLabel } from '../../forms/RowLabel/index.js';
9
9
  import { useTranslation } from '../../providers/Translation/index.js';
10
10
  const baseClass = 'array-field';
11
- export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, errorCount, fieldMap, forceRender = false, hasMaxRows, indexPath, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
11
+ export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, errorCount, fieldMap, forceRender = false, hasMaxRows, indexPath, isSortable, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
12
12
  const path = `${parentPath}.${rowIndex}`;
13
13
  const { i18n } = useTranslation();
14
14
  const hasSubmitted = useFormSubmitted();
@@ -31,17 +31,18 @@ export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, err
31
31
  duplicateRow: duplicateRow,
32
32
  hasMaxRows: hasMaxRows,
33
33
  index: rowIndex,
34
+ isSortable: isSortable,
34
35
  moveRow: moveRow,
35
36
  removeRow: removeRow,
36
37
  rowCount: rowCount
37
38
  }) : undefined,
38
39
  className: classNames,
39
40
  collapsibleStyle: fieldHasErrors ? 'error' : 'default',
40
- dragHandleProps: {
41
+ dragHandleProps: isSortable ? {
41
42
  id: row.id,
42
43
  attributes,
43
44
  listeners
44
- },
45
+ } : undefined,
45
46
  header: /*#__PURE__*/ React.createElement("div", {
46
47
  className: `${baseClass}__row-header`
47
48
  }, /*#__PURE__*/ React.createElement(RowLabel, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\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 return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","errorCount","fieldMap","forceRender","hasMaxRows","indexPath","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAwBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,SAAS,EACTC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMX,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEK,IAAI,EAAE,GAAG3B;IACjB,MAAM4B,eAAe/B;IAErB,MAAMgC,gBAAgB,CAAC,EAAErC,eAAeoB,OAAOkB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOT,WAAW,GAAGU,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,iBAAiB1B,aAAa,KAAKqB;IAEzC,MAAMM,aAAa;QACjB,CAAC,EAAEjC,UAAU,KAAK,CAAC;QACnBgC,iBAAiB,CAAC,EAAEhC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEkC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEvB,WAAWwB,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEf,SAAS,CAAC;QACxDmB,KAAK,CAAC,EAAEzB,WAAW,KAAK,EAAEI,IAAImB,EAAE,CAAC,CAAC;QAClCG,KAAKjB;QACLkB,OAAO;YACLjB;QACF;qBAEA,oBAAC/B;QACCiD,SACE,CAAC1B,yBACC,oBAACxB;YACCU,QAAQA;YACRE,cAAcA;YACdI,YAAYA;YACZmC,OAAOvB;YACPR,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEVyB;QAENC,WAAWb;QACXc,kBAAkBf,iBAAiB,UAAU;QAC7CgB,iBAAiB;YACfV,IAAInB,IAAImB,EAAE;YACVlC;YACAQ;QACF;QACAqC,sBACE,oBAACZ;YAAIS,WAAW,CAAC,EAAE9C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCoD,mBAAmBhD;YACnBwB,MAAMA;YACNZ,MAAMA;YACNqC,UAAUvB;YACVwB,WAAW/B,WAAW;YAEvBW,gCAAkB,oBAACrC;YAAU0D,OAAO/C;YAAYoB,MAAMA;YAAM4B,aAAAA;;QAGjEC,aAAapC,IAAIqC,SAAS;QAC1BC,UAAU,CAACD,YAAcjC,YAAYJ,IAAImB,EAAE,EAAEkB;qBAE7C,oBAAC3D;QACCiD,WAAW,CAAC,EAAE9C,UAAU,QAAQ,CAAC;QACjCO,UAAUA;QACVC,aAAaA;QACbE,WAAWA;QACXgD,SAAQ;QACR5C,MAAMA;QACNE,aAAaA,aAAa2C;QAC1B1C,UAAUA;QACVK,YAAYA;;AAKtB,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n isSortable?: boolean\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n isSortable,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\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 return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n isSortable={isSortable}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\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 <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","errorCount","fieldMap","forceRender","hasMaxRows","indexPath","isSortable","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAyBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMX,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEK,IAAI,EAAE,GAAG5B;IACjB,MAAM6B,eAAehC;IAErB,MAAMiC,gBAAgB,CAAC,EAAEtC,eAAeqB,OAAOkB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOT,WAAW,GAAGU,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,iBAAiB3B,aAAa,KAAKsB;IAEzC,MAAMM,aAAa;QACjB,CAAC,EAAElC,UAAU,KAAK,CAAC;QACnBiC,iBAAiB,CAAC,EAAEjC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEmC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEvB,WAAWwB,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEf,SAAS,CAAC;QACxDmB,KAAK,CAAC,EAAEzB,WAAW,KAAK,EAAEI,IAAImB,EAAE,CAAC,CAAC;QAClCG,KAAKjB;QACLkB,OAAO;YACLjB;QACF;qBAEA,oBAAChC;QACCkD,SACE,CAAC1B,yBACC,oBAACzB;YACCU,QAAQA;YACRE,cAAcA;YACdI,YAAYA;YACZoC,OAAOvB;YACPX,YAAYA;YACZG,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEVyB;QAENC,WAAWb;QACXc,kBAAkBf,iBAAiB,UAAU;QAC7CgB,iBACEtC,aACI;YACE4B,IAAInB,IAAImB,EAAE;YACVnC;YACAS;QACF,IACAiC;QAENI,sBACE,oBAACZ;YAAIS,WAAW,CAAC,EAAE/C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCqD,mBAAmBjD;YACnByB,MAAMA;YACNZ,MAAMA;YACNqC,UAAUvB;YACVwB,WAAW/B,WAAW;YAEvBW,gCAAkB,oBAACtC;YAAU2D,OAAOhD;YAAYqB,MAAMA;YAAM4B,aAAAA;;QAGjEC,aAAapC,IAAIqC,SAAS;QAC1BC,UAAU,CAACD,YAAcjC,YAAYJ,IAAImB,EAAE,EAAEkB;qBAE7C,oBAAC5D;QACCkD,WAAW,CAAC,EAAE/C,UAAU,QAAQ,CAAC;QACjCO,UAAUA;QACVC,aAAaA;QACbE,WAAWA;QACXiD,SAAQ;QACR5C,MAAMA;QACNE,aAAaA,aAAa2C;QAC1B1C,UAAUA;QACVK,YAAYA;;AAKtB,EAAC"}
@@ -9,6 +9,7 @@ export type ArrayFieldProps = FormFieldBase & {
9
9
  CustomRowLabel?: React.ReactNode;
10
10
  fieldMap: FieldMap;
11
11
  forceRender?: boolean;
12
+ isSortable?: boolean;
12
13
  label?: FieldBase['label'];
13
14
  labels?: ArrayFieldType['labels'];
14
15
  maxRows?: ArrayFieldType['maxRows'];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAQjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBvD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAsRjD,CAAA;AAED,eAAO,MAAM,UAAU,2BAA6B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAQjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBvD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwRjD,CAAA;AAED,eAAO,MAAM,UAAU,2BAA6B,CAAA"}
@@ -23,7 +23,7 @@ import { fieldBaseClass } from '../shared/index.js';
23
23
  import { ArrayRow } from './ArrayRow.js';
24
24
  const baseClass = 'array-field';
25
25
  export const _ArrayField = (props)=>{
26
- const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, label, labelProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, permissions, readOnly: readOnlyFromProps, required, validate } = props;
26
+ const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, isSortable = true, label, labelProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, permissions, readOnly: readOnlyFromProps, required, validate } = props;
27
27
  const { indexPath, readOnly: readOnlyFromContext } = useFieldProps();
28
28
  const readOnly = readOnlyFromProps || readOnlyFromContext;
29
29
  const minRows = minRowsProp ?? required ? 1 : 0;
@@ -222,7 +222,7 @@ export const _ArrayField = (props)=>{
222
222
  }, rows.map((row, i)=>{
223
223
  const rowErrorCount = errorPaths?.filter((errorPath)=>errorPath.startsWith(`${path}.${i}.`)).length;
224
224
  return /*#__PURE__*/ React.createElement(DraggableSortableItem, {
225
- disabled: readOnly,
225
+ disabled: readOnly || !isSortable,
226
226
  id: row.id,
227
227
  key: row.id
228
228
  }, (draggableSortableItemProps)=>/*#__PURE__*/ React.createElement(ArrayRow, {
@@ -235,6 +235,7 @@ export const _ArrayField = (props)=>{
235
235
  forceRender: forceRender,
236
236
  hasMaxRows: hasMaxRows,
237
237
  indexPath: indexPath,
238
+ isSortable: isSortable,
238
239
  labels: labels,
239
240
  moveRow: moveRow,
240
241
  path: path,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\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 { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/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 { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n label,\n labelProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\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 // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, 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 dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && 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 <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\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 <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\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 </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","label","labelProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\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 { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/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 { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n isSortable?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\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 // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, 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 dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && 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 <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\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 <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\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 </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","isSortable","label","labelProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -12,6 +12,7 @@ type BlockFieldProps = UseDraggableSortableReturn & {
12
12
  forceRender?: boolean;
13
13
  hasMaxRows?: boolean;
14
14
  indexPath: string;
15
+ isSortable?: boolean;
15
16
  labels: Labels;
16
17
  moveRow: (fromIndex: number, toIndex: number) => void;
17
18
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAa3F,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,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,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuG9C,CAAA"}
1
+ {"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAa3F,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,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,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6G9C,CAAA"}
@@ -10,7 +10,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
10
10
  import { RowActions } from './RowActions.js';
11
11
  import { SectionTitle } from './SectionTitle/index.js';
12
12
  const baseClass = 'blocks-field';
13
- export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, errorCount, forceRender, hasMaxRows, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
13
+ export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, errorCount, forceRender, hasMaxRows, isSortable, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
14
14
  const path = `${parentPath}.${rowIndex}`;
15
15
  const { i18n } = useTranslation();
16
16
  const hasSubmitted = useFormSubmitted();
@@ -34,6 +34,7 @@ export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, erro
34
34
  duplicateRow: duplicateRow,
35
35
  fieldMap: block.fieldMap,
36
36
  hasMaxRows: hasMaxRows,
37
+ isSortable: isSortable,
37
38
  labels: labels,
38
39
  moveRow: moveRow,
39
40
  removeRow: removeRow,
@@ -42,11 +43,11 @@ export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, erro
42
43
  }) : undefined,
43
44
  className: classNames,
44
45
  collapsibleStyle: fieldHasErrors ? 'error' : 'default',
45
- dragHandleProps: {
46
+ dragHandleProps: isSortable ? {
46
47
  id: row.id,
47
48
  attributes,
48
49
  listeners
49
- },
50
+ } : undefined,
50
51
  header: /*#__PURE__*/ React.createElement("div", {
51
52
  className: `${baseClass}__block-header`
52
53
  }, /*#__PURE__*/ React.createElement("span", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/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 { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.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 BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\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}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\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 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 blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\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 id: row.id,\n attributes,\n listeners,\n }}\n header={\n <div className={`${baseClass}__block-header`}>\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 </div>\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","errorCount","forceRender","hasMaxRows","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","isCollapsed","collapsed","onToggle","margins","slug","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/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 { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.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 BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n isSortable?: boolean\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\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}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n isSortable,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\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 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 blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\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 <div className={`${baseClass}__block-header`}>\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 </div>\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","errorCount","forceRender","hasMaxRows","isSortable","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","isCollapsed","collapsed","onToggle","margins","slug","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -8,6 +8,7 @@ export declare const RowActions: React.FC<{
8
8
  duplicateRow: (rowIndex: number, blockType: string) => void;
9
9
  fieldMap: FieldMap;
10
10
  hasMaxRows?: boolean;
11
+ isSortable?: boolean;
11
12
  labels: Labels;
12
13
  moveRow: (fromIndex: number, toIndex: number) => void;
13
14
  removeRow: (rowIndex: number) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACb,MAAM,yDAAyD,CAAA;AAMhE,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3D,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAgDA,CAAA"}
1
+ {"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACb,MAAM,yDAAyD,CAAA;AAMhE,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3D,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAkDA,CAAA"}
@@ -5,7 +5,7 @@ import { ArrayAction } from '../../elements/ArrayAction/index.js';
5
5
  import { useDrawerSlug } from '../../elements/Drawer/useDrawerSlug.js';
6
6
  import { BlocksDrawer } from './BlocksDrawer/index.js';
7
7
  export const RowActions = (props)=>{
8
- const { addRow, blockType, blocks, duplicateRow, hasMaxRows, labels, moveRow, removeRow, rowCount, rowIndex } = props;
8
+ const { addRow, blockType, blocks, duplicateRow, hasMaxRows, isSortable, labels, moveRow, removeRow, rowCount, rowIndex } = props;
9
9
  const { useModal } = facelessUIImport;
10
10
  const { closeModal, openModal } = useModal();
11
11
  const drawerSlug = useDrawerSlug('blocks-drawer');
@@ -29,6 +29,7 @@ export const RowActions = (props)=>{
29
29
  duplicateRow: ()=>duplicateRow(rowIndex, blockType),
30
30
  hasMaxRows: hasMaxRows,
31
31
  index: rowIndex,
32
+ isSortable: isSortable,
32
33
  moveRow: moveRow,
33
34
  removeRow: removeRow,
34
35
  rowCount: rowCount
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/RowActions.tsx"],"sourcesContent":["'use client'\nimport type { Labels } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport React from 'react'\n\nimport type {\n FieldMap,\n ReducedBlock,\n} from '../../providers/ComponentMap/buildComponentMap/types.js'\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 addRow: (rowIndex: number, blockType: string) => void\n blockType: string\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number, blockType: string) => void\n fieldMap: FieldMap\n hasMaxRows?: boolean\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n removeRow: (rowIndex: number) => void\n rowCount: number\n rowIndex: number\n}> = (props) => {\n const {\n addRow,\n blockType,\n blocks,\n duplicateRow,\n hasMaxRows,\n labels,\n moveRow,\n removeRow,\n rowCount,\n rowIndex,\n } = props\n const { useModal } = facelessUIImport\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 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 moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n </React.Fragment>\n )\n}\n"],"names":["facelessUIImport","React","ArrayAction","useDrawerSlug","BlocksDrawer","RowActions","props","addRow","blockType","blocks","duplicateRow","hasMaxRows","labels","moveRow","removeRow","rowCount","rowIndex","useModal","closeModal","openModal","drawerSlug","indexToAdd","setIndexToAdd","useState","Fragment","_","rowBlockType","addRowIndex","index"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,YAAYA,sBAAsB,qBAAoB;AACtD,OAAOC,WAAW,QAAO;AAOzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,aAAa,QAAQ,yCAAwC;AACtE,SAASC,YAAY,QAAQ,0BAAyB;AAEtD,OAAO,MAAMC,aAYR,CAACC;IACJ,MAAM,EACJC,MAAM,EACNC,SAAS,EACTC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACT,GAAGV;IACJ,MAAM,EAAEW,QAAQ,EAAE,GAAGjB;IAErB,MAAM,EAAEkB,UAAU,EAAEC,SAAS,EAAE,GAAGF;IAClC,MAAMG,aAAajB,cAAc;IAEjC,MAAM,CAACkB,YAAYC,cAAc,GAAGrB,MAAMsB,QAAQ,CAAgB;IAElE,qBACE,oBAACtB,MAAMuB,QAAQ,sBACb,oBAACpB;QACCG,QAAQ,CAACkB,GAAGC;YACV,IAAI,OAAOnB,WAAW,YAAY;gBAChCA,OAAOc,YAAYK;YACrB;YACAR,WAAWE;QACb;QACAO,aAAaX;QACbP,QAAQA;QACRW,YAAYA;QACZR,QAAQA;sBAEV,oBAACV;QACCK,QAAQ,CAACqB;YACPN,cAAcM;YACdT,UAAUC;QACZ;QACAV,cAAc,IAAMA,aAAaM,UAAUR;QAC3CG,YAAYA;QACZiB,OAAOZ;QACPH,SAASA;QACTC,WAAWA;QACXC,UAAUA;;AAIlB,EAAC"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/RowActions.tsx"],"sourcesContent":["'use client'\nimport type { Labels } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport React from 'react'\n\nimport type {\n FieldMap,\n ReducedBlock,\n} from '../../providers/ComponentMap/buildComponentMap/types.js'\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 addRow: (rowIndex: number, blockType: string) => void\n blockType: string\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number, blockType: string) => void\n fieldMap: FieldMap\n hasMaxRows?: boolean\n isSortable?: boolean\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n removeRow: (rowIndex: number) => void\n rowCount: number\n rowIndex: number\n}> = (props) => {\n const {\n addRow,\n blockType,\n blocks,\n duplicateRow,\n hasMaxRows,\n isSortable,\n labels,\n moveRow,\n removeRow,\n rowCount,\n rowIndex,\n } = props\n const { useModal } = facelessUIImport\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 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"],"names":["facelessUIImport","React","ArrayAction","useDrawerSlug","BlocksDrawer","RowActions","props","addRow","blockType","blocks","duplicateRow","hasMaxRows","isSortable","labels","moveRow","removeRow","rowCount","rowIndex","useModal","closeModal","openModal","drawerSlug","indexToAdd","setIndexToAdd","useState","Fragment","_","rowBlockType","addRowIndex","index"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,YAAYA,sBAAsB,qBAAoB;AACtD,OAAOC,WAAW,QAAO;AAOzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,aAAa,QAAQ,yCAAwC;AACtE,SAASC,YAAY,QAAQ,0BAAyB;AAEtD,OAAO,MAAMC,aAaR,CAACC;IACJ,MAAM,EACJC,MAAM,EACNC,SAAS,EACTC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,UAAU,EACVC,MAAM,EACNC,OAAO,EACPC,SAAS,EACTC,QAAQ,EACRC,QAAQ,EACT,GAAGX;IACJ,MAAM,EAAEY,QAAQ,EAAE,GAAGlB;IAErB,MAAM,EAAEmB,UAAU,EAAEC,SAAS,EAAE,GAAGF;IAClC,MAAMG,aAAalB,cAAc;IAEjC,MAAM,CAACmB,YAAYC,cAAc,GAAGtB,MAAMuB,QAAQ,CAAgB;IAElE,qBACE,oBAACvB,MAAMwB,QAAQ,sBACb,oBAACrB;QACCG,QAAQ,CAACmB,GAAGC;YACV,IAAI,OAAOpB,WAAW,YAAY;gBAChCA,OAAOe,YAAYK;YACrB;YACAR,WAAWE;QACb;QACAO,aAAaX;QACbR,QAAQA;QACRY,YAAYA;QACZR,QAAQA;sBAEV,oBAACX;QACCK,QAAQ,CAACsB;YACPN,cAAcM;YACdT,UAAUC;QACZ;QACAX,cAAc,IAAMA,aAAaO,UAAUT;QAC3CG,YAAYA;QACZkB,OAAOZ;QACPL,YAAYA;QACZE,SAASA;QACTC,WAAWA;QACXC,UAAUA;;AAIlB,EAAC"}
@@ -7,6 +7,7 @@ import type { FormFieldBase } from '../shared/index.js';
7
7
  export type BlocksFieldProps = FormFieldBase & {
8
8
  blocks?: ReducedBlock[];
9
9
  forceRender?: boolean;
10
+ isSortable?: boolean;
10
11
  label?: FieldBase['label'];
11
12
  labels?: BlockField['labels'];
12
13
  maxRows?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAQ1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAoTD,eAAO,MAAM,WAAW,4BAA8B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAgC,MAAM,OAAO,CAAA;AAoBpD,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAQ1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAEvD,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAsTD,eAAO,MAAM,WAAW,4BAA8B,CAAA"}
@@ -27,7 +27,7 @@ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
27
27
  import { withCondition } from '@payloadcms/ui/forms/withCondition';
28
28
  const _BlocksField = (props)=>{
29
29
  const { i18n, t } = useTranslation();
30
- const { name, CustomDescription, CustomError, CustomLabel, blocks, className, descriptionProps, errorProps, forceRender = false, label, labelProps, labels: labelsFromProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, readOnly: readOnlyFromProps, required, validate } = props;
30
+ const { name, CustomDescription, CustomError, CustomLabel, blocks, className, descriptionProps, errorProps, forceRender = false, isSortable = true, label, labelProps, labels: labelsFromProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, readOnly: readOnlyFromProps, required, validate } = props;
31
31
  const { indexPath, readOnly: readOnlyFromContext } = useFieldProps();
32
32
  const readOnly = readOnlyFromProps || readOnlyFromContext;
33
33
  const minRows = minRowsProp ?? required ? 1 : 0;
@@ -222,7 +222,7 @@ const _BlocksField = (props)=>{
222
222
  if (blockToRender) {
223
223
  const rowErrorCount = errorPaths.filter((errorPath)=>errorPath.startsWith(`${path}.${i}`)).length;
224
224
  return /*#__PURE__*/ React.createElement(DraggableSortableItem, {
225
- disabled: readOnly,
225
+ disabled: readOnly || !isSortable,
226
226
  id: row.id,
227
227
  key: row.id
228
228
  }, (draggableSortableItemProps)=>/*#__PURE__*/ React.createElement(BlockRow, {
@@ -235,6 +235,7 @@ const _BlocksField = (props)=>{
235
235
  forceRender: forceRender,
236
236
  hasMaxRows: hasMaxRows,
237
237
  indexPath: indexPath,
238
+ isSortable: isSortable,
238
239
  labels: labels,
239
240
  moveRow: moveRow,
240
241
  path: path,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\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 { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/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 { 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\nimport type { FieldPermissions } from 'payload/auth'\nimport type { BlockField, FieldBase } from 'payload/types'\n\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\n\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nexport type BlocksFieldProps = FormFieldBase & {\n blocks?: ReducedBlock[]\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: BlockField['labels']\n maxRows?: number\n minRows?: number\n name?: string\n permissions: FieldPermissions\n slug?: string\n width?: string\n}\n\nconst _BlocksField: React.FC<BlocksFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n blocks,\n className,\n descriptionProps,\n errorProps,\n forceRender = false,\n label,\n labelProps,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\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 { localization } = 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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n permissions,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number, blockType: string) => {\n await addFieldRow({\n data: { blockType },\n path,\n rowIndex,\n schemaPath: `${schemaPath}.${blockType}`,\n })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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 dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, 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 <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\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 <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\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 } = row\n const blockToRender = blocks.find((block) => block.slug === blockType)\n\n if (blockToRender) {\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockToRender}\n blocks={blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\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 {!readOnly && !hasMaxRows && (\n <Fragment>\n <DrawerToggler className={`${baseClass}__drawer-toggler`} slug={drawerSlug}>\n <Button\n buttonStyle=\"icon-label\"\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 </div>\n )\n}\n\nexport const BlocksField = withCondition(_BlocksField)\n"],"names":["getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","_BlocksField","props","i18n","t","name","CustomDescription","CustomError","CustomLabel","blocks","className","descriptionProps","errorProps","forceRender","label","labelProps","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","pathFromContext","errorPaths","permissions","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","blockType","data","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/fields/Blocks/index.tsx"],"sourcesContent":["'use client'\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 { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/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 { 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\nimport type { FieldPermissions } from 'payload/auth'\nimport type { BlockField, FieldBase } from 'payload/types'\n\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\n\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nexport type BlocksFieldProps = FormFieldBase & {\n blocks?: ReducedBlock[]\n forceRender?: boolean\n isSortable?: boolean\n label?: FieldBase['label']\n labels?: BlockField['labels']\n maxRows?: number\n minRows?: number\n name?: string\n permissions: FieldPermissions\n slug?: string\n width?: string\n}\n\nconst _BlocksField: React.FC<BlocksFieldProps> = (props) => {\n const { i18n, t } = useTranslation()\n\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n blocks,\n className,\n descriptionProps,\n errorProps,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n labels: labelsFromProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\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 { localization } = 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 { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n permissions,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number, blockType: string) => {\n await addFieldRow({\n data: { blockType },\n path,\n rowIndex,\n schemaPath: `${schemaPath}.${blockType}`,\n })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, 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 dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, 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 <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__heading-with-error`}>\n <h3>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\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 <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\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 } = row\n const blockToRender = blocks.find((block) => block.slug === blockType)\n\n if (blockToRender) {\n const rowErrorCount = errorPaths.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <BlockRow\n {...draggableSortableItemProps}\n addRow={addRow}\n block={blockToRender}\n blocks={blocks}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\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 {!readOnly && !hasMaxRows && (\n <Fragment>\n <DrawerToggler className={`${baseClass}__drawer-toggler`} slug={drawerSlug}>\n <Button\n buttonStyle=\"icon-label\"\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 </div>\n )\n}\n\nexport const BlocksField = withCondition(_BlocksField)\n"],"names":["getTranslation","React","Fragment","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","DrawerToggler","useDrawerSlug","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","BlockRow","BlocksDrawer","baseClass","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","_BlocksField","props","i18n","t","name","CustomDescription","CustomError","CustomLabel","blocks","className","descriptionProps","errorProps","forceRender","isSortable","label","labelProps","labels","labelsFromProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","code","locale","localization","drawerSlug","submitted","plural","singular","editingDefaultLocale","fallback","defaultLocale","memoizedValidate","value","options","pathFromContext","errorPaths","permissions","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","blockType","data","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showMinRows","showRequired","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","blockToRender","find","block","slug","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","buttonStyle","el","icon","iconPosition","iconStyle","addRowIndex","BlocksField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EAIV,KAAK,EAGL,aAAa,EAIb,eAAe,EACf,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,eAAe,CAAA;AAiCtB,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;AAInB,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,uBAAuB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,aAouBA,CAAA"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,KAAK,EAIV,KAAK,EAGL,aAAa,EAIb,eAAe,EACf,mBAAmB,IAAI,uBAAuB,EAC/C,MAAM,eAAe,CAAA;AAiCtB,OAAO,KAAK,EAEV,QAAQ,EAIT,MAAM,YAAY,CAAA;AAInB,eAAO,MAAM,SAAS,SAAU;IAC9B,mBAAmB,EAAE,uBAAuB,CAAA;IAC5C,MAAM,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,EAAE,aAAa,EAAE,CAAA;IAC5B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,CAAA;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,aAsuBA,CAAA"}
@@ -117,6 +117,7 @@ export const mapFields = (args)=>{
117
117
  parentPath: path,
118
118
  readOnly: readOnlyOverride
119
119
  }),
120
+ isSortable: field.admin?.isSortable,
120
121
  label: field?.label,
121
122
  labels: field.labels,
122
123
  maxRows: field.maxRows,
@@ -157,6 +158,7 @@ export const mapFields = (args)=>{
157
158
  blocks,
158
159
  className: field.admin?.className,
159
160
  disabled: field.admin?.disabled,
161
+ isSortable: field.admin?.isSortable,
160
162
  label: field?.label,
161
163
  labels: field.labels,
162
164
  maxRows: field.maxRows,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { CustomComponent } from 'payload/config'\nimport type {\n CellComponentProps,\n DescriptionComponent,\n DescriptionFunction,\n Field,\n FieldBase,\n FieldDescriptionProps,\n FieldWithPath,\n LabelProps,\n Option,\n RowLabelComponent,\n SanitizedConfig,\n WithServerSideProps as WithServerSidePropsType,\n} from 'payload/types'\n\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types'\nimport {\n isPlainFunction,\n isReactClientComponent,\n isReactComponent,\n isReactServerComponent,\n} from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { ArrayFieldProps } from '../../../fields/Array/index.js'\nimport type { BlocksFieldProps } from '../../../fields/Blocks/index.js'\nimport type { CheckboxFieldProps } from '../../../fields/Checkbox/index.js'\nimport type { CodeFieldProps } from '../../../fields/Code/index.js'\nimport type { CollapsibleFieldProps } from '../../../fields/Collapsible/index.js'\nimport type { DateFieldProps } from '../../../fields/DateTime/index.js'\nimport type { EmailFieldProps } from '../../../fields/Email/index.js'\nimport type { GroupFieldProps } from '../../../fields/Group/index.js'\nimport type { JSONFieldProps } from '../../../fields/JSON/index.js'\nimport type { NumberFieldProps } from '../../../fields/Number/index.js'\nimport type { PointFieldProps } from '../../../fields/Point/index.js'\nimport type { RadioFieldProps } from '../../../fields/RadioGroup/index.js'\nimport type { RelationshipFieldProps } from '../../../fields/Relationship/types.js'\nimport type { RichTextFieldProps } from '../../../fields/RichText/index.js'\nimport type { RowFieldProps } from '../../../fields/Row/types.js'\nimport type { SelectFieldProps } from '../../../fields/Select/index.js'\nimport type { TabsFieldProps } from '../../../fields/Tabs/index.js'\nimport type { TextFieldProps } from '../../../fields/Text/types.js'\nimport type { TextareaFieldProps } from '../../../fields/Textarea/types.js'\nimport type { UploadFieldProps } from '../../../fields/Upload/types.js'\nimport type { FormFieldBase } from '../../../fields/shared/index.js'\nimport type {\n FieldComponentProps,\n FieldMap,\n MappedField,\n MappedTab,\n ReducedBlock,\n} from './types.js'\n\nimport { HiddenInput } from '../../../fields/HiddenInput/index.js'\n\nexport const mapFields = (args: {\n WithServerSideProps: WithServerSidePropsType\n config: SanitizedConfig\n /**\n * If mapFields is used outside of collections, you might not want it to add an id field\n */\n disableAddingID?: boolean\n fieldSchema: FieldWithPath[]\n filter?: (field: Field) => boolean\n i18n: I18n\n parentPath?: string\n readOnly?: boolean\n}): FieldMap => {\n const {\n WithServerSideProps,\n config,\n disableAddingID,\n fieldSchema,\n filter,\n i18n,\n i18n: { t },\n parentPath,\n readOnly: readOnlyOverride,\n } = args\n\n const result: FieldMap = fieldSchema.reduce((acc, field): FieldMap => {\n const fieldIsPresentational = fieldIsPresentationalOnly(field)\n let CustomFieldComponent: CustomComponent<FieldComponentProps> = field.admin?.components?.Field\n\n const CustomCellComponent = field.admin?.components?.Cell\n\n const isHidden = field?.admin && 'hidden' in field.admin && field.admin.hidden\n\n if (fieldIsPresentational || (!field?.hidden && field?.admin?.disabled !== true)) {\n if ((filter && typeof filter === 'function' && filter(field)) || !filter) {\n if (isHidden) {\n if (CustomFieldComponent) {\n CustomFieldComponent = HiddenInput\n }\n }\n\n const isFieldAffectingData = fieldAffectsData(field)\n\n const path = `${parentPath ? `${parentPath}.` : ''}${\n field.path || (isFieldAffectingData && 'name' in field ? field.name : '')\n }`\n\n const AfterInput =\n ('admin' in field &&\n 'components' in field.admin &&\n 'afterInput' in field.admin.components &&\n Array.isArray(field.admin?.components?.afterInput) && (\n <Fragment>\n {field.admin.components.afterInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n const BeforeInput =\n ('admin' in field &&\n field.admin?.components &&\n 'beforeInput' in field.admin.components &&\n Array.isArray(field.admin.components.beforeInput) && (\n <Fragment>\n {field.admin.components.beforeInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n const labelProps: LabelProps = {\n label:\n 'label' in field && !isPlainFunction(field.label) && !isReactComponent(field.label)\n ? field.label\n : undefined,\n required: 'required' in field ? field.required : undefined,\n }\n\n const CustomLabelComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Label' in field.admin.components &&\n field.admin.components?.Label) ||\n undefined\n\n const CustomLabel =\n CustomLabelComponent !== undefined ? (\n <WithServerSideProps Component={CustomLabelComponent} {...(labelProps || {})} />\n ) : undefined\n\n const descriptionProps: FieldDescriptionProps = {\n description:\n (field.admin &&\n 'description' in field.admin &&\n (((typeof field.admin?.description === 'string' ||\n typeof field.admin?.description === 'object') &&\n field.admin.description) ||\n (typeof field.admin?.description === 'function' &&\n isPlainFunction<DescriptionFunction>(field.admin?.description) &&\n field.admin?.description({ t })))) ||\n undefined,\n }\n\n const CustomDescriptionComponent =\n (field.admin &&\n 'description' in field.admin &&\n ((isReactComponent<DescriptionComponent>(field.admin.description) &&\n field.admin.description) ||\n (field.admin.description && FieldDescription))) ||\n undefined\n\n const CustomDescription =\n CustomDescriptionComponent !== undefined ? (\n <WithServerSideProps\n Component={CustomDescriptionComponent}\n {...(descriptionProps || {})}\n />\n ) : undefined\n\n const errorProps = {\n path,\n }\n\n const CustomErrorComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Error' in field.admin.components &&\n field.admin?.components?.Error) ||\n undefined\n\n const CustomError =\n CustomErrorComponent !== undefined ? (\n <WithServerSideProps Component={CustomErrorComponent} {...(errorProps || {})} />\n ) : undefined\n\n const baseFieldProps: FormFieldBase = {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n custom: 'admin' in field && 'custom' in field.admin ? field.admin?.custom : undefined,\n descriptionProps,\n disabled: 'admin' in field && 'disabled' in field.admin ? field.admin?.disabled : false,\n errorProps,\n labelProps,\n path,\n required: 'required' in field ? field.required : undefined,\n }\n\n let fieldComponentProps: FieldComponentProps\n\n let fieldOptions: Option[]\n\n if ('options' in field) {\n fieldOptions = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t: i18n.t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n const cellComponentProps: CellComponentProps = {\n name: 'name' in field ? field.name : undefined,\n fieldType: field.type,\n isFieldAffectingData,\n label:\n 'label' in field && field.label && typeof field.label !== 'function'\n ? field.label\n : undefined,\n labels: 'labels' in field ? field.labels : undefined,\n options: 'options' in field ? fieldOptions : undefined,\n relationTo: 'relationTo' in field ? field.relationTo : undefined,\n }\n\n switch (field.type) {\n case 'array': {\n let CustomRowLabel: React.ReactNode\n\n if (\n 'admin' in field &&\n field.admin.components &&\n 'RowLabel' in field.admin.components &&\n field.admin.components.RowLabel &&\n isReactComponent<RowLabelComponent>(field.admin.components.RowLabel)\n ) {\n const CustomRowLabelComponent = field.admin.components.RowLabel\n CustomRowLabel = <WithServerSideProps Component={CustomRowLabelComponent} />\n }\n\n const arrayFieldProps: Omit<ArrayFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n CustomRowLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n label: field?.label,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = arrayFieldProps\n break\n }\n case 'blocks': {\n const blocks = field.blocks.map((block) => {\n const blockFieldMap = mapFields({\n WithServerSideProps,\n config,\n fieldSchema: block.fields,\n filter,\n i18n,\n parentPath: `${path}.${block.slug}`,\n readOnly: readOnlyOverride,\n })\n\n const reducedBlock: ReducedBlock = {\n slug: block.slug,\n custom: block.admin?.custom,\n fieldMap: blockFieldMap,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n labels: block.labels,\n }\n\n return reducedBlock\n })\n\n const blocksField: Omit<BlocksFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n blocks,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field?.label,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = blocksField\n\n cellComponentProps.blocks = field.blocks.map((b) => ({\n slug: b.slug,\n labels: b.labels,\n }))\n\n break\n }\n case 'checkbox': {\n const checkboxField: CheckboxFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = checkboxField\n break\n }\n case 'code': {\n const codeField: CodeFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n label: field.label,\n language: field.admin?.language,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = codeField\n break\n }\n case 'collapsible': {\n let CustomCollapsibleLabel: React.ReactNode\n\n if (isReactComponent(field.label) || isPlainFunction(field.label)) {\n const CustomCollapsibleLabelComponent = field.label as RowLabelComponent\n CustomCollapsibleLabel = (\n <WithServerSideProps Component={CustomCollapsibleLabelComponent} />\n )\n }\n\n const collapsibleField: Omit<CollapsibleFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n CustomLabel: CustomCollapsibleLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n initCollapsed: field.admin?.initCollapsed,\n label: !CustomCollapsibleLabel ? (field.label as FieldBase['label']) : undefined,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = collapsibleField as CollapsibleFieldProps // TODO: dunno why this is needed\n break\n }\n case 'date': {\n const dateField: DateFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n date: field.admin?.date,\n disabled: field.admin?.disabled,\n label: field.label,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = dateField\n cellComponentProps.dateDisplayFormat = field.admin?.date?.displayFormat\n break\n }\n case 'email': {\n const emailField: EmailFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = emailField\n break\n }\n case 'group': {\n const groupField: Omit<GroupFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n label: field.label,\n readOnly: field.admin?.readOnly,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = groupField\n break\n }\n case 'json': {\n const jsonField: JSONFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n jsonSchema: field.jsonSchema,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = jsonField\n break\n }\n case 'number': {\n const numberField: NumberFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n label: field.label,\n max: field.max,\n maxRows: field.maxRows,\n min: field.min,\n readOnly: field.admin?.readOnly,\n required: field.required,\n step: field.admin?.step,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = numberField\n break\n }\n case 'point': {\n const pointField: PointFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = pointField\n break\n }\n case 'relationship': {\n const relationshipField: RelationshipFieldProps = {\n ...baseFieldProps,\n name: field.name,\n allowCreate: field.admin.allowCreate,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n label: field.label,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n sortOptions: field.admin.sortOptions,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = relationshipField\n break\n }\n case 'radio': {\n const radioField: RadioFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = radioField\n break\n }\n case 'richText': {\n const richTextField: RichTextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const RichTextFieldComponent = field.editor.FieldComponent\n const RichTextCellComponent = field.editor.CellComponent\n\n if (typeof field.editor.generateComponentMap === 'function') {\n const result = field.editor.generateComponentMap({\n WithServerSideProps,\n config,\n i18n,\n schemaPath: path,\n })\n richTextField.richTextComponentMap = result\n cellComponentProps.richTextComponentMap = result\n }\n\n if (RichTextFieldComponent) {\n CustomFieldComponent = RichTextFieldComponent\n }\n\n if (RichTextCellComponent) {\n cellComponentProps.CellComponentOverride = (\n <WithServerSideProps Component={RichTextCellComponent} />\n )\n }\n\n fieldComponentProps = richTextField\n\n break\n }\n case 'row': {\n const rowField: Omit<RowFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = rowField\n break\n }\n case 'tabs': {\n // `tabs` fields require a field map of each of its tab's nested fields\n const tabs = field.tabs.map((tab) => {\n const tabFieldMap = mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: tab.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n })\n\n const reducedTab: MappedTab = {\n name: 'name' in tab ? tab.name : undefined,\n fieldMap: tabFieldMap,\n label: tab.label,\n }\n\n return reducedTab\n })\n\n const tabsField: Omit<TabsFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: 'name' in field ? (field.name as string) : undefined,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n tabs,\n width: field.admin?.width,\n }\n\n fieldComponentProps = tabsField\n break\n }\n case 'text': {\n const textField: TextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n label: field.label,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textField\n break\n }\n case 'textarea': {\n const textareaField: TextareaFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n rows: field.admin?.rows,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textareaField\n break\n }\n case 'ui': {\n fieldComponentProps = baseFieldProps\n break\n }\n case 'upload': {\n const uploadField: UploadFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n filterOptions: field.filterOptions,\n label: field.label,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = uploadField\n break\n }\n case 'select': {\n const selectField: SelectFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n isClearable: field.admin?.isClearable,\n label: field.label,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = selectField\n break\n }\n default: {\n break\n }\n }\n\n const reducedField: MappedField = {\n name: 'name' in field ? field.name : undefined,\n type: field.type,\n CustomCell: CustomCellComponent ? (\n <WithServerSideProps Component={CustomCellComponent} {...cellComponentProps} />\n ) : undefined,\n CustomField: CustomFieldComponent ? (\n <WithServerSideProps Component={CustomFieldComponent} {...fieldComponentProps} />\n ) : undefined,\n cellComponentProps,\n custom: field?.admin?.custom,\n disableBulkEdit:\n 'admin' in field && 'disableBulkEdit' in field.admin && field.admin.disableBulkEdit,\n fieldComponentProps,\n fieldIsPresentational,\n isFieldAffectingData,\n isHidden,\n isSidebar:\n 'admin' in field && 'position' in field.admin && field.admin.position === 'sidebar',\n localized: 'localized' in field ? field.localized : false,\n unique: 'unique' in field ? field.unique : false,\n }\n\n acc.push(reducedField)\n }\n }\n\n return acc\n }, [])\n\n const hasID =\n result.findIndex((f) => 'name' in f && f.isFieldAffectingData && f.name === 'id') > -1\n\n if (!disableAddingID && !hasID) {\n // TODO: For all fields (not just this one) we need to add the name to both .fieldComponentProps.name AND .name. This can probably be improved\n result.push({\n name: 'id',\n type: 'text',\n CustomField: null,\n cellComponentProps: {\n name: 'id',\n },\n disableBulkEdit: true,\n fieldComponentProps: {\n name: 'id',\n label: 'ID',\n labelProps: {\n label: 'ID',\n },\n },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n isHidden: true,\n localized: undefined,\n })\n }\n\n return result\n}\n"],"names":["FieldDescription","fieldAffectsData","fieldIsPresentationalOnly","isPlainFunction","isReactComponent","React","Fragment","HiddenInput","mapFields","args","WithServerSideProps","config","disableAddingID","fieldSchema","filter","i18n","t","parentPath","readOnly","readOnlyOverride","result","reduce","acc","field","fieldIsPresentational","CustomFieldComponent","admin","components","Field","CustomCellComponent","Cell","isHidden","hidden","disabled","isFieldAffectingData","path","name","AfterInput","Array","isArray","afterInput","map","Component","i","key","BeforeInput","beforeInput","labelProps","label","undefined","required","CustomLabelComponent","Label","CustomLabel","descriptionProps","description","CustomDescriptionComponent","CustomDescription","errorProps","CustomErrorComponent","Error","CustomError","baseFieldProps","custom","fieldComponentProps","fieldOptions","options","option","value","cellComponentProps","fieldType","type","labels","relationTo","CustomRowLabel","RowLabel","CustomRowLabelComponent","arrayFieldProps","className","fieldMap","fields","maxRows","minRows","style","width","blocks","block","blockFieldMap","slug","reducedBlock","imageAltText","imageURL","blocksField","b","checkboxField","codeField","editorOptions","language","CustomCollapsibleLabel","CustomCollapsibleLabelComponent","collapsibleField","initCollapsed","dateField","date","placeholder","dateDisplayFormat","displayFormat","emailField","groupField","jsonField","jsonSchema","numberField","hasMany","max","min","step","pointField","relationshipField","allowCreate","sortOptions","radioField","richTextField","editor","RichTextFieldComponent","FieldComponent","RichTextCellComponent","CellComponent","generateComponentMap","schemaPath","richTextComponentMap","CellComponentOverride","rowField","tabs","tab","tabFieldMap","reducedTab","tabsField","textField","maxLength","minLength","textareaField","rows","uploadField","filterOptions","selectField","isClearable","reducedField","CustomCell","CustomField","disableBulkEdit","isSidebar","position","localized","unique","push","hasID","findIndex","f"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/providers/ComponentMap/buildComponentMap/fields.tsx"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { CustomComponent } from 'payload/config'\nimport type {\n CellComponentProps,\n DescriptionComponent,\n DescriptionFunction,\n Field,\n FieldBase,\n FieldDescriptionProps,\n FieldWithPath,\n LabelProps,\n Option,\n RowLabelComponent,\n SanitizedConfig,\n WithServerSideProps as WithServerSidePropsType,\n} from 'payload/types'\n\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { fieldAffectsData, fieldIsPresentationalOnly } from 'payload/types'\nimport {\n isPlainFunction,\n isReactClientComponent,\n isReactComponent,\n isReactServerComponent,\n} from 'payload/utilities'\nimport React, { Fragment } from 'react'\n\nimport type { ArrayFieldProps } from '../../../fields/Array/index.js'\nimport type { BlocksFieldProps } from '../../../fields/Blocks/index.js'\nimport type { CheckboxFieldProps } from '../../../fields/Checkbox/index.js'\nimport type { CodeFieldProps } from '../../../fields/Code/index.js'\nimport type { CollapsibleFieldProps } from '../../../fields/Collapsible/index.js'\nimport type { DateFieldProps } from '../../../fields/DateTime/index.js'\nimport type { EmailFieldProps } from '../../../fields/Email/index.js'\nimport type { GroupFieldProps } from '../../../fields/Group/index.js'\nimport type { JSONFieldProps } from '../../../fields/JSON/index.js'\nimport type { NumberFieldProps } from '../../../fields/Number/index.js'\nimport type { PointFieldProps } from '../../../fields/Point/index.js'\nimport type { RadioFieldProps } from '../../../fields/RadioGroup/index.js'\nimport type { RelationshipFieldProps } from '../../../fields/Relationship/types.js'\nimport type { RichTextFieldProps } from '../../../fields/RichText/index.js'\nimport type { RowFieldProps } from '../../../fields/Row/types.js'\nimport type { SelectFieldProps } from '../../../fields/Select/index.js'\nimport type { TabsFieldProps } from '../../../fields/Tabs/index.js'\nimport type { TextFieldProps } from '../../../fields/Text/types.js'\nimport type { TextareaFieldProps } from '../../../fields/Textarea/types.js'\nimport type { UploadFieldProps } from '../../../fields/Upload/types.js'\nimport type { FormFieldBase } from '../../../fields/shared/index.js'\nimport type {\n FieldComponentProps,\n FieldMap,\n MappedField,\n MappedTab,\n ReducedBlock,\n} from './types.js'\n\nimport { HiddenInput } from '../../../fields/HiddenInput/index.js'\n\nexport const mapFields = (args: {\n WithServerSideProps: WithServerSidePropsType\n config: SanitizedConfig\n /**\n * If mapFields is used outside of collections, you might not want it to add an id field\n */\n disableAddingID?: boolean\n fieldSchema: FieldWithPath[]\n filter?: (field: Field) => boolean\n i18n: I18n\n parentPath?: string\n readOnly?: boolean\n}): FieldMap => {\n const {\n WithServerSideProps,\n config,\n disableAddingID,\n fieldSchema,\n filter,\n i18n,\n i18n: { t },\n parentPath,\n readOnly: readOnlyOverride,\n } = args\n\n const result: FieldMap = fieldSchema.reduce((acc, field): FieldMap => {\n const fieldIsPresentational = fieldIsPresentationalOnly(field)\n let CustomFieldComponent: CustomComponent<FieldComponentProps> = field.admin?.components?.Field\n\n const CustomCellComponent = field.admin?.components?.Cell\n\n const isHidden = field?.admin && 'hidden' in field.admin && field.admin.hidden\n\n if (fieldIsPresentational || (!field?.hidden && field?.admin?.disabled !== true)) {\n if ((filter && typeof filter === 'function' && filter(field)) || !filter) {\n if (isHidden) {\n if (CustomFieldComponent) {\n CustomFieldComponent = HiddenInput\n }\n }\n\n const isFieldAffectingData = fieldAffectsData(field)\n\n const path = `${parentPath ? `${parentPath}.` : ''}${\n field.path || (isFieldAffectingData && 'name' in field ? field.name : '')\n }`\n\n const AfterInput =\n ('admin' in field &&\n 'components' in field.admin &&\n 'afterInput' in field.admin.components &&\n Array.isArray(field.admin?.components?.afterInput) && (\n <Fragment>\n {field.admin.components.afterInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n const BeforeInput =\n ('admin' in field &&\n field.admin?.components &&\n 'beforeInput' in field.admin.components &&\n Array.isArray(field.admin.components.beforeInput) && (\n <Fragment>\n {field.admin.components.beforeInput.map((Component, i) => (\n <WithServerSideProps Component={Component} key={i} />\n ))}\n </Fragment>\n )) ||\n null\n\n const labelProps: LabelProps = {\n label:\n 'label' in field && !isPlainFunction(field.label) && !isReactComponent(field.label)\n ? field.label\n : undefined,\n required: 'required' in field ? field.required : undefined,\n }\n\n const CustomLabelComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Label' in field.admin.components &&\n field.admin.components?.Label) ||\n undefined\n\n const CustomLabel =\n CustomLabelComponent !== undefined ? (\n <WithServerSideProps Component={CustomLabelComponent} {...(labelProps || {})} />\n ) : undefined\n\n const descriptionProps: FieldDescriptionProps = {\n description:\n (field.admin &&\n 'description' in field.admin &&\n (((typeof field.admin?.description === 'string' ||\n typeof field.admin?.description === 'object') &&\n field.admin.description) ||\n (typeof field.admin?.description === 'function' &&\n isPlainFunction<DescriptionFunction>(field.admin?.description) &&\n field.admin?.description({ t })))) ||\n undefined,\n }\n\n const CustomDescriptionComponent =\n (field.admin &&\n 'description' in field.admin &&\n ((isReactComponent<DescriptionComponent>(field.admin.description) &&\n field.admin.description) ||\n (field.admin.description && FieldDescription))) ||\n undefined\n\n const CustomDescription =\n CustomDescriptionComponent !== undefined ? (\n <WithServerSideProps\n Component={CustomDescriptionComponent}\n {...(descriptionProps || {})}\n />\n ) : undefined\n\n const errorProps = {\n path,\n }\n\n const CustomErrorComponent =\n ('admin' in field &&\n field.admin?.components &&\n 'Error' in field.admin.components &&\n field.admin?.components?.Error) ||\n undefined\n\n const CustomError =\n CustomErrorComponent !== undefined ? (\n <WithServerSideProps Component={CustomErrorComponent} {...(errorProps || {})} />\n ) : undefined\n\n const baseFieldProps: FormFieldBase = {\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n custom: 'admin' in field && 'custom' in field.admin ? field.admin?.custom : undefined,\n descriptionProps,\n disabled: 'admin' in field && 'disabled' in field.admin ? field.admin?.disabled : false,\n errorProps,\n labelProps,\n path,\n required: 'required' in field ? field.required : undefined,\n }\n\n let fieldComponentProps: FieldComponentProps\n\n let fieldOptions: Option[]\n\n if ('options' in field) {\n fieldOptions = field.options.map((option) => {\n if (typeof option === 'object' && typeof option.label === 'function') {\n return {\n label: option.label({ t: i18n.t }),\n value: option.value,\n }\n }\n\n return option\n })\n }\n\n const cellComponentProps: CellComponentProps = {\n name: 'name' in field ? field.name : undefined,\n fieldType: field.type,\n isFieldAffectingData,\n label:\n 'label' in field && field.label && typeof field.label !== 'function'\n ? field.label\n : undefined,\n labels: 'labels' in field ? field.labels : undefined,\n options: 'options' in field ? fieldOptions : undefined,\n relationTo: 'relationTo' in field ? field.relationTo : undefined,\n }\n\n switch (field.type) {\n case 'array': {\n let CustomRowLabel: React.ReactNode\n\n if (\n 'admin' in field &&\n field.admin.components &&\n 'RowLabel' in field.admin.components &&\n field.admin.components.RowLabel &&\n isReactComponent<RowLabelComponent>(field.admin.components.RowLabel)\n ) {\n const CustomRowLabelComponent = field.admin.components.RowLabel\n CustomRowLabel = <WithServerSideProps Component={CustomRowLabelComponent} />\n }\n\n const arrayFieldProps: Omit<ArrayFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n CustomRowLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n isSortable: field.admin?.isSortable,\n label: field?.label,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = arrayFieldProps\n break\n }\n case 'blocks': {\n const blocks = field.blocks.map((block) => {\n const blockFieldMap = mapFields({\n WithServerSideProps,\n config,\n fieldSchema: block.fields,\n filter,\n i18n,\n parentPath: `${path}.${block.slug}`,\n readOnly: readOnlyOverride,\n })\n\n const reducedBlock: ReducedBlock = {\n slug: block.slug,\n custom: block.admin?.custom,\n fieldMap: blockFieldMap,\n imageAltText: block.imageAltText,\n imageURL: block.imageURL,\n labels: block.labels,\n }\n\n return reducedBlock\n })\n\n const blocksField: Omit<BlocksFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n blocks,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n isSortable: field.admin?.isSortable,\n label: field?.label,\n labels: field.labels,\n maxRows: field.maxRows,\n minRows: field.minRows,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = blocksField\n\n cellComponentProps.blocks = field.blocks.map((b) => ({\n slug: b.slug,\n labels: b.labels,\n }))\n\n break\n }\n case 'checkbox': {\n const checkboxField: CheckboxFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = checkboxField\n break\n }\n case 'code': {\n const codeField: CodeFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n label: field.label,\n language: field.admin?.language,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = codeField\n break\n }\n case 'collapsible': {\n let CustomCollapsibleLabel: React.ReactNode\n\n if (isReactComponent(field.label) || isPlainFunction(field.label)) {\n const CustomCollapsibleLabelComponent = field.label as RowLabelComponent\n CustomCollapsibleLabel = (\n <WithServerSideProps Component={CustomCollapsibleLabelComponent} />\n )\n }\n\n const collapsibleField: Omit<CollapsibleFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n CustomLabel: CustomCollapsibleLabel,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n initCollapsed: field.admin?.initCollapsed,\n label: !CustomCollapsibleLabel ? (field.label as FieldBase['label']) : undefined,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = collapsibleField as CollapsibleFieldProps // TODO: dunno why this is needed\n break\n }\n case 'date': {\n const dateField: DateFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n date: field.admin?.date,\n disabled: field.admin?.disabled,\n label: field.label,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = dateField\n cellComponentProps.dateDisplayFormat = field.admin?.date?.displayFormat\n break\n }\n case 'email': {\n const emailField: EmailFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = emailField\n break\n }\n case 'group': {\n const groupField: Omit<GroupFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n label: field.label,\n readOnly: field.admin?.readOnly,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = groupField\n break\n }\n case 'json': {\n const jsonField: JSONFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n editorOptions: field.admin?.editorOptions,\n jsonSchema: field.jsonSchema,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = jsonField\n break\n }\n case 'number': {\n const numberField: NumberFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n label: field.label,\n max: field.max,\n maxRows: field.maxRows,\n min: field.min,\n readOnly: field.admin?.readOnly,\n required: field.required,\n step: field.admin?.step,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = numberField\n break\n }\n case 'point': {\n const pointField: PointFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = pointField\n break\n }\n case 'relationship': {\n const relationshipField: RelationshipFieldProps = {\n ...baseFieldProps,\n name: field.name,\n allowCreate: field.admin.allowCreate,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n label: field.label,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n sortOptions: field.admin.sortOptions,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = relationshipField\n break\n }\n case 'radio': {\n const radioField: RadioFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = radioField\n break\n }\n case 'richText': {\n const richTextField: RichTextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n if (typeof field?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n const RichTextFieldComponent = field.editor.FieldComponent\n const RichTextCellComponent = field.editor.CellComponent\n\n if (typeof field.editor.generateComponentMap === 'function') {\n const result = field.editor.generateComponentMap({\n WithServerSideProps,\n config,\n i18n,\n schemaPath: path,\n })\n richTextField.richTextComponentMap = result\n cellComponentProps.richTextComponentMap = result\n }\n\n if (RichTextFieldComponent) {\n CustomFieldComponent = RichTextFieldComponent\n }\n\n if (RichTextCellComponent) {\n cellComponentProps.CellComponentOverride = (\n <WithServerSideProps Component={RichTextCellComponent} />\n )\n }\n\n fieldComponentProps = richTextField\n\n break\n }\n case 'row': {\n const rowField: Omit<RowFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n fieldMap: mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: field.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n }),\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = rowField\n break\n }\n case 'tabs': {\n // `tabs` fields require a field map of each of its tab's nested fields\n const tabs = field.tabs.map((tab) => {\n const tabFieldMap = mapFields({\n WithServerSideProps,\n config,\n disableAddingID: true,\n fieldSchema: tab.fields,\n filter,\n i18n,\n parentPath: path,\n readOnly: readOnlyOverride,\n })\n\n const reducedTab: MappedTab = {\n name: 'name' in tab ? tab.name : undefined,\n fieldMap: tabFieldMap,\n label: tab.label,\n }\n\n return reducedTab\n })\n\n const tabsField: Omit<TabsFieldProps, 'indexPath' | 'permissions'> = {\n ...baseFieldProps,\n name: 'name' in field ? (field.name as string) : undefined,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n tabs,\n width: field.admin?.width,\n }\n\n fieldComponentProps = tabsField\n break\n }\n case 'text': {\n const textField: TextFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n label: field.label,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textField\n break\n }\n case 'textarea': {\n const textareaField: TextareaFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n label: field.label,\n maxLength: field.maxLength,\n minLength: field.minLength,\n placeholder: field.admin?.placeholder,\n readOnly: field.admin?.readOnly,\n required: field.required,\n rows: field.admin?.rows,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n fieldComponentProps = textareaField\n break\n }\n case 'ui': {\n fieldComponentProps = baseFieldProps\n break\n }\n case 'upload': {\n const uploadField: UploadFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n filterOptions: field.filterOptions,\n label: field.label,\n readOnly: field.admin?.readOnly,\n relationTo: field.relationTo,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.relationTo = field.relationTo\n fieldComponentProps = uploadField\n break\n }\n case 'select': {\n const selectField: SelectFieldProps = {\n ...baseFieldProps,\n name: field.name,\n className: field.admin?.className,\n disabled: field.admin?.disabled,\n hasMany: field.hasMany,\n isClearable: field.admin?.isClearable,\n label: field.label,\n options: fieldOptions,\n readOnly: field.admin?.readOnly,\n required: field.required,\n style: field.admin?.style,\n width: field.admin?.width,\n }\n\n cellComponentProps.options = fieldOptions\n fieldComponentProps = selectField\n break\n }\n default: {\n break\n }\n }\n\n const reducedField: MappedField = {\n name: 'name' in field ? field.name : undefined,\n type: field.type,\n CustomCell: CustomCellComponent ? (\n <WithServerSideProps Component={CustomCellComponent} {...cellComponentProps} />\n ) : undefined,\n CustomField: CustomFieldComponent ? (\n <WithServerSideProps Component={CustomFieldComponent} {...fieldComponentProps} />\n ) : undefined,\n cellComponentProps,\n custom: field?.admin?.custom,\n disableBulkEdit:\n 'admin' in field && 'disableBulkEdit' in field.admin && field.admin.disableBulkEdit,\n fieldComponentProps,\n fieldIsPresentational,\n isFieldAffectingData,\n isHidden,\n isSidebar:\n 'admin' in field && 'position' in field.admin && field.admin.position === 'sidebar',\n localized: 'localized' in field ? field.localized : false,\n unique: 'unique' in field ? field.unique : false,\n }\n\n acc.push(reducedField)\n }\n }\n\n return acc\n }, [])\n\n const hasID =\n result.findIndex((f) => 'name' in f && f.isFieldAffectingData && f.name === 'id') > -1\n\n if (!disableAddingID && !hasID) {\n // TODO: For all fields (not just this one) we need to add the name to both .fieldComponentProps.name AND .name. This can probably be improved\n result.push({\n name: 'id',\n type: 'text',\n CustomField: null,\n cellComponentProps: {\n name: 'id',\n },\n disableBulkEdit: true,\n fieldComponentProps: {\n name: 'id',\n label: 'ID',\n labelProps: {\n label: 'ID',\n },\n },\n fieldIsPresentational: false,\n isFieldAffectingData: true,\n isHidden: true,\n localized: undefined,\n })\n }\n\n return result\n}\n"],"names":["FieldDescription","fieldAffectsData","fieldIsPresentationalOnly","isPlainFunction","isReactComponent","React","Fragment","HiddenInput","mapFields","args","WithServerSideProps","config","disableAddingID","fieldSchema","filter","i18n","t","parentPath","readOnly","readOnlyOverride","result","reduce","acc","field","fieldIsPresentational","CustomFieldComponent","admin","components","Field","CustomCellComponent","Cell","isHidden","hidden","disabled","isFieldAffectingData","path","name","AfterInput","Array","isArray","afterInput","map","Component","i","key","BeforeInput","beforeInput","labelProps","label","undefined","required","CustomLabelComponent","Label","CustomLabel","descriptionProps","description","CustomDescriptionComponent","CustomDescription","errorProps","CustomErrorComponent","Error","CustomError","baseFieldProps","custom","fieldComponentProps","fieldOptions","options","option","value","cellComponentProps","fieldType","type","labels","relationTo","CustomRowLabel","RowLabel","CustomRowLabelComponent","arrayFieldProps","className","fieldMap","fields","isSortable","maxRows","minRows","style","width","blocks","block","blockFieldMap","slug","reducedBlock","imageAltText","imageURL","blocksField","b","checkboxField","codeField","editorOptions","language","CustomCollapsibleLabel","CustomCollapsibleLabelComponent","collapsibleField","initCollapsed","dateField","date","placeholder","dateDisplayFormat","displayFormat","emailField","groupField","jsonField","jsonSchema","numberField","hasMany","max","min","step","pointField","relationshipField","allowCreate","sortOptions","radioField","richTextField","editor","RichTextFieldComponent","FieldComponent","RichTextCellComponent","CellComponent","generateComponentMap","schemaPath","richTextComponentMap","CellComponentOverride","rowField","tabs","tab","tabFieldMap","reducedTab","tabsField","textField","maxLength","minLength","textareaField","rows","uploadField","filterOptions","selectField","isClearable","reducedField","CustomCell","CustomField","disableBulkEdit","isSidebar","position","localized","unique","push","hasID","findIndex","f"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/ui",
3
- "version": "3.0.0-beta.26",
3
+ "version": "3.0.0-beta.27",
4
4
  "homepage": "https://payloadcms.com",
5
5
  "repository": {
6
6
  "type": "git",
@@ -113,7 +113,7 @@
113
113
  "react-toastify": "10.0.4",
114
114
  "use-context-selector": "1.4.1",
115
115
  "uuid": "9.0.1",
116
- "@payloadcms/translations": "3.0.0-beta.26"
116
+ "@payloadcms/translations": "3.0.0-beta.27"
117
117
  },
118
118
  "devDependencies": {
119
119
  "@types/body-scroll-lock": "^3.1.0",
@@ -134,13 +134,13 @@
134
134
  "webpack": "^5.78.0",
135
135
  "webpack-cli": "^5.1.4",
136
136
  "@payloadcms/eslint-config": "1.1.1",
137
- "payload": "3.0.0-beta.26"
137
+ "payload": "3.0.0-beta.27"
138
138
  },
139
139
  "peerDependencies": {
140
140
  "next": "^14.3.0-canary.7",
141
141
  "react": "^18.0.0",
142
142
  "react-dom": "^18.0.0",
143
- "payload": "3.0.0-beta.26"
143
+ "payload": "3.0.0-beta.27"
144
144
  },
145
145
  "engines": {
146
146
  "node": ">=18.20.2"