@payloadcms/ui 3.56.0-internal.72f4fd2 → 3.56.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 (180) hide show
  1. package/dist/elements/BulkUpload/EditForm/index.js +4 -18
  2. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  3. package/dist/elements/ClipboardAction/index.js +173 -74
  4. package/dist/elements/ClipboardAction/index.js.map +1 -1
  5. package/dist/elements/CodeEditor/CodeEditor.js +155 -67
  6. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  7. package/dist/elements/Collapsible/index.js +15 -7
  8. package/dist/elements/Collapsible/index.js.map +1 -1
  9. package/dist/elements/ConfirmationModal/index.js +44 -8
  10. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  11. package/dist/elements/CopyLocaleData/index.js +97 -89
  12. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  13. package/dist/elements/CopyToClipboard/index.js +22 -2
  14. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  15. package/dist/elements/DefaultListViewTabs/index.js +47 -32
  16. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  17. package/dist/elements/DeleteMany/index.js +83 -47
  18. package/dist/elements/DeleteMany/index.js.map +1 -1
  19. package/dist/elements/DocumentControls/index.js +55 -27
  20. package/dist/elements/DocumentControls/index.js.map +1 -1
  21. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
  22. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  23. package/dist/elements/DocumentDrawer/index.js +99 -47
  24. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  25. package/dist/elements/Drawer/index.js +57 -23
  26. package/dist/elements/Drawer/index.js.map +1 -1
  27. package/dist/elements/DrawerActionHeader/index.js +21 -3
  28. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  29. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  30. package/dist/elements/EmailAndUsername/index.js +31 -24
  31. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  32. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
  33. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  34. package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
  35. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  36. package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
  37. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  38. package/dist/elements/FullscreenModal/index.js +20 -10
  39. package/dist/elements/FullscreenModal/index.js.map +1 -1
  40. package/dist/elements/ListDrawer/index.js +24 -18
  41. package/dist/elements/ListDrawer/index.js.map +1 -1
  42. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
  43. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  44. package/dist/elements/ListSelection/index.js +27 -11
  45. package/dist/elements/ListSelection/index.js.map +1 -1
  46. package/dist/elements/LivePreview/Window/index.js +146 -65
  47. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  48. package/dist/elements/Loading/index.js +11 -2
  49. package/dist/elements/Loading/index.js.map +1 -1
  50. package/dist/elements/LoadingOverlay/index.js +102 -46
  51. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  52. package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
  53. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  54. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
  55. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  56. package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
  57. package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
  58. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  59. package/dist/elements/SelectRow/index.js +40 -39
  60. package/dist/elements/SelectRow/index.js.map +1 -1
  61. package/dist/elements/ShimmerEffect/index.js +12 -20
  62. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  63. package/dist/elements/SortColumn/index.js +30 -21
  64. package/dist/elements/SortColumn/index.js.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
  66. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
  68. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  69. package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
  70. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  71. package/dist/elements/Thumbnail/index.js +75 -35
  72. package/dist/elements/Thumbnail/index.js.map +1 -1
  73. package/dist/elements/ThumbnailCard/index.js +26 -17
  74. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  75. package/dist/elements/Tooltip/index.js +127 -51
  76. package/dist/elements/Tooltip/index.js.map +1 -1
  77. package/dist/elements/Upload/index.js +10 -2
  78. package/dist/elements/Upload/index.js.map +1 -1
  79. package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
  80. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  81. package/dist/exports/client/{CodeEditor-RHQXPDK5.js → CodeEditor-4J4OH4TD.js} +2 -2
  82. package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
  83. package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
  84. package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
  85. package/dist/exports/client/chunk-HBCG32CP.js +26 -0
  86. package/dist/exports/client/{chunk-FKP64OEZ.js.map → chunk-HBCG32CP.js.map} +4 -4
  87. package/dist/exports/client/index.d.ts +4 -5
  88. package/dist/exports/client/index.d.ts.map +1 -1
  89. package/dist/exports/client/index.js +12 -12
  90. package/dist/exports/client/index.js.map +4 -4
  91. package/dist/exports/rsc/index.d.ts +0 -1
  92. package/dist/exports/rsc/index.d.ts.map +1 -1
  93. package/dist/exports/rsc/index.js +0 -1
  94. package/dist/exports/rsc/index.js.map +1 -1
  95. package/dist/fields/Array/ArrayRow.d.ts +3 -2
  96. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  97. package/dist/fields/Array/ArrayRow.js +23 -13
  98. package/dist/fields/Array/ArrayRow.js.map +1 -1
  99. package/dist/fields/Array/index.js +477 -273
  100. package/dist/fields/Array/index.js.map +1 -1
  101. package/dist/fields/Checkbox/Input.js +19 -2
  102. package/dist/fields/Checkbox/Input.js.map +1 -1
  103. package/dist/fields/FieldError/index.js +29 -30
  104. package/dist/fields/FieldError/index.js.map +1 -1
  105. package/dist/fields/FieldLabel/index.js +64 -12
  106. package/dist/fields/FieldLabel/index.js.map +1 -1
  107. package/dist/fields/Group/index.d.ts +1 -1
  108. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  109. package/dist/fields/Relationship/Input.js +8 -0
  110. package/dist/fields/Relationship/Input.js.map +1 -1
  111. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
  112. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  113. package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
  114. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  115. package/dist/fields/Row/index.d.ts +3 -1
  116. package/dist/fields/Row/index.d.ts.map +1 -1
  117. package/dist/fields/Select/Input.js +31 -18
  118. package/dist/fields/Select/Input.js.map +1 -1
  119. package/dist/fields/Tabs/Tab/index.js +11 -2
  120. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  121. package/dist/fields/Tabs/index.d.ts +1 -2
  122. package/dist/fields/Tabs/index.d.ts.map +1 -1
  123. package/dist/fields/Tabs/index.js +225 -185
  124. package/dist/fields/Tabs/index.js.map +1 -1
  125. package/dist/fields/Upload/RelationshipContent/index.js +127 -79
  126. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  127. package/dist/forms/Form/createNestedClientFieldPath.js +1 -1
  128. package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
  129. package/dist/forms/Form/index.d.ts.map +1 -1
  130. package/dist/forms/Form/index.js +8 -1
  131. package/dist/forms/Form/index.js.map +1 -1
  132. package/dist/forms/RenderFields/RenderField.js +237 -245
  133. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  134. package/dist/forms/RenderFields/context.d.ts +29 -0
  135. package/dist/forms/RenderFields/context.d.ts.map +1 -1
  136. package/dist/forms/RenderFields/context.js +30 -2
  137. package/dist/forms/RenderFields/context.js.map +1 -1
  138. package/dist/forms/RenderFields/types.d.ts +10 -2
  139. package/dist/forms/RenderFields/types.d.ts.map +1 -1
  140. package/dist/forms/RenderFields/types.js.map +1 -1
  141. package/dist/forms/useField/index.d.ts +0 -5
  142. package/dist/forms/useField/index.d.ts.map +1 -1
  143. package/dist/forms/useField/index.js +45 -74
  144. package/dist/forms/useField/index.js.map +1 -1
  145. package/dist/hooks/useIntersect.js +53 -35
  146. package/dist/hooks/useIntersect.js.map +1 -1
  147. package/dist/hooks/usePayloadAPI.js +44 -36
  148. package/dist/hooks/usePayloadAPI.js.map +1 -1
  149. package/dist/providers/Config/index.d.ts +17 -2
  150. package/dist/providers/Config/index.d.ts.map +1 -1
  151. package/dist/providers/Config/index.js +57 -20
  152. package/dist/providers/Config/index.js.map +1 -1
  153. package/dist/providers/Folders/index.d.ts.map +1 -1
  154. package/dist/providers/Folders/index.js +24 -13
  155. package/dist/providers/Folders/index.js.map +1 -1
  156. package/dist/providers/ServerFunctions/index.d.ts +1 -4
  157. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  158. package/dist/providers/ServerFunctions/index.js +0 -13
  159. package/dist/providers/ServerFunctions/index.js.map +1 -1
  160. package/dist/utilities/buildFormState.d.ts.map +1 -1
  161. package/dist/utilities/buildFormState.js +2 -1
  162. package/dist/utilities/buildFormState.js.map +1 -1
  163. package/dist/utilities/reduceFieldsToOptions.d.ts +1 -1
  164. package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
  165. package/dist/utilities/reduceFieldsToOptions.js +7 -12
  166. package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
  167. package/dist/views/BrowseByFolder/index.js +55 -37
  168. package/dist/views/BrowseByFolder/index.js.map +1 -1
  169. package/dist/views/CollectionFolder/index.js +40 -13
  170. package/dist/views/CollectionFolder/index.js.map +1 -1
  171. package/dist/views/Edit/Auth/index.js +105 -93
  172. package/dist/views/Edit/Auth/index.js.map +1 -1
  173. package/package.json +8 -8
  174. package/dist/exports/client/chunk-FKP64OEZ.js +0 -26
  175. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +0 -35
  176. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +0 -1
  177. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +0 -83
  178. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +0 -1
  179. /package/dist/exports/client/{CodeEditor-RHQXPDK5.js.map → CodeEditor-4J4OH4TD.js.map} +0 -0
  180. /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
@@ -1,6 +1,5 @@
1
1
  'use client';
2
2
 
3
- import { c as _c } from "react/compiler-runtime";
4
3
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
4
  import React, { useCallback, useEffect } from 'react';
6
5
  import { Form, useForm } from '../../../forms/Form/index.js';
@@ -137,29 +136,16 @@ export function EditForm({
137
136
  });
138
137
  }
139
138
  function GetFieldProxy() {
140
- const $ = _c(4);
141
139
  const {
142
140
  getFields
143
141
  } = useForm();
144
142
  const {
145
143
  getFormDataRef
146
144
  } = useFormsManager();
147
- let t0;
148
- let t1;
149
- if ($[0] !== getFields || $[1] !== getFormDataRef) {
150
- t0 = () => {
151
- getFormDataRef.current = getFields;
152
- };
153
- t1 = [getFields, getFormDataRef];
154
- $[0] = getFields;
155
- $[1] = getFormDataRef;
156
- $[2] = t0;
157
- $[3] = t1;
158
- } else {
159
- t0 = $[2];
160
- t1 = $[3];
161
- }
162
- useEffect(t0, t1);
145
+ useEffect(() => {
146
+ // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix
147
+ getFormDataRef.current = getFields;
148
+ }, [getFields, getFormDataRef]);
163
149
  return null;
164
150
  }
165
151
  function ReportAllErrors() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","OperationProvider","useServerFunctions","abortAndIgnore","handleAbortRef","useDocumentDrawerContext","DocumentFields","MoveDocToFolder","Upload_v4","useFormsManager","baseClass","EditForm","resetUploadEdits","submitted","updateUploadEdits","uploadEdits","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isInitializing","Upload","CustomUpload","onSave","onSaveFromContext","getFormState","config","folders","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","reportUpdate","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","skipValidation","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","customActions","buttonProps","buttonStyle","size","folderCollectionSlug","folderFieldName","fieldName","filter","Boolean","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","$","getFields","getFormDataRef","t0","t1","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","path","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect } from 'react'\n\nimport type { EditFormProps } from './types.js'\n\nimport { Form, useForm } from '../../../forms/Form/index.js'\nimport { type FormProps } from '../../../forms/Form/types.js'\nimport { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { OperationProvider } from '../../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../DocumentFields/index.js'\nimport { MoveDocToFolder } from '../../FolderView/MoveDocToFolder/index.js'\nimport { Upload_v4 } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\n\nexport function EditForm({\n resetUploadEdits,\n submitted,\n updateUploadEdits,\n uploadEdits,\n}: EditFormProps) {\n const {\n action,\n collectionSlug: docSlug,\n docPermissions,\n getDocPreferences,\n hasSavePermission,\n initialState,\n isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: { folders },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug })\n const { reportUpdate } = useDocumentEvents()\n\n const collectionSlug = collectionConfig.slug\n\n const [schemaPath] = React.useState(collectionSlug)\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: 'create',\n })\n }\n resetUploadEdits()\n },\n [collectionSlug, onSaveFromContext, reportUpdate, resetUploadEdits],\n )\n\n const onChange: NonNullable<FormProps['onChange']>[0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newFormState } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n return newFormState\n },\n [collectionSlug, schemaPath, getDocPreferences, getFormState, docPermissions],\n )\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <OperationProvider operation=\"create\">\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isInitializing || !hasSavePermission}\n initialState={isInitializing ? undefined : initialState}\n isInitializing={isInitializing}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={onSave}\n submitted={submitted}\n >\n <DocumentFields\n BeforeFields={\n <React.Fragment>\n {CustomUpload || (\n <Upload_v4\n collectionSlug={collectionConfig.slug}\n customActions={[\n folders && collectionConfig.folders && (\n <MoveDocToFolder\n buttonProps={{\n buttonStyle: 'pill',\n size: 'small',\n }}\n folderCollectionSlug={folders.slug}\n folderFieldName={folders.fieldName}\n key=\"move-doc-to-folder\"\n />\n ),\n ].filter(Boolean)}\n initialState={initialState}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadConfig={collectionConfig.upload}\n uploadEdits={uploadEdits}\n />\n )}\n </React.Fragment>\n }\n docPermissions={docPermissions}\n fields={collectionConfig.fields}\n schemaPathSegments={[collectionConfig.slug]}\n />\n <ReportAllErrors />\n <GetFieldProxy />\n </Form>\n </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n useEffect(() => {\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n getFormDataRef.current = getFields\n }, [getFields, getFormDataRef])\n\n return null\n}\n\nfunction ReportAllErrors() {\n const { docConfig } = useDocumentInfo()\n const { activeIndex, setFormTotalErrorCount } = useFormsManager()\n const errorCountRef = React.useRef(0)\n\n const reportFormErrorCount = React.useCallback(\n (errorCount) => {\n if (errorCount === errorCountRef.current) {\n return\n }\n setFormTotalErrorCount({ errorCount, index: activeIndex })\n errorCountRef.current = errorCount\n },\n [activeIndex, setFormTotalErrorCount],\n )\n\n if (!docConfig) {\n return null\n }\n\n return (\n <WatchChildErrors fields={docConfig.fields} path={[]} setErrorCount={reportFormErrorCount} />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","OperationProvider","useServerFunctions","abortAndIgnore","handleAbortRef","useDocumentDrawerContext","DocumentFields","MoveDocToFolder","Upload_v4","useFormsManager","baseClass","EditForm","resetUploadEdits","submitted","updateUploadEdits","uploadEdits","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isInitializing","Upload","CustomUpload","onSave","onSaveFromContext","getFormState","config","folders","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","reportUpdate","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","skipValidation","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","customActions","buttonProps","buttonStyle","size","folderCollectionSlug","folderFieldName","fieldName","filter","Boolean","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","getFields","getFormDataRef","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","path","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useEffect } from 'react'\n\nimport type { EditFormProps } from './types.js'\n\nimport { Form, useForm } from '../../../forms/Form/index.js'\nimport { type FormProps } from '../../../forms/Form/types.js'\nimport { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { OperationProvider } from '../../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../DocumentFields/index.js'\nimport { MoveDocToFolder } from '../../FolderView/MoveDocToFolder/index.js'\nimport { Upload_v4 } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\n\nexport function EditForm({\n resetUploadEdits,\n submitted,\n updateUploadEdits,\n uploadEdits,\n}: EditFormProps) {\n const {\n action,\n collectionSlug: docSlug,\n docPermissions,\n getDocPreferences,\n hasSavePermission,\n initialState,\n isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: { folders },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug })\n const { reportUpdate } = useDocumentEvents()\n\n const collectionSlug = collectionConfig.slug\n\n const [schemaPath] = React.useState(collectionSlug)\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: 'create',\n })\n }\n resetUploadEdits()\n },\n [collectionSlug, onSaveFromContext, reportUpdate, resetUploadEdits],\n )\n\n const onChange: NonNullable<FormProps['onChange']>[0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newFormState } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath,\n signal: controller.signal,\n skipValidation: !submitted,\n })\n\n abortOnChangeRef.current = null\n\n return newFormState\n },\n [collectionSlug, schemaPath, getDocPreferences, getFormState, docPermissions],\n )\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <OperationProvider operation=\"create\">\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isInitializing || !hasSavePermission}\n initialState={isInitializing ? undefined : initialState}\n isInitializing={isInitializing}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={onSave}\n submitted={submitted}\n >\n <DocumentFields\n BeforeFields={\n <React.Fragment>\n {CustomUpload || (\n <Upload_v4\n collectionSlug={collectionConfig.slug}\n customActions={[\n folders && collectionConfig.folders && (\n <MoveDocToFolder\n buttonProps={{\n buttonStyle: 'pill',\n size: 'small',\n }}\n folderCollectionSlug={folders.slug}\n folderFieldName={folders.fieldName}\n key=\"move-doc-to-folder\"\n />\n ),\n ].filter(Boolean)}\n initialState={initialState}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadConfig={collectionConfig.upload}\n uploadEdits={uploadEdits}\n />\n )}\n </React.Fragment>\n }\n docPermissions={docPermissions}\n fields={collectionConfig.fields}\n schemaPathSegments={[collectionConfig.slug]}\n />\n <ReportAllErrors />\n <GetFieldProxy />\n </Form>\n </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n useEffect(() => {\n // eslint-disable-next-line react-compiler/react-compiler -- TODO: fix\n getFormDataRef.current = getFields\n }, [getFields, getFormDataRef])\n\n return null\n}\n\nfunction ReportAllErrors() {\n const { docConfig } = useDocumentInfo()\n const { activeIndex, setFormTotalErrorCount } = useFormsManager()\n const errorCountRef = React.useRef(0)\n\n const reportFormErrorCount = React.useCallback(\n (errorCount) => {\n if (errorCount === errorCountRef.current) {\n return\n }\n setFormTotalErrorCount({ errorCount, index: activeIndex })\n errorCountRef.current = errorCount\n },\n [activeIndex, setFormTotalErrorCount],\n )\n\n if (!docConfig) {\n return null\n }\n\n return (\n <WatchChildErrors fields={docConfig.fields} path={[]} setErrorCount={reportFormErrorCount} />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
 
3
+ import { c as _c } from "react/compiler-runtime";
3
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
5
  import { useCallback } from 'react';
5
6
  import { toast } from 'sonner';
@@ -13,86 +14,184 @@ const baseClass = 'clipboard-action';
13
14
  * Menu actions for copying and pasting fields. Currently, this is only used in Arrays and Blocks.
14
15
  * @note This component doesn't use the Clipboard API, but localStorage. See rationale in #11513
15
16
  */
16
- export const ClipboardAction = ({
17
- allowCopy,
18
- allowPaste,
19
- className,
20
- copyClassName,
21
- disabled,
22
- isRow,
23
- onPaste,
24
- pasteClassName,
25
- path,
26
- ...rest
27
- }) => {
17
+ export const ClipboardAction = t0 => {
18
+ const $ = _c(40);
19
+ let allowCopy;
20
+ let allowPaste;
21
+ let className;
22
+ let copyClassName;
23
+ let disabled;
24
+ let isRow;
25
+ let onPaste;
26
+ let pasteClassName;
27
+ let path;
28
+ let rest;
29
+ if ($[0] !== t0) {
30
+ ({
31
+ allowCopy,
32
+ allowPaste,
33
+ className,
34
+ copyClassName,
35
+ disabled,
36
+ isRow,
37
+ onPaste,
38
+ pasteClassName,
39
+ path,
40
+ ...rest
41
+ } = t0);
42
+ $[0] = t0;
43
+ $[1] = allowCopy;
44
+ $[2] = allowPaste;
45
+ $[3] = className;
46
+ $[4] = copyClassName;
47
+ $[5] = disabled;
48
+ $[6] = isRow;
49
+ $[7] = onPaste;
50
+ $[8] = pasteClassName;
51
+ $[9] = path;
52
+ $[10] = rest;
53
+ } else {
54
+ allowCopy = $[1];
55
+ allowPaste = $[2];
56
+ className = $[3];
57
+ copyClassName = $[4];
58
+ disabled = $[5];
59
+ isRow = $[6];
60
+ onPaste = $[7];
61
+ pasteClassName = $[8];
62
+ path = $[9];
63
+ rest = $[10];
64
+ }
28
65
  const {
29
66
  t
30
67
  } = useTranslation();
31
- const classes = [`${baseClass}__popup`, className].filter(Boolean).join(' ');
32
- const handleCopy = useCallback(() => {
33
- const clipboardResult = clipboardCopy({
34
- path,
35
- t,
36
- ...rest
37
- });
38
- if (typeof clipboardResult === 'string') {
39
- toast.error(clipboardResult);
68
+ let t1;
69
+ if ($[11] !== className) {
70
+ t1 = [`${baseClass}__popup`, className].filter(Boolean);
71
+ $[11] = className;
72
+ $[12] = t1;
73
+ } else {
74
+ t1 = $[12];
75
+ }
76
+ const classes = t1.join(" ");
77
+ let t2;
78
+ if ($[13] !== path || $[14] !== rest || $[15] !== t) {
79
+ t2 = () => {
80
+ const clipboardResult = clipboardCopy({
81
+ path,
82
+ t,
83
+ ...rest
84
+ });
85
+ if (typeof clipboardResult === "string") {
86
+ toast.error(clipboardResult);
87
+ } else {
88
+ toast.success(t("general:copied"));
89
+ }
90
+ };
91
+ $[13] = path;
92
+ $[14] = rest;
93
+ $[15] = t;
94
+ $[16] = t2;
95
+ } else {
96
+ t2 = $[16];
97
+ }
98
+ const handleCopy = t2;
99
+ let t3;
100
+ if ($[17] !== onPaste || $[18] !== path || $[19] !== rest || $[20] !== t) {
101
+ t3 = () => {
102
+ const clipboardResult_0 = clipboardPaste(rest.type === "array" ? {
103
+ onPaste,
104
+ path,
105
+ schemaFields: rest.fields,
106
+ t
107
+ } : {
108
+ onPaste,
109
+ path,
110
+ schemaBlocks: rest.blocks,
111
+ t
112
+ });
113
+ if (typeof clipboardResult_0 === "string") {
114
+ toast.error(clipboardResult_0);
115
+ }
116
+ };
117
+ $[17] = onPaste;
118
+ $[18] = path;
119
+ $[19] = rest;
120
+ $[20] = t;
121
+ $[21] = t3;
122
+ } else {
123
+ t3 = $[21];
124
+ }
125
+ const handlePaste = t3;
126
+ if (!allowPaste && !allowCopy) {
127
+ return null;
128
+ }
129
+ let t4;
130
+ if ($[22] !== allowCopy || $[23] !== allowPaste || $[24] !== classes || $[25] !== copyClassName || $[26] !== disabled || $[27] !== handleCopy || $[28] !== handlePaste || $[29] !== isRow || $[30] !== pasteClassName) {
131
+ let t5;
132
+ if ($[32] !== allowCopy || $[33] !== allowPaste || $[34] !== copyClassName || $[35] !== handleCopy || $[36] !== handlePaste || $[37] !== isRow || $[38] !== pasteClassName) {
133
+ t5 = t6 => {
134
+ const {
135
+ close
136
+ } = t6;
137
+ return _jsxs(PopupList.ButtonGroup, {
138
+ children: [_jsx(PopupList.Button, {
139
+ className: copyClassName,
140
+ disabled: !allowCopy,
141
+ onClick: () => {
142
+ handleCopy();
143
+ close();
144
+ },
145
+ children: _jsx(ClipboardActionLabel, {
146
+ isRow
147
+ })
148
+ }), _jsx(PopupList.Button, {
149
+ className: pasteClassName,
150
+ disabled: !allowPaste,
151
+ onClick: () => {
152
+ handlePaste();
153
+ close();
154
+ },
155
+ children: _jsx(ClipboardActionLabel, {
156
+ isPaste: true,
157
+ isRow
158
+ })
159
+ })]
160
+ });
161
+ };
162
+ $[32] = allowCopy;
163
+ $[33] = allowPaste;
164
+ $[34] = copyClassName;
165
+ $[35] = handleCopy;
166
+ $[36] = handlePaste;
167
+ $[37] = isRow;
168
+ $[38] = pasteClassName;
169
+ $[39] = t5;
40
170
  } else {
41
- toast.success(t('general:copied'));
171
+ t5 = $[39];
42
172
  }
43
- }, [t, rest, path]);
44
- const handlePaste = useCallback(() => {
45
- const clipboardResult_0 = clipboardPaste(rest.type === 'array' ? {
46
- onPaste,
47
- path,
48
- schemaFields: rest.fields,
49
- t
50
- } : {
51
- onPaste,
52
- path,
53
- schemaBlocks: rest.blocks,
54
- t
173
+ t4 = _jsx(Popup, {
174
+ button: _jsx(MoreIcon, {}),
175
+ className: classes,
176
+ disabled,
177
+ horizontalAlign: "center",
178
+ render: t5,
179
+ size: "large",
180
+ verticalAlign: "bottom"
55
181
  });
56
- if (typeof clipboardResult_0 === 'string') {
57
- toast.error(clipboardResult_0);
58
- }
59
- }, [onPaste, rest, path, t]);
60
- if (!allowPaste && !allowCopy) {
61
- return null;
182
+ $[22] = allowCopy;
183
+ $[23] = allowPaste;
184
+ $[24] = classes;
185
+ $[25] = copyClassName;
186
+ $[26] = disabled;
187
+ $[27] = handleCopy;
188
+ $[28] = handlePaste;
189
+ $[29] = isRow;
190
+ $[30] = pasteClassName;
191
+ $[31] = t4;
192
+ } else {
193
+ t4 = $[31];
62
194
  }
63
- return /*#__PURE__*/_jsx(Popup, {
64
- button: /*#__PURE__*/_jsx(MoreIcon, {}),
65
- className: classes,
66
- disabled: disabled,
67
- horizontalAlign: "center",
68
- render: ({
69
- close
70
- }) => /*#__PURE__*/_jsxs(PopupList.ButtonGroup, {
71
- children: [/*#__PURE__*/_jsx(PopupList.Button, {
72
- className: copyClassName,
73
- disabled: !allowCopy,
74
- onClick: () => {
75
- void handleCopy();
76
- close();
77
- },
78
- children: /*#__PURE__*/_jsx(ClipboardActionLabel, {
79
- isRow: isRow
80
- })
81
- }), /*#__PURE__*/_jsx(PopupList.Button, {
82
- className: pasteClassName,
83
- disabled: !allowPaste,
84
- onClick: () => {
85
- void handlePaste();
86
- close();
87
- },
88
- children: /*#__PURE__*/_jsx(ClipboardActionLabel, {
89
- isPaste: true,
90
- isRow: isRow
91
- })
92
- })]
93
- }),
94
- size: "large",
95
- verticalAlign: "bottom"
96
- });
195
+ return t4;
97
196
  };
98
197
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useCallback","toast","MoreIcon","useTranslation","Popup","PopupList","ClipboardActionLabel","clipboardCopy","clipboardPaste","baseClass","ClipboardAction","allowCopy","allowPaste","className","copyClassName","disabled","isRow","onPaste","pasteClassName","path","rest","t","classes","filter","Boolean","join","handleCopy","clipboardResult","error","success","handlePaste","type","schemaFields","fields","schemaBlocks","blocks","_jsx","button","horizontalAlign","render","close","_jsxs","ButtonGroup","Button","onClick","isPaste","size","verticalAlign"],"sources":["../../../src/elements/ClipboardAction/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormStateWithoutComponents } from 'payload'\n\nimport { type FC, useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardCopyData, OnPasteFn } from './types.js'\n\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { ClipboardActionLabel } from './ClipboardActionLabel.js'\nimport { clipboardCopy, clipboardPaste } from './clipboardUtilities.js'\n\nconst baseClass = 'clipboard-action'\n\ntype Props = {\n allowCopy?: boolean\n allowPaste?: boolean\n className?: string\n copyClassName?: string\n disabled?: boolean\n getDataToCopy: () => FormStateWithoutComponents\n isRow?: boolean\n onPaste: OnPasteFn\n pasteClassName?: string\n} & ClipboardCopyData\n\n/**\n * Menu actions for copying and pasting fields. Currently, this is only used in Arrays and Blocks.\n * @note This component doesn't use the Clipboard API, but localStorage. See rationale in #11513\n */\nexport const ClipboardAction: FC<Props> = ({\n allowCopy,\n allowPaste,\n className,\n copyClassName,\n disabled,\n isRow,\n onPaste,\n pasteClassName,\n path,\n ...rest\n}) => {\n const { t } = useTranslation()\n\n const classes = [`${baseClass}__popup`, className].filter(Boolean).join(' ')\n\n const handleCopy = useCallback(() => {\n const clipboardResult = clipboardCopy({\n path,\n t,\n ...rest,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n }, [t, rest, path])\n\n const handlePaste = useCallback(() => {\n const clipboardResult = clipboardPaste(\n rest.type === 'array'\n ? {\n onPaste,\n path,\n schemaFields: rest.fields,\n t,\n }\n : {\n onPaste,\n path,\n schemaBlocks: rest.blocks,\n t,\n },\n )\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n }, [onPaste, rest, path, t])\n\n if (!allowPaste && !allowCopy) {\n return null\n }\n\n return (\n <Popup\n button={<MoreIcon />}\n className={classes}\n disabled={disabled}\n horizontalAlign=\"center\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n className={copyClassName}\n disabled={!allowCopy}\n onClick={() => {\n void handleCopy()\n close()\n }}\n >\n <ClipboardActionLabel isRow={isRow} />\n </PopupList.Button>\n <PopupList.Button\n className={pasteClassName}\n disabled={!allowPaste}\n onClick={() => {\n void handlePaste()\n close()\n }}\n >\n <ClipboardActionLabel isPaste isRow={isRow} />\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n size=\"large\"\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAAkBA,WAAW,QAAQ;AACrC,SAASC,KAAK,QAAQ;AAItB,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,EAAEC,cAAc,QAAQ;AAE9C,MAAMC,SAAA,GAAY;AAclB;;;;AAIA,OAAO,MAAMC,eAAA,GAA6BA,CAAC;EACzCC,SAAS;EACTC,UAAU;EACVC,SAAS;EACTC,aAAa;EACbC,QAAQ;EACRC,KAAK;EACLC,OAAO;EACPC,cAAc;EACdC,IAAI;EACJ,GAAGC;AAAA,CACJ;EACC,MAAM;IAAEC;EAAC,CAAE,GAAGlB,cAAA;EAEd,MAAMmB,OAAA,GAAU,CAAC,GAAGb,SAAA,SAAkB,EAAEI,SAAA,CAAU,CAACU,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;EAExE,MAAMC,UAAA,GAAa1B,WAAA,CAAY;IAC7B,MAAM2B,eAAA,GAAkBpB,aAAA,CAAc;MACpCY,IAAA;MACAE,CAAA;MACA,GAAGD;IACL;IAEA,IAAI,OAAOO,eAAA,KAAoB,UAAU;MACvC1B,KAAA,CAAM2B,KAAK,CAACD,eAAA;IACd,OAAO;MACL1B,KAAA,CAAM4B,OAAO,CAACR,CAAA,CAAE;IAClB;EACF,GAAG,CAACA,CAAA,EAAGD,IAAA,EAAMD,IAAA,CAAK;EAElB,MAAMW,WAAA,GAAc9B,WAAA,CAAY;IAC9B,MAAM2B,iBAAA,GAAkBnB,cAAA,CACtBY,IAAA,CAAKW,IAAI,KAAK,UACV;MACEd,OAAA;MACAE,IAAA;MACAa,YAAA,EAAcZ,IAAA,CAAKa,MAAM;MACzBZ;IACF,IACA;MACEJ,OAAA;MACAE,IAAA;MACAe,YAAA,EAAcd,IAAA,CAAKe,MAAM;MACzBd;IACF;IAGN,IAAI,OAAOM,iBAAA,KAAoB,UAAU;MACvC1B,KAAA,CAAM2B,KAAK,CAACD,iBAAA;IACd;EACF,GAAG,CAACV,OAAA,EAASG,IAAA,EAAMD,IAAA,EAAME,CAAA,CAAE;EAE3B,IAAI,CAACT,UAAA,IAAc,CAACD,SAAA,EAAW;IAC7B,OAAO;EACT;EAEA,oBACEyB,IAAA,CAAChC,KAAA;IACCiC,MAAA,eAAQD,IAAA,CAAClC,QAAA;IACTW,SAAA,EAAWS,OAAA;IACXP,QAAA,EAAUA,QAAA;IACVuB,eAAA,EAAgB;IAChBC,MAAA,EAAQA,CAAC;MAAEC;IAAK,CAAE,kBAChBC,KAAA,CAACpC,SAAA,CAAUqC,WAAW;8BACpBN,IAAA,CAAC/B,SAAA,CAAUsC,MAAM;QACf9B,SAAA,EAAWC,aAAA;QACXC,QAAA,EAAU,CAACJ,SAAA;QACXiC,OAAA,EAASA,CAAA;UACP,KAAKlB,UAAA;UACLc,KAAA;QACF;kBAEA,aAAAJ,IAAA,CAAC9B,oBAAA;UAAqBU,KAAA,EAAOA;;uBAE/BoB,IAAA,CAAC/B,SAAA,CAAUsC,MAAM;QACf9B,SAAA,EAAWK,cAAA;QACXH,QAAA,EAAU,CAACH,UAAA;QACXgC,OAAA,EAASA,CAAA;UACP,KAAKd,WAAA;UACLU,KAAA;QACF;kBAEA,aAAAJ,IAAA,CAAC9B,oBAAA;UAAqBuC,OAAO;UAAC7B,KAAA,EAAOA;;;;IAI3C8B,IAAA,EAAK;IACLC,aAAA,EAAc;;AAGpB","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useCallback","toast","MoreIcon","useTranslation","Popup","PopupList","ClipboardActionLabel","clipboardCopy","clipboardPaste","baseClass","ClipboardAction","t0","$","allowCopy","allowPaste","className","copyClassName","disabled","isRow","onPaste","pasteClassName","path","rest","t","t1","filter","Boolean","classes","join","t2","clipboardResult","error","success","handleCopy","t3","clipboardResult_0","type","schemaFields","fields","schemaBlocks","blocks","handlePaste","t4","t5","t6","close","_jsxs","ButtonGroup","children","_jsx","Button","onClick","isPaste","button","horizontalAlign","render","verticalAlign"],"sources":["../../../src/elements/ClipboardAction/index.tsx"],"sourcesContent":["'use client'\n\nimport type { FormStateWithoutComponents } from 'payload'\n\nimport { type FC, useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport type { ClipboardCopyData, OnPasteFn } from './types.js'\n\nimport { MoreIcon } from '../../icons/More/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { ClipboardActionLabel } from './ClipboardActionLabel.js'\nimport { clipboardCopy, clipboardPaste } from './clipboardUtilities.js'\n\nconst baseClass = 'clipboard-action'\n\ntype Props = {\n allowCopy?: boolean\n allowPaste?: boolean\n className?: string\n copyClassName?: string\n disabled?: boolean\n getDataToCopy: () => FormStateWithoutComponents\n isRow?: boolean\n onPaste: OnPasteFn\n pasteClassName?: string\n} & ClipboardCopyData\n\n/**\n * Menu actions for copying and pasting fields. Currently, this is only used in Arrays and Blocks.\n * @note This component doesn't use the Clipboard API, but localStorage. See rationale in #11513\n */\nexport const ClipboardAction: FC<Props> = ({\n allowCopy,\n allowPaste,\n className,\n copyClassName,\n disabled,\n isRow,\n onPaste,\n pasteClassName,\n path,\n ...rest\n}) => {\n const { t } = useTranslation()\n\n const classes = [`${baseClass}__popup`, className].filter(Boolean).join(' ')\n\n const handleCopy = useCallback(() => {\n const clipboardResult = clipboardCopy({\n path,\n t,\n ...rest,\n })\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n } else {\n toast.success(t('general:copied'))\n }\n }, [t, rest, path])\n\n const handlePaste = useCallback(() => {\n const clipboardResult = clipboardPaste(\n rest.type === 'array'\n ? {\n onPaste,\n path,\n schemaFields: rest.fields,\n t,\n }\n : {\n onPaste,\n path,\n schemaBlocks: rest.blocks,\n t,\n },\n )\n\n if (typeof clipboardResult === 'string') {\n toast.error(clipboardResult)\n }\n }, [onPaste, rest, path, t])\n\n if (!allowPaste && !allowCopy) {\n return null\n }\n\n return (\n <Popup\n button={<MoreIcon />}\n className={classes}\n disabled={disabled}\n horizontalAlign=\"center\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n className={copyClassName}\n disabled={!allowCopy}\n onClick={() => {\n void handleCopy()\n close()\n }}\n >\n <ClipboardActionLabel isRow={isRow} />\n </PopupList.Button>\n <PopupList.Button\n className={pasteClassName}\n disabled={!allowPaste}\n onClick={() => {\n void handlePaste()\n close()\n }}\n >\n <ClipboardActionLabel isPaste isRow={isRow} />\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n size=\"large\"\n verticalAlign=\"bottom\"\n />\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAAkBC,WAAW,QAAQ;AACrC,SAASC,KAAK,QAAQ;AAItB,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AACrC,SAASC,aAAa,EAAEC,cAAc,QAAQ;AAE9C,MAAMC,SAAA,GAAY;AAclB;;;;AAIA,OAAO,MAAMC,eAAA,GAA6BC,EAAA;EAAA,MAAAC,CAAA,GAAAb,EAAA;EAAA,IAAAc,SAAA;EAAA,IAAAC,UAAA;EAAA,IAAAC,SAAA;EAAA,IAAAC,aAAA;EAAA,IAAAC,QAAA;EAAA,IAAAC,KAAA;EAAA,IAAAC,OAAA;EAAA,IAAAC,cAAA;EAAA,IAAAC,IAAA;EAAA,IAAAC,IAAA;EAAA,IAAAV,CAAA,QAAAD,EAAA;IAAC;MAAAE,SAAA;MAAAC,UAAA;MAAAC,SAAA;MAAAC,aAAA;MAAAC,QAAA;MAAAC,KAAA;MAAAC,OAAA;MAAAC,cAAA;MAAAC,IAAA;MAAA,GAAAC;IAAA,IAAAX,EAW1C;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAE,UAAA;IAAAF,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAK,QAAA;IAAAL,CAAA,MAAAM,KAAA;IAAAN,CAAA,MAAAO,OAAA;IAAAP,CAAA,MAAAQ,cAAA;IAAAR,CAAA,MAAAS,IAAA;IAAAT,CAAA,OAAAU,IAAA;EAAA;IAAAT,SAAA,GAAAD,CAAA;IAAAE,UAAA,GAAAF,CAAA;IAAAG,SAAA,GAAAH,CAAA;IAAAI,aAAA,GAAAJ,CAAA;IAAAK,QAAA,GAAAL,CAAA;IAAAM,KAAA,GAAAN,CAAA;IAAAO,OAAA,GAAAP,CAAA;IAAAQ,cAAA,GAAAR,CAAA;IAAAS,IAAA,GAAAT,CAAA;IAAAU,IAAA,GAAAV,CAAA;EAAA;EACC;IAAAW;EAAA,IAAcpB,cAAA;EAAA,IAAAqB,EAAA;EAAA,IAAAZ,CAAA,SAAAG,SAAA;IAEES,EAAA,IAAC,GAAAf,SAAA,SAAqB,EAAEM,SAAA,EAAAU,MAAA,CAAAC,OAAkB;IAAAd,CAAA,OAAAG,SAAA;IAAAH,CAAA,OAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAA1D,MAAAe,OAAA,GAAgBH,EAA0C,CAAAI,IAAA,CAAc;EAAA,IAAAC,EAAA;EAAA,IAAAjB,CAAA,SAAAS,IAAA,IAAAT,CAAA,SAAAU,IAAA,IAAAV,CAAA,SAAAW,CAAA;IAEzCM,EAAA,GAAAA,CAAA;MAC7B,MAAAC,eAAA,GAAwBvB,aAAA;QAAAc,IAAA;QAAAE,CAAA;QAAA,GAGnBD;MAAI,CACT;MAAA,IAEI,OAAOQ,eAAA,KAAoB;QAC7B7B,KAAA,CAAA8B,KAAA,CAAYD,eAAA;MAAA;QAEZ7B,KAAA,CAAA+B,OAAA,CAAcT,CAAA,CAAE;MAAA;IAAA;IAEpBX,CAAA,OAAAS,IAAA;IAAAT,CAAA,OAAAU,IAAA;IAAAV,CAAA,OAAAW,CAAA;IAAAX,CAAA,OAAAiB,EAAA;EAAA;IAAAA,EAAA,GAAAjB,CAAA;EAAA;EAZA,MAAAqB,UAAA,GAAmBJ,EAYD;EAAA,IAAAK,EAAA;EAAA,IAAAtB,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAS,IAAA,IAAAT,CAAA,SAAAU,IAAA,IAAAV,CAAA,SAAAW,CAAA;IAEcW,EAAA,GAAAA,CAAA;MAC9B,MAAAC,iBAAA,GAAwB3B,cAAA,CACtBc,IAAA,CAAAc,IAAA,KAAc;QAAAjB,OAAA;QAAAE,IAAA;QAAAgB,YAAA,EAIMf,IAAA,CAAAgB,MAAA;QAAAf;MAAA;QAAAJ,OAAA;QAAAE,IAAA;QAAAkB,YAAA,EAMAjB,IAAA,CAAAkB,MAAA;QAAAjB;MAAA,CAEhB;MAAA,IAGF,OAAOO,iBAAA,KAAoB;QAC7B7B,KAAA,CAAA8B,KAAA,CAAYD,iBAAA;MAAA;IAAA;IAEhBlB,CAAA,OAAAO,OAAA;IAAAP,CAAA,OAAAS,IAAA;IAAAT,CAAA,OAAAU,IAAA;IAAAV,CAAA,OAAAW,CAAA;IAAAX,CAAA,OAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EApBA,MAAA6B,WAAA,GAAoBP,EAoBO;EAAA,IAEvB,CAACpB,UAAA,KAAeD,SAAA;IAAA;EAAA;EAAA,IAAA6B,EAAA;EAAA,IAAA9B,CAAA,SAAAC,SAAA,IAAAD,CAAA,SAAAE,UAAA,IAAAF,CAAA,SAAAe,OAAA,IAAAf,CAAA,SAAAI,aAAA,IAAAJ,CAAA,SAAAK,QAAA,IAAAL,CAAA,SAAAqB,UAAA,IAAArB,CAAA,SAAA6B,WAAA,IAAA7B,CAAA,SAAAM,KAAA,IAAAN,CAAA,SAAAQ,cAAA;IAAA,IAAAuB,EAAA;IAAA,IAAA/B,CAAA,SAAAC,SAAA,IAAAD,CAAA,SAAAE,UAAA,IAAAF,CAAA,SAAAI,aAAA,IAAAJ,CAAA,SAAAqB,UAAA,IAAArB,CAAA,SAAA6B,WAAA,IAAA7B,CAAA,SAAAM,KAAA,IAAAN,CAAA,SAAAQ,cAAA;MAURuB,EAAA,GAAAC,EAAA;QAAC;UAAAC;QAAA,IAAAD,EAAS;QAAA,OAChBE,KAAA,CAAAzC,SAAA,CAAA0C,WAAA;UAAAC,QAAA,GACEC,IAAA,CAAA5C,SAAA,CAAA6C,MAAA;YAAAnC,SAAA,EACaC,aAAA;YAAAC,QAAA,GACAJ,SAAA;YAAAsC,OAAA,EAAAA,CAAA;cAEJlB,UAAA;cACLY,KAAA;YAAA;YAAAG,QAAA,EAGFC,IAAA,CAAA3C,oBAAA;cAAAY;YAAA,C;cAEF+B,IAAA,CAAA5C,SAAA,CAAA6C,MAAA;YAAAnC,SAAA,EACaK,cAAA;YAAAH,QAAA,GACAH,UAAA;YAAAqC,OAAA,EAAAA,CAAA;cAEJV,WAAA;cACLI,KAAA;YAAA;YAAAG,QAAA,EAGFC,IAAA,CAAA3C,oBAAA;cAAA8C,OAAA;cAAAlC;YAAA,C;;;;;;;;;;;;;;;IAzBRwB,EAAA,GAAAO,IAAA,CAAA7C,KAAA;MAAAiD,MAAA,EACUJ,IAAA,CAAA/C,QAAA,IAAC;MAAAa,SAAA,EACEY,OAAA;MAAAV,QAAA;MAAAqC,eAAA,EAEK;MAAAC,MAAA,EACRZ,E;YAwBH;MAAAa,aAAA,EACS;IAAA,C;;;;;;;;;;;;;;SA9BhBd,E;CAiCJ","ignoreList":[]}
@@ -10,82 +10,170 @@ import './index.scss';
10
10
  const Editor = 'default' in EditorImport ? EditorImport.default : EditorImport;
11
11
  const baseClass = 'code-editor';
12
12
  const CodeEditor = props => {
13
- const $ = _c(4);
14
- const {
15
- className,
16
- maxHeight,
17
- minHeight,
18
- options,
19
- readOnly,
20
- ...rest
21
- } = props;
13
+ const $ = _c(42);
14
+ let className;
15
+ let maxHeight;
16
+ let minHeight;
17
+ let options;
18
+ let readOnly;
19
+ let rest;
20
+ if ($[0] !== props) {
21
+ ({
22
+ className,
23
+ maxHeight,
24
+ minHeight,
25
+ options,
26
+ readOnly,
27
+ ...rest
28
+ } = props);
29
+ $[0] = props;
30
+ $[1] = className;
31
+ $[2] = maxHeight;
32
+ $[3] = minHeight;
33
+ $[4] = options;
34
+ $[5] = readOnly;
35
+ $[6] = rest;
36
+ } else {
37
+ className = $[1];
38
+ maxHeight = $[2];
39
+ minHeight = $[3];
40
+ options = $[4];
41
+ readOnly = $[5];
42
+ rest = $[6];
43
+ }
22
44
  const MIN_HEIGHT = minHeight ?? 56;
23
- const {
24
- insertSpaces,
25
- tabSize,
26
- trimAutoWhitespace,
27
- ...editorOptions
28
- } = options || {};
45
+ let t0;
46
+ if ($[7] !== options) {
47
+ t0 = options || {};
48
+ $[7] = options;
49
+ $[8] = t0;
50
+ } else {
51
+ t0 = $[8];
52
+ }
53
+ let editorOptions;
54
+ let insertSpaces;
55
+ let tabSize;
56
+ let trimAutoWhitespace;
57
+ if ($[9] !== t0) {
58
+ ({
59
+ insertSpaces,
60
+ tabSize,
61
+ trimAutoWhitespace,
62
+ ...editorOptions
63
+ } = t0);
64
+ $[9] = t0;
65
+ $[10] = editorOptions;
66
+ $[11] = insertSpaces;
67
+ $[12] = tabSize;
68
+ $[13] = trimAutoWhitespace;
69
+ } else {
70
+ editorOptions = $[10];
71
+ insertSpaces = $[11];
72
+ tabSize = $[12];
73
+ trimAutoWhitespace = $[13];
74
+ }
29
75
  const paddingFromProps = options?.padding ? (options.padding.top || 0) + (options.padding?.bottom || 0) : 0;
30
76
  const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT);
31
77
  const {
32
78
  theme
33
79
  } = useTheme();
34
- const t0 = rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : "";
35
- const t1 = readOnly && "read-only";
36
- let t2;
37
- if ($[0] !== className || $[1] !== t0 || $[2] !== t1) {
38
- t2 = [baseClass, className, t0, t1].filter(Boolean);
39
- $[0] = className;
40
- $[1] = t0;
41
- $[2] = t1;
42
- $[3] = t2;
80
+ const t1 = rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : "";
81
+ const t2 = readOnly && "read-only";
82
+ let t3;
83
+ if ($[14] !== className || $[15] !== t1 || $[16] !== t2) {
84
+ t3 = [baseClass, className, t1, t2].filter(Boolean);
85
+ $[14] = className;
86
+ $[15] = t1;
87
+ $[16] = t2;
88
+ $[17] = t3;
43
89
  } else {
44
- t2 = $[3];
90
+ t3 = $[17];
45
91
  }
46
- const classes = t2.join(" ");
47
- return _jsx(Editor, {
48
- className: classes,
49
- loading: _jsx(ShimmerEffect, {
50
- height: dynamicHeight
51
- }),
52
- options: {
53
- detectIndentation: false,
54
- hideCursorInOverviewRuler: true,
55
- insertSpaces: false,
56
- minimap: {
57
- enabled: false
58
- },
59
- overviewRulerBorder: false,
60
- readOnly: Boolean(readOnly),
61
- scrollbar: {
62
- alwaysConsumeMouseWheel: false
63
- },
64
- scrollBeyondLastLine: false,
65
- trimAutoWhitespace: false,
66
- wordWrap: "on",
67
- ...editorOptions
68
- },
69
- theme: theme === "dark" ? "vs-dark" : "vs",
70
- ...rest,
71
- height: maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight,
72
- onChange: (value, ev) => {
73
- rest.onChange?.(value, ev);
74
- setDynamicHeight(Math.max(MIN_HEIGHT, value.split("\n").length * 18 + 2 + paddingFromProps));
75
- },
76
- onMount: (editor, monaco) => {
77
- rest.onMount?.(editor, monaco);
78
- const model = editor.getModel();
79
- if (model) {
80
- model.updateOptions({
81
- insertSpaces: insertSpaces ?? true,
82
- tabSize: tabSize ?? 4,
83
- trimAutoWhitespace: trimAutoWhitespace ?? true
84
- });
85
- }
86
- setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split("\n").length * 18 + 2 + paddingFromProps));
92
+ const classes = t3.join(" ");
93
+ let t4;
94
+ if ($[18] !== MIN_HEIGHT || $[19] !== classes || $[20] !== dynamicHeight || $[21] !== editorOptions || $[22] !== insertSpaces || $[23] !== maxHeight || $[24] !== paddingFromProps || $[25] !== readOnly || $[26] !== rest || $[27] !== tabSize || $[28] !== theme || $[29] !== trimAutoWhitespace) {
95
+ let t5;
96
+ if ($[31] !== MIN_HEIGHT || $[32] !== paddingFromProps || $[33] !== rest) {
97
+ t5 = (value, ev) => {
98
+ rest.onChange?.(value, ev);
99
+ setDynamicHeight(Math.max(MIN_HEIGHT, value.split("\n").length * 18 + 2 + paddingFromProps));
100
+ };
101
+ $[31] = MIN_HEIGHT;
102
+ $[32] = paddingFromProps;
103
+ $[33] = rest;
104
+ $[34] = t5;
105
+ } else {
106
+ t5 = $[34];
87
107
  }
88
- });
108
+ let t6;
109
+ if ($[35] !== MIN_HEIGHT || $[36] !== insertSpaces || $[37] !== paddingFromProps || $[38] !== rest || $[39] !== tabSize || $[40] !== trimAutoWhitespace) {
110
+ t6 = (editor, monaco) => {
111
+ rest.onMount?.(editor, monaco);
112
+ const model = editor.getModel();
113
+ if (model) {
114
+ model.updateOptions({
115
+ insertSpaces: insertSpaces ?? true,
116
+ tabSize: tabSize ?? 4,
117
+ trimAutoWhitespace: trimAutoWhitespace ?? true
118
+ });
119
+ }
120
+ setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split("\n").length * 18 + 2 + paddingFromProps));
121
+ };
122
+ $[35] = MIN_HEIGHT;
123
+ $[36] = insertSpaces;
124
+ $[37] = paddingFromProps;
125
+ $[38] = rest;
126
+ $[39] = tabSize;
127
+ $[40] = trimAutoWhitespace;
128
+ $[41] = t6;
129
+ } else {
130
+ t6 = $[41];
131
+ }
132
+ t4 = _jsx(Editor, {
133
+ className: classes,
134
+ loading: _jsx(ShimmerEffect, {
135
+ height: dynamicHeight
136
+ }),
137
+ options: {
138
+ detectIndentation: false,
139
+ hideCursorInOverviewRuler: true,
140
+ insertSpaces: false,
141
+ minimap: {
142
+ enabled: false
143
+ },
144
+ overviewRulerBorder: false,
145
+ readOnly: Boolean(readOnly),
146
+ scrollbar: {
147
+ alwaysConsumeMouseWheel: false
148
+ },
149
+ scrollBeyondLastLine: false,
150
+ trimAutoWhitespace: false,
151
+ wordWrap: "on",
152
+ ...editorOptions
153
+ },
154
+ theme: theme === "dark" ? "vs-dark" : "vs",
155
+ ...rest,
156
+ height: maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight,
157
+ onChange: t5,
158
+ onMount: t6
159
+ });
160
+ $[18] = MIN_HEIGHT;
161
+ $[19] = classes;
162
+ $[20] = dynamicHeight;
163
+ $[21] = editorOptions;
164
+ $[22] = insertSpaces;
165
+ $[23] = maxHeight;
166
+ $[24] = paddingFromProps;
167
+ $[25] = readOnly;
168
+ $[26] = rest;
169
+ $[27] = tabSize;
170
+ $[28] = theme;
171
+ $[29] = trimAutoWhitespace;
172
+ $[30] = t4;
173
+ } else {
174
+ t4 = $[30];
175
+ }
176
+ return t4;
89
177
  };
90
178
  // eslint-disable-next-line no-restricted-exports
91
179
  export default CodeEditor;