@payloadcms/ui 3.57.0-internal.1d2ebbc → 3.57.0-internal.266049e

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 (136) hide show
  1. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FormsManager/index.js +4 -2
  3. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/index.d.ts +4 -3
  5. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  6. package/dist/elements/BulkUpload/index.js +41 -28
  7. package/dist/elements/BulkUpload/index.js.map +1 -1
  8. package/dist/elements/ConfirmationModal/index.d.ts.map +1 -1
  9. package/dist/elements/ConfirmationModal/index.js +1 -0
  10. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  11. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  12. package/dist/elements/DocumentLocked/index.js +41 -33
  13. package/dist/elements/DocumentLocked/index.js.map +1 -1
  14. package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentTakeOver/index.js +27 -19
  16. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  17. package/dist/elements/Drawer/index.d.ts.map +1 -1
  18. package/dist/elements/Drawer/index.js +1 -0
  19. package/dist/elements/Drawer/index.js.map +1 -1
  20. package/dist/elements/FullscreenModal/index.d.ts.map +1 -1
  21. package/dist/elements/FullscreenModal/index.js +1 -0
  22. package/dist/elements/FullscreenModal/index.js.map +1 -1
  23. package/dist/elements/LivePreview/IFrame/index.d.ts +1 -7
  24. package/dist/elements/LivePreview/IFrame/index.d.ts.map +1 -1
  25. package/dist/elements/LivePreview/IFrame/index.js +39 -18
  26. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  27. package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
  28. package/dist/elements/LivePreview/Window/index.js +135 -61
  29. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  30. package/dist/elements/PublishButton/index.js +1 -1
  31. package/dist/elements/PublishButton/index.js.map +1 -1
  32. package/dist/elements/SearchBar/index.scss +4 -0
  33. package/dist/elements/Status/index.d.ts.map +1 -1
  34. package/dist/elements/Status/index.js +1 -1
  35. package/dist/elements/Status/index.js.map +1 -1
  36. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  37. package/dist/elements/Table/DefaultCell/index.js +20 -14
  38. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  39. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  40. package/dist/elements/Table/RelationshipProvider/index.js +44 -28
  41. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  42. package/dist/elements/Thumbnail/index.d.ts +4 -2
  43. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  44. package/dist/elements/Thumbnail/index.js +6 -2
  45. package/dist/elements/Thumbnail/index.js.map +1 -1
  46. package/dist/elements/Thumbnail/index.scss +11 -9
  47. package/dist/elements/Toasts/fieldErrors.js +1 -1
  48. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  49. package/dist/exports/client/index.js +24 -24
  50. package/dist/exports/client/index.js.map +4 -4
  51. package/dist/exports/rsc/index.d.ts +1 -0
  52. package/dist/exports/rsc/index.d.ts.map +1 -1
  53. package/dist/exports/rsc/index.js +1 -0
  54. package/dist/exports/rsc/index.js.map +1 -1
  55. package/dist/exports/shared/index.js +2 -2
  56. package/dist/exports/shared/index.js.map +3 -3
  57. package/dist/fields/Blocks/index.d.ts.map +1 -1
  58. package/dist/fields/Blocks/index.js +36 -16
  59. package/dist/fields/Blocks/index.js.map +1 -1
  60. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  61. package/dist/fields/Relationship/Input.js +1 -5
  62. package/dist/fields/Relationship/Input.js.map +1 -1
  63. package/dist/fields/Upload/Input.js +20 -20
  64. package/dist/fields/Upload/Input.js.map +1 -1
  65. package/dist/forms/Form/index.js +1 -2
  66. package/dist/forms/Form/index.js.map +1 -1
  67. package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
  68. package/dist/forms/Form/mergeServerFormState.js +8 -0
  69. package/dist/forms/Form/mergeServerFormState.js.map +1 -1
  70. package/dist/forms/Form/types.d.ts +2 -2
  71. package/dist/forms/Form/types.d.ts.map +1 -1
  72. package/dist/forms/Form/types.js.map +1 -1
  73. package/dist/forms/RenderFields/RenderField.js +223 -236
  74. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  75. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  76. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +33 -2
  77. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  78. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  79. package/dist/forms/fieldSchemasToFormState/renderField.js +2 -1
  80. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  81. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -1
  82. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +2 -0
  83. package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -1
  84. package/dist/forms/fieldSchemasToFormState/types.d.ts +6 -0
  85. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  86. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  87. package/dist/forms/useField/index.d.ts.map +1 -1
  88. package/dist/forms/useField/index.js +76 -73
  89. package/dist/forms/useField/index.js.map +1 -1
  90. package/dist/forms/useField/types.d.ts +5 -9
  91. package/dist/forms/useField/types.d.ts.map +1 -1
  92. package/dist/forms/useField/types.js.map +1 -1
  93. package/dist/providers/LivePreview/context.d.ts +17 -2
  94. package/dist/providers/LivePreview/context.d.ts.map +1 -1
  95. package/dist/providers/LivePreview/context.js +3 -2
  96. package/dist/providers/LivePreview/context.js.map +1 -1
  97. package/dist/providers/LivePreview/index.d.ts +2 -2
  98. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  99. package/dist/providers/LivePreview/index.js +33 -19
  100. package/dist/providers/LivePreview/index.js.map +1 -1
  101. package/dist/providers/TableColumns/buildColumnState/index.d.ts +2 -1
  102. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  103. package/dist/providers/TableColumns/buildColumnState/index.js +2 -0
  104. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  105. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts +3 -2
  106. package/dist/providers/TableColumns/buildColumnState/renderCell.d.ts.map +1 -1
  107. package/dist/providers/TableColumns/buildColumnState/renderCell.js +39 -2
  108. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  109. package/dist/styles.css +1 -1
  110. package/dist/utilities/buildFormState.d.ts +2 -0
  111. package/dist/utilities/buildFormState.d.ts.map +1 -1
  112. package/dist/utilities/buildFormState.js +20 -1
  113. package/dist/utilities/buildFormState.js.map +1 -1
  114. package/dist/utilities/formatAbsoluteURL.d.ts +8 -0
  115. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -0
  116. package/dist/utilities/formatAbsoluteURL.js +15 -0
  117. package/dist/utilities/formatAbsoluteURL.js.map +1 -0
  118. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
  119. package/dist/utilities/getFolderResultsComponentAndData.js +0 -4
  120. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  121. package/dist/utilities/handleLivePreview.d.ts +58 -0
  122. package/dist/utilities/handleLivePreview.d.ts.map +1 -0
  123. package/dist/utilities/handleLivePreview.js +96 -0
  124. package/dist/utilities/handleLivePreview.js.map +1 -0
  125. package/dist/utilities/handleTakeOver.d.ts +17 -4
  126. package/dist/utilities/handleTakeOver.d.ts.map +1 -1
  127. package/dist/utilities/handleTakeOver.js +18 -2
  128. package/dist/utilities/handleTakeOver.js.map +1 -1
  129. package/dist/utilities/renderTable.d.ts +3 -2
  130. package/dist/utilities/renderTable.d.ts.map +1 -1
  131. package/dist/utilities/renderTable.js +2 -0
  132. package/dist/utilities/renderTable.js.map +1 -1
  133. package/dist/views/Edit/index.d.ts.map +1 -1
  134. package/dist/views/Edit/index.js +48 -13
  135. package/dist/views/Edit/index.js.map +1 -1
  136. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,IAAI,EACJ,aAAa,EACb,SAAS,EAET,4BAA4B,EAC5B,WAAW,EACZ,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAgBzC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,EAAE,CACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAA;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,sBAAsB,EAAE,CAAC,EAChC,UAAU,EACV,KAAK,GACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CACxD,CAAA;AA6BD,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAChC,CAAC,CAAA;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBAghBnE;AAED,wBAAgB,eAAe,wBAE9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,IAAI,EACJ,aAAa,EACb,SAAS,EAET,4BAA4B,EAC5B,WAAW,EACZ,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAgBzC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxD,QAAQ,CAAC,cAAc,EAAE,CACvB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,gBAAgB,CAAC,EAAE,MAAM,IAAI,KAC1B,OAAO,CAAC,IAAI,CAAC,CAAA;IAClB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,4BAA4B,CAAA;IACtD,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAA;IACtC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,sBAAsB,EAAE,CAAC,EAChC,UAAU,EACV,KAAK,GACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAA;CACxD,CAAA;AA6BD,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC;IAC/B,IAAI,EAAE,IAAI,CAAA;IACV,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,YAAY,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;CAChC,CAAC,CAAA;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,qBAmhBnE;AAED,wBAAgB,eAAe,wBAE9B"}
@@ -100,7 +100,8 @@ export function FormsManagerProvider({
100
100
  initialForms,
101
101
  onSuccess,
102
102
  setInitialFiles,
103
- setInitialForms
103
+ setInitialForms,
104
+ setSuccessfullyUploaded
104
105
  } = useBulkUpload();
105
106
  const [isUploading, setIsUploading] = React.useState(false);
106
107
  const [loadingText, setLoadingText] = React.useState('');
@@ -352,6 +353,7 @@ export function FormsManagerProvider({
352
353
  const errorCount_1 = currentForms.length - successCount;
353
354
  if (successCount) {
354
355
  toast.success(`Successfully saved ${successCount} files`);
356
+ setSuccessfullyUploaded(true);
355
357
  if (typeof onSuccess === 'function') {
356
358
  onSuccess(newDocs, errorCount_1);
357
359
  }
@@ -375,7 +377,7 @@ export function FormsManagerProvider({
375
377
  setInitialFiles(undefined);
376
378
  setInitialForms(undefined);
377
379
  }
378
- }, [forms, activeIndex, t, actionURL, code, collectionSlug, getUploadHandler, onSuccess, closeModal, drawerSlug, setInitialFiles, setInitialForms]);
380
+ }, [forms, activeIndex, t, actionURL, code, collectionSlug, getUploadHandler, onSuccess, closeModal, setSuccessfullyUploaded, drawerSlug, setInitialFiles, setInitialForms]);
379
381
  const bulkUpdateForm = React.useCallback(async (updatedFields, afterStateUpdate) => {
380
382
  for (let i_2 = 0; i_2 < forms.length; i_2++) {
381
383
  Object.entries(updatedFields).forEach(([path, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useEffectEvent","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","initialForms","onSuccess","setInitialFiles","setInitialForms","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","type","map","form","i","errorCount","formID","formState","uploadEdits","files","length","isLoading","key","Array","from","file","addFilesEffectEvent","addInitialForms","count","overrides","currentForms","newDocs","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","isArray","data","forEach","dataError","path","error","_","remainingForms","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","value","newFormErrorCount","values","valid","resetUploadEdits","useEffect","_jsxs","_jsx","animationDuration","overlayType","show","useFormsManager","use"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n CollectionSlug,\n Data,\n DocumentSlots,\n FormState,\n JsonObject,\n SanitizedDocumentPermissions,\n UploadEdits,\n} from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly resetUploadEdits?: () => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly totalErrorCount?: number\n readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n totalErrorCount: 0,\n updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\nexport type InitialForms = Array<{\n file: File\n formID?: string\n initialState?: FormState | null\n}>\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const {\n collectionSlug,\n drawerSlug,\n initialFiles,\n initialForms,\n onSuccess,\n setInitialFiles,\n setInitialForms,\n } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${serverURL}${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formID: form.formID,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n if (forms.length) {\n // save the state of the current form before adding new files\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: getFormDataRef.current(),\n index: activeIndex,\n })\n }\n\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({\n type: 'ADD_FORMS',\n forms: Array.from(files).map((file) => ({\n file,\n initialState: initialStateRef.current,\n })),\n })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay, activeIndex, forms],\n )\n\n const addFilesEffectEvent = useEffectEvent(addFiles)\n\n const addInitialForms = useEffectEvent(async (initialForms: InitialForms) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n\n dispatch({\n type: 'ADD_FORMS',\n forms: initialForms.map((form) => ({\n ...form,\n initialState: form?.initialState || initialStateRef.current,\n })),\n })\n\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n })\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formID: currentForms[activeIndex].formID,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }> = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n locale: code,\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\n credentials: 'include',\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push({\n collectionSlug,\n doc: json.doc,\n formID: form.formID,\n })\n }\n\n // should expose some sort of helper for this\n const [fieldErrors, nonFieldErrors] = (json?.errors || []).reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formID: currentForms[i].formID,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n }\n })\n\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n\n if (remainingForms.length === 0) {\n setInitialFiles(undefined)\n setInitialForms(undefined)\n }\n },\n [\n forms,\n activeIndex,\n t,\n actionURL,\n code,\n collectionSlug,\n getUploadHandler,\n onSuccess,\n closeModal,\n drawerSlug,\n setInitialFiles,\n setInitialForms,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles || initialForms) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (\n hasInitializedState &&\n (initialForms?.length || initialFiles?.length) &&\n !hasInitializedWithFiles.current\n ) {\n if (initialForms?.length) {\n void addInitialForms(initialForms)\n }\n if (initialFiles?.length) {\n void addFilesEffectEvent(initialFiles)\n }\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n initialForms,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useModal","qs","React","toast","fieldReducer","useEffectEvent","useConfig","useLocale","useServerFunctions","useTranslation","useUploadHandlers","hasSavePermission","getHasSavePermission","LoadingOverlay","useLoadingOverlay","useBulkUpload","createFormData","formsManagementReducer","Context","createContext","activeIndex","addFiles","Promise","resolve","bulkUpdateForm","collectionSlug","docPermissions","undefined","documentSlots","forms","getFormDataRef","current","hasPublishPermission","hasSubmitted","isInitializing","removeFile","saveAllDocs","setActiveIndex","setFormTotalErrorCount","totalErrorCount","updateUploadEdits","initialState","FormsManagerProvider","children","config","routes","api","serverURL","code","i18n","t","getDocumentSlots","getFormState","getUploadHandler","setDocumentSlots","useState","setHasSubmitted","setDocPermissions","setHasSavePermission","setHasPublishPermission","hasInitializedState","setHasInitializedState","hasInitializedDocPermissions","setHasInitializedDocPermissions","setIsInitializing","state","dispatch","useReducer","formsRef","useRef","toggleLoadingOverlay","closeModal","drawerSlug","initialFiles","initialForms","onSuccess","setInitialFiles","setInitialForms","setSuccessfullyUploaded","isUploading","setIsUploading","loadingText","setLoadingText","hasInitializedWithFiles","initialStateRef","actionURL","initializeSharedDocPermissions","useCallback","params","locale","docAccessURL","res","fetch","stringify","credentials","headers","language","method","json","publishedAccessJSON","body","JSON","_status","then","isEditing","update","initializeSharedFormState","abortController","signal","abort","formStateWithoutFiles","docPreferences","fields","operation","renderAllFields","schemaPath","skipValidation","_err","index","currentFormsData","type","map","form","i","errorCount","formID","formState","uploadEdits","files","length","isLoading","key","Array","from","file","addFilesEffectEvent","addInitialForms","count","overrides","currentForms","newDocs","total","actionURLWithParams","addQueryPrefix","req","status","doc","push","fieldErrors","nonFieldErrors","errors","reduce","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","message","isArray","data","forEach","dataError","path","error","_","remainingForms","successCount","Math","max","success","acc","updatedFields","afterStateUpdate","Object","entries","value","newFormErrorCount","values","valid","resetUploadEdits","useEffect","_jsxs","_jsx","animationDuration","overlayType","show","useFormsManager","use"],"sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n CollectionSlug,\n Data,\n DocumentSlots,\n FormState,\n JsonObject,\n SanitizedDocumentPermissions,\n UploadEdits,\n} from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport type { State } from './reducer.js'\n\nimport { fieldReducer } from '../../../forms/Form/fieldReducer.js'\nimport { useEffectEvent } from '../../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useLocale } from '../../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../../providers/UploadHandlers/index.js'\nimport { hasSavePermission as getHasSavePermission } from '../../../utilities/hasSavePermission.js'\nimport { LoadingOverlay } from '../../Loading/index.js'\nimport { useLoadingOverlay } from '../../LoadingOverlay/index.js'\nimport { useBulkUpload } from '../index.js'\nimport { createFormData } from './createFormData.js'\nimport { formsManagementReducer } from './reducer.js'\n\ntype FormsManagerContext = {\n readonly activeIndex: State['activeIndex']\n readonly addFiles: (filelist: FileList) => Promise<void>\n readonly bulkUpdateForm: (\n updatedFields: Record<string, unknown>,\n afterStateUpdate?: () => void,\n ) => Promise<void>\n readonly collectionSlug: string\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly documentSlots: DocumentSlots\n readonly forms: State['forms']\n getFormDataRef: React.RefObject<() => Data>\n readonly hasPublishPermission: boolean\n readonly hasSavePermission: boolean\n readonly hasSubmitted: boolean\n readonly isInitializing: boolean\n readonly removeFile: (index: number) => void\n readonly resetUploadEdits?: () => void\n readonly saveAllDocs: ({ overrides }?: { overrides?: Record<string, unknown> }) => Promise<void>\n readonly setActiveIndex: (index: number) => void\n readonly setFormTotalErrorCount: ({\n errorCount,\n index,\n }: {\n errorCount: number\n index: number\n }) => void\n readonly totalErrorCount?: number\n readonly updateUploadEdits: (args: UploadEdits) => void\n}\n\nconst Context = React.createContext<FormsManagerContext>({\n activeIndex: 0,\n addFiles: () => Promise.resolve(),\n bulkUpdateForm: () => null,\n collectionSlug: '',\n docPermissions: undefined,\n documentSlots: {},\n forms: [],\n getFormDataRef: { current: () => ({}) },\n hasPublishPermission: false,\n hasSavePermission: false,\n hasSubmitted: false,\n isInitializing: false,\n removeFile: () => {},\n saveAllDocs: () => Promise.resolve(),\n setActiveIndex: () => 0,\n setFormTotalErrorCount: () => {},\n totalErrorCount: 0,\n updateUploadEdits: () => {},\n})\n\nconst initialState: State = {\n activeIndex: 0,\n forms: [],\n totalErrorCount: 0,\n}\n\nexport type InitialForms = Array<{\n file: File\n formID?: string\n initialState?: FormState | null\n}>\n\ntype FormsManagerProps = {\n readonly children: React.ReactNode\n}\n\nexport function FormsManagerProvider({ children }: FormsManagerProps) {\n const { config } = useConfig()\n const {\n routes: { api },\n serverURL,\n } = config\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const { getDocumentSlots, getFormState } = useServerFunctions()\n const { getUploadHandler } = useUploadHandlers()\n\n const [documentSlots, setDocumentSlots] = React.useState<DocumentSlots>({})\n const [hasSubmitted, setHasSubmitted] = React.useState(false)\n const [docPermissions, setDocPermissions] = React.useState<SanitizedDocumentPermissions>()\n const [hasSavePermission, setHasSavePermission] = React.useState(false)\n const [hasPublishPermission, setHasPublishPermission] = React.useState(false)\n const [hasInitializedState, setHasInitializedState] = React.useState(false)\n const [hasInitializedDocPermissions, setHasInitializedDocPermissions] = React.useState(false)\n const [isInitializing, setIsInitializing] = React.useState(false)\n const [state, dispatch] = React.useReducer(formsManagementReducer, initialState)\n const { activeIndex, forms, totalErrorCount } = state\n\n const formsRef = React.useRef(forms)\n formsRef.current = forms\n\n const { toggleLoadingOverlay } = useLoadingOverlay()\n const { closeModal } = useModal()\n const {\n collectionSlug,\n drawerSlug,\n initialFiles,\n initialForms,\n onSuccess,\n setInitialFiles,\n setInitialForms,\n setSuccessfullyUploaded,\n } = useBulkUpload()\n\n const [isUploading, setIsUploading] = React.useState(false)\n const [loadingText, setLoadingText] = React.useState('')\n\n const hasInitializedWithFiles = React.useRef(false)\n const initialStateRef = React.useRef<FormState>(null)\n const getFormDataRef = React.useRef<() => Data>(() => ({}))\n\n const actionURL = `${serverURL}${api}/${collectionSlug}`\n\n const initializeSharedDocPermissions = React.useCallback(async () => {\n const params = {\n locale: code || undefined,\n }\n\n const docAccessURL = `/${collectionSlug}/access`\n const res = await fetch(`${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n const json: SanitizedDocumentPermissions = await res.json()\n const publishedAccessJSON = await fetch(\n `${serverURL}${api}${docAccessURL}?${qs.stringify(params)}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'POST',\n },\n ).then((res) => res.json())\n\n setDocPermissions(json)\n\n setHasSavePermission(\n getHasSavePermission({\n collectionSlug,\n docPermissions: json,\n isEditing: false,\n }),\n )\n\n setHasPublishPermission(publishedAccessJSON?.update)\n setHasInitializedDocPermissions(true)\n }, [api, code, collectionSlug, i18n.language, serverURL])\n\n const initializeSharedFormState = React.useCallback(\n async (abortController?: AbortController) => {\n if (abortController?.signal) {\n abortController.abort('aborting previous fetch for initial form state without files')\n }\n\n // FETCH AND SET THE DOCUMENT SLOTS HERE!\n const documentSlots = await getDocumentSlots({ collectionSlug })\n setDocumentSlots(documentSlots)\n\n try {\n const { state: formStateWithoutFiles } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: { fields: {} },\n locale: code,\n operation: 'create',\n renderAllFields: true,\n schemaPath: collectionSlug,\n skipValidation: true,\n })\n initialStateRef.current = formStateWithoutFiles\n setHasInitializedState(true)\n } catch (_err) {\n // swallow error\n }\n },\n [getDocumentSlots, collectionSlug, getFormState, docPermissions, code],\n )\n\n const setActiveIndex: FormsManagerContext['setActiveIndex'] = React.useCallback(\n (index: number) => {\n const currentFormsData = getFormDataRef.current()\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: index,\n forms: forms.map((form, i) => {\n if (i === activeIndex) {\n return {\n errorCount: form.errorCount,\n formID: form.formID,\n formState: currentFormsData,\n uploadEdits: form.uploadEdits,\n }\n }\n return form\n }),\n },\n })\n },\n [forms, activeIndex],\n )\n\n const addFiles = React.useCallback(\n async (files: FileList) => {\n if (forms.length) {\n // save the state of the current form before adding new files\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: getFormDataRef.current(),\n index: activeIndex,\n })\n }\n\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n dispatch({\n type: 'ADD_FORMS',\n forms: Array.from(files).map((file) => ({\n file,\n initialState: initialStateRef.current,\n })),\n })\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n },\n [initializeSharedFormState, hasInitializedState, toggleLoadingOverlay, activeIndex, forms],\n )\n\n const addFilesEffectEvent = useEffectEvent(addFiles)\n\n const addInitialForms = useEffectEvent(async (initialForms: InitialForms) => {\n toggleLoadingOverlay({ isLoading: true, key: 'addingDocs' })\n\n if (!hasInitializedState) {\n await initializeSharedFormState()\n }\n\n dispatch({\n type: 'ADD_FORMS',\n forms: initialForms.map((form) => ({\n ...form,\n initialState: form?.initialState || initialStateRef.current,\n })),\n })\n\n toggleLoadingOverlay({ isLoading: false, key: 'addingDocs' })\n })\n\n const removeFile: FormsManagerContext['removeFile'] = React.useCallback((index) => {\n dispatch({ type: 'REMOVE_FORM', index })\n }, [])\n\n const setFormTotalErrorCount: FormsManagerContext['setFormTotalErrorCount'] = React.useCallback(\n ({ errorCount, index }) => {\n dispatch({\n type: 'UPDATE_ERROR_COUNT',\n count: errorCount,\n index,\n })\n },\n [],\n )\n\n const saveAllDocs: FormsManagerContext['saveAllDocs'] = React.useCallback(\n async ({ overrides } = {}) => {\n const currentFormsData = getFormDataRef.current()\n const currentForms = [...forms]\n currentForms[activeIndex] = {\n errorCount: currentForms[activeIndex].errorCount,\n formID: currentForms[activeIndex].formID,\n formState: currentFormsData,\n uploadEdits: currentForms[activeIndex].uploadEdits,\n }\n const newDocs: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }> = []\n\n setIsUploading(true)\n\n for (let i = 0; i < currentForms.length; i++) {\n try {\n const form = currentForms[i]\n\n setLoadingText(t('general:uploadingBulk', { current: i + 1, total: currentForms.length }))\n\n const actionURLWithParams = `${actionURL}${qs.stringify(\n {\n locale: code,\n uploadEdits: form?.uploadEdits || undefined,\n },\n {\n addQueryPrefix: true,\n },\n )}`\n\n const req = await fetch(actionURLWithParams, {\n body: await createFormData(\n form.formState,\n overrides,\n collectionSlug,\n getUploadHandler({ collectionSlug }),\n ),\n credentials: 'include',\n method: 'POST',\n })\n\n const json = await req.json()\n\n if (req.status === 201 && json?.doc) {\n newDocs.push({\n collectionSlug,\n doc: json.doc,\n formID: form.formID,\n })\n }\n\n // should expose some sort of helper for this\n const [fieldErrors, nonFieldErrors] = (json?.errors || []).reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs: any[] = []\n const newNonFieldErrs: any[] = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n currentForms[i] = {\n errorCount: fieldErrors.length,\n formID: currentForms[i].formID,\n formState: fieldReducer(currentForms[i].formState, {\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n }),\n }\n\n if (req.status === 413 || req.status === 400) {\n // file too large\n currentForms[i] = {\n ...currentForms[i],\n errorCount: currentForms[i].errorCount + 1,\n }\n\n toast.error(nonFieldErrors[0]?.message)\n }\n } catch (_) {\n // swallow\n }\n }\n\n setHasSubmitted(true)\n setLoadingText('')\n setIsUploading(false)\n\n const remainingForms = []\n\n currentForms.forEach(({ errorCount }, i) => {\n if (errorCount) {\n remainingForms.push(currentForms[i])\n }\n })\n\n const successCount = Math.max(0, currentForms.length - remainingForms.length)\n const errorCount = currentForms.length - successCount\n\n if (successCount) {\n toast.success(`Successfully saved ${successCount} files`)\n setSuccessfullyUploaded(true)\n\n if (typeof onSuccess === 'function') {\n onSuccess(newDocs, errorCount)\n }\n }\n\n if (errorCount) {\n toast.error(`Failed to save ${errorCount} files`)\n } else {\n closeModal(drawerSlug)\n }\n\n dispatch({\n type: 'REPLACE',\n state: {\n activeIndex: 0,\n forms: remainingForms,\n totalErrorCount: remainingForms.reduce((acc, { errorCount }) => acc + errorCount, 0),\n },\n })\n\n if (remainingForms.length === 0) {\n setInitialFiles(undefined)\n setInitialForms(undefined)\n }\n },\n [\n forms,\n activeIndex,\n t,\n actionURL,\n code,\n collectionSlug,\n getUploadHandler,\n onSuccess,\n closeModal,\n setSuccessfullyUploaded,\n drawerSlug,\n setInitialFiles,\n setInitialForms,\n ],\n )\n\n const bulkUpdateForm = React.useCallback(\n async (updatedFields: Record<string, unknown>, afterStateUpdate?: () => void) => {\n for (let i = 0; i < forms.length; i++) {\n Object.entries(updatedFields).forEach(([path, value]) => {\n if (forms[i].formState[path]) {\n forms[i].formState[path].value = value\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[i].errorCount,\n formState: forms[i].formState,\n index: i,\n })\n }\n })\n\n if (typeof afterStateUpdate === 'function') {\n afterStateUpdate()\n }\n\n if (hasSubmitted) {\n const { state } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences: null,\n formState: forms[i].formState,\n operation: 'create',\n schemaPath: collectionSlug,\n })\n\n const newFormErrorCount = Object.values(state).reduce(\n (acc, value) => (value?.valid === false ? acc + 1 : acc),\n 0,\n )\n\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: newFormErrorCount,\n formState: state,\n index: i,\n })\n }\n }\n },\n [collectionSlug, docPermissions, forms, getFormState, hasSubmitted],\n )\n\n const updateUploadEdits = React.useCallback<FormsManagerContext['updateUploadEdits']>(\n (uploadEdits) => {\n dispatch({\n type: 'UPDATE_FORM',\n errorCount: forms[activeIndex].errorCount,\n formState: forms[activeIndex].formState,\n index: activeIndex,\n uploadEdits,\n })\n },\n [activeIndex, forms],\n )\n\n const resetUploadEdits = React.useCallback<FormsManagerContext['resetUploadEdits']>(() => {\n dispatch({\n type: 'REPLACE',\n state: {\n forms: forms.map((form) => ({\n ...form,\n uploadEdits: {},\n })),\n },\n })\n }, [forms])\n\n React.useEffect(() => {\n if (!collectionSlug) {\n return\n }\n if (!hasInitializedState) {\n void initializeSharedFormState()\n }\n\n if (!hasInitializedDocPermissions) {\n void initializeSharedDocPermissions()\n }\n\n if (initialFiles || initialForms) {\n if (!hasInitializedState || !hasInitializedDocPermissions) {\n setIsInitializing(true)\n } else {\n setIsInitializing(false)\n }\n }\n\n if (\n hasInitializedState &&\n (initialForms?.length || initialFiles?.length) &&\n !hasInitializedWithFiles.current\n ) {\n if (initialForms?.length) {\n void addInitialForms(initialForms)\n }\n if (initialFiles?.length) {\n void addFilesEffectEvent(initialFiles)\n }\n hasInitializedWithFiles.current = true\n }\n return\n }, [\n initialFiles,\n initializeSharedFormState,\n initializeSharedDocPermissions,\n collectionSlug,\n hasInitializedState,\n hasInitializedDocPermissions,\n initialForms,\n ])\n\n return (\n <Context\n value={{\n activeIndex: state.activeIndex,\n addFiles,\n bulkUpdateForm,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n getFormDataRef,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n isInitializing,\n removeFile,\n resetUploadEdits,\n saveAllDocs,\n setActiveIndex,\n setFormTotalErrorCount,\n totalErrorCount,\n updateUploadEdits,\n }}\n >\n {isUploading && (\n <LoadingOverlay\n animationDuration=\"250ms\"\n loadingText={loadingText}\n overlayType=\"fullscreen\"\n show\n />\n )}\n {children}\n </Context>\n )\n}\n\nexport function useFormsManager() {\n return React.use(Context)\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,7 @@ export type BulkUploadProps = {
5
5
  readonly children: React.ReactNode;
6
6
  };
7
7
  export declare function BulkUploadDrawer(): React.JSX.Element;
8
- type BulkUploadContext = {
8
+ export type BulkUploadContext = {
9
9
  collectionSlug: CollectionSlug;
10
10
  drawerSlug: string;
11
11
  initialFiles: FileList;
@@ -15,7 +15,7 @@ type BulkUploadContext = {
15
15
  initialForms: InitialForms;
16
16
  maxFiles: number;
17
17
  onCancel: () => void;
18
- onSuccess: (newDocs: Array<{
18
+ onSuccess: (uploadedForms: Array<{
19
19
  collectionSlug: CollectionSlug;
20
20
  doc: JsonObject;
21
21
  /**
@@ -40,6 +40,8 @@ type BulkUploadContext = {
40
40
  * @default null - collection cannot be selected
41
41
  */
42
42
  setSelectableCollections: (collections: null | string[]) => void;
43
+ setSuccessfullyUploaded: (successfullyUploaded: boolean) => void;
44
+ successfullyUploaded: boolean;
43
45
  };
44
46
  export declare function BulkUploadProvider({ children, drawerSlugPrefix, }: {
45
47
  readonly children: React.ReactNode;
@@ -47,5 +49,4 @@ export declare function BulkUploadProvider({ children, drawerSlugPrefix, }: {
47
49
  }): React.JSX.Element;
48
50
  export declare const useBulkUpload: () => BulkUploadContext;
49
51
  export declare function useBulkUploadDrawerSlug(): string;
50
- export {};
51
52
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/BulkUpload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,EAAwB,KAAK,YAAY,EAAmB,MAAM,yBAAyB,CAAA;AAqDlG,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,gBAAgB,sBAuD/B;AAED,KAAK,iBAAiB,GAAG;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,QAAQ,CAAA;IACtB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CACT,OAAO,EAAE,KAAK,CAAC;QACb,cAAc,EAAE,cAAc,CAAA;QAC9B,GAAG,EAAE,UAAU,CAAA;QACf;;WAEG;QACH,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,EACF,UAAU,EAAE,MAAM,KACf,IAAI,CAAA;IACT;;;OAGG;IACH,qBAAqB,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAA;IACvC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC1C,eAAe,EAAE,CACf,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,KAAK,YAAY,GAAG,SAAS,CAAC,GAAG,YAAY,KAClF,IAAI,CAAA;IACT,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC9D,YAAY,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;IACjE;;;;OAIG;IACH,wBAAwB,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,IAAI,CAAA;CACjE,CAAA;AAmBD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC,qBAmDA;AAED,eAAO,MAAM,aAAa,yBAA2B,CAAA;AAErD,wBAAgB,uBAAuB,WAItC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/BulkUpload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,KAAoB,MAAM,OAAO,CAAA;AAWxC,OAAO,EAAwB,KAAK,YAAY,EAAmB,MAAM,yBAAyB,CAAA;AAqDlG,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,CAAA;AAED,wBAAgB,gBAAgB,sBA+D/B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,cAAc,CAAA;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,QAAQ,CAAA;IACtB;;OAEG;IACH,YAAY,EAAE,YAAY,CAAA;IAC1B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CACT,aAAa,EAAE,KAAK,CAAC;QACnB,cAAc,EAAE,cAAc,CAAA;QAC9B,GAAG,EAAE,UAAU,CAAA;QACf;;WAEG;QACH,MAAM,EAAE,MAAM,CAAA;KACf,CAAC,EACF,UAAU,EAAE,MAAM,KACf,IAAI,CAAA;IACT;;;OAGG;IACH,qBAAqB,CAAC,EAAE,IAAI,GAAG,MAAM,EAAE,CAAA;IACvC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC1C,eAAe,EAAE,CACf,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,KAAK,YAAY,GAAG,SAAS,CAAC,GAAG,YAAY,KAClF,IAAI,CAAA;IACT,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACvC,WAAW,EAAE,CAAC,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,KAAK,IAAI,CAAA;IAC9D,YAAY,EAAE,CAAC,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;IACjE;;;;OAIG;IACH,wBAAwB,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,MAAM,EAAE,KAAK,IAAI,CAAA;IAChE,uBAAuB,EAAE,CAAC,oBAAoB,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,oBAAoB,EAAE,OAAO,CAAA;CAC9B,CAAA;AAqBD,wBAAgB,kBAAkB,CAAC,EACjC,QAAQ,EACR,gBAAgB,GACjB,EAAE;IACD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CACnC,qBAuDA;AAED,eAAO,MAAM,aAAa,yBAA2B,CAAA;AAErD,wBAAgB,uBAAuB,WAItC"}
@@ -67,7 +67,7 @@ function DrawerContent() {
67
67
  }
68
68
  }
69
69
  export function BulkUploadDrawer() {
70
- const $ = _c(15);
70
+ const $ = _c(17);
71
71
  const {
72
72
  drawerSlug,
73
73
  onCancel,
@@ -75,14 +75,16 @@ export function BulkUploadDrawer() {
75
75
  setInitialForms,
76
76
  setOnCancel,
77
77
  setOnSuccess,
78
- setSelectableCollections
78
+ setSelectableCollections,
79
+ setSuccessfullyUploaded,
80
+ successfullyUploaded
79
81
  } = useBulkUpload();
80
82
  const {
81
83
  modalState
82
84
  } = useModal();
83
85
  const previousModalStateRef = React.useRef(modalState);
84
86
  let t0;
85
- if ($[0] !== drawerSlug || $[1] !== onCancel || $[2] !== setInitialFiles || $[3] !== setInitialForms || $[4] !== setOnCancel || $[5] !== setOnSuccess || $[6] !== setSelectableCollections) {
87
+ if ($[0] !== drawerSlug || $[1] !== onCancel || $[2] !== setInitialFiles || $[3] !== setInitialForms || $[4] !== setOnCancel || $[5] !== setOnSuccess || $[6] !== setSelectableCollections || $[7] !== setSuccessfullyUploaded || $[8] !== successfullyUploaded) {
86
88
  t0 = modalState_0 => {
87
89
  const previousModalState = previousModalStateRef.current[drawerSlug];
88
90
  const currentModalState = modalState_0[drawerSlug];
@@ -91,14 +93,17 @@ export function BulkUploadDrawer() {
91
93
  }
92
94
  if (previousModalState?.isOpen !== currentModalState?.isOpen) {
93
95
  if (!currentModalState?.isOpen) {
94
- if (typeof onCancel === "function") {
95
- onCancel();
96
+ if (!successfullyUploaded) {
97
+ if (typeof onCancel === "function") {
98
+ onCancel();
99
+ }
96
100
  }
97
101
  setInitialFiles(undefined);
98
102
  setInitialForms(undefined);
99
103
  setOnCancel(_temp2);
100
104
  setOnSuccess(_temp4);
101
105
  setSelectableCollections(null);
106
+ setSuccessfullyUploaded(false);
102
107
  }
103
108
  }
104
109
  previousModalStateRef.current = modalState_0;
@@ -110,33 +115,35 @@ export function BulkUploadDrawer() {
110
115
  $[4] = setOnCancel;
111
116
  $[5] = setOnSuccess;
112
117
  $[6] = setSelectableCollections;
113
- $[7] = t0;
118
+ $[7] = setSuccessfullyUploaded;
119
+ $[8] = successfullyUploaded;
120
+ $[9] = t0;
114
121
  } else {
115
- t0 = $[7];
122
+ t0 = $[9];
116
123
  }
117
124
  const onModalStateChanged = useEffectEvent(t0);
118
125
  let t1;
119
- if ($[8] !== modalState || $[9] !== onModalStateChanged) {
126
+ if ($[10] !== modalState || $[11] !== onModalStateChanged) {
120
127
  t1 = () => {
121
128
  onModalStateChanged(modalState);
122
129
  };
123
- $[8] = modalState;
124
- $[9] = onModalStateChanged;
125
- $[10] = t1;
130
+ $[10] = modalState;
131
+ $[11] = onModalStateChanged;
132
+ $[12] = t1;
126
133
  } else {
127
- t1 = $[10];
134
+ t1 = $[12];
128
135
  }
129
136
  let t2;
130
- if ($[11] !== modalState) {
137
+ if ($[13] !== modalState) {
131
138
  t2 = [modalState];
132
- $[11] = modalState;
133
- $[12] = t2;
139
+ $[13] = modalState;
140
+ $[14] = t2;
134
141
  } else {
135
- t2 = $[12];
142
+ t2 = $[14];
136
143
  }
137
144
  useEffect(t1, t2);
138
145
  let t3;
139
- if ($[13] !== drawerSlug) {
146
+ if ($[15] !== drawerSlug) {
140
147
  t3 = _jsx(Drawer, {
141
148
  gutter: false,
142
149
  Header: null,
@@ -149,10 +156,10 @@ export function BulkUploadDrawer() {
149
156
  })
150
157
  })
151
158
  });
152
- $[13] = drawerSlug;
153
- $[14] = t3;
159
+ $[15] = drawerSlug;
160
+ $[16] = t3;
154
161
  } else {
155
- t3 = $[14];
162
+ t3 = $[16];
156
163
  }
157
164
  return t3;
158
165
  }
@@ -183,10 +190,12 @@ const Context = /*#__PURE__*/React.createContext({
183
190
  setMaxFiles: () => null,
184
191
  setOnCancel: () => null,
185
192
  setOnSuccess: () => null,
186
- setSelectableCollections: () => null
193
+ setSelectableCollections: () => null,
194
+ setSuccessfullyUploaded: () => false,
195
+ successfullyUploaded: false
187
196
  });
188
197
  export function BulkUploadProvider(t0) {
189
- const $ = _c(16);
198
+ const $ = _c(17);
190
199
  const {
191
200
  children,
192
201
  drawerSlugPrefix
@@ -198,6 +207,7 @@ export function BulkUploadProvider(t0) {
198
207
  const [initialFiles, setInitialFiles] = React.useState(undefined);
199
208
  const [initialForms, setInitialForms] = React.useState(undefined);
200
209
  const [maxFiles, setMaxFiles] = React.useState(undefined);
210
+ const [successfullyUploaded, setSuccessfullyUploaded] = React.useState(false);
201
211
  const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ""}${useBulkUploadDrawerSlug()}`;
202
212
  let t1;
203
213
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
@@ -244,7 +254,7 @@ export function BulkUploadProvider(t0) {
244
254
  t4 = $[5];
245
255
  }
246
256
  let t5;
247
- if ($[6] !== children || $[7] !== collection || $[8] !== drawerSlug || $[9] !== initialFiles || $[10] !== initialForms || $[11] !== maxFiles || $[12] !== selectableCollections || $[13] !== t3 || $[14] !== t4) {
257
+ if ($[6] !== children || $[7] !== collection || $[8] !== drawerSlug || $[9] !== initialFiles || $[10] !== initialForms || $[11] !== maxFiles || $[12] !== selectableCollections || $[13] !== successfullyUploaded || $[14] !== t3 || $[15] !== t4) {
248
258
  t5 = _jsx(Context, {
249
259
  value: {
250
260
  collectionSlug: collection,
@@ -261,7 +271,9 @@ export function BulkUploadProvider(t0) {
261
271
  setMaxFiles,
262
272
  setOnCancel,
263
273
  setOnSuccess,
264
- setSelectableCollections
274
+ setSelectableCollections,
275
+ setSuccessfullyUploaded,
276
+ successfullyUploaded
265
277
  },
266
278
  children: _jsxs(React.Fragment, {
267
279
  children: [children, _jsx(BulkUploadDrawer, {})]
@@ -274,11 +286,12 @@ export function BulkUploadProvider(t0) {
274
286
  $[10] = initialForms;
275
287
  $[11] = maxFiles;
276
288
  $[12] = selectableCollections;
277
- $[13] = t3;
278
- $[14] = t4;
279
- $[15] = t5;
289
+ $[13] = successfullyUploaded;
290
+ $[14] = t3;
291
+ $[15] = t4;
292
+ $[16] = t5;
280
293
  } else {
281
- t5 = $[15];
294
+ t5 = $[16];
282
295
  }
283
296
  return t5;
284
297
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","useEffect","toast","useEffectEvent","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","setInitialFiles","setInitialForms","setOnCancel","setOnSuccess","setSelectableCollections","modalState","previousModalStateRef","useRef","t0","modalState_0","previousModalState","current","currentModalState","isOpen","_temp2","_temp4","onModalStateChanged","t1","t2","t3","gutter","Header","slug","children","_temp3","_temp","Context","createContext","initialFiles","initialForms","maxFiles","onSuccess","selectableCollections","setCollectionSlug","setMaxFiles","BulkUploadProvider","drawerSlugPrefix","useState","collection","setCollection","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","Symbol","for","t4","newDocs","errorCount","t5","value","_jsxs","Fragment","use","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, type InitialForms, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const {\n drawerSlug,\n onCancel,\n setInitialFiles,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n } = useBulkUpload()\n const { modalState } = useModal()\n const previousModalStateRef = React.useRef(modalState)\n\n /**\n * This is used to trigger onCancel when the drawer is closed (=> forms reset, as FormsManager is unmounted)\n */\n const onModalStateChanged = useEffectEvent((modalState) => {\n const previousModalState = previousModalStateRef.current[drawerSlug]\n const currentModalState = modalState[drawerSlug]\n\n if (typeof currentModalState === 'undefined' && typeof previousModalState === 'undefined') {\n return\n }\n\n if (previousModalState?.isOpen !== currentModalState?.isOpen) {\n if (!currentModalState?.isOpen) {\n if (typeof onCancel === 'function') {\n onCancel()\n }\n // Reset everything to defaults\n setInitialFiles(undefined)\n setInitialForms(undefined)\n setOnCancel(() => () => null)\n setOnSuccess(() => () => null)\n setSelectableCollections(null)\n }\n }\n previousModalStateRef.current = modalState\n })\n\n useEffect(() => {\n onModalStateChanged(modalState)\n }, [modalState])\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: CollectionSlug\n drawerSlug: string\n initialFiles: FileList\n /**\n * Like initialFiles, but allows manually providing initial form state or the form ID for each file\n */\n initialForms: InitialForms\n maxFiles: number\n onCancel: () => void\n onSuccess: (\n newDocs: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }>,\n errorCount: number,\n ) => void\n /**\n * An array of collection slugs that can be selected in the collection dropdown (if applicable)\n * @default null - collection cannot be selected\n */\n selectableCollections?: null | string[]\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setInitialForms: (\n forms: ((forms: InitialForms | undefined) => InitialForms | undefined) | InitialForms,\n ) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n /**\n * Set the collections that can be selected in the collection dropdown (if applicable)\n *\n * @default null - collection cannot be selected\n */\n setSelectableCollections: (collections: null | string[]) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n initialForms: [],\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n selectableCollections: null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setInitialForms: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n setSelectableCollections: () => null,\n})\nexport function BulkUploadProvider({\n children,\n drawerSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly drawerSlugPrefix?: string\n}) {\n const [selectableCollections, setSelectableCollections] = React.useState<null | string[]>(null)\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [initialForms, setInitialForms] = React.useState<InitialForms>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ''}${useBulkUploadDrawerSlug()}`\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n const setOnCancel: BulkUploadContext['setOnCancel'] = (onCancel) => {\n setOnCancelFunction(() => onCancel)\n }\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n initialForms,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (newDocs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(newDocs, errorCount)\n }\n },\n selectableCollections,\n setCollectionSlug: setCollection,\n setInitialFiles,\n setInitialForms,\n setMaxFiles,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","useEffect","toast","useEffectEvent","useConfig","EditDepthProvider","useTranslation","UploadControlsProvider","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","getEntityConfig","t","uploadCollection","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","setInitialFiles","setInitialForms","setOnCancel","setOnSuccess","setSelectableCollections","setSuccessfullyUploaded","successfullyUploaded","modalState","previousModalStateRef","useRef","t0","modalState_0","previousModalState","current","currentModalState","isOpen","_temp2","_temp4","onModalStateChanged","t1","t2","t3","gutter","Header","slug","children","_temp3","_temp","Context","createContext","initialFiles","initialForms","maxFiles","onSuccess","selectableCollections","setCollectionSlug","setMaxFiles","BulkUploadProvider","drawerSlugPrefix","useState","collection","setCollection","onSuccessFunction","setOnSuccessFunction","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","Symbol","for","t4","newDocs","errorCount","t5","value","_jsxs","Fragment","use","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React, { useEffect } from 'react'\nimport { toast } from 'sonner'\n\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider } from '../../providers/UploadControls/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, type InitialForms, useFormsManager } from './FormsManager/index.js'\n\nconst drawerSlug = 'bulk-upload-drawer-slug'\n\nfunction DrawerContent() {\n const { addFiles, forms, isInitializing } = useFormsManager()\n const { closeModal } = useModal()\n const { collectionSlug, drawerSlug } = useBulkUpload()\n const { getEntityConfig } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = getEntityConfig({ collectionSlug })\n const uploadConfig = uploadCollection?.upload\n const uploadMimeTypes = uploadConfig?.mimeTypes\n\n const onDrop = React.useCallback(\n (acceptedFiles: FileList) => {\n const fileTransfer = new DataTransfer()\n for (const candidateFile of acceptedFiles) {\n if (\n uploadMimeTypes === undefined ||\n uploadMimeTypes.length === 0 ||\n validateMimeType(candidateFile.type, uploadMimeTypes)\n ) {\n fileTransfer.items.add(candidateFile)\n }\n }\n if (fileTransfer.files.length === 0) {\n toast.error(t('error:invalidFileType'))\n } else {\n void addFiles(fileTransfer.files)\n }\n },\n [addFiles, t, uploadMimeTypes],\n )\n\n if (!collectionSlug) {\n return null\n }\n\n if (!forms.length && !isInitializing) {\n return (\n <AddFilesView\n acceptMimeTypes={uploadMimeTypes?.join(', ')}\n onCancel={() => closeModal(drawerSlug)}\n onDrop={onDrop}\n />\n )\n } else {\n return <AddingFilesView />\n }\n}\n\nexport type BulkUploadProps = {\n readonly children: React.ReactNode\n}\n\nexport function BulkUploadDrawer() {\n const {\n drawerSlug,\n onCancel,\n setInitialFiles,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n } = useBulkUpload()\n const { modalState } = useModal()\n const previousModalStateRef = React.useRef(modalState)\n\n /**\n * This is used to trigger onCancel when the drawer is closed (=> forms reset, as FormsManager is unmounted)\n */\n const onModalStateChanged = useEffectEvent((modalState) => {\n const previousModalState = previousModalStateRef.current[drawerSlug]\n const currentModalState = modalState[drawerSlug]\n\n if (typeof currentModalState === 'undefined' && typeof previousModalState === 'undefined') {\n return\n }\n\n if (previousModalState?.isOpen !== currentModalState?.isOpen) {\n if (!currentModalState?.isOpen) {\n if (!successfullyUploaded) {\n // It's only cancelled if successfullyUploaded is not set. Otherwise, this would simply be a modal close after success\n // => do not call cancel, just reset everything\n if (typeof onCancel === 'function') {\n onCancel()\n }\n }\n\n // Reset everything to defaults\n setInitialFiles(undefined)\n setInitialForms(undefined)\n setOnCancel(() => () => null)\n setOnSuccess(() => () => null)\n setSelectableCollections(null)\n setSuccessfullyUploaded(false)\n }\n }\n previousModalStateRef.current = modalState\n })\n\n useEffect(() => {\n onModalStateChanged(modalState)\n }, [modalState])\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <UploadControlsProvider>\n <EditDepthProvider>\n <DrawerContent />\n </EditDepthProvider>\n </UploadControlsProvider>\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\nexport type BulkUploadContext = {\n collectionSlug: CollectionSlug\n drawerSlug: string\n initialFiles: FileList\n /**\n * Like initialFiles, but allows manually providing initial form state or the form ID for each file\n */\n initialForms: InitialForms\n maxFiles: number\n onCancel: () => void\n onSuccess: (\n uploadedForms: Array<{\n collectionSlug: CollectionSlug\n doc: JsonObject\n /**\n * ID of the form that created this document\n */\n formID: string\n }>,\n errorCount: number,\n ) => void\n /**\n * An array of collection slugs that can be selected in the collection dropdown (if applicable)\n * @default null - collection cannot be selected\n */\n selectableCollections?: null | string[]\n setCollectionSlug: (slug: string) => void\n setInitialFiles: (files: FileList) => void\n setInitialForms: (\n forms: ((forms: InitialForms | undefined) => InitialForms | undefined) | InitialForms,\n ) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (onSuccess: BulkUploadContext['onSuccess']) => void\n /**\n * Set the collections that can be selected in the collection dropdown (if applicable)\n *\n * @default null - collection cannot be selected\n */\n setSelectableCollections: (collections: null | string[]) => void\n setSuccessfullyUploaded: (successfullyUploaded: boolean) => void\n successfullyUploaded: boolean\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n drawerSlug: '',\n initialFiles: undefined,\n initialForms: [],\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n selectableCollections: null,\n setCollectionSlug: () => null,\n setInitialFiles: () => null,\n setInitialForms: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n setSelectableCollections: () => null,\n setSuccessfullyUploaded: () => false,\n successfullyUploaded: false,\n})\nexport function BulkUploadProvider({\n children,\n drawerSlugPrefix,\n}: {\n readonly children: React.ReactNode\n readonly drawerSlugPrefix?: string\n}) {\n const [selectableCollections, setSelectableCollections] = React.useState<null | string[]>(null)\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunction, setOnSuccessFunction] = React.useState<BulkUploadContext['onSuccess']>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [initialForms, setInitialForms] = React.useState<InitialForms>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [successfullyUploaded, setSuccessfullyUploaded] = React.useState<boolean>(false)\n\n const drawerSlug = `${drawerSlugPrefix ? `${drawerSlugPrefix}-` : ''}${useBulkUploadDrawerSlug()}`\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = (onSuccess) => {\n setOnSuccessFunction(() => onSuccess)\n }\n const setOnCancel: BulkUploadContext['setOnCancel'] = (onCancel) => {\n setOnCancelFunction(() => onCancel)\n }\n\n return (\n <Context\n value={{\n collectionSlug: collection,\n drawerSlug,\n initialFiles,\n initialForms,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (newDocs, errorCount) => {\n if (typeof onSuccessFunction === 'function') {\n onSuccessFunction(newDocs, errorCount)\n }\n },\n selectableCollections,\n setCollectionSlug: setCollection,\n setInitialFiles,\n setInitialForms,\n setMaxFiles,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n setSuccessfullyUploaded,\n successfullyUploaded,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context>\n )\n}\n\nexport const useBulkUpload = () => React.use(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,QAAQ,QAAQ;AACzB,SAASC,gBAAgB,QAAQ;AACjC,OAAOC,KAAA,IAASC,SAAS,QAAQ;AACjC,SAASC,KAAK,QAAQ;AAEtB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,cAAc,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ;AACvC,SAASC,MAAM,EAAEC,cAAc,QAAQ;AACvC,SAASC,YAAY,QAAQ;AAC7B,SAASC,eAAe,QAAQ;AAChC,SAASC,oBAAoB,EAAqBC,eAAe,QAAQ;AAEzE,MAAMC,UAAA,GAAa;AAEnB,SAASC,cAAA;EACP,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC;EAAc,CAAE,GAAGL,eAAA;EAC5C,MAAM;IAAEM;EAAU,CAAE,GAAGrB,QAAA;EACvB,MAAM;IAAEsB,cAAc;IAAEN;EAAU,CAAE,GAAGO,aAAA;EACvC,MAAM;IAAEC;EAAe,CAAE,GAAGlB,SAAA;EAC5B,MAAM;IAAEmB;EAAC,CAAE,GAAGjB,cAAA;EAEd,MAAMkB,gBAAA,GAAmBF,eAAA,CAAgB;IAAEF;EAAe;EAC1D,MAAMK,YAAA,GAAeD,gBAAA,EAAkBE,MAAA;EACvC,MAAMC,eAAA,GAAkBF,YAAA,EAAcG,SAAA;EAEtC,MAAMC,MAAA,GAAS7B,KAAA,CAAM8B,WAAW,CAC7BC,aAAA;IACC,MAAMC,YAAA,GAAe,IAAIC,YAAA;IACzB,KAAK,MAAMC,aAAA,IAAiBH,aAAA,EAAe;MACzC,IACEJ,eAAA,KAAoBQ,SAAA,IACpBR,eAAA,CAAgBS,MAAM,KAAK,KAC3BrC,gBAAA,CAAiBmC,aAAA,CAAcG,IAAI,EAAEV,eAAA,GACrC;QACAK,YAAA,CAAaM,KAAK,CAACC,GAAG,CAACL,aAAA;MACzB;IACF;IACA,IAAIF,YAAA,CAAaQ,KAAK,CAACJ,MAAM,KAAK,GAAG;MACnClC,KAAA,CAAMuC,KAAK,CAAClB,CAAA,CAAE;IAChB,OAAO;MACL,KAAKP,QAAA,CAASgB,YAAA,CAAaQ,KAAK;IAClC;EACF,GACA,CAACxB,QAAA,EAAUO,CAAA,EAAGI,eAAA,CAAgB;EAGhC,IAAI,CAACP,cAAA,EAAgB;IACnB,OAAO;EACT;EAEA,IAAI,CAACH,KAAA,CAAMmB,MAAM,IAAI,CAAClB,cAAA,EAAgB;IACpC,oBACEwB,IAAA,CAAChC,YAAA;MACCiC,eAAA,EAAiBhB,eAAA,EAAiBiB,IAAA,CAAK;MACvCC,QAAA,EAAUA,CAAA,KAAM1B,UAAA,CAAWL,UAAA;MAC3Be,MAAA,EAAQA;;EAGd,OAAO;IACL,oBAAOa,IAAA,CAAC/B,eAAA;EACV;AACF;AAMA,OAAO,SAAAmC,iBAAA;EAAA,MAAAC,CAAA,GAAAlD,EAAA;EACL;IAAAiB,UAAA;IAAA+B,QAAA;IAAAG,eAAA;IAAAC,eAAA;IAAAC,WAAA;IAAAC,YAAA;IAAAC,wBAAA;IAAAC,uBAAA;IAAAC;EAAA,IAUIjC,aAAA;EACJ;IAAAkC;EAAA,IAAuBzD,QAAA;EACvB,MAAA0D,qBAAA,GAA8BxD,KAAA,CAAAyD,MAAA,CAAaF,UAAA;EAAA,IAAAG,EAAA;EAAA,IAAAX,CAAA,QAAAjC,UAAA,IAAAiC,CAAA,QAAAF,QAAA,IAAAE,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAE,eAAA,IAAAF,CAAA,QAAAG,WAAA,IAAAH,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAK,wBAAA,IAAAL,CAAA,QAAAM,uBAAA,IAAAN,CAAA,QAAAO,oBAAA;IAKAI,EAAA,GAAAC,YAAA;MACzC,MAAAC,kBAAA,GAA2BJ,qBAAA,CAAAK,OAAA,CAA8B/C,UAAA;MACzD,MAAAgD,iBAAA,GAA0BP,YAAU,CAACzC,UAAA;MAAW,IAE5C,OAAOgD,iBAAA,KAAsB,eAAe,OAAOF,kBAAA,KAAuB;QAAA;MAAA;MAAA,IAI1EA,kBAAA,EAAAG,MAAA,KAA+BD,iBAAA,EAAAC,MAAmB;QAAA,KAC/CD,iBAAA,EAAAC,MAAA;UAAA,KACET,oBAAA;YAAA,IAGC,OAAOT,QAAA,KAAa;cACtBA,QAAA;YAAA;UAAA;UAKJG,eAAA,CAAAb,SAAgB;UAChBc,eAAA,CAAAd,SAAgB;UAChBe,WAAA,CAAAc,MAAwB;UACxBb,YAAA,CAAAc,MAAyB;UACzBb,wBAAA,KAAyB;UACzBC,uBAAA,MAAwB;QAAA;MAAA;MAG5BG,qBAAA,CAAAK,OAAA,GAAgCN,YAAA;IAAA;IAClCR,CAAA,MAAAjC,UAAA;IAAAiC,CAAA,MAAAF,QAAA;IAAAE,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAG,WAAA;IAAAH,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAK,wBAAA;IAAAL,CAAA,MAAAM,uBAAA;IAAAN,CAAA,MAAAO,oBAAA;IAAAP,CAAA,MAAAW,EAAA;EAAA;IAAAA,EAAA,GAAAX,CAAA;EAAA;EA5BA,MAAAmB,mBAAA,GAA4B/D,cAAA,CAAeuD,EA4B3C;EAAA,IAAAS,EAAA;EAAA,IAAApB,CAAA,SAAAQ,UAAA,IAAAR,CAAA,SAAAmB,mBAAA;IAEUC,EAAA,GAAAA,CAAA;MACRD,mBAAA,CAAoBX,UAAA;IAAA;IACtBR,CAAA,OAAAQ,UAAA;IAAAR,CAAA,OAAAmB,mBAAA;IAAAnB,CAAA,OAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAAA,IAAAqB,EAAA;EAAA,IAAArB,CAAA,SAAAQ,UAAA;IAAGa,EAAA,IAACb,UAAA;IAAWR,CAAA,OAAAQ,UAAA;IAAAR,CAAA,OAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAFf9C,SAAA,CAAUkE,EAEV,EAAGC,EAAY;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,SAAAjC,UAAA;IAGbuD,EAAA,GAAA3B,IAAA,CAAAlC,MAAA;MAAA8D,MAAA;MAAAC,MAAA;MAAAC,IAAA,EAA2C1D,UAAA;MAAA2D,QAAA,EACzC/B,IAAA,CAAA9B,oBAAA;QAAA6D,QAAA,EACE/B,IAAA,CAAAnC,sBAAA;UAAAkE,QAAA,EACE/B,IAAA,CAAArC,iBAAA;YAAAoE,QAAA,EACE/B,IAAA,CAAA3B,aAAA,IAAC;UAAA,C;;;;;;;;;SAJTsD,E;;AArDG,SAAAJ,OAAA;EAAA,OAAAS,MAAA;AAAA;AAAA,SAAAA,OAAA;EAAA;AAAA;AAAA,SAAAV,OAAA;EAAA,OAAAW,KAAA;AAAA;AAAA,SAAAA,MAAA;EAAA;AAAA;AA6GP,MAAMC,OAAA,gBAAU5E,KAAA,CAAM6E,aAAa,CAAoB;EACrDzD,cAAA,EAAgB;EAChBN,UAAA,EAAY;EACZgE,YAAA,EAAc3C,SAAA;EACd4C,YAAA,EAAc,EAAE;EAChBC,QAAA,EAAU7C,SAAA;EACVU,QAAA,EAAUA,CAAA,KAAM;EAChBoC,SAAA,EAAWA,CAAA,KAAM;EACjBC,qBAAA,EAAuB;EACvBC,iBAAA,EAAmBA,CAAA,KAAM;EACzBnC,eAAA,EAAiBA,CAAA,KAAM;EACvBC,eAAA,EAAiBA,CAAA,KAAM;EACvBmC,WAAA,EAAaA,CAAA,KAAM;EACnBlC,WAAA,EAAaA,CAAA,KAAM;EACnBC,YAAA,EAAcA,CAAA,KAAM;EACpBC,wBAAA,EAA0BA,CAAA,KAAM;EAChCC,uBAAA,EAAyBA,CAAA,KAAM;EAC/BC,oBAAA,EAAsB;AACxB;AACA,OAAO,SAAA+B,mBAAA3B,EAAA;EAAA,MAAAX,CAAA,GAAAlD,EAAA;EAA4B;IAAA4E,QAAA;IAAAa;EAAA,IAAA5B,EAMlC;EACC,OAAAwB,qBAAA,EAAA9B,wBAAA,IAA0DpD,KAAA,CAAAuF,QAAA,KAAgC;EAC1F,OAAAC,UAAA,EAAAC,aAAA,IAAoCzF,KAAA,CAAAuF,QAAA,CAAc;EAClD,OAAAG,iBAAA,EAAAC,oBAAA,IAAkD3F,KAAA,CAAAuF,QAAA,CAAc;EAChE,OAAAK,gBAAA,EAAAC,mBAAA,IAAgD7F,KAAA,CAAAuF,QAAA,CAAc;EAC9D,OAAAT,YAAA,EAAA9B,eAAA,IAAwChD,KAAA,CAAAuF,QAAA,CAAApD,SAAyB;EACjE,OAAA4C,YAAA,EAAA9B,eAAA,IAAwCjD,KAAA,CAAAuF,QAAA,CAAApD,SAA6B;EACrE,OAAA6C,QAAA,EAAAI,WAAA,IAAgCpF,KAAA,CAAAuF,QAAA,CAAApD,SAAuB;EACvD,OAAAmB,oBAAA,EAAAD,uBAAA,IAAwDrD,KAAA,CAAAuF,QAAA,MAAwB;EAEhF,MAAAzE,UAAA,GAAmB,GAAGwE,gBAAA,GAAmB,GAAGA,gBAAA,GAAmB,GAAG,KAAKQ,uBAAA,IAA2B;EAAA,IAAA3B,EAAA;EAAA,IAAApB,CAAA,QAAAgD,MAAA,CAAAC,GAAA;IAE1C7B,EAAA,GAAAc,SAAA;MACtDU,oBAAA,OAA2BV,SAAA;IAAA;IAC7BlC,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EAFA,MAAAI,YAAA,GAAwDgB,EAExD;EAAA,IAAAC,EAAA;EAAA,IAAArB,CAAA,QAAAgD,MAAA,CAAAC,GAAA;IACsD5B,EAAA,GAAAvB,QAAA;MACpDgD,mBAAA,OAA0BhD,QAAA;IAAA;IAC5BE,CAAA,MAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAFA,MAAAG,WAAA,GAAsDkB,EAEtD;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAA6C,gBAAA;IAUgBvB,EAAA,GAAAA,CAAA;MAAA,IACJ,OAAOuB,gBAAA,KAAqB;QAC9BA,gBAAA;MAAA;IAAA;IAEJ7C,CAAA,MAAA6C,gBAAA;IAAA7C,CAAA,MAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAAA,IAAAkD,EAAA;EAAA,IAAAlD,CAAA,QAAA2C,iBAAA;IACWO,EAAA,GAAAA,CAAAC,OAAA,EAAAC,UAAA;MAAA,IACL,OAAOT,iBAAA,KAAsB;QAC/BA,iBAAA,CAAkBQ,OAAA,EAASC,UAAA;MAAA;IAAA;IAE/BpD,CAAA,MAAA2C,iBAAA;IAAA3C,CAAA,MAAAkD,EAAA;EAAA;IAAAA,EAAA,GAAAlD,CAAA;EAAA;EAAA,IAAAqD,EAAA;EAAA,IAAArD,CAAA,QAAA0B,QAAA,IAAA1B,CAAA,QAAAyC,UAAA,IAAAzC,CAAA,QAAAjC,UAAA,IAAAiC,CAAA,QAAA+B,YAAA,IAAA/B,CAAA,SAAAgC,YAAA,IAAAhC,CAAA,SAAAiC,QAAA,IAAAjC,CAAA,SAAAmC,qBAAA,IAAAnC,CAAA,SAAAO,oBAAA,IAAAP,CAAA,SAAAsB,EAAA,IAAAtB,CAAA,SAAAkD,EAAA;IAhBJG,EAAA,GAAA1D,IAAA,CAAAkC,OAAA;MAAAyB,KAAA;QAAAjF,cAAA,EAEoBoE,UAAA;QAAA1E,UAAA;QAAAgE,YAAA;QAAAC,YAAA;QAAAC,QAAA;QAAAnC,QAAA,EAKNwB,EAIV;QAAAY,SAAA,EACWgB,EAIX;QAAAf,qBAAA;QAAAC,iBAAA,EAEmBM,aAAA;QAAAzC,eAAA;QAAAC,eAAA;QAAAmC,WAAA;QAAAlC,WAAA;QAAAC,YAAA;QAAAC,wBAAA;QAAAC,uBAAA;QAAAC;MAAA;MAAAmB,QAAA,EAWrB6B,KAAA,CAAAtG,KAAA,CAAAuG,QAAA;QAAA9B,QAAA,GACGA,QAAA,EACD/B,IAAA,CAAAI,gBAAA,IAAC;MAAA,C;;;;;;;;;;;;;;;;SA/BLsD,E;;AAqCJ,OAAO,MAAM/E,aAAA,GAAgBA,CAAA,KAAMrB,KAAA,CAAMwG,GAAG,CAAC5B,OAAA;AAE7C,OAAO,SAAAkB,wBAAA;EACL,MAAAW,KAAA,GAAchG,cAAA;EAAA,OAEP,GAAAK,UAAA,IAAiB2F,KAAA,KAAS,EAAG;AAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ConfirmationModal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAK1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBA4E9D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ConfirmationModal/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAK1C,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAA;AAEjC,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CACtC,CAAA;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,qBA8E9D"}
@@ -84,6 +84,7 @@ export function ConfirmationModal(props) {
84
84
  if ($[12] !== body || $[13] !== cancelLabel || $[14] !== confirmLabel || $[15] !== confirming || $[16] !== confirmingLabel || $[17] !== heading || $[18] !== modalSlug || $[19] !== onCancel || $[20] !== onConfirm || $[21] !== t || $[22] !== t3 || $[23] !== t4) {
85
85
  t5 = _jsx(Modal, {
86
86
  className: t3,
87
+ closeOnBlur: false,
87
88
  slug: modalSlug,
88
89
  style: {
89
90
  zIndex: t4
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useTranslation","Button","drawerZBase","useDrawerDepth","baseClass","ConfirmationModal","props","$","body","cancelLabel","className","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onCancelFromProps","onConfirm","onConfirmFromProps","editDepth","confirming","setConfirming","useState","closeModal","t","t0","t1","t2","filter","Boolean","t3","join","t4","t5","_jsx","slug","style","zIndex","children","_jsxs","buttonStyle","disabled","id","onClick","size","type"],"sources":["../../../src/elements/ConfirmationModal/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase, useDrawerDepth } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n className?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n className,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel: onCancelFromProps,\n onConfirm: onConfirmFromProps,\n } = props\n\n const editDepth = useDrawerDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const onConfirm = useCallback(async () => {\n if (!confirming) {\n setConfirming(true)\n\n if (typeof onConfirmFromProps === 'function') {\n await onConfirmFromProps()\n }\n\n setConfirming(false)\n closeModal(modalSlug)\n }\n }, [confirming, onConfirmFromProps, closeModal, modalSlug])\n\n const onCancel = useCallback(() => {\n if (!confirming) {\n closeModal(modalSlug)\n\n if (typeof onCancelFromProps === 'function') {\n onCancelFromProps()\n }\n }\n }, [confirming, onCancelFromProps, closeModal, modalSlug])\n\n return (\n <Modal\n className={[baseClass, className].filter(Boolean).join(' ')}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {typeof heading === 'string' ? <h1>{heading}</h1> : heading}\n {typeof body === 'string' ? <p>{body}</p> : body}\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={onCancel}\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button id=\"confirm-action\" onClick={onConfirm} size=\"large\">\n {confirming\n ? confirmingLabel || `${t('general:loading')}...`\n : confirmLabel || t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","Modal","useModal","React","useCallback","useTranslation","Button","drawerZBase","useDrawerDepth","baseClass","ConfirmationModal","props","$","body","cancelLabel","className","confirmingLabel","confirmLabel","heading","modalSlug","onCancel","onCancelFromProps","onConfirm","onConfirmFromProps","editDepth","confirming","setConfirming","useState","closeModal","t","t0","t1","t2","filter","Boolean","t3","join","t4","t5","_jsx","closeOnBlur","slug","style","zIndex","children","_jsxs","buttonStyle","disabled","id","onClick","size","type"],"sources":["../../../src/elements/ConfirmationModal/index.tsx"],"sourcesContent":["'use client'\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport React, { useCallback } from 'react'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase, useDrawerDepth } from '../Drawer/index.js'\nimport './index.scss'\n\nconst baseClass = 'confirmation-modal'\n\nexport type OnCancel = () => void\n\nexport type ConfirmationModalProps = {\n body: React.ReactNode\n cancelLabel?: string\n className?: string\n confirmingLabel?: string\n confirmLabel?: string\n heading: React.ReactNode\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}\n\nexport function ConfirmationModal(props: ConfirmationModalProps) {\n const {\n body,\n cancelLabel,\n className,\n confirmingLabel,\n confirmLabel,\n heading,\n modalSlug,\n onCancel: onCancelFromProps,\n onConfirm: onConfirmFromProps,\n } = props\n\n const editDepth = useDrawerDepth()\n\n const [confirming, setConfirming] = React.useState(false)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const onConfirm = useCallback(async () => {\n if (!confirming) {\n setConfirming(true)\n\n if (typeof onConfirmFromProps === 'function') {\n await onConfirmFromProps()\n }\n\n setConfirming(false)\n closeModal(modalSlug)\n }\n }, [confirming, onConfirmFromProps, closeModal, modalSlug])\n\n const onCancel = useCallback(() => {\n if (!confirming) {\n closeModal(modalSlug)\n\n if (typeof onCancelFromProps === 'function') {\n onCancelFromProps()\n }\n }\n }, [confirming, onCancelFromProps, closeModal, modalSlug])\n\n return (\n <Modal\n className={[baseClass, className].filter(Boolean).join(' ')}\n // Fixes https://github.com/payloadcms/payload/issues/13778\n closeOnBlur={false}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n {typeof heading === 'string' ? <h1>{heading}</h1> : heading}\n {typeof body === 'string' ? <p>{body}</p> : body}\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n disabled={confirming}\n id=\"confirm-cancel\"\n onClick={onCancel}\n size=\"large\"\n type=\"button\"\n >\n {cancelLabel || t('general:cancel')}\n </Button>\n <Button id=\"confirm-action\" onClick={onConfirm} size=\"large\">\n {confirming\n ? confirmingLabel || `${t('general:loading')}...`\n : confirmLabel || t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentLocked/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAoB,MAAM,OAAO,CAAA;AAOxC,OAAO,cAAc,CAAA;AAoBrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACpC,CAuEA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentLocked/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC,OAAO,KAAoB,MAAM,OAAO,CAAA;AAQxC,OAAO,cAAc,CAAA;AAoBrB,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,QAAQ,EAAE,OAAO,CAAA;IACjB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAA;IACzB,IAAI,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAAA;CACpC,CA2EA,CAAA"}