@payloadcms/ui 3.25.0-canary.f62445f → 3.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +10 -30
  3. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +3 -2
  5. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/FormsManager/createFormData.js +19 -2
  7. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  8. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/index.js +10 -3
  10. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  11. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  12. package/dist/elements/DeleteMany/index.js +2 -2
  13. package/dist/elements/DeleteMany/index.js.map +1 -1
  14. package/dist/elements/DeleteMany/index.scss +16 -0
  15. package/dist/elements/EditMany/index.d.ts.map +1 -1
  16. package/dist/elements/EditMany/index.js +22 -14
  17. package/dist/elements/EditMany/index.js.map +1 -1
  18. package/dist/elements/EditMany/index.scss +5 -19
  19. package/dist/elements/Link/index.d.ts +9 -1
  20. package/dist/elements/Link/index.d.ts.map +1 -1
  21. package/dist/elements/Link/index.js +6 -0
  22. package/dist/elements/Link/index.js.map +1 -1
  23. package/dist/elements/ListControls/index.d.ts +8 -0
  24. package/dist/elements/ListControls/index.d.ts.map +1 -1
  25. package/dist/elements/ListControls/index.js +4 -20
  26. package/dist/elements/ListControls/index.js.map +1 -1
  27. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  28. package/dist/elements/ListDrawer/DrawerContent.js +2 -1
  29. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  30. package/dist/elements/ListDrawer/Provider.d.ts +7 -1
  31. package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
  32. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  33. package/dist/elements/ListSelection/index.d.ts +4 -0
  34. package/dist/elements/ListSelection/index.d.ts.map +1 -1
  35. package/dist/elements/ListSelection/index.js +44 -23
  36. package/dist/elements/ListSelection/index.js.map +1 -1
  37. package/dist/elements/ListSelection/index.scss +4 -0
  38. package/dist/elements/PublishMany/index.d.ts +1 -0
  39. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  40. package/dist/elements/PublishMany/index.js +3 -2
  41. package/dist/elements/PublishMany/index.js.map +1 -1
  42. package/dist/elements/PublishMany/index.scss +21 -0
  43. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  44. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -0
  45. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  46. package/dist/elements/UnpublishMany/index.d.ts +1 -0
  47. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  48. package/dist/elements/UnpublishMany/index.js +3 -2
  49. package/dist/elements/UnpublishMany/index.js.map +1 -1
  50. package/dist/elements/UnpublishMany/index.scss +21 -0
  51. package/dist/elements/WhereBuilder/field-types.d.ts.map +1 -1
  52. package/dist/elements/WhereBuilder/field-types.js +9 -5
  53. package/dist/elements/WhereBuilder/field-types.js.map +1 -1
  54. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  55. package/dist/elements/WhereBuilder/index.js +11 -10
  56. package/dist/elements/WhereBuilder/index.js.map +1 -1
  57. package/dist/exports/client/index.d.ts +2 -0
  58. package/dist/exports/client/index.d.ts.map +1 -1
  59. package/dist/exports/client/index.js +23 -23
  60. package/dist/exports/client/index.js.map +4 -4
  61. package/dist/fields/JSON/index.d.ts.map +1 -1
  62. package/dist/fields/JSON/index.js +16 -12
  63. package/dist/fields/JSON/index.js.map +1 -1
  64. package/dist/fields/Upload/Input.js +13 -13
  65. package/dist/fields/Upload/Input.js.map +1 -1
  66. package/dist/forms/Form/context.d.ts +3 -3
  67. package/dist/forms/Form/context.js +3 -3
  68. package/dist/forms/Form/context.js.map +1 -1
  69. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  70. package/dist/forms/Form/fieldReducer.js +30 -14
  71. package/dist/forms/Form/fieldReducer.js.map +1 -1
  72. package/dist/forms/Form/index.d.ts.map +1 -1
  73. package/dist/forms/Form/index.js +28 -4
  74. package/dist/forms/Form/index.js.map +1 -1
  75. package/dist/forms/Form/types.d.ts +1 -1
  76. package/dist/forms/Form/types.d.ts.map +1 -1
  77. package/dist/forms/Form/types.js.map +1 -1
  78. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  79. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -0
  80. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  81. package/dist/forms/useField/index.d.ts +1 -1
  82. package/dist/forms/useField/index.js +1 -1
  83. package/dist/forms/useField/index.js.map +1 -1
  84. package/dist/providers/Root/index.d.ts.map +1 -1
  85. package/dist/providers/Root/index.js +4 -1
  86. package/dist/providers/Root/index.js.map +1 -1
  87. package/dist/providers/UploadHandlers/index.d.ts +21 -0
  88. package/dist/providers/UploadHandlers/index.d.ts.map +1 -0
  89. package/dist/providers/UploadHandlers/index.js +72 -0
  90. package/dist/providers/UploadHandlers/index.js.map +1 -0
  91. package/dist/styles.css +1 -1
  92. package/dist/utilities/renderTable.d.ts.map +1 -1
  93. package/dist/utilities/renderTable.js +2 -1
  94. package/dist/utilities/renderTable.js.map +1 -1
  95. package/dist/views/List/ListHeader/index.d.ts +2 -0
  96. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  97. package/dist/views/List/ListHeader/index.js +5 -0
  98. package/dist/views/List/ListHeader/index.js.map +1 -1
  99. package/dist/views/List/index.d.ts.map +1 -1
  100. package/dist/views/List/index.js +8 -19
  101. package/dist/views/List/index.js.map +1 -1
  102. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/JSON/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAQxE,OAAO,cAAc,CAAA;AAqJrB,eAAO,MAAM,SAAS;;;;;+EAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/JSON/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAWxE,OAAO,cAAc,CAAA;AA4JrB,eAAO,MAAM,SAAS;;;;;+EAAoC,CAAA"}
@@ -8,10 +8,10 @@ import { useField } from '../../forms/useField/index.js';
8
8
  import { withCondition } from '../../forms/withCondition/index.js';
9
9
  import { FieldDescription } from '../FieldDescription/index.js';
10
10
  import { FieldError } from '../FieldError/index.js';
11
- import './index.scss';
12
11
  import { FieldLabel } from '../FieldLabel/index.js';
13
12
  import { mergeFieldStyles } from '../mergeFieldStyles.js';
14
13
  import { fieldBaseClass } from '../shared/index.js';
14
+ import './index.scss';
15
15
  const baseClass = 'json-field';
16
16
  const JSONFieldComponent = props => {
17
17
  const {
@@ -32,9 +32,9 @@ const JSONFieldComponent = props => {
32
32
  readOnly,
33
33
  validate
34
34
  } = props;
35
- const [stringValue, setStringValue] = useState();
36
35
  const [jsonError, setJsonError] = useState();
37
- const [hasLoadedValue, setHasLoadedValue] = useState(false);
36
+ const inputChangeFromRef = React.useRef('system');
37
+ const [editorKey, setEditorKey] = useState('');
38
38
  const memoizedValidate = useCallback((value, options) => {
39
39
  if (typeof validate === 'function') {
40
40
  return validate(value, {
@@ -60,6 +60,7 @@ const JSONFieldComponent = props => {
60
60
  path,
61
61
  validate: memoizedValidate
62
62
  });
63
+ const [initialStringValue, setInitialStringValue] = useState(() => (value_0 || initialValue) !== undefined ? JSON.stringify(value_0 ?? initialValue, null, 2) : undefined);
63
64
  const handleMount = useCallback((editor, monaco) => {
64
65
  if (!jsonSchema) {
65
66
  return;
@@ -77,7 +78,7 @@ const JSONFieldComponent = props => {
77
78
  if (readOnly) {
78
79
  return;
79
80
  }
80
- setStringValue(val);
81
+ inputChangeFromRef.current = 'user';
81
82
  try {
82
83
  setValue(val ? JSON.parse(val) : null);
83
84
  setJsonError(undefined);
@@ -85,14 +86,14 @@ const JSONFieldComponent = props => {
85
86
  setValue(val ? val : null);
86
87
  setJsonError(e);
87
88
  }
88
- }, [readOnly, setValue, setStringValue]);
89
+ }, [readOnly, setValue]);
89
90
  useEffect(() => {
90
- if (hasLoadedValue || value_0 === undefined) {
91
- return;
91
+ if (inputChangeFromRef.current === 'system') {
92
+ setInitialStringValue((value_0 || initialValue) !== undefined ? JSON.stringify(value_0 ?? initialValue, null, 2) : undefined);
93
+ setEditorKey(new Date().toString());
92
94
  }
93
- setStringValue(value_0 || initialValue ? JSON.stringify(value_0 ? value_0 : initialValue, null, 2) : '');
94
- setHasLoadedValue(true);
95
- }, [initialValue, value_0, hasLoadedValue]);
95
+ inputChangeFromRef.current = 'system';
96
+ }, [initialValue, value_0]);
96
97
  const styles = useMemo(() => mergeFieldStyles(field), [field]);
97
98
  return /*#__PURE__*/_jsxs("div", {
98
99
  className: [fieldBaseClass, baseClass, className, showError && 'error', readOnly && 'read-only'].filter(Boolean).join(' '),
@@ -121,8 +122,11 @@ const JSONFieldComponent = props => {
121
122
  onMount: handleMount,
122
123
  options: editorOptions,
123
124
  readOnly: readOnly,
124
- value: stringValue
125
- }), AfterInput]
125
+ value: initialStringValue,
126
+ wrapperProps: {
127
+ id: `field-${path?.replace(/\./g, '__')}`
128
+ }
129
+ }, editorKey), AfterInput]
126
130
  }), /*#__PURE__*/_jsx(RenderCustomComponent, {
127
131
  CustomComponent: Description,
128
132
  Fallback: /*#__PURE__*/_jsx(FieldDescription, {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","CodeEditor","RenderCustomComponent","useField","withCondition","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","baseClass","JSONFieldComponent","props","field","admin","className","description","editorOptions","maxHeight","jsonSchema","label","localized","required","path","readOnly","validate","stringValue","setStringValue","jsonError","setJsonError","hasLoadedValue","setHasLoadedValue","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","initialValue","setValue","showError","handleMount","editor","monaco","languages","json","jsonDefaults","setDiagnosticsOptions","enableSchemaRequest","schemas","diagnosticsOptions","uri","newUri","includes","crypto","randomUUID","setModel","createModel","JSON","stringify","Uri","parse","handleChange","val","undefined","e","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","message","defaultLanguage","onChange","onMount","JSONField"],"sources":["../../../src/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { JSONFieldClientComponent } from 'payload'\n\nimport { type OnMount } from '@monaco-editor/react'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport './index.scss'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst baseClass = 'json-field'\n\nconst JSONFieldComponent: JSONFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, editorOptions, maxHeight } = {},\n jsonSchema,\n label,\n localized,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const [stringValue, setStringValue] = useState<string>()\n const [jsonError, setJsonError] = useState<string>()\n const [hasLoadedValue, setHasLoadedValue] = useState(false)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, jsonError, required })\n }\n },\n [validate, required, jsonError],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n initialValue,\n setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const handleMount = useCallback<OnMount>(\n (editor, monaco) => {\n if (!jsonSchema) {\n return\n }\n\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n enableSchemaRequest: true,\n schemas: [\n ...(monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas || []),\n jsonSchema,\n ],\n validate: true,\n })\n\n const uri = jsonSchema.uri\n const newUri = uri.includes('?')\n ? `${uri}&${crypto.randomUUID()}`\n : `${uri}?${crypto.randomUUID()}`\n\n editor.setModel(\n monaco.editor.createModel(JSON.stringify(value, null, 2), 'json', monaco.Uri.parse(newUri)),\n )\n },\n [jsonSchema, value],\n )\n\n const handleChange = useCallback(\n (val) => {\n if (readOnly) {\n return\n }\n setStringValue(val)\n\n try {\n setValue(val ? JSON.parse(val) : null)\n setJsonError(undefined)\n } catch (e) {\n setValue(val ? val : null)\n setJsonError(e)\n }\n },\n [readOnly, setValue, setStringValue],\n )\n\n useEffect(() => {\n if (hasLoadedValue || value === undefined) {\n return\n }\n\n setStringValue(\n value || initialValue ? JSON.stringify(value ? value : initialValue, null, 2) : '',\n )\n\n setHasLoadedValue(true)\n }, [initialValue, value, hasLoadedValue])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError message={jsonError} path={path} showError={showError} />}\n />\n {BeforeInput}\n <CodeEditor\n defaultLanguage=\"json\"\n maxHeight={maxHeight}\n onChange={handleChange}\n onMount={handleMount}\n options={editorOptions}\n readOnly={readOnly}\n value={stringValue}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JSONField = withCondition(JSONFieldComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAEjE,SAASC,UAAU,QAAQ;AAC3B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAE/B,MAAMC,SAAA,GAAY;AAElB,MAAMC,kBAAA,GAAgDC,KAAA;EACpD,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,aAAa;QAAEC;MAAS,CAAE,GAAG,CAAC,CAAC;MAChEC,UAAU;MACVC,KAAK;MACLC,SAAS;MACTC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGb,KAAA;EAEJ,MAAM,CAACc,WAAA,EAAaC,cAAA,CAAe,GAAG3B,QAAA;EACtC,MAAM,CAAC4B,SAAA,EAAWC,YAAA,CAAa,GAAG7B,QAAA;EAClC,MAAM,CAAC8B,cAAA,EAAgBC,iBAAA,CAAkB,GAAG/B,QAAA,CAAS;EAErD,MAAMgC,gBAAA,GAAmBnC,WAAA,CACvB,CAACoC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOT,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASQ,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAEN,SAAA;QAAWN;MAAS;IAC3D;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,EAAUM,SAAA,CAAU;EAGjC,MAAM;IACJO,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,YAAY;IACZC,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAG9B,QAAA,CAAiB;IACnBoB,IAAA;IACAE,QAAA,EAAUO;EACZ;EAEA,MAAMY,WAAA,GAAc/C,WAAA,CAClB,CAACgD,MAAA,EAAQC,MAAA;IACP,IAAI,CAAC3B,UAAA,EAAY;MACf;IACF;IAEA2B,MAAA,CAAOC,SAAS,CAACC,IAAI,CAACC,YAAY,CAACC,qBAAqB,CAAC;MACvDC,mBAAA,EAAqB;MACrBC,OAAA,EAAS,C,IACHN,MAAA,CAAOC,SAAS,CAACC,IAAI,CAACC,YAAY,CAACI,kBAAkB,CAACD,OAAO,IAAI,EAAE,GACvEjC,UAAA,CACD;MACDM,QAAA,EAAU;IACZ;IAEA,MAAM6B,GAAA,GAAMnC,UAAA,CAAWmC,GAAG;IAC1B,MAAMC,MAAA,GAASD,GAAA,CAAIE,QAAQ,CAAC,OACxB,GAAGF,GAAA,IAAOG,MAAA,CAAOC,UAAU,IAAI,GAC/B,GAAGJ,GAAA,IAAOG,MAAA,CAAOC,UAAU,IAAI;IAEnCb,MAAA,CAAOc,QAAQ,CACbb,MAAA,CAAOD,MAAM,CAACe,WAAW,CAACC,IAAA,CAAKC,SAAS,CAAC7B,OAAA,EAAO,MAAM,IAAI,QAAQa,MAAA,CAAOiB,GAAG,CAACC,KAAK,CAACT,MAAA;EAEvF,GACA,CAACpC,UAAA,EAAYc,OAAA,CAAM;EAGrB,MAAMgC,YAAA,GAAepE,WAAA,CAClBqE,GAAA;IACC,IAAI1C,QAAA,EAAU;MACZ;IACF;IACAG,cAAA,CAAeuC,GAAA;IAEf,IAAI;MACFxB,QAAA,CAASwB,GAAA,GAAML,IAAA,CAAKG,KAAK,CAACE,GAAA,IAAO;MACjCrC,YAAA,CAAasC,SAAA;IACf,EAAE,OAAOC,CAAA,EAAG;MACV1B,QAAA,CAASwB,GAAA,GAAMA,GAAA,GAAM;MACrBrC,YAAA,CAAauC,CAAA;IACf;EACF,GACA,CAAC5C,QAAA,EAAUkB,QAAA,EAAUf,cAAA,CAAe;EAGtC7B,SAAA,CAAU;IACR,IAAIgC,cAAA,IAAkBG,OAAA,KAAUkC,SAAA,EAAW;MACzC;IACF;IAEAxC,cAAA,CACEM,OAAA,IAASQ,YAAA,GAAeoB,IAAA,CAAKC,SAAS,CAAC7B,OAAA,GAAQA,OAAA,GAAQQ,YAAA,EAAc,MAAM,KAAK;IAGlFV,iBAAA,CAAkB;EACpB,GAAG,CAACU,YAAA,EAAcR,OAAA,EAAOH,cAAA,CAAe;EAExC,MAAMuC,MAAA,GAAStE,OAAA,CAAQ,MAAMS,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEyD,KAAA,CAAC;IACCvD,SAAA,EAAW,CACTN,cAAA,EACAC,SAAA,EACAK,SAAA,EACA4B,SAAA,IAAa,SACbnB,QAAA,IAAY,YACb,CACE+C,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;IACRC,KAAA,EAAOL,MAAA;4BAEPM,IAAA,CAACzE,qBAAA;MACC0E,eAAA,EAAiBpC,KAAA;MACjBqC,QAAA,eACEF,IAAA,CAACpE,UAAA;QAAWa,KAAA,EAAOA,KAAA;QAAOC,SAAA,EAAWA,SAAA;QAAWE,IAAA,EAAMA,IAAA;QAAMD,QAAA,EAAUA;;qBAG1EgD,KAAA,CAAC;MAAIvD,SAAA,EAAW,GAAGN,cAAA,QAAsB;8BACvCkE,IAAA,CAACzE,qBAAA;QACC0E,eAAA,EAAiBrC,KAAA;QACjBsC,QAAA,eAAUF,IAAA,CAACrE,UAAA;UAAWwE,OAAA,EAASlD,SAAA;UAAWL,IAAA,EAAMA,IAAA;UAAMoB,SAAA,EAAWA;;UAElEN,WAAA,E,aACDsC,IAAA,CAAC1E,UAAA;QACC8E,eAAA,EAAgB;QAChB7D,SAAA,EAAWA,SAAA;QACX8D,QAAA,EAAUf,YAAA;QACVgB,OAAA,EAASrC,WAAA;QACTV,OAAA,EAASjB,aAAA;QACTO,QAAA,EAAUA,QAAA;QACVS,KAAA,EAAOP;UAERU,UAAA;qBAEHuC,IAAA,CAACzE,qBAAA;MACC0E,eAAA,EAAiBtC,WAAA;MACjBuC,QAAA,eAAUF,IAAA,CAACtE,gBAAA;QAAiBW,WAAA,EAAaA,WAAA;QAAaO,IAAA,EAAMA;;;;AAIpE;AAEA,OAAO,MAAM2D,SAAA,GAAY9E,aAAA,CAAcO,kBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","CodeEditor","RenderCustomComponent","useField","withCondition","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","baseClass","JSONFieldComponent","props","field","admin","className","description","editorOptions","maxHeight","jsonSchema","label","localized","required","path","readOnly","validate","jsonError","setJsonError","inputChangeFromRef","useRef","editorKey","setEditorKey","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","initialValue","setValue","showError","initialStringValue","setInitialStringValue","undefined","JSON","stringify","handleMount","editor","monaco","languages","json","jsonDefaults","setDiagnosticsOptions","enableSchemaRequest","schemas","diagnosticsOptions","uri","newUri","includes","crypto","randomUUID","setModel","createModel","Uri","parse","handleChange","val","current","e","Date","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","message","defaultLanguage","onChange","onMount","wrapperProps","id","replace","JSONField"],"sources":["../../../src/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { JSONFieldClientComponent } from 'payload'\n\nimport { type OnMount } from '@monaco-editor/react'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'json-field'\n\nconst JSONFieldComponent: JSONFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, editorOptions, maxHeight } = {},\n jsonSchema,\n label,\n localized,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n const [jsonError, setJsonError] = useState<string>()\n const inputChangeFromRef = React.useRef<'system' | 'user'>('system')\n const [editorKey, setEditorKey] = useState<string>('')\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, jsonError, required })\n }\n },\n [validate, required, jsonError],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n initialValue,\n setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const [initialStringValue, setInitialStringValue] = useState<string | undefined>(() =>\n (value || initialValue) !== undefined\n ? JSON.stringify(value ?? initialValue, null, 2)\n : undefined,\n )\n\n const handleMount = useCallback<OnMount>(\n (editor, monaco) => {\n if (!jsonSchema) {\n return\n }\n\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n enableSchemaRequest: true,\n schemas: [\n ...(monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas || []),\n jsonSchema,\n ],\n validate: true,\n })\n\n const uri = jsonSchema.uri\n const newUri = uri.includes('?')\n ? `${uri}&${crypto.randomUUID()}`\n : `${uri}?${crypto.randomUUID()}`\n\n editor.setModel(\n monaco.editor.createModel(JSON.stringify(value, null, 2), 'json', monaco.Uri.parse(newUri)),\n )\n },\n [jsonSchema, value],\n )\n\n const handleChange = useCallback(\n (val) => {\n if (readOnly) {\n return\n }\n inputChangeFromRef.current = 'user'\n\n try {\n setValue(val ? JSON.parse(val) : null)\n setJsonError(undefined)\n } catch (e) {\n setValue(val ? val : null)\n setJsonError(e)\n }\n },\n [readOnly, setValue],\n )\n\n useEffect(() => {\n if (inputChangeFromRef.current === 'system') {\n setInitialStringValue(\n (value || initialValue) !== undefined\n ? JSON.stringify(value ?? initialValue, null, 2)\n : undefined,\n )\n setEditorKey(new Date().toString())\n }\n\n inputChangeFromRef.current = 'system'\n }, [initialValue, value])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError message={jsonError} path={path} showError={showError} />}\n />\n {BeforeInput}\n <CodeEditor\n defaultLanguage=\"json\"\n key={editorKey}\n maxHeight={maxHeight}\n onChange={handleChange}\n onMount={handleMount}\n options={editorOptions}\n readOnly={readOnly}\n value={initialStringValue}\n wrapperProps={{\n id: `field-${path?.replace(/\\./g, '__')}`,\n }}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JSONField = withCondition(JSONFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -389,9 +389,9 @@ export function UploadInput(props) {
389
389
  t20 = async t21 => {
390
390
  const {
391
391
  collectionSlug,
392
- docID
392
+ doc: doc_4
393
393
  } = t21;
394
- const loadedDocs_0 = await populateDocs([docID], collectionSlug);
394
+ const loadedDocs_0 = await populateDocs([doc_4.id], collectionSlug);
395
395
  const selectedDoc = loadedDocs_0 ? loadedDocs_0.docs?.[0] : null;
396
396
  setPopulatedDocs(currentDocs_2 => {
397
397
  if (selectedDoc) {
@@ -409,9 +409,9 @@ export function UploadInput(props) {
409
409
  return currentDocs_2;
410
410
  });
411
411
  if (hasMany) {
412
- onChange([...(Array.isArray(value) ? value : []), docID]);
412
+ onChange([...(Array.isArray(value) ? value : []), doc_4.id]);
413
413
  } else {
414
- onChange(docID);
414
+ onChange(doc_4.id);
415
415
  }
416
416
  closeListDrawer();
417
417
  };
@@ -428,17 +428,17 @@ export function UploadInput(props) {
428
428
  const onListSelect = t20;
429
429
  let t21;
430
430
  if ($[71] !== hasMany || $[72] !== onChange || $[73] !== populateDocs) {
431
- t21 = async (docID_0, collectionSlug_0) => {
431
+ t21 = async (docID, collectionSlug_0) => {
432
432
  const {
433
433
  docs: docs_0
434
- } = await populateDocs([docID_0], collectionSlug_0);
434
+ } = await populateDocs([docID], collectionSlug_0);
435
435
  if (docs_0[0]) {
436
436
  let updatedDocsToPropogate;
437
437
  updatedDocsToPropogate = [];
438
438
  setPopulatedDocs(currentDocs_3 => {
439
- const existingDocIndex = currentDocs_3?.findIndex(doc_4 => {
440
- const hasExisting = doc_4.value?.id === docs_0[0].id || doc_4.value?.isPlaceholder;
441
- return hasExisting && doc_4.relationTo === collectionSlug_0;
439
+ const existingDocIndex = currentDocs_3?.findIndex(doc_5 => {
440
+ const hasExisting = doc_5.value?.id === docs_0[0].id || doc_5.value?.isPlaceholder;
441
+ return hasExisting && doc_5.relationTo === collectionSlug_0;
442
442
  });
443
443
  if (existingDocIndex > -1) {
444
444
  const updatedDocs = [...currentDocs_3];
@@ -499,9 +499,9 @@ export function UploadInput(props) {
499
499
  loadedValueDocsRef.current = true;
500
500
  const loadedDocs_1 = await populateDocs(Array.isArray(value) ? value : [value], activeRelationTo);
501
501
  if (loadedDocs_1) {
502
- setPopulatedDocs(loadedDocs_1.docs.map(doc_6 => ({
502
+ setPopulatedDocs(loadedDocs_1.docs.map(doc_7 => ({
503
503
  relationTo: activeRelationTo,
504
- value: doc_6
504
+ value: doc_7
505
505
  })));
506
506
  }
507
507
  }
@@ -729,8 +729,8 @@ function _temp3(t0) {
729
729
  } = t0;
730
730
  return value_0.id;
731
731
  }
732
- function _temp2(doc_5) {
733
- return doc_5.value?.id;
732
+ function _temp2(doc_6) {
733
+ return doc_6.value?.id;
734
734
  }
735
735
  function _temp(doc_1) {
736
736
  return doc_1.id;
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","includes","undefined","doc_0","index","filename","isPlaceholder","populateDocs","t16","newDocs","mergedValue","_temp","currentDocs","doc_2","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_3","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","updatedDocsToPropogate","currentDocs_3","existingDocIndex","findIndex","doc_4","hasExisting","updatedDocs","_temp2","reloadDoc","t22","newValue_0","newValueIDs","_temp3","onReorder","t23","newValue_1","newValueIDs_0","_temp4","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_6","t26","t27","showDropzone","t28","t29","t30","filter","Boolean","t31","join","t32","replace","t33","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp5","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1","value_1","value_0","doc_5","doc_1"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly hideRemoveFile?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n let sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n if (sortedDocs.includes(undefined) && hasMany) {\n sortedDocs = sortedDocs.map((doc, index) =>\n doc\n ? doc\n : {\n id: ids[index],\n filename: `${t('general:untitled')} - ID: ${ids[index]}`,\n isPlaceholder: true,\n },\n )\n }\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language, t, hasMany],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n setCurrentActivePath(path)\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n maxRows,\n setMaxFiles,\n path,\n setCurrentActivePath,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n let updatedDocsToPropogate = []\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n const hasExisting = doc.value?.id === docs[0].id || doc.value?.isPlaceholder\n return hasExisting && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n updatedDocsToPropogate = updatedDocs\n return updatedDocs\n }\n })\n\n if (updatedDocsToPropogate.length && hasMany) {\n onChange(updatedDocsToPropogate.map((doc) => doc.value?.id))\n }\n }\n },\n [populateDocs, onChange, hasMany],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n useEffect(() => {\n setOnSuccess(path, onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAeA,SAASC,QAAQ,QAAQ;AACzB,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ;AAKvD,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,qBAAqB,QAAQ;AACtC,OAAO;AAEP,OAAO,MAAMC,SAAA,GAAY;AAsCzB,OAAO,SAAAC,YAAAC,KAAA;EAAA,MAAAC,CAAA,GAAA1B,EAAA;EACL;IAAA2B,UAAA;IAAAC,WAAA;IAAAC,GAAA;IAAAC,WAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC,KAAA;IAAAC,aAAA,EAAAC,sBAAA;IAAAC,OAAA;IAAAC,UAAA;IAAAC,KAAA;IAAAC,KAAA;IAAAC,SAAA;IAAAC,OAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,IAAA;IAAAC,QAAA;IAAAC,UAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,SAAA;IAAAC,KAAA;IAAAC;EAAA,IAyBI3B,KAAA;EAEJ,OAAA4B,aAAA,EAAAC,gBAAA,IAA0CnD,KAAA,CAAAoD,QAAA,CAAc;EAOxD,OAAAC,gBAAA,IAAgDrD,KAAA,CAAAoD,QAAA,CAC9CE,KAAA,CAAAC,OAAA,CAAcX,UAAA,IAAcA,UAAU,MAAMA,UAAA;EAG9C;IAAAY;EAAA,IAAsB1D,QAAA;EACtB;IAAA2D,UAAA;IAAAC,iBAAA;IAAAC,oBAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC;EAAA,IAOI1D,aAAA;EACJ;IAAA2D;EAAA,IAAwBjD,OAAA;EACxB;IAAAkD;EAAA,IAAiBjD,SAAA;EACjB;IAAAkD,IAAA;IAAAC;EAAA,IAAoBlD,cAAA;EAAA,IAAAmD,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA7C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IAMVmC,EAAA,GAAAnC,sBAAC,GAAyBoB,gBAAA,OAA+B;IAAA9B,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA6C,EAAA;EAAA;IAAAA,EAAA,GAAA7C,CAAA;EAAA;EAAA,IAAA8C,EAAA;EAAA,IAAA9C,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IAEvDoC,EAAA,GAAApC,sBAAC,GAAyBoB,gBAAA,GAAAiB,EAAA,MAAmC;IAAA/C,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAA8C,EAAA;EAAA;IAAAA,EAAA,GAAA9C,CAAA;EAAA;EAAA,IAAAgD,EAAA;EAAA,IAAAhD,CAAA,QAAA8B,gBAAA,IAAA9B,CAAA,QAAAU,sBAAA;IACxDsC,EAAA,GAAAtC,sBAAC,GAAyBoB,gBAAA,GAAAiB,EAAA,EAAAE,MAAA,MAA2C;IAAAjD,CAAA,MAAA8B,gBAAA;IAAA9B,CAAA,MAAAU,sBAAA;IAAAV,CAAA,MAAAgD,EAAA;EAAA;IAAAA,EAAA,GAAAhD,CAAA;EAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAlD,CAAA,QAAAgD,EAAA,IAAAhD,CAAA,SAAA0B,KAAA;IAAtEwB,EAAA,GAACF,EAAqE,CAAAG,MAAA,KACxEpB,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,IAASA,KAAA,MAAW;IAAA1B,CAAA,MAAAgD,EAAA;IAAAhD,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAAA,IAAAoD,EAAA;EAAA,IAAApD,CAAA,SAAA8C,EAAA,IAAA9C,CAAA,SAAAkD,EAAA;IAHhDE,EAAA;MAAA,GACEN,EAA6D;MAAAG,MAAA,EACzDC;IAC0C;IAEpDlD,CAAA,OAAA8C,EAAA;IAAA9C,CAAA,OAAAkD,EAAA;IAAAlD,CAAA,OAAAoD,EAAA;EAAA;IAAAA,EAAA,GAAApD,CAAA;EAAA;EAAA,IAAAqD,EAAA;EAAA,IAAArD,CAAA,SAAA6C,EAAA,IAAA7C,CAAA,SAAAoD,EAAA;IAPkBC,EAAA;MAAA,GACdR,EAAyD;MAAAE,EAAA,EACzDK;IAKJ;IACFpD,CAAA,OAAA6C,EAAA;IAAA7C,CAAA,OAAAoD,EAAA;IAAApD,CAAA,OAAAqD,EAAA;EAAA;IAAAA,EAAA,GAAArD,CAAA;EAAA;EAAA,IAAAsD,EAAA;EAAA,IAAAtD,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAU,sBAAA,IAAAV,CAAA,SAAAqD,EAAA;IAVKC,EAAA;MAAA,GACF5C,sBAAsB;MAAA,CACxBoB,gBAAA,GAAmBuB;IAQpB;IACFrD,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAU,sBAAA;IAAAV,CAAA,OAAAqD,EAAA;IAAArD,CAAA,OAAAsD,EAAA;EAAA;IAAAA,EAAA,GAAAtD,CAAA;EAAA;EAXA4C,EAAA,GAAOU,EAWP;EAZF,MAAA7C,aAAA,GAA2CmC,EAaS;EAAA,IAAAW,EAAA;EAAA,IAAAvD,CAAA,SAAAqB,UAAA;IAI/BkC,EAAA,UAAOlC,UAAA,KAAe,YAAYA,UAAA,IAAcA,UAAA;IAAArB,CAAA,OAAAqB,UAAA;IAAArB,CAAA,OAAAuD,EAAA;EAAA;IAAAA,EAAA,GAAAvD,CAAA;EAAA;EAAA,IAAAwD,EAAA;EAAA,IAAAxD,CAAA,SAAAS,aAAA,IAAAT,CAAA,SAAAuD,EAAA;IADrDC,EAAA;MAAAC,eAAA,EACKF,EAAgD;MAAA9C;IAAA;IAEnET,CAAA,OAAAS,aAAA;IAAAT,CAAA,OAAAuD,EAAA;IAAAvD,CAAA,OAAAwD,EAAA;EAAA;IAAAA,EAAA,GAAAxD,CAAA;EAAA;EAJF,OAAA0D,UAAA,GAAAC,GAAA,IACE1E,aAAA,CAAcuE,EAGd;EAJmB;IAAAI,WAAA,EAAAC,eAAA;IAAAC,UAAA,EAAAC;EAAA,IAAAJ,GAA4D;EAAA,IAAAK,GAAA;EAAA,IAAAhE,CAAA,SAAA8B,gBAAA;IAU3DkC,GAAA;MAAAC,cAAA,EACJnC;IAAA;IAClB9B,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAgE,GAAA;EAAA;IAAAA,GAAA,GAAAhE,CAAA;EAAA;EANA,OAAAkE,eAAA,GAAAC,GAAA,IAIIpF,iBAAA,CAAkBiF,GAEtB;EAHE;IAAAJ,WAAA,EAAAQ,oBAAA;IAAAN,UAAA,EAAAO;EAAA,IAAAF,GAAsE;EAQxE,MAAAG,kBAAA,GAA2B7F,KAAA,CAAA8F,MAAA,MAAsB;EAAA,IAAAC,GAAA;EAAAC,GAAA;IAAA,KAG1CvE,WAAA;MACHsE,GAAA;MAAO,MAAAC,GAAA;IAAA;IAAA,IAGL,OAAO3C,gBAAA,KAAqB;MAAA,IAC1BU,WAAA,EAAAkC,WAAA,IAA4BlC,WAAA,CAAAkC,WAAA,GAA0B5C,gBAAA,GAAA6C,MAAmB;QAC3EH,GAAA;QAAO,MAAAC,GAAA;MAAA;IAAA;IAIXD,GAAA;EAAO;EAXT,MAAAI,SAAA,GAAkBJ,GAY6B;EAAA,IAAAK,GAAA;EAAA,IAAA7E,CAAA,SAAAkB,iBAAA;IAG7C2D,GAAA,GAAAC,QAAA;MAAA,IACM,OAAO5D,iBAAA,KAAsB;QAC/BA,iBAAA,CAAkB4D,QAAA;MAAA;IAAA;IAEtB9E,CAAA,OAAAkB,iBAAA;IAAAlB,CAAA,OAAA6E,GAAA;EAAA;IAAAA,GAAA,GAAA7E,CAAA;EAAA;EALF,MAAAiB,QAAA,GAAiB4D,GAMI;EAAA,IAAAE,GAAA;EAAA,IAAA/E,CAAA,SAAAG,GAAA,IAAAH,CAAA,SAAAyC,IAAA,IAAAzC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAA0C,IAAA,CAAAsC,QAAA,IAAAhF,CAAA,SAAAuB,SAAA,IAAAvB,CAAA,SAAA2C,CAAA;IAInBoC,GAAA,SAAAA,CAAAE,GAAA,EAAAC,qBAAA;MACE,MAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA;QAAAC,KAAA,EAMSL,GAAA,CAAAM,MAAA;QAAAC,MAAA,EACC/C,IAAA;QAAAgD,KAAA;UAAAC,GAAA;YAAA3C,EAAA;cAAA4C,EAAA,EAKIV;YAAA;UAAA;QAAA;MAAA;MAOd,MAAAW,QAAA,SAAuBC,KAAA,CAAM,GAAGtE,SAAA,GAAYpB,GAAA,IAAO+E,qBAAA,EAAuB;QAAAY,IAAA,EAClEtH,EAAA,CAAAuH,SAAA,CAAaZ,KAAA;QAAAa,WAAA,EACN;QAAAC,OAAA;UAAA,mBAEQvD,IAAA,CAAAsC,QAAA;UAAA,gBACH;UAAA,0BACU;QAAA;QAAAkB,MAAA,EAEpB;MAAA,CACV;MAAA,IACIN,QAAA,CAAAO,EAAA;QACF,MAAAC,IAAA,SAAmBR,QAAA,CAAAQ,IAAA,CAAa;QAChC,IAAAC,UAAA,GAAiBpB,GAAA,CAAAqB,GAAA,CAAAvD,EAAA,IACfqD,IAAA,CAAAG,IAAA,CAAAC,IAAA,CAAAC,GAAA,IACSC,MAAA,CAAOD,GAAA,CAAA1D,EAAM,MAAM2D,MAAA,CAAO3D,EAAA,CACnC;QAAA,IAGEsD,UAAA,CAAAM,QAAA,CAAAC,SAAoB,KAAcjG,OAAA;UACpC0F,UAAA,CAAAA,CAAA,CAAaA,UAAA,CAAAC,GAAA,EAAAO,KAAA,EAAAC,KAAA,KACXL,KAAA,GACIA,KAAA;YAAA1D,EAAA,EAEMkC,GAAG,CAAC6B,KAAA;YAAAC,QAAA,EACE,GAAGpE,CAAA,CAAE,6BAA6BsC,GAAG,CAAC6B,KAAA,GAAQ;YAAAE,aAAA;UAAA,CAE1D;QAPN;QAAA;UAAA,GAWUZ,IAAI;UAAAG,IAAA,EAAQF;QAAA;MAAA;MAAA;IAAA;IAI5BrG,CAAA,OAAAG,GAAA;IAAAH,CAAA,OAAAyC,IAAA;IAAAzC,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAA0C,IAAA,CAAAsC,QAAA;IAAAhF,CAAA,OAAAuB,SAAA;IAAAvB,CAAA,OAAA2C,CAAA;IAAA3C,CAAA,OAAA+E,GAAA;EAAA;IAAAA,GAAA,GAAA/E,CAAA;EAAA;EAvDF,MAAAiH,YAAA,GAAqBlC,GAwD8B;EAAA,IAAAmC,GAAA;EAAA,IAAAlH,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAA0B,KAAA;IAIjDwF,GAAA,GAAAC,OAAA;MAAA,IACMxG,OAAA;QACF,MAAAyG,WAAA,QACMrF,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,MAClCyF,OAAA,CAAAb,GAAA,CAAAe,KAA2B;QAEhCpG,QAAA,CAASmG,WAAA;QACTxF,gBAAA,CAAA0F,WAAA,SACMA,WAAA,MAAiB,MAClBH,OAAA,CAAAb,GAAA,CAAAiB,KAAA;UAAAlG,UAAA,EACWS,gBAAA;UAAAJ,KAAA,EACL+E;QAAA,EACT,EACD;MAAA;QAED,MAAAe,QAAA,GAAiBL,OAAO;QACxBlG,QAAA,CAASuG,QAAA,CAAAzE,EAAW;QACpBnB,gBAAA;UAAAP,UAAA,EAEgBS,gBAAA;UAAAJ,KAAA,EACL8F;QAAA,EAEV;MAAA;IAAA;IAELxH,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAkH,GAAA;EAAA;IAAAA,GAAA,GAAAlH,CAAA;EAAA;EAzBF,MAAAyH,eAAA,GAAwBP,GA0BsB;EAAA,IAAAQ,GAAA;EAAA,IAAA1H,CAAA,SAAAkC,UAAA,IAAAlC,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAiC,SAAA,IAAAjC,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAqB,UAAA,IAAArB,CAAA,SAAAmC,iBAAA,IAAAnC,CAAA,SAAAoC,oBAAA,IAAApC,CAAA,SAAAqC,eAAA,IAAArC,CAAA,SAAAsC,WAAA;IAI5CoF,GAAA,GAAAC,QAAA;MACE,IAAAC,aAAA,GAAoBD,QAAA;MAAA,IAChB,CAAChH,OAAA,IAAWgH,QAAA,IAAYA,QAAA,CAAApC,MAAA,IAAkB;QAC5C,MAAAsC,YAAA,OAAAC,YAAA;QACAD,YAAA,CAAAE,KAAA,CAAAC,GAAA,CAAuBL,QAAQ,GAAG;QAClCC,aAAA,CAAAA,CAAA,CAAgBC,YAAA,CAAAI,KAAA;MAAhB;MAAA,IAEEL,aAAA;QACFvF,eAAA,CAAgBuF,aAAA;MAAA;MAElBzF,iBAAA,CAAkBd,UAAA;MAAA,IACd,OAAOL,OAAA,KAAY;QACrBsB,WAAA,CAAYtB,OAAA;MAAA;MAEdoB,oBAAA,CAAqBjB,IAAA;MACrBc,SAAA,CAAUC,UAAA;IAAA;IACZlC,CAAA,OAAAkC,UAAA;IAAAlC,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAAiC,SAAA;IAAAjC,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAqB,UAAA;IAAArB,CAAA,OAAAmC,iBAAA;IAAAnC,CAAA,OAAAoC,oBAAA;IAAApC,CAAA,OAAAqC,eAAA;IAAArC,CAAA,OAAAsC,WAAA;IAAAtC,CAAA,OAAA0H,GAAA;EAAA;IAAAA,GAAA,GAAA1H,CAAA;EAAA;EAjBF,MAAAkI,oBAAA,GAA6BR,GA6B1B;EAAA,IAAAS,GAAA;EAAA,IAAAnI,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA6D,eAAA,IAAA7D,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAiH,YAAA,IAAAjH,CAAA,SAAA0B,KAAA;IAKDyG,GAAA,SAAA5B,IAAA;MACE,MAAA6B,cAAA;MAAyB,KAEpB,OAAAC,IAAA,EAAAC,UAAA,CAAsB,IAAI/B,IAAA;QAAA,IACzB+B,UAAA;UACFF,cAAA,CAAAG,IAAA,CAAoBxF,IAAA;QAAA;MAAA;MAIxB,MAAAyF,UAAA,SAAyBvB,YAAA,CAAamB,cAAA,EAAgBtG,gBAAA;MAAA,IAClD0G,UAAA;QACF5G,gBAAA,CAAA6G,aAAA,SACMnB,aAAA,MAAiB,MAClBkB,UAAA,CAAAjC,IAAA,CAAAD,GAAA,CAAAoC,KAAA;UAAArH,UAAA,EACWS,gBAAA;UAAAJ,KAAA,EACL+E;QAAA,EACT,EACD;MAAA;MAEHxF,QAAA,MAAcc,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,MAAM0G,cAAA,CAAe;MACpEvE,eAAA;IAAA;IACF7D,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA6D,eAAA;IAAA7D,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAmI,GAAA;EAAA;IAAAA,GAAA,GAAAnI,CAAA;EAAA;EAtBF,MAAA2I,gBAAA,GAAyBR,GAuB2C;EAAA,IAAAS,GAAA;EAAA,IAAA5I,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAoE,oBAAA,IAAApE,CAAA,SAAAiB,QAAA;IAIlE2H,GAAA,GAAAC,IAAA;MAAA,IACMA,IAAA,CAAApC,GAAA;QACF7E,gBAAA,CAAAkH,aAAA,SACMxB,aAAA,MAAiB;UAAAjG,UAAA,EAEPS,gBAAA;UAAAJ,KAAA,EACLmH,IAAA,CAAApC;QAAA,EAEV;QAEDxF,QAAA,CAAS4H,IAAA,CAAApC,GAAA,CAAA1D,EAAW;MAAA;MAEtBqB,oBAAA;IAAA;IACFpE,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAoE,oBAAA;IAAApE,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAA4I,GAAA;EAAA;IAAAA,GAAA,GAAA5I,CAAA;EAAA;EAdF,MAAA+I,WAAA,GAAoBH,GAegC;EAAA,IAAAI,GAAA;EAAA,IAAAhJ,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAA6D,eAAA,IAAA7D,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAiH,YAAA,IAAAjH,CAAA,SAAA0B,KAAA;IAIlDsH,GAAA,SAAAC,GAAA;MAAO;QAAAhF,cAAA;QAAAiF;MAAA,IAAAD,GAAyB;MAC9B,MAAAE,YAAA,SAAyBlC,YAAA,EAAciC,KAAA,GAAQjF,cAAA;MAC/C,MAAAmF,WAAA,GAAoBZ,YAAA,GAAaA,YAAA,CAAAjC,IAAA,YAAuB;MACxD3E,gBAAA,CAAAyH,aAAA;QAAA,IACMD,WAAA;UAAA,IACEzI,OAAA;YAAA,YAEI2G,aAAA,MAAiB;cAAAjG,UAAA,EAEPS,gBAAA;cAAAJ,KAAA,EACL0H;YAAA;UAAA;UAAA;YAAA/H,UAAA,EAMGS,gBAAA;YAAAJ,KAAA,EACL0H;UAAA;QAAA;QAAA,OAIN9B,aAAA;MAAA,CACT;MAAA,IACI3G,OAAA;QACFM,QAAA,MAAcc,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,KAAU,GAAGwH,KAAA,CAAM;MAAA;QAExDjI,QAAA,CAASiI,KAAA;MAAA;MAEXrF,eAAA;IAAA;IACF7D,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAA6D,eAAA;IAAA7D,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAgJ,GAAA;EAAA;IAAAA,GAAA,GAAAhJ,CAAA;EAAA;EA9BF,MAAAsJ,YAAA,GAAqBN,GA+BwD;EAAA,IAAAC,GAAA;EAAA,IAAAjJ,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA,IAAAjB,CAAA,SAAAiH,YAAA;IAI3EgC,GAAA,SAAAA,CAAAM,OAAA,EAAAC,gBAAA;MACE;QAAAjD,IAAA,EAAAkD;MAAA,UAAuBxC,YAAA,EAAciC,OAAA,GAAQjF,gBAAA;MAAA,IAEzCsC,MAAI;QACN,IAAAmD,sBAAA;QAAAA,sBAAA;QACA9H,gBAAA,CAAA+H,aAAA;UACE,MAAAC,gBAAA,GAAyBtC,aAAA,EAAAuC,SAAA,CAAAC,KAAA;YACvB,MAAAC,WAAA,GAAoBtD,KAAA,CAAA/E,KAAA,EAAAqB,EAAA,KAAkBwD,MAAI,IAAAxD,EAAM,IAAI0D,KAAA,CAAA/E,KAAA,EAAAsF,aAAW;YAAA,OACxD+C,WAAA,IAAetD,KAAA,CAAApF,UAAA,KAAmB4C,gBAAA;UAAA;UAC3C,IACI2F,gBAAA,KAAoB;YACtB,MAAAI,WAAA,OAAwB1C,aAAA;YACxB0C,WAAW,CAACJ,gBAAA;cAAAvI,UAAA,EACE4C,gBAAA;cAAAvC,KAAA,EACL6E,MAAI;YAAA;YAEbmD,sBAAA,CAAAA,CAAA,CAAyBM,WAAA;YAAzB,OACOA,WAAA;UAAA;QAAA,CAEX;QAAA,IAEIN,sBAAA,CAAAnE,MAAA,IAAiC5E,OAAA;UACnCM,QAAA,CAASyI,sBAAA,CAAApD,GAAA,CAAA2D,MAA+C;QAAA;MAAA;IAAA;IAG9DjK,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAAiJ,GAAA;EAAA;IAAAA,GAAA,GAAAjJ,CAAA;EAAA;EA1BF,MAAAkK,SAAA,GAAkBjB,GA2BiB;EAAA,IAAAkB,GAAA;EAAA,IAAAnK,CAAA,SAAAiB,QAAA;IAKjCkJ,GAAA,GAAAC,UAAA;MACE,MAAAC,WAAA,GAAoBvF,UAAA,CAAAwB,GAAA,CAAAgE,MAAoC;MACxDrJ,QAAA,CAASoJ,WAAA;MACTzI,gBAAA,CAAiBkD,UAAA;IAAA;IACnB9E,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAmK,GAAA;EAAA;IAAAA,GAAA,GAAAnK,CAAA;EAAA;EALF,MAAAuK,SAAA,GAAkBJ,GAMN;EAAA,IAAAK,GAAA;EAAA,IAAAxK,CAAA,SAAAW,OAAA,IAAAX,CAAA,SAAAiB,QAAA;IAIVuJ,GAAA,GAAAC,UAAA;MACE,MAAAC,aAAA,GAAoB5F,UAAA,GAAWA,UAAA,CAAAwB,GAAA,CAAAqE,MAAoC,QAAI;MACvE1J,QAAA,CAASN,OAAA,GAAU0J,aAAA,GAAcA,aAAA,GAAcA,aAAW,UAAM;MAChEzI,gBAAA,CAAiBkD,UAAA,GAAWA,UAAA,KAAa;IAAA;IAC3C9E,CAAA,OAAAW,OAAA;IAAAX,CAAA,OAAAiB,QAAA;IAAAjB,CAAA,OAAAwK,GAAA;EAAA;IAAAA,GAAA,GAAAxK,CAAA;EAAA;EALF,MAAA4K,QAAA,GAAiBJ,GAMI;EAAA,IAAAK,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAA9K,CAAA,SAAA8B,gBAAA,IAAA9B,CAAA,SAAAiH,YAAA,IAAAjH,CAAA,SAAA0B,KAAA;IAGXmJ,GAAA,GAAAA,CAAA;MACR,MAAAE,eAAA,kBAAAA,gBAAA;QAAA,IACMrJ,KAAA;UACF4C,kBAAA,CAAA0G,OAAA;UACA,MAAAC,YAAA,SAAyBhE,YAAA,CACvBlF,KAAA,CAAAC,OAAA,CAAcN,KAAA,IAASA,KAAA,IAASA,KAAA,CAAM,EACtCI,gBAAA;UAAA,IAEE0G,YAAA;YACF5G,gBAAA,CACE4G,YAAA,CAAAjC,IAAA,CAAAD,GAAA,CAAA4E,KAAA;cAAA7J,UAAA,EAA4CS,gBAAA;cAAAJ,KAAA,EAAyB+E;YAAA,EAAI;UAAA;QAAA;MAAA;MAIjF,KAEKnC,kBAAA,CAAA0G,OAAA;QACED,eAAA;MAAA;IAAA;IAEND,GAAA,IAAC7D,YAAA,EAAcnF,gBAAA,EAAkBJ,KAAA;IAAM1B,CAAA,OAAA8B,gBAAA;IAAA9B,CAAA,OAAAiH,YAAA;IAAAjH,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAA6K,GAAA;IAAA7K,CAAA,OAAA8K,GAAA;EAAA;IAAAD,GAAA,GAAA7K,CAAA;IAAA8K,GAAA,GAAA9K,CAAA;EAAA;EAnB1CrB,SAAA,CAAUkM,GAmBV,EAAGC,GAAuC;EAAA,IAAAK,GAAA;EAAA,IAAAnL,CAAA,SAAAyH,eAAA,IAAAzH,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAuC,YAAA;IAEhC4I,GAAA,GAAAA,CAAA;MACR5I,YAAA,CAAapB,IAAA,EAAMsG,eAAA;IAAA;IACrBzH,CAAA,OAAAyH,eAAA;IAAAzH,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAuC,YAAA;IAAAvC,CAAA,OAAAmL,GAAA;EAAA;IAAAA,GAAA,GAAAnL,CAAA;EAAA;EAAA,IAAAoL,GAAA;EAAA,IAAApL,CAAA,SAAAyH,eAAA,IAAAzH,CAAA,SAAAmB,IAAA,IAAAnB,CAAA,SAAAuC,YAAA,IAAAvC,CAAA,SAAA0B,KAAA;IAAG0J,GAAA,IAAC1J,KAAA,EAAOP,IAAA,EAAMsG,eAAA,EAAiBlF,YAAA;IAAavC,CAAA,OAAAyH,eAAA;IAAAzH,CAAA,OAAAmB,IAAA;IAAAnB,CAAA,OAAAuC,YAAA;IAAAvC,CAAA,OAAA0B,KAAA;IAAA1B,CAAA,OAAAoL,GAAA;EAAA;IAAAA,GAAA,GAAApL,CAAA;EAAA;EAF/CrB,SAAA,CAAUwM,GAEV,EAAGC,GAA4C;EAE/C,MAAAC,YAAA,GACE,CAAC3J,KAAA,IACAf,OAAA,IAAWoB,KAAA,CAAAC,OAAA,CAAcN,KAAA,MAAW,OAAOV,OAAA,KAAY,YAAYU,KAAA,CAAA6D,MAAA,GAAevE,OAAM,KACxF,CAACL,OAAA,IAAWgB,aAAA,KAAkB,IAAI,OAAOA,aAAa,IAAAD,KAAA,KAAc;EAQjE,MAAA4J,GAAA,GAAA9J,SAAA,IAAa;EACb,MAAA+J,GAAA,GAAAnK,QAAA,IAAY;EAAA,IAAAoK,GAAA;EAAA,IAAAxL,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAsL,GAAA,IAAAtL,CAAA,SAAAuL,GAAA;IALHC,GAAA,IAAA9L,cAAA,EAAAG,SAAA,EAGTQ,SAAA,EACAiL,GAAa,EACbC,GAAY,EAAAE,MAAA,CAAAC,OAEJ;IAAA1L,CAAA,OAAAK,SAAA;IAAAL,CAAA,OAAAsL,GAAA;IAAAtL,CAAA,OAAAuL,GAAA;IAAAvL,CAAA,OAAAwL,GAAA;EAAA;IAAAA,GAAA,GAAAxL,CAAA;EAAA;EAPC,MAAA2L,GAAA,GAAAH,GAOD,CAAAI,IAAA,CACF;EACJ,MAAAC,GAAA,YAAS1K,IAAA,EAAA2K,OAAA,QAAqB,OAAO;EAAA,IAAAC,GAAA;EAAA,IAAA/L,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAAI,WAAA,IAAAJ,CAAA,UAAAkE,eAAA,IAAAlE,CAAA,UAAAM,WAAA,IAAAN,CAAA,UAAAQ,KAAA,IAAAR,CAAA,UAAAa,KAAA,IAAAb,CAAA,UAAA0D,UAAA,IAAA1D,CAAA,UAAA4E,SAAA,IAAA5E,CAAA,UAAAO,WAAA,IAAAP,CAAA,UAAAW,OAAA,IAAAX,CAAA,UAAAY,UAAA,IAAAZ,CAAA,UAAAc,KAAA,IAAAd,CAAA,UAAAe,SAAA,IAAAf,CAAA,UAAAgB,OAAA,IAAAhB,CAAA,UAAA+I,WAAA,IAAA/I,CAAA,UAAA2I,gBAAA,IAAA3I,CAAA,UAAAsJ,YAAA,IAAAtJ,CAAA,UAAAkI,oBAAA,IAAAlI,CAAA,UAAA4K,QAAA,IAAA5K,CAAA,UAAAuK,SAAA,IAAAvK,CAAA,UAAAqE,mBAAA,IAAArE,CAAA,UAAA+D,cAAA,IAAA/D,CAAA,UAAAmB,IAAA,IAAAnB,CAAA,UAAA2B,aAAA,IAAA3B,CAAA,UAAAoB,QAAA,IAAApB,CAAA,UAAAkK,SAAA,IAAAlK,CAAA,UAAAsB,QAAA,IAAAtB,CAAA,UAAAuB,SAAA,IAAAvB,CAAA,UAAAqL,YAAA,IAAArL,CAAA,UAAAwB,SAAA,IAAAxB,CAAA,UAAAyB,KAAA,IAAAzB,CAAA,UAAA2C,CAAA,IAAA3C,CAAA,UAAA2L,GAAA,IAAA3L,CAAA,UAAA6L,GAAA,IAAA7L,CAAA,UAAA0B,KAAA;IAV3CqK,GAAA,GAAAC,KAAA,CAAC;MAAA3L,SAAA,EACYsL,GAQH;MAAA5I,EAAA,EACJ8I,GAAqC;MAAApK,KAAA;MAAAwK,QAAA,GAGzCC,IAAA,CAAAhN,qBAAA;QAAAiN,eAAA,EACmBtL,KAAA;QAAAuL,QAAA,EAEfF,IAAA,CAAA5M,UAAA;UAAAwB,KAAA;UAAAC,SAAA;UAAAI,IAAA;UAAAG;QAAA,C;UAGJ4K,IAAA,CAAC;QAAA7L,SAAA,EAAe,GAAAR,SAAA,QAAoB;QAAAoM,QAAA,EAClCC,IAAA,CAAAhN,qBAAA;UAAAiN,eAAA,EACmB3L,KAAA;UAAA4L,QAAA,EACPF,IAAA,CAAA7M,UAAA;YAAA8B,IAAA;YAAAK;UAAA,C;;UAGbpB,WAAA,EACD4L,KAAA,CAAC;QAAA3L,SAAA,EAAe,GAAAR,SAAA,qBAAiC;QAAAoM,QAAA,GAC9CtL,OAAA,IAAWoB,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,CAAA6D,MAAA,IAAe,GACjD2G,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACGtK,aAAA,IAAiBA,aAAA,EAAA4D,MAAA,IAAwB,GACxC2G,IAAA,CAAAvM,sBAAA;YAAA2M,QAAA,EACY3K,aAAA;YAAAf,UAAA,EACEA,UAAA,KAAeQ,QAAA;YAAAwJ,QAAA;YAAAL,SAAA;YAAAgC,QAAA,EAGjBnL,QAAA;YAAA8I,SAAA;YAAA3I;UAAA,C,IAKZ2K,IAAA,CAAC;YAAA7L,SAAA,EAAe,GAAAR,SAAA,eAA2B;YAAAoM,QAAA,EACxCvK,KAAA,CAAA4E,GAAA,CAAAkG,MACmC;UAAA,C;iBAKxC,EACH,CAAC7L,OAAA,IAAWe,KAAA,GACXwK,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACGtK,aAAA,IAAiBA,aAAA,EAAA4D,MAAA,IAAwB,IAAK5D,aAAa,IAAAD,KAAS,GACnEwK,IAAA,CAAAtM,qBAAA;YAAA6M,OAAA,EACW9K,aAAa;YAAAiJ,QAAA;YAAA2B,QAAA,EAEZnL,QAAA;YAAA8I,SAAA;YAAA3I;UAAA,C,IAIVI,aAAA,IAAiBD,KAAA,KAAUC,aAAA,OAAAD,KAAoB,GACjDsK,KAAA,CAAAK,SAAA;YAAAJ,QAAA,GACGtJ,CAAA,CAAE,qBAAoB,WAAQjB,KAAA;UAAA,C,IAGjCwK,IAAA,CAAA/M,aAAA;YAAAuN,MAAA,EAAsB;UAAA,C;iBAGxB,EACHrB,YAAA,GACCa,IAAA,CAAAlN,QAAA;UAAA2N,QAAA,EACYvL,QAAA,KAAawD,SAAA;UAAAgI,aAAA,EACRjM,OAAA;UAAAM,QAAA,EACLiH,oBAAA;UAAA+D,QAAA,EAEVD,KAAA,CAAC;YAAA3L,SAAA,EAAe,GAAAR,SAAA,mBAA+B;YAAAoM,QAAA,GAC7CD,KAAA,CAAC;cAAA3L,SAAA,EAAe,GAAAR,SAAA,4BAAwC;cAAAoM,QAAA,GACrDrH,SAAA,IACCoH,KAAA,CAAAK,SAAA;gBAAAJ,QAAA,GACEC,IAAA,CAAApN,MAAA;kBAAA+N,WAAA,EACc;kBAAAxM,SAAA,EACD,GAAAR,SAAA,oBAAgC;kBAAA8M,QAAA,EACjCvL,QAAA,KAAawD,SAAA;kBAAAkI,OAAA,EAAAA,CAAA;oBAAA,KAEhB1L,QAAA;sBAAA,IACCT,OAAA;wBACFuH,oBAAA;sBAAA;wBAEA7D,mBAAA;sBAAA;oBAAA;kBAAA;kBAAA0I,IAAA,EAID;kBAAAd,QAAA,EAEJtJ,CAAA,CAAE;gBAAA,C,GAELuJ,IAAA,CAAC;kBAAA7L,SAAA,EAAgB,GAAAR,SAAA,2BAAuC;kBAAAoM,QAAA,EACrDtJ,CAAA,CAAE;gBAAA,C;kBAITuJ,IAAA,CAAApN,MAAA;gBAAA+N,WAAA,EACc;gBAAAxM,SAAA,EACD,GAAAR,SAAA,eAA2B;gBAAA8M,QAAA,EAC5BvL,QAAA;gBAAA0L,OAAA,EACD/I,cAAA;gBAAAgJ,IAAA,EACJ;gBAAAd,QAAA,EAEJtJ,CAAA,CAAE;cAAA,C,GAELuJ,IAAA,CAAChI,eAAA;gBAAA8I,MAAA,EAAwBjE;cAAA,C,GACzBmD,IAAA,CAACxI,UAAA;gBAAAxD,WAAA,EACc0E,SAAA;gBAAAqI,mBAAA,EACQtM,OAAA;gBAAAuM,YAAA,EACPvE,gBAAA;gBAAAwE,QAAA,EACJ7D;cAAA,C;gBAIb1E,SAAA,KAAcxD,QAAA,IACb4K,KAAA,CAAC;cAAA3L,SAAA,EAAa,GAAAR,SAAA,mBAA+B;cAAAoM,QAAA,GAC1CtJ,CAAA,CAAE,eAAc,KAAEA,CAAA,CAAE;YAAA,C;;aAM7BuJ,IAAA,CAAAG,SAAA;UAAAJ,QAAA,EACG,CAAC7K,QAAA,KACDO,aAAA,KACA,CAACD,KAAA,IACA,OAAOV,OAAA,KAAY,YAClBe,KAAA,CAAAC,OAAA,CAAcN,KAAA,KAAUA,KAAA,CAAA6D,MAAA,GAAevE,OAAO,IAC/CkL,IAAA,CAAA/M,aAAA;YAAAuN,MAAA,EAAsB;UAAA,C;QACpB,C;UAITzM,UAAA,EACDiM,IAAA,CAAAhN,qBAAA;QAAAiN,eAAA,EACmB7L,WAAA;QAAA8L,QAAA,EACPF,IAAA,CAAA9M,gBAAA;UAAAmB,WAAA;UAAAY;QAAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA3Id4K,G;;AApYG,SAAAS,OAAAY,IAAA;EAAA,OA8aWlB,IAAA,CAAA/M,aAAA;IAAAuN,MAAA,EAAsB;EAAA,GAAY3J,IAAA;AAAA;AA9a7C,SAAA4H,OAAA/H,EAAA;EA8V4C;IAAAlB,KAAA,EAAA2L;EAAA,IAAAzK,EAAS;EAAA,OAAKlB,OAAA,CAAAqB,EAAA;AAAA;AA9V1D,SAAAuH,OAAA1H,EAAA;EAqViC;IAAAlB,KAAA,EAAA4L;EAAA,IAAA1K,EAAS;EAAA,OAAKlB,OAAA,CAAAqB,EAAA;AAAA;AArV/C,SAAAkH,OAAAsD,KAAA;EAAA,OA2UgD9G,KAAA,CAAA/E,KAAA,EAAAqB,EAAA;AAAA;AA3UhD,SAAAsE,MAAAmG,KAAA;EAAA,OA6K2B/G,KAAA,CAAA1D,EAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","includes","undefined","doc_0","index","filename","isPlaceholder","populateDocs","t16","newDocs","mergedValue","_temp","currentDocs","doc_2","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_3","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","doc_4","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID","collectionSlug_0","docs_0","updatedDocsToPropogate","currentDocs_3","existingDocIndex","findIndex","doc_5","hasExisting","updatedDocs","_temp2","reloadDoc","t22","newValue_0","newValueIDs","_temp3","onReorder","t23","newValue_1","newValueIDs_0","_temp4","onRemove","t24","t25","loadInitialDocs","current","loadedDocs_1","doc_7","t26","t27","showDropzone","t28","t29","t30","filter","Boolean","t31","join","t32","replace","t33","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp5","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1","value_1","value_0","doc_6","doc_1"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly hideRemoveFile?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const {\n drawerSlug,\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnSuccess,\n } = useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n let sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n if (sortedDocs.includes(undefined) && hasMany) {\n sortedDocs = sortedDocs.map((doc, index) =>\n doc\n ? doc\n : {\n id: ids[index],\n filename: `${t('general:untitled')} - ID: ${ids[index]}`,\n isPlaceholder: true,\n },\n )\n }\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language, t, hasMany],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n setCurrentActivePath(path)\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n maxRows,\n setMaxFiles,\n path,\n setCurrentActivePath,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, doc }) => {\n const loadedDocs = await populateDocs([doc.id], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), doc.id])\n } else {\n onChange(doc.id)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n let updatedDocsToPropogate = []\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n const hasExisting = doc.value?.id === docs[0].id || doc.value?.isPlaceholder\n return hasExisting && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n updatedDocsToPropogate = updatedDocs\n return updatedDocs\n }\n })\n\n if (updatedDocsToPropogate.length && hasMany) {\n onChange(updatedDocsToPropogate.map((doc) => doc.value?.id))\n }\n }\n },\n [populateDocs, onChange, hasMany],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n useEffect(() => {\n setOnSuccess(path, onUploadSuccess)\n }, [value, path, onUploadSuccess, setOnSuccess])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,7 +12,7 @@ export type RenderedFieldSlots = Map<string, RenderedField>;
12
12
  /**
13
13
  * Get the state of the form, can be used to submit & validate the form.
14
14
  *
15
- * @see https://payloadcms.com/docs/admin/hooks#useform
15
+ * @see https://payloadcms.com/docs/admin/react-hooks#useform
16
16
  */
17
17
  declare const useForm: () => Context;
18
18
  /**
@@ -28,13 +28,13 @@ declare const useFormInitializing: () => boolean;
28
28
  /**
29
29
  * Get and set the value of a form field based on a selector
30
30
  *
31
- * @see https://payloadcms.com/docs/admin/hooks#useformfields
31
+ * @see https://payloadcms.com/docs/admin/react-hooks#useformfields
32
32
  */
33
33
  declare const useFormFields: <Value = unknown>(selector: (context: FormFieldsContextType) => Value) => Value;
34
34
  /**
35
35
  * Get the state of all form fields.
36
36
  *
37
- * @see https://payloadcms.com/docs/admin/hooks#useallformfields
37
+ * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields
38
38
  */
39
39
  declare const useAllFormFields: () => FormFieldsContextType;
40
40
  export { DocumentFormContext, FormContext, FormFieldsContext, FormWatchContext, InitializingContext, ModifiedContext, ProcessingContext, SubmittedContext, useAllFormFields, useDocumentForm, useForm, useFormFields, useFormInitializing, useFormModified, useFormProcessing, useFormSubmitted, useWatchForm, };
@@ -13,7 +13,7 @@ const FormFieldsContext = createSelectorContext([{}, () => null]);
13
13
  /**
14
14
  * Get the state of the form, can be used to submit & validate the form.
15
15
  *
16
- * @see https://payloadcms.com/docs/admin/hooks#useform
16
+ * @see https://payloadcms.com/docs/admin/react-hooks#useform
17
17
  */
18
18
  const useForm = () => {
19
19
  return useContext(FormContext);
@@ -43,7 +43,7 @@ const useFormInitializing = () => {
43
43
  /**
44
44
  * Get and set the value of a form field based on a selector
45
45
  *
46
- * @see https://payloadcms.com/docs/admin/hooks#useformfields
46
+ * @see https://payloadcms.com/docs/admin/react-hooks#useformfields
47
47
  */
48
48
  const useFormFields = selector => {
49
49
  return useContextSelector(FormFieldsContext, selector);
@@ -51,7 +51,7 @@ const useFormFields = selector => {
51
51
  /**
52
52
  * Get the state of all form fields.
53
53
  *
54
- * @see https://payloadcms.com/docs/admin/hooks#useallformfields
54
+ * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields
55
55
  */
56
56
  const useAllFormFields = () => {
57
57
  return useFullContext(FormFieldsContext);
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","useContext","createSelectorContext","useContextSelector","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, useContext } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/hooks#useform\n */\nconst useForm = (): Context => useContext(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => useContext(DocumentFormContext)\n\nconst useWatchForm = (): Context => useContext(FormWatchContext)\nconst useFormSubmitted = (): boolean => useContext(SubmittedContext)\nconst useFormProcessing = (): boolean => useContext(ProcessingContext)\nconst useFormModified = (): boolean => useContext(ModifiedContext)\nconst useFormInitializing = (): boolean => useContext(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBF,UAAA,IAAcG,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcL,aAAA,CAAc,CAAC;AACnC,MAAMM,mBAAA,GAAsBN,aAAA,CAAc,CAAC;AAC3C,MAAMO,gBAAA,GAAmBP,aAAA,CAAc,CAAC;AACxC,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc;AACvC,MAAMS,iBAAA,GAAoBT,aAAA,CAAc;AACxC,MAAMU,eAAA,GAAkBV,aAAA,CAAc;AACtC,MAAMW,mBAAA,GAAsBX,aAAA,CAAc;AAC1C,MAAMY,iBAAA,GAAoBV,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMW,OAAA,GAAUA,CAAA;EAAA,OAAeZ,UAAA,CAAAI,WAAW;AAAA;AAC1C;;;;AAIA,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAeb,UAAA,CAAAK,mBAAW;AAAA;AAElD,MAAMS,YAAA,GAAeA,CAAA;EAAA,OAAed,UAAA,CAAAM,gBAAW;AAAA;AAC/C,MAAMS,gBAAA,GAAmBA,CAAA;EAAA,OAAef,UAAA,CAAAO,gBAAW;AAAA;AACnD,MAAMS,iBAAA,GAAoBA,CAAA;EAAA,OAAehB,UAAA,CAAAQ,iBAAW;AAAA;AACpD,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAejB,UAAA,CAAAS,eAAW;AAAA;AAClD,MAAMS,mBAAA,GAAsBA,CAAA;EAAA,OAAelB,UAAA,CAAAU,mBAAW;AAAA;AAEtD;;;;;AAKA,MAAMS,aAAA,GAAgBC,QAAA;EAAA,OAEVlB,kBAAA,CAAAS,iBAAA,EAAsCS,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BlB,cAAA,CAAAQ,iBAAe;AAAA;AAErE,SACEN,mBAAmB,EACnBD,WAAW,EACXO,iBAAiB,EACjBL,gBAAgB,EAChBI,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBc,gBAAgB,EAChBR,eAAe,EACfD,OAAO,EACPO,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","createSelectorContext","useContextSelector","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, useContext } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useform\n */\nconst useForm = (): Context => useContext(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => useContext(DocumentFormContext)\n\nconst useWatchForm = (): Context => useContext(FormWatchContext)\nconst useFormSubmitted = (): boolean => useContext(SubmittedContext)\nconst useFormProcessing = (): boolean => useContext(ProcessingContext)\nconst useFormModified = (): boolean => useContext(ModifiedContext)\nconst useFormInitializing = (): boolean => useContext(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBF,UAAA,IAAcG,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcL,aAAA,CAAc,CAAC;AACnC,MAAMM,mBAAA,GAAsBN,aAAA,CAAc,CAAC;AAC3C,MAAMO,gBAAA,GAAmBP,aAAA,CAAc,CAAC;AACxC,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc;AACvC,MAAMS,iBAAA,GAAoBT,aAAA,CAAc;AACxC,MAAMU,eAAA,GAAkBV,aAAA,CAAc;AACtC,MAAMW,mBAAA,GAAsBX,aAAA,CAAc;AAC1C,MAAMY,iBAAA,GAAoBV,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMW,OAAA,GAAUA,CAAA;EAAA,OAAeZ,UAAA,CAAAI,WAAW;AAAA;AAC1C;;;;AAIA,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAeb,UAAA,CAAAK,mBAAW;AAAA;AAElD,MAAMS,YAAA,GAAeA,CAAA;EAAA,OAAed,UAAA,CAAAM,gBAAW;AAAA;AAC/C,MAAMS,gBAAA,GAAmBA,CAAA;EAAA,OAAef,UAAA,CAAAO,gBAAW;AAAA;AACnD,MAAMS,iBAAA,GAAoBA,CAAA;EAAA,OAAehB,UAAA,CAAAQ,iBAAW;AAAA;AACpD,MAAMS,eAAA,GAAkBA,CAAA;EAAA,OAAejB,UAAA,CAAAS,eAAW;AAAA;AAClD,MAAMS,mBAAA,GAAsBA,CAAA;EAAA,OAAelB,UAAA,CAAAU,mBAAW;AAAA;AAEtD;;;;;AAKA,MAAMS,aAAA,GAAgBC,QAAA;EAAA,OAEVlB,kBAAA,CAAAS,iBAAA,EAAsCS,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BlB,cAAA,CAAAQ,iBAAe;AAAA;AAErE,SACEN,mBAAmB,EACnBD,WAAW,EACXO,iBAAiB,EACjBL,gBAAgB,EAChBI,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBc,gBAAgB,EAChBR,eAAe,EACfD,OAAO,EACPO,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfD,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CA2X7E"}
1
+ {"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAgZ7E"}
@@ -172,32 +172,48 @@ export function fieldReducer(state, action) {
172
172
  moveToIndex,
173
173
  path
174
174
  } = action;
175
+ // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`
175
176
  const {
176
177
  remainingFields,
177
- rows
178
+ rows: topLevelRows
178
179
  } = separateRows(path, state);
179
- // copy the row to move
180
- const copyOfMovingRow = rows[moveFromIndex];
181
- // delete the row by index
182
- rows.splice(moveFromIndex, 1);
183
- // insert row copyOfMovingRow back in
184
- rows.splice(moveToIndex, 0, copyOfMovingRow);
180
+ const copyOfMovingRow = topLevelRows[moveFromIndex];
181
+ topLevelRows.splice(moveFromIndex, 1);
182
+ topLevelRows.splice(moveToIndex, 0, copyOfMovingRow);
185
183
  // modify array/block internal row state (i.e. collapsed, blockType)
186
- const rowStateCopy = [...(state[path]?.rows || [])];
187
- const movingRowState = {
188
- ...rowStateCopy[moveFromIndex]
184
+ const rowsWithinField = [...(state[path]?.rows || [])];
185
+ const copyOfMovingRow2 = {
186
+ ...rowsWithinField[moveFromIndex]
189
187
  };
190
- rowStateCopy.splice(moveFromIndex, 1);
191
- rowStateCopy.splice(moveToIndex, 0, movingRowState);
188
+ rowsWithinField.splice(moveFromIndex, 1);
189
+ rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2);
192
190
  const newState = {
193
191
  ...remainingFields,
194
- ...flattenRows(path, rows),
192
+ ...flattenRows(path, topLevelRows),
195
193
  [path]: {
196
194
  ...state[path],
197
195
  requiresRender: true,
198
- rows: rowStateCopy
196
+ rows: rowsWithinField
199
197
  }
200
198
  };
199
+ // Do the same for custom components, i.e. `array.customComponents.RowLabels[0]` -> `array.customComponents.RowLabels[1]`
200
+ // Do this _after_ initializing `newState` to avoid adding the `customComponents` key to the state if it doesn't exist
201
+ if (newState[path]?.customComponents?.RowLabels) {
202
+ const customComponents = {
203
+ ...newState[path].customComponents,
204
+ RowLabels: [...newState[path].customComponents.RowLabels]
205
+ };
206
+ // Ensure the array grows if necessary
207
+ if (moveToIndex >= customComponents.RowLabels.length) {
208
+ customComponents.RowLabels.length = moveToIndex + 1;
209
+ }
210
+ const copyOfMovingLabel = customComponents.RowLabels[moveFromIndex];
211
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
212
+ customComponents.RowLabels.splice(moveFromIndex, 1);
213
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
214
+ customComponents.RowLabels.splice(moveToIndex, 0, copyOfMovingLabel);
215
+ newState[path].customComponents = customComponents;
216
+ }
201
217
  return newState;
202
218
  }
203
219
  case 'REMOVE':