@payloadcms/ui 3.18.0-canary.707517e → 3.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/useRelatedCollections.js +6 -4
  3. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
  4. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  6. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  7. package/dist/elements/BulkUpload/index.js +4 -2
  8. package/dist/elements/BulkUpload/index.js.map +1 -1
  9. package/dist/elements/DeleteDocument/index.js.map +1 -1
  10. package/dist/elements/DocumentControls/index.js.map +1 -1
  11. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  12. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -4
  13. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  14. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  15. package/dist/elements/EditMany/DrawerContent.d.ts +9 -0
  16. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -0
  17. package/dist/elements/EditMany/DrawerContent.js +388 -0
  18. package/dist/elements/EditMany/DrawerContent.js.map +1 -0
  19. package/dist/elements/EditMany/index.d.ts +1 -0
  20. package/dist/elements/EditMany/index.d.ts.map +1 -1
  21. package/dist/elements/EditMany/index.js +53 -374
  22. package/dist/elements/EditMany/index.js.map +1 -1
  23. package/dist/elements/ListDrawer/DrawerContent.js +6 -6
  24. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  25. package/dist/elements/Localizer/index.d.ts.map +1 -1
  26. package/dist/elements/Localizer/index.js +21 -21
  27. package/dist/elements/Localizer/index.js.map +1 -1
  28. package/dist/elements/PublishButton/index.js +79 -100
  29. package/dist/elements/PublishButton/index.js.map +1 -1
  30. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  31. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  32. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  33. package/dist/elements/RelationshipTable/index.js +0 -2
  34. package/dist/elements/RelationshipTable/index.js.map +1 -1
  35. package/dist/elements/SortColumn/index.scss +0 -1
  36. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts +2 -1
  37. package/dist/elements/Table/DefaultCell/fields/Code/index.d.ts.map +1 -1
  38. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  39. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts +2 -1
  40. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  41. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  42. package/dist/elements/Table/DefaultCell/fields/Relationship/index.d.ts.map +1 -1
  43. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -0
  44. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  45. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  46. package/dist/elements/Table/DefaultCell/index.js +33 -40
  47. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  48. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  49. package/dist/elements/TableColumns/RenderDefaultCell/index.js +1 -1
  50. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  51. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  52. package/dist/elements/TableColumns/buildColumnState.js +30 -11
  53. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  54. package/dist/elements/TableColumns/index.js.map +1 -1
  55. package/dist/elements/Upload/index.d.ts.map +1 -1
  56. package/dist/elements/Upload/index.js +72 -33
  57. package/dist/elements/Upload/index.js.map +1 -1
  58. package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
  59. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +18 -11
  60. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  61. package/dist/elements/WhereBuilder/validateWhereQuery.js +2 -2
  62. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +1 -1
  63. package/dist/exports/client/{CodeEditor-W7RSWONH.js → CodeEditor-BMYVMDNZ.js} +2 -2
  64. package/dist/exports/client/chunk-CQQHQHCB.js +26 -0
  65. package/dist/exports/client/{chunk-3MXUY6XL.js.map → chunk-CQQHQHCB.js.map} +3 -3
  66. package/dist/exports/client/index.js +22 -22
  67. package/dist/exports/client/index.js.map +4 -4
  68. package/dist/exports/shared/index.js +2 -2
  69. package/dist/exports/shared/index.js.map +3 -3
  70. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  71. package/dist/fields/Blocks/BlockRow.js +32 -47
  72. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  73. package/dist/fields/Blocks/index.js +3 -2
  74. package/dist/fields/Blocks/index.js.map +1 -1
  75. package/dist/fields/Join/index.d.ts.map +1 -1
  76. package/dist/fields/Join/index.js +5 -5
  77. package/dist/fields/Join/index.js.map +1 -1
  78. package/dist/fields/Relationship/index.d.ts.map +1 -1
  79. package/dist/fields/Relationship/index.js +14 -8
  80. package/dist/fields/Relationship/index.js.map +1 -1
  81. package/dist/forms/Form/reduceToSerializableFields.d.ts +4 -0
  82. package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
  83. package/dist/forms/Form/reduceToSerializableFields.js +15 -12
  84. package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
  85. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  86. package/dist/forms/fieldSchemasToFormState/renderField.js +26 -1
  87. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  88. package/dist/providers/Config/index.d.ts +22 -13
  89. package/dist/providers/Config/index.d.ts.map +1 -1
  90. package/dist/providers/Config/index.js +45 -61
  91. package/dist/providers/Config/index.js.map +1 -1
  92. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  93. package/dist/providers/DocumentInfo/index.js.map +1 -1
  94. package/dist/providers/ListQuery/index.d.ts +1 -1
  95. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  96. package/dist/providers/ListQuery/index.js +3 -8
  97. package/dist/providers/ListQuery/index.js.map +1 -1
  98. package/dist/providers/Locale/index.d.ts.map +1 -1
  99. package/dist/providers/Locale/index.js +62 -54
  100. package/dist/providers/Locale/index.js.map +1 -1
  101. package/dist/scss/toasts.scss +2 -0
  102. package/dist/styles.css +1 -1
  103. package/dist/utilities/handleFormStateLocking.d.ts.map +1 -1
  104. package/dist/utilities/handleFormStateLocking.js +3 -3
  105. package/dist/utilities/handleFormStateLocking.js.map +1 -1
  106. package/dist/utilities/isURLAllowed.d.ts +3 -0
  107. package/dist/utilities/isURLAllowed.d.ts.map +1 -0
  108. package/dist/utilities/isURLAllowed.js +31 -0
  109. package/dist/utilities/isURLAllowed.js.map +1 -0
  110. package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
  111. package/dist/views/Edit/Auth/APIKey.js +4 -3
  112. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  113. package/dist/views/Edit/index.d.ts.map +1 -1
  114. package/dist/views/Edit/index.js.map +1 -1
  115. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  116. package/dist/views/List/ListHeader/index.js +5 -4
  117. package/dist/views/List/ListHeader/index.js.map +1 -1
  118. package/dist/views/List/index.d.ts.map +1 -1
  119. package/dist/views/List/index.js.map +1 -1
  120. package/package.json +6 -6
  121. package/dist/exports/client/chunk-3MXUY6XL.js +0 -26
  122. /package/dist/exports/client/{CodeEditor-W7RSWONH.js.map → CodeEditor-BMYVMDNZ.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"useRelatedCollections.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/useRelatedCollections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,eAAO,MAAM,qBAAqB,eAAgB,MAAM,GAAG,MAAM,EAAE,KAAG,sBAAsB,EAc3F,CAAA"}
1
+ {"version":3,"file":"useRelatedCollections.d.ts","sourceRoot":"","sources":["../../../src/elements/AddNewRelation/useRelatedCollections.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMrD,eAAO,MAAM,qBAAqB,eAAgB,MAAM,GAAG,MAAM,EAAE,KAAG,sBAAsB,EAY3F,CAAA"}
@@ -6,18 +6,20 @@ import { useConfig } from '../../providers/Config/index.js';
6
6
  export const useRelatedCollections = relationTo => {
7
7
  const $ = _c(3);
8
8
  const {
9
- config
9
+ getEntityConfig
10
10
  } = useConfig();
11
11
  let t0;
12
- if ($[0] !== config || $[1] !== relationTo) {
12
+ if ($[0] !== getEntityConfig || $[1] !== relationTo) {
13
13
  t0 = () => {
14
14
  if (relationTo) {
15
15
  const relations = typeof relationTo === "string" ? [relationTo] : relationTo;
16
- return relations.map(relation => config.collections.find(collection => collection.slug === relation));
16
+ return relations.map(relation => getEntityConfig({
17
+ collectionSlug: relation
18
+ }));
17
19
  }
18
20
  return [];
19
21
  };
20
- $[0] = config;
22
+ $[0] = getEntityConfig;
21
23
  $[1] = relationTo;
22
24
  $[2] = t0;
23
25
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"useRelatedCollections.js","names":["c","_c","useState","useConfig","useRelatedCollections","relationTo","$","config","t0","relations","map","relation","collections","find","collection","slug","relatedCollections"],"sources":["../../../src/elements/AddNewRelation/useRelatedCollections.ts"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useState } from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\n\nexport const useRelatedCollections = (relationTo: string | string[]): ClientCollectionConfig[] => {\n const { config } = useConfig()\n\n const [relatedCollections] = useState(() => {\n if (relationTo) {\n const relations = typeof relationTo === 'string' ? [relationTo] : relationTo\n return relations.map((relation) =>\n config.collections.find((collection) => collection.slug === relation),\n )\n }\n return []\n })\n\n return relatedCollections\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,QAAQ,QAAQ;AAEzB,SAASC,SAAS,QAAQ;AAE1B,OAAO,MAAMC,qBAAA,GAAwBC,UAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACnC;IAAAM;EAAA,IAAmBJ,SAAA;EAAA,IAAAK,EAAA;EAAA,IAAAF,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAD,UAAA;IAEmBG,EAAA,GAAAA,CAAA;MAAA,IAChCH,UAAA;QACF,MAAAI,SAAA,GAAkB,OAAOJ,UAAA,KAAe,YAAYA,UAAA,IAAcA,UAAA;QAAA,OAC3DI,SAAA,CAAAC,GAAA,CAAAC,QAAA,IACLJ,MAAA,CAAAK,WAAA,CAAAC,IAAA,CAAAC,UAAA,IAAwCA,UAAA,CAAAC,IAAA,KAAoBJ,QAAA;MAAA;MAAA;IAAA;IAIlEL,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAD,UAAA;IAAAC,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EARA,OAAAU,kBAAA,IAA6Bd,QAAA,CAASM,EAQtC;EAAA,OAEOQ,kBAAA;AAAA,CACT","ignoreList":[]}
1
+ {"version":3,"file":"useRelatedCollections.js","names":["c","_c","useState","useConfig","useRelatedCollections","relationTo","$","getEntityConfig","t0","relations","map","relation","collectionSlug","relatedCollections"],"sources":["../../../src/elements/AddNewRelation/useRelatedCollections.ts"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useState } from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\n\nexport const useRelatedCollections = (relationTo: string | string[]): ClientCollectionConfig[] => {\n const { getEntityConfig } = useConfig()\n\n const [relatedCollections] = useState(() => {\n if (relationTo) {\n const relations = typeof relationTo === 'string' ? [relationTo] : relationTo\n return relations.map((relation) => getEntityConfig({ collectionSlug: relation }))\n }\n return []\n })\n\n return relatedCollections\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,QAAQ,QAAQ;AAEzB,SAASC,SAAS,QAAQ;AAE1B,OAAO,MAAMC,qBAAA,GAAwBC,UAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EACnC;IAAAM;EAAA,IAA4BJ,SAAA;EAAA,IAAAK,EAAA;EAAA,IAAAF,CAAA,QAAAC,eAAA,IAAAD,CAAA,QAAAD,UAAA;IAEUG,EAAA,GAAAA,CAAA;MAAA,IAChCH,UAAA;QACF,MAAAI,SAAA,GAAkB,OAAOJ,UAAA,KAAe,YAAYA,UAAA,IAAcA,UAAA;QAAA,OAC3DI,SAAA,CAAAC,GAAA,CAAAC,QAAA,IAA4BJ,eAAA;UAAAK,cAAA,EAAkCD;QAAA,CAAS;MAAA;MAAA;IAAA;IAGlFL,CAAA,MAAAC,eAAA;IAAAD,CAAA,MAAAD,UAAA;IAAAC,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EANA,OAAAO,kBAAA,IAA6BX,QAAA,CAASM,EAMtC;EAAA,OAEOK,kBAAA;AAAA,CACT","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,sBAwD9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,OAAO,cAAc,CAAA;AAIrB,wBAAgB,eAAe,sBAwD9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","reduceFieldsToValues","React","useAuth","useConfig","DocumentInfoProvider","useTranslation","ActionsBar","discardBulkUploadModalSlug","DiscardWithoutSaving","EditForm","FileSidebar","useFormsManager","DrawerHeader","baseClass","AddingFilesView","$","activeIndex","collectionSlug","docPermissions","documentSlots","forms","hasPublishPermission","hasSavePermission","hasSubmitted","activeForm","getEntityConfig","i18n","user","openModal","t0","length","collection","t1","_jsxs","className","children","_jsx","onClose","title","labels","singular","currentEditor","hasPublishedDoc","id","initialData","formState","initialState","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","Upload","versionCount","submitted"],"sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React from 'react'\n\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ActionsBar } from '../ActionsBar/index.js'\nimport { discardBulkUploadModalSlug, DiscardWithoutSaving } from '../DiscardWithoutSaving/index.js'\nimport { EditForm } from '../EditForm/index.js'\nimport { FileSidebar } from '../FileSidebar/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--file-manager'\n\nexport function AddingFilesView() {\n const {\n activeIndex,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n } = useFormsManager()\n const activeForm = forms[activeIndex]\n const { getEntityConfig } = useConfig()\n const { i18n } = useTranslation()\n const { user } = useAuth()\n const { openModal } = useModal()\n\n const collection = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n return (\n <div className={baseClass}>\n <FileSidebar />\n\n <div className={`${baseClass}__editView`}>\n <DrawerHeader\n onClose={() => openModal(discardBulkUploadModalSlug)}\n title={getTranslation(collection.labels.singular, i18n)}\n />\n {activeForm ? (\n <DocumentInfoProvider\n collectionSlug={collectionSlug}\n currentEditor={user}\n docPermissions={docPermissions}\n hasPublishedDoc={false}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={null}\n initialData={reduceFieldsToValues(activeForm.formState, true)}\n initialState={activeForm.formState}\n isLocked={false}\n key={`${activeIndex}-${forms.length}`}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n Upload={documentSlots.Upload}\n versionCount={0}\n >\n <ActionsBar />\n <EditForm submitted={hasSubmitted} />\n </DocumentInfoProvider>\n ) : null}\n </div>\n\n <DiscardWithoutSaving />\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ;AACrC,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AACrC,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,0BAA0B,EAAEC,oBAAoB,QAAQ;AACjE,SAASC,QAAQ,QAAQ;AACzB,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,SAAAC,gBAAA;EAAA,MAAAC,CAAA,GAAAlB,EAAA;EACL;IAAAmB,WAAA;IAAAC,cAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,KAAA;IAAAC,oBAAA;IAAAC,iBAAA;IAAAC;EAAA,IASIZ,eAAA;EACJ,MAAAa,UAAA,GAAmBJ,KAAK,CAACJ,WAAA;EACzB;IAAAS;EAAA,IAA4BtB,SAAA;EAC5B;IAAAuB;EAAA,IAAiBrB,cAAA;EACjB;IAAAsB;EAAA,IAAiBzB,OAAA;EACjB;IAAA0B;EAAA,IAAsB9B,QAAA;EAAA,IAAA+B,EAAA;EAAA,IAAAd,CAAA,QAAAS,UAAA,IAAAT,CAAA,QAAAC,WAAA,IAAAD,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAG,cAAA,IAAAH,CAAA,QAAAI,aAAA,IAAAJ,CAAA,QAAAK,KAAA,CAAAU,MAAA,IAAAf,CAAA,QAAAU,eAAA,IAAAV,CAAA,QAAAM,oBAAA,IAAAN,CAAA,QAAAO,iBAAA,IAAAP,CAAA,QAAAQ,YAAA,IAAAR,CAAA,SAAAW,IAAA,IAAAX,CAAA,SAAAa,SAAA,IAAAb,CAAA,SAAAY,IAAA;IAEtB,MAAAI,UAAA,GAAmBN,eAAA;MAAAR;IAAA,CAAiC;IAAA,IAAAe,EAAA;IAAA,IAAAjB,CAAA,SAAAa,SAAA;MAQnCI,EAAA,GAAAA,CAAA,KAAMJ,SAAA,CAAArB,0BAAU;MAAAQ,CAAA,OAAAa,SAAA;MAAAb,CAAA,OAAAiB,EAAA;IAAA;MAAAA,EAAA,GAAAjB,CAAA;IAAA;IAL/Bc,EAAA,GAAAI,KAAA,CAAC;MAAAC,SAAA,EAAArB,SAAA;MAAAsB,QAAA,GACCC,IAAA,CAAA1B,WAAA,IAAC,GAEDuB,KAAA,CAAC;QAAAC,SAAA,EAAe,GAAArB,SAAA,YAAwB;QAAAsB,QAAA,GACtCC,IAAA,CAAAxB,YAAA;UAAAyB,OAAA,EACWL,EAAgB;UAAAM,KAAA,EAClBvC,cAAA,CAAegC,UAAA,CAAAQ,MAAA,CAAAC,QAAA,EAA4Bd,IAAA;QAAA,C,GAEnDF,UAAA,GACCS,KAAA,CAAA7B,oBAAA;UAAAa,cAAA;UAAAwB,aAAA,EAEiBd,IAAA;UAAAT,cAAA;UAAAwB,eAAA;UAAArB,oBAAA;UAAAC,iBAAA;UAAAqB,EAAA;UAAAC,WAAA,EAMF5C,oBAAA,CAAqBwB,UAAA,CAAAqB,SAAA,MAAsB;UAAAC,YAAA,EAC1CtB,UAAA,CAAAqB,SAAA;UAAAE,QAAA;UAAAC,cAAA;UAAAC,4BAAA;UAAAC,uBAAA;UAAAC,MAAA,EAMNhC,aAAA,CAAAgC,MAAA;UAAAC,YAAA;UAAAjB,QAAA,GAGRC,IAAA,CAAA9B,UAAA,IAAC,GACD8B,IAAA,CAAA3B,QAAA;YAAA4C,SAAA,EAAqB9B;UAAA,C;WARhB,GAAGP,WAAA,IAAeI,KAAA,CAAAU,MAAA,EAAc,QAUrC;MAAA,C,GAGNM,IAAA,CAAA5B,oBAAA,IAAC;IAAA,C;;;;;;;;;;;;;;;;;;SAjCHqB,E","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","reduceFieldsToValues","React","useAuth","useConfig","DocumentInfoProvider","useTranslation","ActionsBar","discardBulkUploadModalSlug","DiscardWithoutSaving","EditForm","FileSidebar","useFormsManager","DrawerHeader","baseClass","AddingFilesView","$","activeIndex","collectionSlug","docPermissions","documentSlots","forms","hasPublishPermission","hasSavePermission","hasSubmitted","activeForm","getEntityConfig","i18n","user","openModal","t0","length","collection","t1","_jsxs","className","children","_jsx","onClose","title","labels","singular","currentEditor","hasPublishedDoc","id","initialData","formState","initialState","isLocked","lastUpdateTime","mostRecentVersionIsAutosaved","unpublishedVersionCount","Upload","versionCount","submitted"],"sources":["../../../../src/elements/BulkUpload/AddingFilesView/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { reduceFieldsToValues } from 'payload/shared'\nimport React from 'react'\n\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { DocumentInfoProvider } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { ActionsBar } from '../ActionsBar/index.js'\nimport { discardBulkUploadModalSlug, DiscardWithoutSaving } from '../DiscardWithoutSaving/index.js'\nimport { EditForm } from '../EditForm/index.js'\nimport { FileSidebar } from '../FileSidebar/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { DrawerHeader } from '../Header/index.js'\nimport './index.scss'\n\nconst baseClass = 'bulk-upload--file-manager'\n\nexport function AddingFilesView() {\n const {\n activeIndex,\n collectionSlug,\n docPermissions,\n documentSlots,\n forms,\n hasPublishPermission,\n hasSavePermission,\n hasSubmitted,\n } = useFormsManager()\n const activeForm = forms[activeIndex]\n const { getEntityConfig } = useConfig()\n const { i18n } = useTranslation()\n const { user } = useAuth()\n const { openModal } = useModal()\n\n const collection = getEntityConfig({ collectionSlug })\n\n return (\n <div className={baseClass}>\n <FileSidebar />\n\n <div className={`${baseClass}__editView`}>\n <DrawerHeader\n onClose={() => openModal(discardBulkUploadModalSlug)}\n title={getTranslation(collection.labels.singular, i18n)}\n />\n {activeForm ? (\n <DocumentInfoProvider\n collectionSlug={collectionSlug}\n currentEditor={user}\n docPermissions={docPermissions}\n hasPublishedDoc={false}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={null}\n initialData={reduceFieldsToValues(activeForm.formState, true)}\n initialState={activeForm.formState}\n isLocked={false}\n key={`${activeIndex}-${forms.length}`}\n lastUpdateTime={0}\n mostRecentVersionIsAutosaved={false}\n unpublishedVersionCount={0}\n Upload={documentSlots.Upload}\n versionCount={0}\n >\n <ActionsBar />\n <EditForm submitted={hasSubmitted} />\n </DocumentInfoProvider>\n ) : null}\n </div>\n\n <DiscardWithoutSaving />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["useRouter","useSearchParams","React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","formatAdminURL","useDocumentDrawerContext","DocumentFields","Upload","useFormsManager","BulkUploadProvider","baseClass","EditForm","submitted","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isEditing","isInitializing","CustomUpload","onSave","onSaveFromContext","getFormState","config","routes","admin","adminRoute","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","router","depth","params","reportUpdate","resetUploadEdits","locale","get","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","redirectRoute","path","doc","id","push","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","getFields","getFormDataRef","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { useCallback, useEffect } from 'react'\n\nimport type { EditFormProps } from './types.js'\n\nimport { Form, useForm } from '../../../forms/Form/index.js'\nimport { type FormProps } from '../../../forms/Form/types.js'\nimport { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../DocumentFields/index.js'\nimport { Upload } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { BulkUploadProvider } from '../index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\n\nexport function EditForm({ submitted }: EditFormProps) {\n const {\n action,\n collectionSlug: docSlug,\n docPermissions,\n getDocPreferences,\n hasSavePermission,\n initialState,\n isEditing,\n isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug }) as ClientCollectionConfig\n const router = useRouter()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n\n const locale = params.get('locale')\n\n const collectionSlug = collectionConfig.slug\n\n const [schemaPath] = React.useState(collectionSlug)\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n },\n [\n adminRoute,\n collectionSlug,\n depth,\n isEditing,\n locale,\n onSaveFromContext,\n reportUpdate,\n resetUploadEdits,\n router,\n ],\n )\n\n const onChange: NonNullable<FormProps['onChange']>[0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newFormState } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath,\n signal: controller.signal,\n })\n\n abortOnChangeRef.current = null\n\n return newFormState\n },\n [collectionSlug, schemaPath, getDocPreferences, getFormState, docPermissions],\n )\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <OperationProvider operation=\"create\">\n <BulkUploadProvider>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isInitializing || !hasSavePermission}\n initialState={isInitializing ? undefined : initialState}\n isInitializing={isInitializing}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={onSave}\n submitted={submitted}\n >\n <DocumentFields\n BeforeFields={\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={collectionConfig.upload}\n />\n )}\n </React.Fragment>\n }\n docPermissions={docPermissions}\n fields={collectionConfig.fields}\n schemaPathSegments={[collectionConfig.slug]}\n />\n <ReportAllErrors />\n <GetFieldProxy />\n </Form>\n </BulkUploadProvider>\n </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n React.useEffect(() => {\n getFormDataRef.current = getFields\n }, [getFields, getFormDataRef])\n\n return null\n}\n\nfunction ReportAllErrors() {\n const { docConfig } = useDocumentInfo()\n const { activeIndex, setFormTotalErrorCount } = useFormsManager()\n const errorCountRef = React.useRef(0)\n\n const reportFormErrorCount = React.useCallback(\n (errorCount) => {\n if (errorCount === errorCountRef.current) {\n return\n }\n setFormTotalErrorCount({ errorCount, index: activeIndex })\n errorCountRef.current = errorCount\n },\n [activeIndex, setFormTotalErrorCount],\n )\n\n if (!docConfig) {\n return null\n }\n\n return (\n <WatchChildErrors fields={docConfig.fields} path={[]} setErrorCount={reportFormErrorCount} />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["useRouter","useSearchParams","React","useCallback","useEffect","Form","useForm","WatchChildErrors","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","formatAdminURL","useDocumentDrawerContext","DocumentFields","Upload","useFormsManager","BulkUploadProvider","baseClass","EditForm","submitted","action","collectionSlug","docSlug","docPermissions","getDocPreferences","hasSavePermission","initialState","isEditing","isInitializing","CustomUpload","onSave","onSaveFromContext","getFormState","config","routes","admin","adminRoute","getEntityConfig","abortOnChangeRef","useRef","collectionConfig","router","depth","params","reportUpdate","resetUploadEdits","locale","get","slug","schemaPath","useState","json","entitySlug","updatedAt","result","Date","toISOString","operation","redirectRoute","path","doc","id","push","onChange","formState","prevFormState","controller","docPreferences","state","newFormState","signal","current","abortOnChange","_jsx","_jsxs","className","disabled","undefined","method","onSuccess","BeforeFields","Fragment","uploadConfig","upload","fields","schemaPathSegments","ReportAllErrors","GetFieldProxy","getFields","getFormDataRef","docConfig","activeIndex","setFormTotalErrorCount","errorCountRef","reportFormErrorCount","errorCount","index","setErrorCount"],"sources":["../../../../src/elements/BulkUpload/EditForm/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport React, { useCallback, useEffect } from 'react'\n\nimport type { EditFormProps } from './types.js'\n\nimport { Form, useForm } from '../../../forms/Form/index.js'\nimport { type FormProps } from '../../../forms/Form/types.js'\nimport { WatchChildErrors } from '../../../forms/WatchChildErrors/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../../providers/Operation/index.js'\nimport { useServerFunctions } from '../../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../../utilities/abortAndIgnore.js'\nimport { formatAdminURL } from '../../../utilities/formatAdminURL.js'\nimport { useDocumentDrawerContext } from '../../DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../DocumentFields/index.js'\nimport { Upload } from '../../Upload/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport { BulkUploadProvider } from '../index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\n\nexport function EditForm({ submitted }: EditFormProps) {\n const {\n action,\n collectionSlug: docSlug,\n docPermissions,\n getDocPreferences,\n hasSavePermission,\n initialState,\n isEditing,\n isInitializing,\n Upload: CustomUpload,\n } = useDocumentInfo()\n\n const { onSave: onSaveFromContext } = useDocumentDrawerContext()\n\n const { getFormState } = useServerFunctions()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const abortOnChangeRef = React.useRef<AbortController>(null)\n\n const collectionConfig = getEntityConfig({ collectionSlug: docSlug })\n const router = useRouter()\n const depth = useEditDepth()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n\n const locale = params.get('locale')\n\n const collectionSlug = collectionConfig.slug\n\n const [schemaPath] = React.useState(collectionSlug)\n\n const onSave = useCallback(\n (json) => {\n reportUpdate({\n entitySlug: collectionSlug,\n updatedAt: json?.result?.updatedAt || new Date().toISOString(),\n })\n\n if (typeof onSaveFromContext === 'function') {\n void onSaveFromContext({\n ...json,\n operation: 'create',\n })\n }\n\n if (!isEditing && depth < 2) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${json?.doc?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n router.push(redirectRoute)\n } else {\n resetUploadEdits()\n }\n },\n [\n adminRoute,\n collectionSlug,\n depth,\n isEditing,\n locale,\n onSaveFromContext,\n reportUpdate,\n resetUploadEdits,\n router,\n ],\n )\n\n const onChange: NonNullable<FormProps['onChange']>[0] = useCallback(\n async ({ formState: prevFormState }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newFormState } = await getFormState({\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n operation: 'create',\n schemaPath,\n signal: controller.signal,\n })\n\n abortOnChangeRef.current = null\n\n return newFormState\n },\n [collectionSlug, schemaPath, getDocPreferences, getFormState, docPermissions],\n )\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n return (\n <OperationProvider operation=\"create\">\n <BulkUploadProvider>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isInitializing || !hasSavePermission}\n initialState={isInitializing ? undefined : initialState}\n isInitializing={isInitializing}\n method=\"POST\"\n onChange={[onChange]}\n onSuccess={onSave}\n submitted={submitted}\n >\n <DocumentFields\n BeforeFields={\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={collectionConfig.upload}\n />\n )}\n </React.Fragment>\n }\n docPermissions={docPermissions}\n fields={collectionConfig.fields}\n schemaPathSegments={[collectionConfig.slug]}\n />\n <ReportAllErrors />\n <GetFieldProxy />\n </Form>\n </BulkUploadProvider>\n </OperationProvider>\n )\n}\n\nfunction GetFieldProxy() {\n const { getFields } = useForm()\n const { getFormDataRef } = useFormsManager()\n\n React.useEffect(() => {\n getFormDataRef.current = getFields\n }, [getFields, getFormDataRef])\n\n return null\n}\n\nfunction ReportAllErrors() {\n const { docConfig } = useDocumentInfo()\n const { activeIndex, setFormTotalErrorCount } = useFormsManager()\n const errorCountRef = React.useRef(0)\n\n const reportFormErrorCount = React.useCallback(\n (errorCount) => {\n if (errorCount === errorCountRef.current) {\n return\n }\n setFormTotalErrorCount({ errorCount, index: activeIndex })\n errorCountRef.current = errorCount\n },\n [activeIndex, setFormTotalErrorCount],\n )\n\n if (!docConfig) {\n return null\n }\n\n return (\n <WatchChildErrors fields={docConfig.fields} path={[]} setErrorCount={reportFormErrorCount} />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,12 +27,14 @@ function DrawerContent() {
27
27
  drawerSlug
28
28
  } = useBulkUpload();
29
29
  const {
30
- config
30
+ getEntityConfig
31
31
  } = useConfig();
32
32
  const {
33
33
  t
34
34
  } = useTranslation();
35
- const uploadCollection = config.collections.find(col => col.slug === collectionSlug);
35
+ const uploadCollection = getEntityConfig({
36
+ collectionSlug
37
+ });
36
38
  const uploadConfig = uploadCollection?.upload;
37
39
  const uploadMimeTypes = uploadConfig?.mimeTypes;
38
40
  const onDrop = React.useCallback(acceptedFiles => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useModal","validateMimeType","React","toast","useConfig","useTranslation","Drawer","useDrawerDepth","AddFilesView","AddingFilesView","FormsManagerProvider","useFormsManager","drawerSlug","DrawerContent","addFiles","forms","isInitializing","closeModal","collectionSlug","useBulkUpload","config","t","uploadCollection","collections","find","col","slug","uploadConfig","upload","uploadMimeTypes","mimeTypes","onDrop","useCallback","acceptedFiles","fileTransfer","DataTransfer","candidateFile","undefined","length","type","items","add","files","error","_jsx","acceptMimeTypes","join","onCancel","BulkUploadDrawer","$","t0","gutter","Header","children","Context","createContext","currentActivePath","initialFiles","maxFiles","onSuccess","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunctionMap","setOnSuccessFunctionMap","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","path","prev","t3","t4","docIDs","errorCount","Object","hasOwn","onSuccessFunction","t5","Provider","value","_jsxs","Fragment","useContext","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, 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 { config } = useConfig()\n const { t } = useTranslation()\n\n const uploadCollection = config.collections.find((col) => col.slug === 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 { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n currentActivePath: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setCurrentActivePath: (path: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (path: string, onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n currentActivePath: undefined,\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setCurrentActivePath: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunctionMap, setOnSuccessFunctionMap] =\n React.useState<Record<string, BulkUploadContext['onSuccess']>>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [currentActivePath, setCurrentActivePath] = React.useState<string>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = React.useCallback((path, onSuccess) => {\n setOnSuccessFunctionMap((prev) => ({\n ...prev,\n [path]: onSuccess,\n }))\n }, [])\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n currentActivePath,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (onSuccessFunctionMap && Object.hasOwn(onSuccessFunctionMap, currentActivePath)) {\n const onSuccessFunction = onSuccessFunctionMap[currentActivePath]\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(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","toast","useConfig","useTranslation","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","$","t0","gutter","Header","slug","children","Context","createContext","currentActivePath","initialFiles","maxFiles","onSuccess","setCollectionSlug","setCurrentActivePath","setInitialFiles","setMaxFiles","setOnCancel","setOnSuccess","BulkUploadProvider","collection","setCollection","useState","onSuccessFunctionMap","setOnSuccessFunctionMap","onCancelFunction","setOnCancelFunction","useBulkUploadDrawerSlug","t1","Symbol","for","t2","path","prev","t3","t4","docIDs","errorCount","Object","hasOwn","onSuccessFunction","t5","Provider","value","_jsxs","Fragment","useContext","depth"],"sources":["../../../src/elements/BulkUpload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { JsonObject } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { validateMimeType } from 'payload/shared'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Drawer, useDrawerDepth } from '../Drawer/index.js'\nimport { AddFilesView } from './AddFilesView/index.js'\nimport { AddingFilesView } from './AddingFilesView/index.js'\nimport { FormsManagerProvider, 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 { drawerSlug } = useBulkUpload()\n\n return (\n <Drawer gutter={false} Header={null} slug={drawerSlug}>\n <FormsManagerProvider>\n <DrawerContent />\n </FormsManagerProvider>\n </Drawer>\n )\n}\n\ntype BulkUploadContext = {\n collectionSlug: string\n currentActivePath: string\n drawerSlug: string\n initialFiles: FileList\n maxFiles: number\n onCancel: () => void\n onSuccess: (newDocs: JsonObject[], errorCount: number) => void\n setCollectionSlug: (slug: string) => void\n setCurrentActivePath: (path: string) => void\n setInitialFiles: (files: FileList) => void\n setMaxFiles: (maxFiles: number) => void\n setOnCancel: (onCancel: BulkUploadContext['onCancel']) => void\n setOnSuccess: (path: string, onSuccess: BulkUploadContext['onSuccess']) => void\n}\n\nconst Context = React.createContext<BulkUploadContext>({\n collectionSlug: '',\n currentActivePath: undefined,\n drawerSlug: '',\n initialFiles: undefined,\n maxFiles: undefined,\n onCancel: () => null,\n onSuccess: () => null,\n setCollectionSlug: () => null,\n setCurrentActivePath: () => null,\n setInitialFiles: () => null,\n setMaxFiles: () => null,\n setOnCancel: () => null,\n setOnSuccess: () => null,\n})\nexport function BulkUploadProvider({ children }: { readonly children: React.ReactNode }) {\n const [collection, setCollection] = React.useState<string>()\n const [onSuccessFunctionMap, setOnSuccessFunctionMap] =\n React.useState<Record<string, BulkUploadContext['onSuccess']>>()\n const [onCancelFunction, setOnCancelFunction] = React.useState<BulkUploadContext['onCancel']>()\n const [initialFiles, setInitialFiles] = React.useState<FileList>(undefined)\n const [maxFiles, setMaxFiles] = React.useState<number>(undefined)\n const [currentActivePath, setCurrentActivePath] = React.useState<string>(undefined)\n const drawerSlug = useBulkUploadDrawerSlug()\n\n const setCollectionSlug: BulkUploadContext['setCollectionSlug'] = (slug) => {\n setCollection(slug)\n }\n\n const setOnSuccess: BulkUploadContext['setOnSuccess'] = React.useCallback((path, onSuccess) => {\n setOnSuccessFunctionMap((prev) => ({\n ...prev,\n [path]: onSuccess,\n }))\n }, [])\n\n return (\n <Context.Provider\n value={{\n collectionSlug: collection,\n currentActivePath,\n drawerSlug,\n initialFiles,\n maxFiles,\n onCancel: () => {\n if (typeof onCancelFunction === 'function') {\n onCancelFunction()\n }\n },\n onSuccess: (docIDs, errorCount) => {\n if (onSuccessFunctionMap && Object.hasOwn(onSuccessFunctionMap, currentActivePath)) {\n const onSuccessFunction = onSuccessFunctionMap[currentActivePath]\n onSuccessFunction(docIDs, errorCount)\n }\n },\n setCollectionSlug,\n setCurrentActivePath,\n setInitialFiles,\n setMaxFiles,\n setOnCancel: setOnCancelFunction,\n setOnSuccess,\n }}\n >\n <React.Fragment>\n {children}\n <BulkUploadDrawer />\n </React.Fragment>\n </Context.Provider>\n )\n}\n\nexport const useBulkUpload = () => React.useContext(Context)\n\nexport function useBulkUploadDrawerSlug() {\n const depth = useDrawerDepth()\n\n return `${drawerSlug}-${depth || 1}`\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useEditDepth","useTranslation","requests","formatAdminURL","Button","drawerZBase","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","deleting","setDeleting","closeModal","toggleModal","router","i18n","t","editDepth","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","e","_jsxs","Fragment","_jsx","onClick","className","slug","style","zIndex","elements","1","children","i18nKey","variables","buttonStyle","undefined","size","type"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug }) as ClientCollectionConfig\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { closeModal, toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n const editDepth = useEditDepth()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n useEffect(() => {\n return () => {\n closeModal(modalSlug)\n }\n }, [closeModal, modalSlug])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n if (redirectAfterDelete) {\n return router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n toggleModal(modalSlug)\n\n return\n }\n\n toggleModal(modalSlug)\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n adminRoute,\n addDefaultError,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal\n className={baseClass}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-delete\"\n onClick={() => {\n if (!deleting) {\n void handleDelete()\n }\n }}\n size=\"large\"\n >\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;;AAGA,SAASA,KAAK,EAAEC,QAAQ,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AACxD,SAASC,KAAK,QAAQ;AAItB,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,WAAW,QAAQ;AAC5B,SAASC,SAAS,QAAQ;AAC1B,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAalB,OAAO,MAAMC,cAAA,GAAmCC,KAAA;EAC9C,MAAM;IACJC,EAAE;IACFC,QAAQ;IACRC,cAAc;IACdC,QAAQ;IACRC,mBAAA,GAAsB,IAAI;IAC1BC,aAAa;IACbC,KAAA,EAAOC;EAAc,CACtB,GAAGR,KAAA;EAEJ,MAAM;IACJS,MAAA,EAAQ;MACNC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,UAAU;QAAEC;MAAG,CAAE;MAClCC;IAAS,CACV;IACDC;EAAe,CAChB,GAAG3B,SAAA;EAEJ,MAAM4B,gBAAA,GAAmBD,eAAA,CAAgB;IAAEZ;EAAe;EAE1D,MAAM;IAAEc;EAAW,CAAE,GAAG9B,OAAA;EACxB,MAAM,CAAC+B,QAAA,EAAUC,WAAA,CAAY,GAAGlC,QAAA,CAAS;EACzC,MAAM;IAAEmC,UAAU;IAAEC;EAAW,CAAE,GAAG1C,QAAA;EACpC,MAAM2C,MAAA,GAASzC,SAAA;EACf,MAAM;IAAE0C,IAAI;IAAEC;EAAC,CAAE,GAAGjC,cAAA;EACpB,MAAM;IAAEgB;EAAK,CAAE,GAAGlB,eAAA;EAClB,MAAMoC,SAAA,GAAYnC,YAAA;EAElB,MAAMoC,aAAA,GAAgBlB,cAAA,IAAkBD,KAAA,IAASN,EAAA;EAEjD,MAAM0B,SAAA,GAAY,UAAU1B,EAAA,EAAI;EAEhC,MAAM2B,eAAA,GAAkB7C,WAAA,CAAY;IAClCoC,WAAA,CAAY;IACZjC,KAAA,CAAM2C,KAAK,CAACL,CAAA,CAAE,uBAAuB;MAAEjB;IAAM;EAC/C,GAAG,CAACiB,CAAA,EAAGjB,KAAA,CAAM;EAEbvB,SAAA,CAAU;IACR,OAAO;MACLoC,UAAA,CAAWO,SAAA;IACb;EACF,GAAG,CAACP,UAAA,EAAYO,SAAA,CAAU;EAE1B,MAAMG,YAAA,GAAe/C,WAAA,CAAY;IAC/BoC,WAAA,CAAY;IACZF,WAAA,CAAY;IAEZ,IAAI;MACF,MAAMzB,QAAA,CACHuC,MAAM,CAAC,GAAGjB,SAAA,GAAYD,GAAA,IAAOV,cAAA,IAAkBF,EAAA,EAAI,EAAE;QACpD+B,OAAA,EAAS;UACP,mBAAmBT,IAAA,CAAKU,QAAQ;UAChC,gBAAgB;QAClB;MACF,GACCC,IAAI,CAAC,MAAOC,GAAA;QACX,IAAI;UACF,MAAMC,IAAA,GAAO,MAAMD,GAAA,CAAIC,IAAI;UAE3B,IAAID,GAAA,CAAIE,MAAM,GAAG,KAAK;YACpBlB,WAAA,CAAY;YACZE,WAAA,CAAYM,SAAA;YAEZzC,KAAA,CAAMoD,OAAO,CACXd,CAAA,CAAE,wBAAwB;cAAEe,KAAA,EAAO3D,cAAA,CAAe0B,aAAA,EAAeiB,IAAA;cAAOhB;YAAM,MAC5E6B,IAAA,CAAKI,OAAO;YAGhB,IAAInC,mBAAA,EAAqB;cACvB,OAAOiB,MAAA,CAAOmB,IAAI,CAChBhD,cAAA,CAAe;gBACbmB,UAAA;gBACA8B,IAAA,EAAM,gBAAgBvC,cAAA;cACxB;YAEJ;YAEA,IAAI,OAAOC,QAAA,KAAa,YAAY;cAClC,MAAMA,QAAA,CAAS;gBAAEH,EAAA;gBAAIe;cAAiB;YACxC;YAEAK,WAAA,CAAYM,SAAA;YAEZ;UACF;UAEAN,WAAA,CAAYM,SAAA;UAEZ,IAAIS,IAAA,CAAKO,MAAM,EAAE;YACfP,IAAA,CAAKO,MAAM,CAACC,OAAO,CAAEf,KAAA,IAAU3C,KAAA,CAAM2C,KAAK,CAACA,KAAA,CAAMW,OAAO;UAC1D,OAAO;YACLZ,eAAA;UACF;UACA,OAAO;QACT,EAAE,OAAOiB,GAAA,EAAG;UACV,OAAOjB,eAAA;QACT;MACF;IACJ,EAAE,OAAOiB,CAAA,EAAG;MACVjB,eAAA;IACF;EACF,GAAG,CACDX,WAAA,EACAH,SAAA,EACAD,GAAA,EACAV,cAAA,EACAF,EAAA,EACAoB,WAAA,EACAM,SAAA,EACAH,CAAA,EACAlB,aAAA,EACAiB,IAAA,EACAhB,KAAA,EACAe,MAAA,EACAV,UAAA,EACAgB,eAAA,EACAvB,mBAAA,EACAD,QAAA,EACAY,gBAAA,CACD;EAED,IAAIf,EAAA,EAAI;IACN,oBACE6C,KAAA,CAAChE,KAAA,CAAMiE,QAAQ;8BACbC,IAAA,CAACpD,SAAA,CAAUF,MAAM;QACfO,EAAA,EAAIC,QAAA;QACJ+C,OAAA,EAASA,CAAA;UACP9B,WAAA,CAAY;UACZE,WAAA,CAAYM,SAAA;QACd;kBAECH,CAAA,CAAE;uBAELwB,IAAA,CAACtE,KAAA;QACCwE,SAAA,EAAWpD,SAAA;QACXqD,IAAA,EAAMxB,SAAA;QACNyB,KAAA,EAAO;UACLC,MAAA,EAAQ1D,WAAA,GAAc8B;QACxB;kBAEA,aAAAqB,KAAA,CAAC;UAAII,SAAA,EAAW,GAAGpD,SAAA,WAAoB;kCACrCgD,KAAA,CAAC;YAAII,SAAA,EAAW,GAAGpD,SAAA,WAAoB;oCACrCkD,IAAA,CAAC;wBAAIxB,CAAA,CAAE;6BACPwB,IAAA,CAAC;wBACC,aAAAA,IAAA,CAACnD,WAAA;gBACCyD,QAAA,EAAU;kBACR,KAAKC,CAAC;oBAAEC;kBAAQ,CAAE,kBAAKR,IAAA,CAAC;8BAAQQ;;gBAClC;gBACAC,OAAA,EAAQ;gBACRjC,CAAA,EAAGA,CAAA;gBACHkC,SAAA,EAAW;kBACTnB,KAAA,EAAO3D,cAAA,CAAe0B,aAAA,EAAeiB,IAAA;kBACrChB,KAAA,EAAOmB;gBACT;;;2BAINoB,KAAA,CAAC;YAAII,SAAA,EAAW,GAAGpD,SAAA,YAAqB;oCACtCkD,IAAA,CAACtD,MAAA;cACCiE,WAAA,EAAY;cACZ1D,EAAA,EAAG;cACHgD,OAAA,EAAS/B,QAAA,GAAW0C,SAAA,GAAY,MAAMvC,WAAA,CAAYM,SAAA;cAClDkC,IAAA,EAAK;cACLC,IAAA,EAAK;wBAEJtC,CAAA,CAAE;6BAELwB,IAAA,CAACtD,MAAA;cACCO,EAAA,EAAG;cACHgD,OAAA,EAASA,CAAA;gBACP,IAAI,CAAC/B,QAAA,EAAU;kBACb,KAAKY,YAAA;gBACP;cACF;cACA+B,IAAA,EAAK;wBAEJ3C,QAAA,GAAWM,CAAA,CAAE,sBAAsBA,CAAA,CAAE;;;;;;EAOpD;EAEA,OAAO;AACT","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useEffect","useState","toast","useForm","useConfig","useDocumentInfo","useEditDepth","useTranslation","requests","formatAdminURL","Button","drawerZBase","PopupList","Translation","baseClass","DeleteDocument","props","id","buttonId","collectionSlug","onDelete","redirectAfterDelete","singularLabel","title","titleFromProps","config","routes","admin","adminRoute","api","serverURL","getEntityConfig","collectionConfig","setModified","deleting","setDeleting","closeModal","toggleModal","router","i18n","t","editDepth","titleToRender","modalSlug","addDefaultError","error","handleDelete","delete","headers","language","then","res","json","status","success","label","message","push","path","errors","forEach","e","_jsxs","Fragment","_jsx","onClick","className","slug","style","zIndex","elements","1","children","i18nKey","variables","buttonStyle","undefined","size","type"],"sources":["../../../src/elements/DeleteDocument/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'delete-document'\n\nexport type Props = {\n readonly buttonId?: string\n readonly collectionSlug: SanitizedCollectionConfig['slug']\n readonly id?: string\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly redirectAfterDelete?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly title?: string\n readonly useAsTitle: SanitizedCollectionConfig['admin']['useAsTitle']\n}\n\nexport const DeleteDocument: React.FC<Props> = (props) => {\n const {\n id,\n buttonId,\n collectionSlug,\n onDelete,\n redirectAfterDelete = true,\n singularLabel,\n title: titleFromProps,\n } = props\n\n const {\n config: {\n routes: { admin: adminRoute, api },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const { setModified } = useForm()\n const [deleting, setDeleting] = useState(false)\n const { closeModal, toggleModal } = useModal()\n const router = useRouter()\n const { i18n, t } = useTranslation()\n const { title } = useDocumentInfo()\n const editDepth = useEditDepth()\n\n const titleToRender = titleFromProps || title || id\n\n const modalSlug = `delete-${id}`\n\n const addDefaultError = useCallback(() => {\n setDeleting(false)\n toast.error(t('error:deletingTitle', { title }))\n }, [t, title])\n\n useEffect(() => {\n return () => {\n closeModal(modalSlug)\n }\n }, [closeModal, modalSlug])\n\n const handleDelete = useCallback(async () => {\n setDeleting(true)\n setModified(false)\n\n try {\n await requests\n .delete(`${serverURL}${api}/${collectionSlug}/${id}`, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n .then(async (res) => {\n try {\n const json = await res.json()\n\n if (res.status < 400) {\n setDeleting(false)\n toggleModal(modalSlug)\n\n toast.success(\n t('general:titleDeleted', { label: getTranslation(singularLabel, i18n), title }) ||\n json.message,\n )\n\n if (redirectAfterDelete) {\n return router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}`,\n }),\n )\n }\n\n if (typeof onDelete === 'function') {\n await onDelete({ id, collectionConfig })\n }\n\n toggleModal(modalSlug)\n\n return\n }\n\n toggleModal(modalSlug)\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n } catch (e) {\n addDefaultError()\n }\n }, [\n setModified,\n serverURL,\n api,\n collectionSlug,\n id,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n i18n,\n title,\n router,\n adminRoute,\n addDefaultError,\n redirectAfterDelete,\n onDelete,\n collectionConfig,\n ])\n\n if (id) {\n return (\n <React.Fragment>\n <PopupList.Button\n id={buttonId}\n onClick={() => {\n setDeleting(false)\n toggleModal(modalSlug)\n }}\n >\n {t('general:delete')}\n </PopupList.Button>\n <Modal\n className={baseClass}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDeletion')}</h1>\n <p>\n <Translation\n elements={{\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToDelete\"\n t={t}\n variables={{\n label: getTranslation(singularLabel, i18n),\n title: titleToRender,\n }}\n />\n </p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={deleting ? undefined : () => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button\n id=\"confirm-delete\"\n onClick={() => {\n if (!deleting) {\n void handleDelete()\n }\n }}\n size=\"large\"\n >\n {deleting ? t('general:deleting') : t('general:confirm')}\n </Button>\n </div>\n </div>\n </Modal>\n </React.Fragment>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug }) as ClientCollectionConfig\n\n const globalConfig = getEntityConfig({ globalSlug: slug }) as ClientGlobalConfig\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations || !autosaveEnabled) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {localization && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations || !autosaveEnabled) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {localization && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAUA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,QAAQ;AAI3C,SAASC,mBAAmB,EAAEC,iBAAiB,QAAQ;AACvD,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,QAAQ;AAC3B,SAASC,QAAQ,QAAQ;AACzB,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,KAAK,EAAEC,SAAS,QAAQ;AACjC,SAASC,aAAa,QAAQ;AAC9B,SAASC,aAAa,QAAQ;AAC9B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,UAAU,QAAQ;AAC3B,SAASC,eAAe,QAAQ;AAChC,SAASC,MAAM,QAAQ;AACvB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,gBAAA,GA4BRC,KAAA;EAAA,MAAAC,CAAA,GAAA9B,EAAA;EACH;IAAA+B,EAAA;IAAAC,IAAA;IAAAC,gBAAA,EAAAC,EAAA;IAAAC,IAAA;IAAAC,cAAA;IAAAC,aAAA;IAAAC,iBAAA;IAAAC,aAAA;IAAAC,SAAA;IAAAC,QAAA;IAAAC,iBAAA;IAAAC,WAAA;IAAAC,UAAA;IAAAC,WAAA;IAAAC,uBAAA;IAAAC,mBAAA;IAAAC,sBAAA;IAAAC;EAAA,IAwBIpB,KAAA;EAAA,IAAAqB,EAAA;EAAA,IAAApB,CAAA,QAAAI,EAAA;IArBgBgB,EAAA,GAAAhB,EAKZ,KAAAiB,SAAA,QALYjB,EAKZ;IAAAJ,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAoB,EAAA;EAAA;IAAAA,EAAA,GAAApB,CAAA;EAAA;EALY;IAAAT,aAAA,EAAA+B,mBAAA;IAAA9B,aAAA,EAAA+B,mBAAA;IAAA7B,UAAA,EAAA8B,gBAAA;IAAA7B,eAAA,EAAA8B;EAAA,IAAAL,EAKZ;EAkBR;IAAAM,IAAA;IAAAC;EAAA,IAAoBhD,cAAA;EAEpB,MAAAiD,SAAA,GAAkBlD,YAAA;EAElB;IAAAmD,MAAA;IAAAC;EAAA,IAAoCrD,SAAA;EAEpC,MAAAsD,gBAAA,GAAyBD,eAAA;IAAAE,cAAA,EAAkC9B;EAAA,CAAK;EAEhE,MAAA+B,YAAA,GAAqBH,eAAA;IAAAI,UAAA,EAA8BhC;EAAA,CAAK;EAExD;IAAAiC,KAAA,EAAAC,EAAA;IAAAC,YAAA;IAAAC,MAAA,EAAAC;EAAA,IAIIV,MAAA;EAHK;IAAAW;EAAA,IAAAJ,EAAc;EAEb;IAAAD,KAAA,EAAAM;EAAA,IAAAF,EAAqB;EAI/B,OAAAG,SAAA,EAAAC,YAAA,IAAkCvE,KAAA,CAAAwE,QAAA,CAAuB;EACzD,OAAAC,SAAA,EAAAC,YAAA,IAAkC1E,KAAA,CAAAwE,QAAA,CAAuB;EAEzD,MAAAG,UAAA,GAAmBvE,iBAAA;EACnB,MAAAwE,YAAA,GAAqBzE,mBAAA;EAAA,IAAA0E,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAlD,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAwC,UAAA,IAAAxC,CAAA,QAAA0B,IAAA;IAEXuB,EAAA,GAAAA,CAAA;MAAA,IACJ5C,IAAA,EAAAqC,SAAA;QACFC,YAAA,CAAa9D,UAAA;UAAAsE,IAAA,EAAmB9C,IAAA,CAAAqC,SAAA;UAAAhB,IAAA;UAAA0B,OAAA,EAA+BZ;QAAA,CAAW;MAAA;MAAA,IAExEnC,IAAA,EAAAwC,SAAA;QACFC,YAAA,CAAajE,UAAA;UAAAsE,IAAA,EAAmB9C,IAAA,CAAAwC,SAAA;UAAAnB,IAAA;UAAA0B,OAAA,EAA+BZ;QAAA,CAAW;MAAA;IAAA;IAE3EU,EAAA,IAAC7C,IAAA,EAAMqB,IAAA,EAAMc,UAAA;IAAWxC,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAwC,UAAA;IAAAxC,CAAA,MAAA0B,IAAA;IAAA1B,CAAA,MAAAiD,EAAA;IAAAjD,CAAA,MAAAkD,EAAA;EAAA;IAAAD,EAAA,GAAAjD,CAAA;IAAAkD,EAAA,GAAAlD,CAAA;EAAA;EAP3B1B,SAAA,CAAU2E,EAOV,EAAGC,EAAwB;EAE3B,MAAAG,mBAAA,GAA4BtC,WAAA,IAAe,YAAYA,WAAA,IAAeA,WAAA,CAAAuC,MAAkB;EAExF,MAAAC,mBAAA,GAA4BxC,WAAA,IAAe,YAAYA,WAAA,IAAeA,WAAA,CAAAyC,MAAkB;EAExF,MAAAC,WAAA,GAAoBC,OAAA,CAClB3B,gBAAA,IAAoB9B,EAAA,KAAOK,cAAA,KAAmB+C,mBAAA,IAAuBE,mBAAkB;EAGzF,MAAAI,2BAAA,GACE,CAAC1D,EAAA,IAAM8B,gBAAA,EAAA6B,QAAA,EAAAC,MAA4B,IAAU9B,gBAAA,CAAA6B,QAAA,EAAAC,MAAA,CAAAC,QAAkC;EAEjF,MAAAC,eAAA,GACEhC,gBAAC,EAAA6B,QAAA,EAAAC,MAAA,IAAsC9B,gBAAA,EAAA6B,QAAA,EAAAC,MAAA,EAAAG,QAAoC,IAC1E/B,YAAA,EAAA2B,QAAA,EAAAC,MAAA,IAAkC5B,YAAA,EAAA2B,QAAA,EAAAC,MAAA,EAAAG,QAAgC;EAAA,IAAAC,EAAA;EAAA,IAAAjE,CAAA,QAAAgB,uBAAA,IAAAhB,CAAA,QAAAmB,IAAA;IAmB1D8C,EAAA,GAAA9C,IAAA,IAAQH,uBAAA,IACPkD,IAAA,CAAA9E,MAAA;MAAA+E,SAAA,EAAmB,GAAAtE,SAAA,mBAA+B;MAAAsB;IAAA,C;;;;;;;;;IAgFnDiD,EAAA,GAAAjD,IAAA,IAAQH,uBAAA,IACPkD,IAAA,CAAAnF,MAAA;MAAAsF,WAAA,EACc;MAAApE,EAAA,EACT;MAAAqE,OAAA,EACMxD,UAAA;MAAAyD,IAAA,EACJ;MAAAC,IAAA,EACA;MAAAC,QAAA,EAEJ9C,CAAA,CAAE;IAAA,C;;;;;;;;;SAzGf+C,KAAA,CAAAvF,MAAA;IAAAgF,SAAA,EAAAtE,SAAA;IAAA4E,QAAA,GACEC,KAAA,CAAC;MAAAP,SAAA,EAAe,GAAAtE,SAAA,WAAuB;MAAA4E,QAAA,GACrCP,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAAtE,SAAA,WAAuB;QAAA4E,QAAA,EACrCC,KAAA,CAAC;UAAAP,SAAA,EAAc,GAAAtE,SAAA,QAAoB;UAAA4E,QAAA,GAChC1C,gBAAA,KAAqBrB,SAAA,KAAcD,aAAA,IAClCyD,IAAA,CAAC;YAAAC,SAAA,EAAc,GAAAtE,SAAA,aAAyB;YAAA4E,QAAA,EACtCP,IAAA,CAAC;cAAAC,SAAA,EAAa,GAAAtE,SAAA,SAAqB;cAAA4E,QAAA,EAChC/C,IAAA,CAAAC,CAAA,CAAO;gBAAAgD,KAAA,EACCxG,cAAA,CACL4D,gBAAA,EAAA6C,MAAA,EAAAC,QAAA,IAAsCnD,IAAA,CAAAC,CAAA,CAAO,qBAC7CD,IAAA;cAAA,CAEJ;YAAA,C;cAILuC,E,EAGC,CAAAlC,gBAAA,EAAA6B,QAAA,EAAAC,MAAA,IAAsC5B,YAAA,EAAA2B,QAAA,EAAAC,MAA6B,KACnEa,KAAA,CAAArG,QAAA;YAAAoG,QAAA,GACI,CAAAxC,YAAA,IAAiBF,gBAAA,IAAoBrB,SAAS,KAC9CwD,IAAA,CAAC;cAAAC,SAAA,EACY,CAAC,GAAAtE,SAAA,UAAsB,EAAE,GAAAA,SAAA,aAAyB,EAAAiF,MAAA,CAAApB,OACnD,EAAAqB,IAAA,CACF;cAAAN,QAAA,EAERP,IAAA,CAAAtE,MAAA,IAAC;YAAA,C,GAGJY,iBAAA,IAAqBuD,eAAA,KAAoBJ,2BAAA,IACxCO,IAAA,CAAC;cAAAC,SAAA,EAAc,GAAAtE,SAAA,aAAyB;cAAA4E,QAAA,EACtCP,IAAA,CAAApF,QAAA;gBAAAkG,UAAA,EACcjD,gBAAA;gBAAAkD,MAAA,EACJhD,YAAA;gBAAAhC,EAAA;gBAAAiF,qBAAA,EAEe7E,IAAA,EAAAwC;cAAA,C;;cAMhCd,gBAAA,EAAAoD,UAAA,KAAiCzE,SAAA,IAAaD,aAAY,KACzDiE,KAAA,CAAArG,QAAA;YAAAoG,QAAA,GACEC,KAAA,CAAC;cAAAP,SAAA,EACY,CAAC,GAAAtE,SAAA,aAAyB,EAAE,GAAAA,SAAA,cAA0B,EAAAiF,MAAA,CAAApB,OACvD,EAAAqB,IAAA,CACF;cAAAK,KAAA,EACD/E,IAAA,EAAAqC,SAAA,GAAkBA,SAAA,GAAY;cAAA+B,QAAA,GAErCC,KAAA,CAAC;gBAAAP,SAAA,EAAa,GAAAtE,SAAA,SAAqB;gBAAA4E,QAAA,GAAG/C,IAAA,CAAAC,CAAA,CAAO,yBAAwB;cAAA,C,GACpEtB,IAAA,EAAAqC,SAAA,IAAmBwB,IAAA,CAAC;gBAAAC,SAAA,EAAa,GAAAtE,SAAA,SAAqB;gBAAA4E,QAAA,EAAG/B;cAAA,C;gBAE5DgC,KAAA,CAAC;cAAAP,SAAA,EACY,CAAC,GAAAtE,SAAA,aAAyB,EAAE,GAAAA,SAAA,cAA0B,EAAAiF,MAAA,CAAApB,OACvD,EAAAqB,IAAA,CACF;cAAAK,KAAA,EACD/E,IAAA,EAAAwC,SAAA,GAAkBA,SAAA,GAAY;cAAA4B,QAAA,GAErCC,KAAA,CAAC;gBAAAP,SAAA,EAAa,GAAAtE,SAAA,SAAqB;gBAAA4E,QAAA,GAAG/C,IAAA,CAAAC,CAAA,CAAO,oBAAmB;cAAA,C,GAC/DtB,IAAA,EAAAwC,SAAA,IAAmBqB,IAAA,CAAC;gBAAAC,SAAA,EAAa,GAAAtE,SAAA,SAAqB;gBAAA4E,QAAA,EAAG5B;cAAA,C;;;;UAMpE6B,KAAA,CAAC;QAAAP,SAAA,EAAe,GAAAtE,SAAA,oBAAgC;QAAA4E,QAAA,GAC9CC,KAAA,CAAC;UAAAP,SAAA,EAAe,GAAAtE,SAAA,YAAwB;UAAA4E,QAAA,GACpC,CAAA1C,gBAAA,EAAAI,KAAA,CAAAkD,OAAA,IAAmCpD,YAAA,EAAAE,KAAA,CAAAkD,OAA0B,KAC7DnB,IAAA,CAAAzE,qBAAA;YAAA6F,eAAA,EACmBhE,mBAAA;YAAAiE,QAAA,EACPrB,IAAA,CAAA3E,aAAA,IAAC;UAAA,C,GAGdiB,iBAAA,IACC0D,IAAA,CAAA7F,QAAA;YAAAoG,QAAA,EACG1C,gBAAA,EAAA6B,QAAA,EAAAC,MAAA,IAAsC5B,YAAA,EAAA2B,QAAA,EAAAC,MAAwB,GAC7Da,KAAA,CAAArG,QAAA;cAAAoG,QAAA,GACI,CAAAd,2BAAA,KAAgCI,eAAc,KAC9CG,IAAA,CAAAzE,qBAAA;gBAAA6F,eAAA,EACmB7D,qBAAA;gBAAA8D,QAAA,EACPrB,IAAA,CAAAvE,eAAA,IAAC;cAAA,C,GAGfuE,IAAA,CAAAzE,qBAAA;gBAAA6F,eAAA,EACmB/D,mBAAA;gBAAAgE,QAAA,EACPrB,IAAA,CAAA1E,aAAA,IAAC;cAAA,C;iBAIf0E,IAAA,CAAAzE,qBAAA;cAAA6F,eAAA,EACmB9D,gBAAA;cAAA+D,QAAA,EACPrB,IAAA,CAAAxE,UAAA,IAAC;YAAA,C;cAKlB0E,E;YAYFX,WAAA,KAAgBzC,uBAAA,IACfkD,IAAA,CAAA7E,KAAA;UAAAmG,MAAA,EAEId,KAAA,CAAC;YAAAP,SAAA,EAAe,GAAAtE,SAAA,QAAoB;YAAA4E,QAAA,GAClCP,IAAA,CAAC,YACDA,IAAA,CAAC,YACDA,IAAA,CAAC;UAAA,C;qBAGM,GAAArE,SAAA,SAAqB;UAAA4F,QAAA,EACtBzC,YAAA,IAAgBD,UAAA;UAAA2C,eAAA,EACV;UAAAnB,IAAA,EACX;UAAAoB,aAAA,EACS;UAAAlB,QAAA,EAEdC,KAAA,CAAApF,SAAA,CAAAsG,WAAA;YAAAnB,QAAA,GACGpC,YAAA,IAAgB6B,IAAA,CAAAlF,cAAA,IAAC,GACjBqE,mBAAA,IACCqB,KAAA,CAAAtG,KAAA,CAAAC,QAAA;cAAAoG,QAAA,GACG,CAAClE,aAAA,IACA2D,IAAA,CAAA7F,QAAA;gBAAAoG,QAAA,EACG7C,SAAA,IAAY,GACXsC,IAAA,CAAA5E,SAAA,CAAAP,MAAA;kBAAAkB,EAAA,EAAqB;kBAAAqE,OAAA,EAAyB1D,iBAAA;kBAAA6D,QAAA,EAC3C/C,IAAA,CAAAC,CAAA,CAAO;gBAAA,C,IAGVuC,IAAA,CAAA5E,SAAA,CAAAP,MAAA;kBAAA8G,IAAA,EACQjH,cAAA;oBAAA6D,UAAA;oBAAAqD,IAAA,EAEE,gBAAgB/D,gBAAA,EAAA7B,IAAA;kBAA+B,CACvD;kBAAAD,EAAA,EACG;kBAAAwE,QAAA,EAEF/C,IAAA,CAAAC,CAAA,CAAO;gBAAA,C;kBAKfI,gBAAA,CAAAgE,gBAAA,SAAsC,IAAQrF,SAAA,IAC7CwD,IAAA,CAAAhF,iBAAA;gBAAAe,EAAA,EACMA,EAAA,CAAA+F,QAAA,CAAW;gBAAAnF,WAAA;gBAAAK,sBAAA;gBAAA+E,aAAA,EAGAlE,gBAAA,EAAA6C,MAAA,EAAAC,QAAA;gBAAA3E,IAAA,EACT6B,gBAAA,EAAA7B;cAAA,C;gBAKbqD,mBAAA,IACCW,IAAA,CAAAjF,cAAA;cAAAiH,QAAA,EACW;cAAAlE,cAAA,EACOD,gBAAA,EAAA7B,IAAA;cAAAD,EAAA,EACZA,EAAA,CAAA+F,QAAA,CAAW;cAAArF,QAAA;cAAAM,mBAAA;cAAAgF,aAAA,EAGAlE,gBAAA,EAAA6C,MAAA,EAAAC,QAAA;cAAAsB,UAAA,EACHpE,gBAAA,EAAAI,KAAA,EAAAgE;YAAA,C;;;;QAQ1BjC,IAAA,CAAC;MAAAC,SAAA,EAAe,GAAAtE,SAAA;IAAuB,C;;CAG7C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAqK/D,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmD,MAAM,OAAO,CAAA;AAGvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAUrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiK/D,CAAA"}
@@ -28,12 +28,12 @@ export const DocumentDrawerContent = ({
28
28
  redirectAfterDuplicate
29
29
  }) => {
30
30
  const {
31
- config: {
32
- collections
33
- }
31
+ getEntityConfig
34
32
  } = useConfig();
35
33
  const locale = useLocale();
36
- const [collectionConfig] = useState(() => collections.find(collection => collection.slug === collectionSlug));
34
+ const [collectionConfig] = useState(() => getEntityConfig({
35
+ collectionSlug
36
+ }));
37
37
  const abortGetDocumentViewRef = React.useRef(null);
38
38
  const {
39
39
  closeModal
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","AfterFields","collectionSlug","disableActions","drawerSlug","Header","initialData","initialState","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","config","collections","locale","collectionConfig","find","collection","slug","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasRenderedDocument","getDocumentView","docID","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.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 { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n AfterFields,\n collectionSlug,\n disableActions,\n drawerSlug,\n Header,\n initialData,\n initialState,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() =>\n collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasRenderedDocument = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n setIsLoading(true)\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView()\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasRenderedDocument.current) {\n getDocumentView(existingDocID)\n hasRenderedDocument.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAChE,SAASC,KAAK,QAAQ;AAItB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,6BAA6B,QAAQ;AAE9C,OAAO,MAAMC,qBAAA,GAAuDA,CAAC;EACnEC,EAAA,EAAIC,aAAa;EACjBC,WAAW;EACXC,cAAc;EACdC,cAAc;EACdC,UAAU;EACVC,MAAM;EACNC,WAAW;EACXC,YAAY;EACZC,QAAA,EAAUC,iBAAiB;EAC3BC,WAAA,EAAaC,oBAAoB;EACjCC,MAAA,EAAQC,eAAe;EACvBC,wBAAA,GAA2B,IAAI;EAC/BC,mBAAmB;EACnBC;AAAsB,CACvB;EACC,MAAM;IACJC,MAAA,EAAQ;MAAEC;IAAW;EAAE,CACxB,GAAG3B,SAAA;EACJ,MAAM4B,MAAA,GAAS3B,SAAA;EAEf,MAAM,CAAC4B,gBAAA,CAAiB,GAAGhC,QAAA,CAAS,MAClC8B,WAAA,CAAYG,IAAI,CAAEC,UAAA,IAAeA,UAAA,CAAWC,IAAI,KAAKrB,cAAA;EAGvD,MAAMsB,uBAAA,GAA0BxC,KAAA,CAAMG,MAAM,CAAkB;EAE9D,MAAM;IAAEsC;EAAU,CAAE,GAAG1C,QAAA;EACvB,MAAM;IAAE2C;EAAC,CAAE,GAAGhC,cAAA;EAEd,MAAM;IAAEiC;EAAc,CAAE,GAAGlC,kBAAA;EAE3B,MAAM,CAACmC,YAAA,EAAcC,eAAA,CAAgB,GAAGzC,QAAA,CAA0B0C,SAAA;EAClE,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAG5C,QAAA,CAAS;EAC3C,MAAM6C,mBAAA,GAAsB9C,MAAA,CAAO;EAEnC,MAAM+C,eAAA,GAAkBjD,WAAA,CACrBkD,KAAA;IACC,MAAMC,UAAA,GAAaxC,cAAA,CAAe4B,uBAAA;IAElC,MAAMa,iBAAA,GAAoB,MAAAA,CAAA;MACxBL,YAAA,CAAa;MAEb,IAAI;QACF,MAAMM,MAAA,GAAS,MAAMX,cAAA,CAAe;UAClCzB,cAAA;UACAC,cAAA;UACAgC,KAAA;UACA/B,UAAA;UACAE,WAAA;UACAa,MAAA;UACAL,wBAAA;UACAC,mBAAA,EAAqBA,mBAAA,KAAwBe,SAAA,GAAYf,mBAAA,GAAsB;UAC/EC,sBAAA,EACEA,sBAAA,KAA2Bc,SAAA,GAAYd,sBAAA,GAAyB;UAClEuB,MAAA,EAAQH,UAAA,CAAWG;QACrB;QAEA,IAAID,MAAA,EAAQE,QAAA,EAAU;UACpBX,eAAA,CAAgBS,MAAA,CAAOE,QAAQ;UAC/BR,YAAA,CAAa;QACf;MACF,EAAE,OAAOS,KAAA,EAAO;QACdpD,KAAA,CAAMoD,KAAK,CAACA,KAAA,EAAOC,OAAA,IAAWhB,CAAA,CAAE;QAChCD,UAAA,CAAWrB,UAAA;QACX;MACF;MAEAoB,uBAAA,CAAwBmB,OAAO,GAAG;IACpC;IAEA,KAAKN,iBAAA;EACP,GACA,CACEnC,cAAA,EACAC,cAAA,EACAC,UAAA,EACAE,WAAA,EACAS,mBAAA,EACAC,sBAAA,EACAW,cAAA,EACAF,UAAA,EACAX,wBAAA,EACAY,CAAA,EACAP,MAAA,CACD;EAGH,MAAMP,MAAA,GAAS3B,WAAA,CACZ2D,IAAA;IACCV,eAAA,CAAgBU,IAAA,CAAKC,GAAG,CAAC9C,EAAE;IAE3B,IAAI,OAAOc,eAAA,KAAoB,YAAY;MACzC,KAAKA,eAAA,CAAgB;QACnB,GAAG+B,IAAI;QACPxB;MACF;IACF;EACF,GACA,CAACP,eAAA,EAAiBO,gBAAA,EAAkBc,eAAA,CAAgB;EAGtD,MAAMxB,WAAA,GAAczB,WAAA,CACjB2D,MAAA;IACCV,eAAA,CAAgBU,MAAA,CAAKC,GAAG,CAAC9C,EAAE;IAE3B,IAAI,OAAOY,oBAAA,KAAyB,YAAY;MAC9C,KAAKA,oBAAA,CAAqB;QACxB,GAAGiC,MAAI;QACPxB;MACF;IACF;EACF,GACA,CAACT,oBAAA,EAAsBS,gBAAA,EAAkBc,eAAA,CAAgB;EAG3D,MAAM1B,QAAA,GAAWvB,WAAA,CACd2D,MAAA;IACC,IAAI,OAAOnC,iBAAA,KAAsB,YAAY;MAC3C,KAAKA,iBAAA,CAAkB;QACrB,GAAGmC,MAAI;QACPxB;MACF;IACF;IAEAK,UAAA,CAAWrB,UAAA;EACb,GACA,CAACK,iBAAA,EAAmBgB,UAAA,EAAYrB,UAAA,EAAYgB,gBAAA,CAAiB;EAG/D,MAAM0B,QAAA,GAAW7D,WAAA,CAAY;IAC3BiD,eAAA;EACF,GAAG,CAACA,eAAA,CAAgB;EAEpBhD,SAAA,CAAU;IACR,IAAI,CAAC0C,YAAA,IAAgB,CAACK,mBAAA,CAAoBU,OAAO,EAAE;MACjDT,eAAA,CAAgBlC,aAAA;MAChBiC,mBAAA,CAAoBU,OAAO,GAAG;IAChC;EACF,GAAG,CAACf,YAAA,EAAcM,eAAA,EAAiBlC,aAAA,CAAc;EAEjD;EACAd,SAAA,CAAU;IACR,MAAM6D,oBAAA,GAAuBvB,uBAAA,CAAwBmB,OAAO;IAE5D,OAAO;MACLhD,cAAA,CAAeoD,oBAAA;IACjB;EACF,GAAG,EAAE;EAEL,IAAIhB,SAAA,EAAW;IACb,oBAAOiB,IAAA,CAAC1D,cAAA;EACV;EAEA,oBACE0D,IAAA,CAACnD,6BAAA;IACCiD,QAAA,EAAUA,QAAA;IACV1C,UAAA,EAAYA,UAAA;IACZI,QAAA,EAAUA,QAAA;IACVE,WAAA,EAAaA,WAAA;IACbE,MAAA,EAAQA,MAAA;cAEPgB;;AAGP","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useLocale","useServerFunctions","useTranslation","abortAndIgnore","handleAbortRef","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","AfterFields","collectionSlug","disableActions","drawerSlug","Header","initialData","initialState","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","getEntityConfig","locale","collectionConfig","abortGetDocumentViewRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasRenderedDocument","getDocumentView","docID","controller","fetchDocumentView","result","signal","Document","error","message","current","args","doc","clearDoc","abortGetDocumentView","_jsx"],"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { LoadingOverlay } from '../../elements/Loading/index.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 { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { DocumentDrawerContextProvider } from './Provider.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n AfterFields,\n collectionSlug,\n disableActions,\n drawerSlug,\n Header,\n initialData,\n initialState,\n onDelete: onDeleteFromProps,\n onDuplicate: onDuplicateFromProps,\n onSave: onSaveFromProps,\n overrideEntityVisibility = true,\n redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const { getEntityConfig } = useConfig()\n const locale = useLocale()\n\n const [collectionConfig] = useState(() => getEntityConfig({ collectionSlug }))\n\n const abortGetDocumentViewRef = React.useRef<AbortController>(null)\n\n const { closeModal } = useModal()\n const { t } = useTranslation()\n\n const { renderDocument } = useServerFunctions()\n\n const [DocumentView, setDocumentView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n const hasRenderedDocument = useRef(false)\n\n const getDocumentView = useCallback(\n (docID?: number | string) => {\n const controller = handleAbortRef(abortGetDocumentViewRef)\n\n const fetchDocumentView = async () => {\n setIsLoading(true)\n\n try {\n const result = await renderDocument({\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n locale,\n overrideEntityVisibility,\n redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,\n redirectAfterDuplicate:\n redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,\n signal: controller.signal,\n })\n\n if (result?.Document) {\n setDocumentView(result.Document)\n setIsLoading(false)\n }\n } catch (error) {\n toast.error(error?.message || t('error:unspecific'))\n closeModal(drawerSlug)\n // toast.error(data?.errors?.[0].message || t('error:unspecific'))\n }\n\n abortGetDocumentViewRef.current = null\n }\n\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n closeModal,\n overrideEntityVisibility,\n t,\n locale,\n ],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig, getDocumentView],\n )\n\n const onDuplicate = useCallback<DocumentDrawerProps['onDuplicate']>(\n (args) => {\n getDocumentView(args.doc.id)\n\n if (typeof onDuplicateFromProps === 'function') {\n void onDuplicateFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onDuplicateFromProps, collectionConfig, getDocumentView],\n )\n\n const onDelete = useCallback<DocumentDrawerProps['onDelete']>(\n (args) => {\n if (typeof onDeleteFromProps === 'function') {\n void onDeleteFromProps({\n ...args,\n collectionConfig,\n })\n }\n\n closeModal(drawerSlug)\n },\n [onDeleteFromProps, closeModal, drawerSlug, collectionConfig],\n )\n\n const clearDoc = useCallback(() => {\n getDocumentView()\n }, [getDocumentView])\n\n useEffect(() => {\n if (!DocumentView && !hasRenderedDocument.current) {\n getDocumentView(existingDocID)\n hasRenderedDocument.current = true\n }\n }, [DocumentView, getDocumentView, existingDocID])\n\n // Cleanup any pending requests when the component unmounts\n useEffect(() => {\n const abortGetDocumentView = abortGetDocumentViewRef.current\n\n return () => {\n abortAndIgnore(abortGetDocumentView)\n }\n }, [])\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <DocumentDrawerContextProvider\n clearDoc={clearDoc}\n drawerSlug={drawerSlug}\n onDelete={onDelete}\n onDuplicate={onDuplicate}\n onSave={onSave}\n >\n {DocumentView}\n </DocumentDrawerContextProvider>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAChE,SAASC,KAAK,QAAQ;AAItB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,6BAA6B,QAAQ;AAE9C,OAAO,MAAMC,qBAAA,GAAuDA,CAAC;EACnEC,EAAA,EAAIC,aAAa;EACjBC,WAAW;EACXC,cAAc;EACdC,cAAc;EACdC,UAAU;EACVC,MAAM;EACNC,WAAW;EACXC,YAAY;EACZC,QAAA,EAAUC,iBAAiB;EAC3BC,WAAA,EAAaC,oBAAoB;EACjCC,MAAA,EAAQC,eAAe;EACvBC,wBAAA,GAA2B,IAAI;EAC/BC,mBAAmB;EACnBC;AAAsB,CACvB;EACC,MAAM;IAAEC;EAAe,CAAE,GAAG1B,SAAA;EAC5B,MAAM2B,MAAA,GAAS1B,SAAA;EAEf,MAAM,CAAC2B,gBAAA,CAAiB,GAAG/B,QAAA,CAAS,MAAM6B,eAAA,CAAgB;IAAEf;EAAe;EAE3E,MAAMkB,uBAAA,GAA0BpC,KAAA,CAAMG,MAAM,CAAkB;EAE9D,MAAM;IAAEkC;EAAU,CAAE,GAAGtC,QAAA;EACvB,MAAM;IAAEuC;EAAC,CAAE,GAAG5B,cAAA;EAEd,MAAM;IAAE6B;EAAc,CAAE,GAAG9B,kBAAA;EAE3B,MAAM,CAAC+B,YAAA,EAAcC,eAAA,CAAgB,GAAGrC,QAAA,CAA0BsC,SAAA;EAClE,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGxC,QAAA,CAAS;EAC3C,MAAMyC,mBAAA,GAAsB1C,MAAA,CAAO;EAEnC,MAAM2C,eAAA,GAAkB7C,WAAA,CACrB8C,KAAA;IACC,MAAMC,UAAA,GAAapC,cAAA,CAAewB,uBAAA;IAElC,MAAMa,iBAAA,GAAoB,MAAAA,CAAA;MACxBL,YAAA,CAAa;MAEb,IAAI;QACF,MAAMM,MAAA,GAAS,MAAMX,cAAA,CAAe;UAClCrB,cAAA;UACAC,cAAA;UACA4B,KAAA;UACA3B,UAAA;UACAE,WAAA;UACAY,MAAA;UACAJ,wBAAA;UACAC,mBAAA,EAAqBA,mBAAA,KAAwBW,SAAA,GAAYX,mBAAA,GAAsB;UAC/EC,sBAAA,EACEA,sBAAA,KAA2BU,SAAA,GAAYV,sBAAA,GAAyB;UAClEmB,MAAA,EAAQH,UAAA,CAAWG;QACrB;QAEA,IAAID,MAAA,EAAQE,QAAA,EAAU;UACpBX,eAAA,CAAgBS,MAAA,CAAOE,QAAQ;UAC/BR,YAAA,CAAa;QACf;MACF,EAAE,OAAOS,KAAA,EAAO;QACdhD,KAAA,CAAMgD,KAAK,CAACA,KAAA,EAAOC,OAAA,IAAWhB,CAAA,CAAE;QAChCD,UAAA,CAAWjB,UAAA;QACX;MACF;MAEAgB,uBAAA,CAAwBmB,OAAO,GAAG;IACpC;IAEA,KAAKN,iBAAA;EACP,GACA,CACE/B,cAAA,EACAC,cAAA,EACAC,UAAA,EACAE,WAAA,EACAS,mBAAA,EACAC,sBAAA,EACAO,cAAA,EACAF,UAAA,EACAP,wBAAA,EACAQ,CAAA,EACAJ,MAAA,CACD;EAGH,MAAMN,MAAA,GAAS3B,WAAA,CACZuD,IAAA;IACCV,eAAA,CAAgBU,IAAA,CAAKC,GAAG,CAAC1C,EAAE;IAE3B,IAAI,OAAOc,eAAA,KAAoB,YAAY;MACzC,KAAKA,eAAA,CAAgB;QACnB,GAAG2B,IAAI;QACPrB;MACF;IACF;EACF,GACA,CAACN,eAAA,EAAiBM,gBAAA,EAAkBW,eAAA,CAAgB;EAGtD,MAAMpB,WAAA,GAAczB,WAAA,CACjBuD,MAAA;IACCV,eAAA,CAAgBU,MAAA,CAAKC,GAAG,CAAC1C,EAAE;IAE3B,IAAI,OAAOY,oBAAA,KAAyB,YAAY;MAC9C,KAAKA,oBAAA,CAAqB;QACxB,GAAG6B,MAAI;QACPrB;MACF;IACF;EACF,GACA,CAACR,oBAAA,EAAsBQ,gBAAA,EAAkBW,eAAA,CAAgB;EAG3D,MAAMtB,QAAA,GAAWvB,WAAA,CACduD,MAAA;IACC,IAAI,OAAO/B,iBAAA,KAAsB,YAAY;MAC3C,KAAKA,iBAAA,CAAkB;QACrB,GAAG+B,MAAI;QACPrB;MACF;IACF;IAEAE,UAAA,CAAWjB,UAAA;EACb,GACA,CAACK,iBAAA,EAAmBY,UAAA,EAAYjB,UAAA,EAAYe,gBAAA,CAAiB;EAG/D,MAAMuB,QAAA,GAAWzD,WAAA,CAAY;IAC3B6C,eAAA;EACF,GAAG,CAACA,eAAA,CAAgB;EAEpB5C,SAAA,CAAU;IACR,IAAI,CAACsC,YAAA,IAAgB,CAACK,mBAAA,CAAoBU,OAAO,EAAE;MACjDT,eAAA,CAAgB9B,aAAA;MAChB6B,mBAAA,CAAoBU,OAAO,GAAG;IAChC;EACF,GAAG,CAACf,YAAA,EAAcM,eAAA,EAAiB9B,aAAA,CAAc;EAEjD;EACAd,SAAA,CAAU;IACR,MAAMyD,oBAAA,GAAuBvB,uBAAA,CAAwBmB,OAAO;IAE5D,OAAO;MACL5C,cAAA,CAAegD,oBAAA;IACjB;EACF,GAAG,EAAE;EAEL,IAAIhB,SAAA,EAAW;IACb,oBAAOiB,IAAA,CAACtD,cAAA;EACV;EAEA,oBACEsD,IAAA,CAAC/C,6BAAA;IACC6C,QAAA,EAAUA,QAAA;IACVtC,UAAA,EAAYA,UAAA;IACZI,QAAA,EAAUA,QAAA;IACVE,WAAA,EAAaA,WAAA;IACbE,MAAA,EAAQA,MAAA;cAEPY;;AAGP","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useEditDepth","useLocale","useTranslation","requests","formatAdminURL","Button","drawerZBase","PopupList","baseClass","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","singularLabel","router","modified","toggleModal","locale","setModified","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","hasClicked","setHasClicked","i18n","t","modalSlug","editDepth","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","path","error","confirm","_jsxs","Fragment","_jsx","onClick","className","style","zIndex","buttonStyle","size","type"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n readonly id: string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug }) as ClientCollectionConfig\n\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const editDepth = useEditDepth()\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n }),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n apiRoute,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n onDuplicate,\n redirectAfterDuplicate,\n setModified,\n router,\n adminRoute,\n collectionConfig,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => void handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal\n className={`${baseClass}__modal`}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={() => void confirm()} size=\"large\">\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useEditDepth","useLocale","useTranslation","requests","formatAdminURL","Button","drawerZBase","PopupList","baseClass","DuplicateDocument","id","slug","onDuplicate","redirectAfterDuplicate","singularLabel","router","modified","toggleModal","locale","setModified","config","routes","admin","adminRoute","api","apiRoute","serverURL","getEntityConfig","collectionConfig","collectionSlug","hasClicked","setHasClicked","i18n","t","modalSlug","editDepth","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","path","error","confirm","_jsxs","Fragment","_jsx","onClick","className","style","zIndex","buttonStyle","size","type"],"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, SanitizedCollectionConfig } from 'payload'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { Button } from '../Button/index.js'\nimport { drawerZBase } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n readonly id: string\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly redirectAfterDuplicate?: boolean\n readonly singularLabel: SanitizedCollectionConfig['labels']['singular']\n readonly slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({\n id,\n slug,\n onDuplicate,\n redirectAfterDuplicate = true,\n singularLabel,\n}) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n\n const {\n config: {\n routes: { admin: adminRoute, api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const editDepth = useEditDepth()\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${apiRoute}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n\n setModified(false)\n\n if (redirectAfterDuplicate) {\n router.push(\n formatAdminURL({\n adminRoute,\n path: `/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n }),\n )\n }\n\n if (typeof onDuplicate === 'function') {\n void onDuplicate({ collectionConfig, doc })\n }\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n apiRoute,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n onDuplicate,\n redirectAfterDuplicate,\n setModified,\n router,\n adminRoute,\n collectionConfig,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => void handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal\n className={`${baseClass}__modal`}\n slug={modalSlug}\n style={{\n zIndex: drawerZBase + editDepth,\n }}\n >\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n size=\"large\"\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={() => void confirm()} size=\"large\">\n {t('general:duplicateWithoutSaving')}\n </Button>\n </div>\n </div>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ import type { FieldWithPathClient } from 'payload';
2
+ import React from 'react';
3
+ import './index.scss';
4
+ import { type EditManyProps } from './index.js';
5
+ export declare const EditManyDrawerContent: React.FC<{
6
+ drawerSlug: string;
7
+ selected: FieldWithPathClient[];
8
+ } & EditManyProps>;
9
+ //# sourceMappingURL=DrawerContent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/EditMany/DrawerContent.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAa,MAAM,SAAS,CAAA;AAM7D,OAAO,KAAoD,MAAM,OAAO,CAAA;AAoBxE,OAAO,cAAc,CAAA;AAErB,OAAO,EAAa,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAmG1D,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAC1C;IACE,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,mBAAmB,EAAE,CAAA;CAChC,GAAG,aAAa,CAqMlB,CAAA"}