@payloadcms/ui 3.1.1 → 3.2.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 (143) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AnimateHeight/index.d.ts +10 -0
  4. package/dist/elements/AnimateHeight/index.d.ts.map +1 -0
  5. package/dist/elements/AnimateHeight/index.js +75 -0
  6. package/dist/elements/AnimateHeight/index.js.map +1 -0
  7. package/dist/elements/AnimateHeight/index.scss +8 -0
  8. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +8 -0
  9. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -0
  10. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +49 -0
  11. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -0
  12. package/dist/elements/AppHeader/index.scss +7 -8
  13. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  14. package/dist/elements/BulkUpload/FileSidebar/index.js +2 -4
  15. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  16. package/dist/elements/Collapsible/index.d.ts.map +1 -1
  17. package/dist/elements/Collapsible/index.js +1 -3
  18. package/dist/elements/Collapsible/index.js.map +1 -1
  19. package/dist/elements/CopyLocaleData/index.d.ts +4 -0
  20. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -0
  21. package/dist/elements/CopyLocaleData/index.js +182 -0
  22. package/dist/elements/CopyLocaleData/index.js.map +1 -0
  23. package/dist/elements/CopyLocaleData/index.scss +24 -0
  24. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  25. package/dist/elements/DocumentControls/index.js +3 -1
  26. package/dist/elements/DocumentControls/index.js.map +1 -1
  27. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  28. package/dist/elements/DocumentDrawer/DrawerContent.js +3 -1
  29. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  30. package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentDrawer/index.js +30 -27
  32. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  33. package/dist/elements/DocumentDrawer/types.d.ts +2 -0
  34. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  35. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  36. package/dist/elements/ListControls/index.d.ts.map +1 -1
  37. package/dist/elements/ListControls/index.js +2 -3
  38. package/dist/elements/ListControls/index.js.map +1 -1
  39. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  40. package/dist/elements/ListDrawer/DrawerContent.js +3 -1
  41. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  42. package/dist/elements/ListDrawer/types.d.ts +2 -0
  43. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  44. package/dist/elements/ListDrawer/types.js.map +1 -1
  45. package/dist/elements/NavGroup/index.d.ts.map +1 -1
  46. package/dist/elements/NavGroup/index.js +1 -2
  47. package/dist/elements/NavGroup/index.js.map +1 -1
  48. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  49. package/dist/elements/Popup/PopupTrigger/index.js +5 -0
  50. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  51. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  52. package/dist/elements/RelationshipTable/index.js +4 -4
  53. package/dist/elements/RelationshipTable/index.js.map +1 -1
  54. package/dist/elements/SearchFilter/index.d.ts.map +1 -1
  55. package/dist/elements/SearchFilter/index.js +0 -1
  56. package/dist/elements/SearchFilter/index.js.map +1 -1
  57. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  58. package/dist/elements/Thumbnail/index.js.map +1 -1
  59. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  60. package/dist/elements/WhereBuilder/index.js.map +1 -1
  61. package/dist/exports/client/index.d.ts +1 -0
  62. package/dist/exports/client/index.d.ts.map +1 -1
  63. package/dist/exports/client/index.js +22 -22
  64. package/dist/exports/client/index.js.map +4 -4
  65. package/dist/exports/rsc/index.d.ts +1 -0
  66. package/dist/exports/rsc/index.d.ts.map +1 -1
  67. package/dist/exports/rsc/index.js +1 -0
  68. package/dist/exports/rsc/index.js.map +1 -1
  69. package/dist/fields/Join/index.d.ts.map +1 -1
  70. package/dist/fields/Join/index.js +1 -0
  71. package/dist/fields/Join/index.js.map +1 -1
  72. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -1
  73. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  74. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +10 -0
  75. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  76. package/dist/forms/fieldSchemasToFormState/index.d.ts +7 -1
  77. package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
  78. package/dist/forms/fieldSchemasToFormState/index.js +5 -0
  79. package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
  80. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +3 -2
  81. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  82. package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
  83. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  84. package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
  85. package/dist/forms/fieldSchemasToFormState/renderField.js +4 -3
  86. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  87. package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -1
  88. package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
  89. package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
  90. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  91. package/dist/providers/ListQuery/index.js +0 -1
  92. package/dist/providers/ListQuery/index.js.map +1 -1
  93. package/dist/providers/Locale/index.js +30 -29
  94. package/dist/providers/Locale/index.js.map +1 -1
  95. package/dist/providers/Selection/index.d.ts.map +1 -1
  96. package/dist/providers/Selection/index.js +0 -4
  97. package/dist/providers/Selection/index.js.map +1 -1
  98. package/dist/providers/ServerFunctions/index.d.ts +8 -0
  99. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  100. package/dist/providers/ServerFunctions/index.js +19 -0
  101. package/dist/providers/ServerFunctions/index.js.map +1 -1
  102. package/dist/styles.css +1 -1
  103. package/dist/utilities/buildClientFieldSchemaMap/index.d.ts +16 -0
  104. package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -0
  105. package/dist/utilities/buildClientFieldSchemaMap/index.js +70 -0
  106. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -0
  107. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts +15 -0
  108. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -0
  109. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +129 -0
  110. package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -0
  111. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  112. package/dist/utilities/buildFieldSchemaMap/index.js +13 -14
  113. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  114. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  115. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  116. package/dist/utilities/buildFormState.d.ts +1 -8
  117. package/dist/utilities/buildFormState.d.ts.map +1 -1
  118. package/dist/utilities/buildFormState.js +19 -41
  119. package/dist/utilities/buildFormState.js.map +1 -1
  120. package/dist/utilities/buildTableState.d.ts +1 -7
  121. package/dist/utilities/buildTableState.d.ts.map +1 -1
  122. package/dist/utilities/buildTableState.js +2 -21
  123. package/dist/utilities/buildTableState.js.map +1 -1
  124. package/dist/utilities/copyDataFromLocale.d.ts +13 -0
  125. package/dist/utilities/copyDataFromLocale.d.ts.map +1 -0
  126. package/dist/utilities/copyDataFromLocale.js +195 -0
  127. package/dist/utilities/copyDataFromLocale.js.map +1 -0
  128. package/dist/utilities/getClientConfig.d.ts +8 -0
  129. package/dist/utilities/getClientConfig.d.ts.map +1 -0
  130. package/dist/utilities/getClientConfig.js +25 -0
  131. package/dist/utilities/getClientConfig.js.map +1 -0
  132. package/dist/utilities/getClientSchemaMap.d.ts +11 -0
  133. package/dist/utilities/getClientSchemaMap.d.ts.map +1 -0
  134. package/dist/utilities/getClientSchemaMap.js +39 -0
  135. package/dist/utilities/getClientSchemaMap.js.map +1 -0
  136. package/dist/utilities/getSchemaMap.d.ts +9 -0
  137. package/dist/utilities/getSchemaMap.d.ts.map +1 -0
  138. package/dist/utilities/getSchemaMap.js +35 -0
  139. package/dist/utilities/getSchemaMap.js.map +1 -0
  140. package/dist/views/Edit/Auth/types.d.ts +2 -2
  141. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  142. package/dist/views/Edit/Auth/types.js.map +1 -1
  143. package/package.json +5 -6
@@ -0,0 +1,182 @@
1
+ 'use client';
2
+
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ import { useModal } from '@faceless-ui/modal';
5
+ import { useRouter } from 'next/navigation.js';
6
+ import React, { useCallback } from 'react';
7
+ import { toast } from 'sonner';
8
+ import { CheckboxField } from '../../fields/Checkbox/index.js';
9
+ import { SelectInput } from '../../fields/Select/index.js';
10
+ import { useFormModified } from '../../forms/Form/context.js';
11
+ import { useConfig } from '../../providers/Config/index.js';
12
+ import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
13
+ import { useLocale } from '../../providers/Locale/index.js';
14
+ import { useServerFunctions } from '../../providers/ServerFunctions/index.js';
15
+ import { useTranslation } from '../../providers/Translation/index.js';
16
+ import { DrawerHeader } from '../BulkUpload/Header/index.js';
17
+ import { Button } from '../Button/index.js';
18
+ import { Drawer } from '../Drawer/index.js';
19
+ import { PopupList } from '../Popup/index.js';
20
+ import './index.scss';
21
+ const baseClass = 'copy-locale-data';
22
+ const drawerSlug = 'copy-locale';
23
+ export const CopyLocaleData = () => {
24
+ const {
25
+ config: {
26
+ localization,
27
+ routes: {
28
+ admin
29
+ },
30
+ serverURL
31
+ }
32
+ } = useConfig();
33
+ const {
34
+ code
35
+ } = useLocale();
36
+ const {
37
+ id,
38
+ collectionSlug,
39
+ globalSlug
40
+ } = useDocumentInfo();
41
+ const {
42
+ t
43
+ } = useTranslation();
44
+ const modified = useFormModified();
45
+ const {
46
+ toggleModal
47
+ } = useModal();
48
+ const {
49
+ copyDataFromLocale
50
+ } = useServerFunctions();
51
+ const router = useRouter();
52
+ const localeOptions = localization && localization.locales.map(locale => ({
53
+ label: locale.label,
54
+ value: locale.code
55
+ })) || [];
56
+ const localeOptionsWithoutCurrent = localeOptions.filter(locale_0 => locale_0.value !== code);
57
+ const getLocaleLabel = code_0 => {
58
+ const locale_1 = localization && localization.locales.find(l => l.code === code_0);
59
+ return locale_1 && locale_1.label ? locale_1.label : code_0;
60
+ };
61
+ const [copying, setCopying] = React.useState(false);
62
+ const [toLocale, setToLocale] = React.useState(null);
63
+ const [fromLocale, setFromLocale] = React.useState(code);
64
+ const [overwriteExisting, setOverwriteExisting] = React.useState(false);
65
+ React.useEffect(() => {
66
+ if (fromLocale !== code) {
67
+ // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect
68
+ setFromLocale(code);
69
+ }
70
+ }, [code, fromLocale]);
71
+ const copyLocaleData = useCallback(async ({
72
+ from,
73
+ to
74
+ }) => {
75
+ setCopying(true);
76
+ try {
77
+ await copyDataFromLocale({
78
+ collectionSlug,
79
+ docID: id,
80
+ fromLocale: from,
81
+ globalSlug,
82
+ overrideData: overwriteExisting,
83
+ toLocale: to
84
+ });
85
+ setCopying(false);
86
+ toggleModal(drawerSlug);
87
+ router.push(`${serverURL}${admin}/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}?locale=${to}`);
88
+ } catch (error) {
89
+ toast.error(error.message);
90
+ }
91
+ }, [copyDataFromLocale, collectionSlug, id, globalSlug, overwriteExisting, toggleModal, router, serverURL, admin]);
92
+ if (!id && !globalSlug) {
93
+ return null;
94
+ }
95
+ return /*#__PURE__*/_jsxs(React.Fragment, {
96
+ children: [/*#__PURE__*/_jsx(PopupList.Button, {
97
+ id: `${baseClass}__button`,
98
+ onClick: () => {
99
+ if (modified) {
100
+ toast.info(t('general:unsavedChanges'));
101
+ } else {
102
+ toggleModal(drawerSlug);
103
+ }
104
+ },
105
+ children: t('localization:copyToLocale')
106
+ }), /*#__PURE__*/_jsxs(Drawer, {
107
+ className: baseClass,
108
+ gutter: false,
109
+ Header: /*#__PURE__*/_jsx(DrawerHeader, {
110
+ onClose: () => {
111
+ toggleModal(drawerSlug);
112
+ },
113
+ title: t('localization:copyToLocale')
114
+ }),
115
+ slug: drawerSlug,
116
+ children: [/*#__PURE__*/_jsxs("div", {
117
+ className: `${baseClass}__sub-header`,
118
+ children: [/*#__PURE__*/_jsx("span", {
119
+ children: fromLocale && toLocale ? /*#__PURE__*/_jsx("div", {
120
+ children: t('localization:copyFromTo', {
121
+ from: getLocaleLabel(fromLocale),
122
+ to: getLocaleLabel(toLocale)
123
+ })
124
+ }) : t('localization:selectLocaleToCopy')
125
+ }), /*#__PURE__*/_jsx(Button, {
126
+ buttonStyle: "primary",
127
+ disabled: !fromLocale || !toLocale,
128
+ iconPosition: "left",
129
+ onClick: async () => {
130
+ if (fromLocale === toLocale) {
131
+ toast.error(t('localization:cannotCopySameLocale'));
132
+ return;
133
+ }
134
+ if (!copying) {
135
+ await copyLocaleData({
136
+ from: fromLocale,
137
+ to: toLocale
138
+ });
139
+ }
140
+ },
141
+ size: "medium",
142
+ children: copying ? t('general:copying') + '...' : t('general:copy')
143
+ })]
144
+ }), /*#__PURE__*/_jsxs("div", {
145
+ className: `${baseClass}__content`,
146
+ children: [/*#__PURE__*/_jsx(SelectInput, {
147
+ label: t('localization:copyFrom'),
148
+ name: 'fromLocale',
149
+ onChange: selectedOption => {
150
+ if (selectedOption?.value) {
151
+ setFromLocale(selectedOption.value);
152
+ }
153
+ },
154
+ options: localeOptions,
155
+ path: "fromLocale",
156
+ readOnly: true,
157
+ value: fromLocale
158
+ }), /*#__PURE__*/_jsx(SelectInput, {
159
+ label: t('localization:copyTo'),
160
+ name: "toLocale",
161
+ onChange: selectedOption_0 => {
162
+ if (selectedOption_0?.value) {
163
+ setToLocale(selectedOption_0.value);
164
+ }
165
+ },
166
+ options: localeOptionsWithoutCurrent,
167
+ path: "toLocale",
168
+ value: toLocale
169
+ }), /*#__PURE__*/_jsx(CheckboxField, {
170
+ checked: overwriteExisting,
171
+ field: {
172
+ name: 'overwriteExisting',
173
+ label: t('general:overwriteExistingData')
174
+ },
175
+ onChange: () => setOverwriteExisting(!overwriteExisting),
176
+ path: 'overwriteExisting'
177
+ })]
178
+ })]
179
+ })]
180
+ });
181
+ };
182
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["useModal","useRouter","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","config","localization","routes","admin","serverURL","code","id","collectionSlug","globalSlug","t","modified","toggleModal","copyDataFromLocale","router","localeOptions","locales","map","locale","label","value","localeOptionsWithoutCurrent","filter","getLocaleLabel","find","l","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","useEffect","copyLocaleData","from","to","docID","overrideData","push","error","message","_jsxs","Fragment","_jsx","onClick","info","className","gutter","Header","onClose","title","slug","buttonStyle","disabled","iconPosition","size","name","onChange","selectedOption","options","path","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? locale.label : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n // eslint-disable-next-line @eslint-react/hooks-extra/no-direct-set-state-in-use-effect\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n toggleModal(drawerSlug)\n router.push(\n `${serverURL}${admin}/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}?locale=${to}`,\n )\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,IAASC,WAAW,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,SAASC,aAAa,QAAQ;AAC9B,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,YAAY,QAAQ;AAC7B,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,UAAA,GAAa;AACnB,OAAO,MAAMC,cAAA,GAA2BA,CAAA;EACtC,MAAM;IACJC,MAAA,EAAQ;MACNC,YAAY;MACZC,MAAA,EAAQ;QAAEC;MAAK,CAAE;MACjBC;IAAS;EACV,CACF,GAAGhB,SAAA;EACJ,MAAM;IAAEiB;EAAI,CAAE,GAAGf,SAAA;EACjB,MAAM;IAAEgB,EAAE;IAAEC,cAAc;IAAEC;EAAU,CAAE,GAAGnB,eAAA;EAC3C,MAAM;IAAEoB;EAAC,CAAE,GAAGjB,cAAA;EACd,MAAMkB,QAAA,GAAWvB,eAAA;EACjB,MAAM;IAAEwB;EAAW,CAAE,GAAG/B,QAAA;EACxB,MAAM;IAAEgC;EAAkB,CAAE,GAAGrB,kBAAA;EAC/B,MAAMsB,MAAA,GAAShC,SAAA;EAEf,MAAMiC,aAAA,GACJb,YAAC,IACCA,YAAA,CAAac,OAAO,CAACC,GAAG,CAAEC,MAAA,KAAY;IAAEC,KAAA,EAAOD,MAAA,CAAOC,KAAK;IAAEC,KAAA,EAAOF,MAAA,CAAOZ;EAAK,OAClF,EAAE;EAEJ,MAAMe,2BAAA,GAA8BN,aAAA,CAAcO,MAAM,CAAEJ,QAAA,IAAWA,QAAA,CAAOE,KAAK,KAAKd,IAAA;EAEtF,MAAMiB,cAAA,GAAkBjB,MAAA;IACtB,MAAMY,QAAA,GAAShB,YAAA,IAAgBA,YAAA,CAAac,OAAO,CAACQ,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEnB,IAAI,KAAKA,MAAA;IAC3E,OAAOY,QAAA,IAAUA,QAAA,CAAOC,KAAK,GAAGD,QAAA,CAAOC,KAAK,GAAGb,MAAA;EACjD;EAEA,MAAM,CAACoB,OAAA,EAASC,UAAA,CAAW,GAAG5C,KAAA,CAAM6C,QAAQ,CAAC;EAC7C,MAAM,CAACC,QAAA,EAAUC,WAAA,CAAY,GAAG/C,KAAA,CAAM6C,QAAQ,CAAgB;EAC9D,MAAM,CAACG,UAAA,EAAYC,aAAA,CAAc,GAAGjD,KAAA,CAAM6C,QAAQ,CAAgBtB,IAAA;EAClE,MAAM,CAAC2B,iBAAA,EAAmBC,oBAAA,CAAqB,GAAGnD,KAAA,CAAM6C,QAAQ,CAAC;EAEjE7C,KAAA,CAAMoD,SAAS,CAAC;IACd,IAAIJ,UAAA,KAAezB,IAAA,EAAM;MACvB;MACA0B,aAAA,CAAc1B,IAAA;IAChB;EACF,GAAG,CAACA,IAAA,EAAMyB,UAAA,CAAW;EAErB,MAAMK,cAAA,GAAiBpD,WAAA,CACrB,OAAO;IAAEqD,IAAI;IAAEC;EAAE,CAAE;IACjBX,UAAA,CAAW;IAEX,IAAI;MACF,MAAMd,kBAAA,CAAmB;QACvBL,cAAA;QACA+B,KAAA,EAAOhC,EAAA;QACPwB,UAAA,EAAYM,IAAA;QACZ5B,UAAA;QACA+B,YAAA,EAAcP,iBAAA;QACdJ,QAAA,EAAUS;MACZ;MAEAX,UAAA,CAAW;MACXf,WAAA,CAAYb,UAAA;MACZe,MAAA,CAAO2B,IAAI,CACT,GAAGpC,SAAA,GAAYD,KAAA,IAASI,cAAA,GAAiB,eAAeA,cAAA,IAAkBD,EAAA,EAAI,GAAG,WAAWE,UAAA,EAAY,WAAW6B,EAAA,EAAI;IAE3H,EAAE,OAAOI,KAAA,EAAO;MACdzD,KAAA,CAAMyD,KAAK,CAACA,KAAA,CAAMC,OAAO;IAC3B;EACF,GACA,CACE9B,kBAAA,EACAL,cAAA,EACAD,EAAA,EACAE,UAAA,EACAwB,iBAAA,EACArB,WAAA,EACAE,MAAA,EACAT,SAAA,EACAD,KAAA,CACD;EAGH,IAAI,CAACG,EAAA,IAAM,CAACE,UAAA,EAAY;IACtB,OAAO;EACT;EAEA,oBACEmC,KAAA,CAAC7D,KAAA,CAAM8D,QAAQ;4BACbC,IAAA,CAACjD,SAAA,CAAUF,MAAM;MACfY,EAAA,EAAI,GAAGT,SAAA,UAAmB;MAC1BiD,OAAA,EAASA,CAAA;QACP,IAAIpC,QAAA,EAAU;UACZ1B,KAAA,CAAM+D,IAAI,CAACtC,CAAA,CAAE;QACf,OAAO;UACLE,WAAA,CAAYb,UAAA;QACd;MACF;gBAECW,CAAA,CAAE;qBAELkC,KAAA,CAAChD,MAAA;MACCqD,SAAA,EAAWnD,SAAA;MACXoD,MAAA,EAAQ;MACRC,MAAA,eACEL,IAAA,CAACpD,YAAA;QACC0D,OAAA,EAASA,CAAA;UACPxC,WAAA,CAAYb,UAAA;QACd;QACAsD,KAAA,EAAO3C,CAAA,CAAE;;MAGb4C,IAAA,EAAMvD,UAAA;8BAEN6C,KAAA,CAAC;QAAIK,SAAA,EAAW,GAAGnD,SAAA,cAAuB;gCACxCgD,IAAA,CAAC;oBACEf,UAAA,IAAcF,QAAA,gBACbiB,IAAA,CAAC;sBACEpC,CAAA,CAAE,2BAA2B;cAC5B2B,IAAA,EAAMd,cAAA,CAAeQ,UAAA;cACrBO,EAAA,EAAIf,cAAA,CAAeM,QAAA;YACrB;eAGFnB,CAAA,CAAE;yBAGNoC,IAAA,CAACnD,MAAA;UACC4D,WAAA,EAAY;UACZC,QAAA,EAAU,CAACzB,UAAA,IAAc,CAACF,QAAA;UAC1B4B,YAAA,EAAa;UACbV,OAAA,EAAS,MAAAA,CAAA;YACP,IAAIhB,UAAA,KAAeF,QAAA,EAAU;cAC3B5C,KAAA,CAAMyD,KAAK,CAAChC,CAAA,CAAE;cACd;YACF;YACA,IAAI,CAACgB,OAAA,EAAS;cACZ,MAAMU,cAAA,CAAe;gBACnBC,IAAA,EAAMN,UAAA;gBACNO,EAAA,EAAIT;cACN;YACF;UACF;UACA6B,IAAA,EAAK;oBAEJhC,OAAA,GAAUhB,CAAA,CAAE,qBAAqB,QAAQA,CAAA,CAAE;;uBAIhDkC,KAAA,CAAC;QAAIK,SAAA,EAAW,GAAGnD,SAAA,WAAoB;gCACrCgD,IAAA,CAAC3D,WAAA;UACCgC,KAAA,EAAOT,CAAA,CAAE;UACTiD,IAAA,EAAM;UACNC,QAAA,EAAWC,cAAA;YACT,IAAIA,cAAA,EAAgBzC,KAAA,EAAO;cACzBY,aAAA,CAAc6B,cAAA,CAAezC,KAAK;YACpC;UACF;UACA0C,OAAA,EAAS/C,aAAA;UACTgD,IAAA,EAAK;UACLC,QAAQ;UACR5C,KAAA,EAAOW;yBAETe,IAAA,CAAC3D,WAAA;UACCgC,KAAA,EAAOT,CAAA,CAAE;UACTiD,IAAA,EAAK;UACLC,QAAA,EAAWC,gBAAA;YACT,IAAIA,gBAAA,EAAgBzC,KAAA,EAAO;cACzBU,WAAA,CAAY+B,gBAAA,CAAezC,KAAK;YAClC;UACF;UACA0C,OAAA,EAASzC,2BAAA;UACT0C,IAAA,EAAK;UACL3C,KAAA,EAAOS;yBAETiB,IAAA,CAAC5D,aAAA;UACC+E,OAAA,EAAShC,iBAAA;UACTiC,KAAA,EAAO;YACLP,IAAA,EAAM;YACNxC,KAAA,EAAOT,CAAA,CAAE;UACX;UACAkD,QAAA,EAAUA,CAAA,KAAM1B,oBAAA,CAAqB,CAACD,iBAAA;UACtC8B,IAAA,EAAM;;;;;AAMlB","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ .copy-locale-data {
4
+ &__sub-header {
5
+ padding: 0 var(--gutter-h);
6
+ display: flex;
7
+ justify-content: space-between;
8
+ align-items: center;
9
+ border-bottom: 1px solid var(--theme-border-color);
10
+ }
11
+
12
+ &__content {
13
+ padding: calc(var(--base) * 1.5) var(--gutter-h);
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: var(--base);
17
+
18
+ > * {
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: calc(var(--base) * 0.25);
22
+ }
23
+ }
24
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAoB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAsPA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAqB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CAwPA,CAAA"}
@@ -11,6 +11,7 @@ import { formatAdminURL } from '../../utilities/formatAdminURL.js';
11
11
  import { formatDate } from '../../utilities/formatDate.js';
12
12
  import { Autosave } from '../Autosave/index.js';
13
13
  import { Button } from '../Button/index.js';
14
+ import { CopyLocaleData } from '../CopyLocaleData/index.js';
14
15
  import { DeleteDocument } from '../DeleteDocument/index.js';
15
16
  import { DuplicateDocument } from '../DuplicateDocument/index.js';
16
17
  import { Gutter } from '../Gutter/index.js';
@@ -77,6 +78,7 @@ export const DocumentControls = props => {
77
78
  });
78
79
  const {
79
80
  admin: t2,
81
+ localization,
80
82
  routes: t3
81
83
  } = config;
82
84
  const {
@@ -236,7 +238,7 @@ export const DocumentControls = props => {
236
238
  size: "large",
237
239
  verticalAlign: "bottom",
238
240
  children: _jsxs(PopupList.ButtonGroup, {
239
- children: [hasCreatePermission && _jsxs(React.Fragment, {
241
+ children: [localization && _jsx(CopyLocaleData, {}), hasCreatePermission && _jsxs(React.Fragment, {
240
242
  children: [!disableCreate && _jsx(Fragment, {
241
243
  children: editDepth > 1 ? _jsx(PopupList.Button, {
242
244
  id: "action-create",
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","Fragment","useEffect","useConfig","useEditDepth","useTranslation","formatAdminURL","formatDate","Autosave","Button","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","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","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","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 { 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 { 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 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 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 horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\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","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","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","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 { 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 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 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 +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;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CA8J/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;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAiK/D,CAAA"}
@@ -22,6 +22,7 @@ export const DocumentDrawerContent = ({
22
22
  onDelete: onDeleteFromProps,
23
23
  onDuplicate: onDuplicateFromProps,
24
24
  onSave: onSaveFromProps,
25
+ overrideEntityVisibility = true,
25
26
  redirectAfterDelete,
26
27
  redirectAfterDuplicate
27
28
  }) => {
@@ -57,6 +58,7 @@ export const DocumentDrawerContent = ({
57
58
  docID,
58
59
  drawerSlug,
59
60
  initialData,
61
+ overrideEntityVisibility,
60
62
  redirectAfterDelete: redirectAfterDelete !== undefined ? redirectAfterDelete : false,
61
63
  redirectAfterDuplicate: redirectAfterDuplicate !== undefined ? redirectAfterDuplicate : false,
62
64
  signal: controller.signal
@@ -72,7 +74,7 @@ export const DocumentDrawerContent = ({
72
74
  }
73
75
  };
74
76
  void fetchDocumentView();
75
- }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, renderDocument, closeModal, t]);
77
+ }, [collectionSlug, disableActions, drawerSlug, initialData, redirectAfterDelete, redirectAfterDuplicate, renderDocument, closeModal, overrideEntityVisibility, t]);
76
78
  const onSave = useCallback(args => {
77
79
  getDocumentView(args.doc.id);
78
80
  if (typeof onSaveFromProps === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","AfterFields","collectionSlug","disableActions","drawerSlug","Header","initialData","initialState","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","redirectAfterDelete","redirectAfterDuplicate","config","collections","collectionConfig","find","collection","slug","documentViewAbortControllerRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasRenderedDocument","getDocumentView","docID","current","controller","AbortController","fetchDocumentView","result","signal","Document","error","message","args","doc","clearDoc","_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 { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore } 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 redirectAfterDelete,\n redirectAfterDuplicate,\n}) => {\n const {\n config: { collections },\n } = useConfig()\n\n const [collectionConfig] = useState(() =>\n collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const documentViewAbortControllerRef = 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 abortAndIgnore(documentViewAbortControllerRef.current)\n\n const controller = new AbortController()\n documentViewAbortControllerRef.current = controller\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 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\n void fetchDocumentView()\n },\n [\n collectionSlug,\n disableActions,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n renderDocument,\n closeModal,\n t,\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 return () => {\n abortAndIgnore(documentViewAbortControllerRef.current)\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":"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","ignoreList":[]}
1
+ {"version":3,"file":"DrawerContent.js","names":["useModal","React","useCallback","useEffect","useRef","useState","toast","LoadingOverlay","useConfig","useServerFunctions","useTranslation","abortAndIgnore","DocumentDrawerContextProvider","DocumentDrawerContent","id","existingDocID","AfterFields","collectionSlug","disableActions","drawerSlug","Header","initialData","initialState","onDelete","onDeleteFromProps","onDuplicate","onDuplicateFromProps","onSave","onSaveFromProps","overrideEntityVisibility","redirectAfterDelete","redirectAfterDuplicate","config","collections","collectionConfig","find","collection","slug","documentViewAbortControllerRef","closeModal","t","renderDocument","DocumentView","setDocumentView","undefined","isLoading","setIsLoading","hasRenderedDocument","getDocumentView","docID","current","controller","AbortController","fetchDocumentView","result","signal","Document","error","message","args","doc","clearDoc","_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 { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { abortAndIgnore } 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\n const [collectionConfig] = useState(() =>\n collections.find((collection) => collection.slug === collectionSlug),\n )\n\n const documentViewAbortControllerRef = 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 abortAndIgnore(documentViewAbortControllerRef.current)\n\n const controller = new AbortController()\n documentViewAbortControllerRef.current = controller\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 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\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 ],\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 return () => {\n abortAndIgnore(documentViewAbortControllerRef.current)\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":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9F,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,eAAe,CAAA;AAcrC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2BhE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAQxD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAiE/B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentDrawer/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2D,MAAM,OAAO,CAAA;AAE/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAO9F,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,SAAS,eAAe,CAAA;AAcrC,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA2BhE,CAAA;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAQxD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,iBAsE/B,CAAA"}
@@ -116,10 +116,11 @@ export const DocumentDrawer = props => {
116
116
  });
117
117
  };
118
118
  export const useDocumentDrawer = t0 => {
119
- const $ = _c(37);
119
+ const $ = _c(38);
120
120
  const {
121
121
  id,
122
- collectionSlug
122
+ collectionSlug,
123
+ overrideEntityVisibility
123
124
  } = t0;
124
125
  const editDepth = useEditDepth();
125
126
  const uuid = useId();
@@ -201,44 +202,46 @@ export const useDocumentDrawer = t0 => {
201
202
  const openDrawer = t6;
202
203
  let t7;
203
204
  let t8;
204
- if ($[18] !== collectionSlug || $[19] !== drawerSlug || $[20] !== id) {
205
+ if ($[18] !== collectionSlug || $[19] !== drawerSlug || $[20] !== id || $[21] !== overrideEntityVisibility) {
205
206
  t8 = props => _createElement(DocumentDrawer, {
206
207
  ...props,
207
208
  collectionSlug,
208
209
  drawerSlug,
209
210
  id,
210
- key: drawerSlug
211
+ key: drawerSlug,
212
+ overrideEntityVisibility
211
213
  });
212
214
  $[18] = collectionSlug;
213
215
  $[19] = drawerSlug;
214
216
  $[20] = id;
215
- $[21] = t8;
217
+ $[21] = overrideEntityVisibility;
218
+ $[22] = t8;
216
219
  } else {
217
- t8 = $[21];
220
+ t8 = $[22];
218
221
  }
219
222
  t7 = t8;
220
223
  const MemoizedDrawer = t7;
221
224
  let t9;
222
225
  let t10;
223
- if ($[22] !== collectionSlug || $[23] !== drawerSlug || $[24] !== id) {
226
+ if ($[23] !== collectionSlug || $[24] !== drawerSlug || $[25] !== id) {
224
227
  t10 = props_0 => _jsx(DocumentDrawerToggler, {
225
228
  ...props_0,
226
229
  collectionSlug,
227
230
  drawerSlug,
228
231
  id
229
232
  });
230
- $[22] = collectionSlug;
231
- $[23] = drawerSlug;
232
- $[24] = id;
233
- $[25] = t10;
233
+ $[23] = collectionSlug;
234
+ $[24] = drawerSlug;
235
+ $[25] = id;
236
+ $[26] = t10;
234
237
  } else {
235
- t10 = $[25];
238
+ t10 = $[26];
236
239
  }
237
240
  t9 = t10;
238
241
  const MemoizedDrawerToggler = t9;
239
242
  let t11;
240
243
  let t12;
241
- if ($[26] !== closeDrawer || $[27] !== editDepth || $[28] !== drawerSlug || $[29] !== isOpen || $[30] !== openDrawer || $[31] !== toggleDrawer) {
244
+ if ($[27] !== closeDrawer || $[28] !== editDepth || $[29] !== drawerSlug || $[30] !== isOpen || $[31] !== openDrawer || $[32] !== toggleDrawer) {
242
245
  t12 = {
243
246
  closeDrawer,
244
247
  drawerDepth: editDepth,
@@ -247,27 +250,27 @@ export const useDocumentDrawer = t0 => {
247
250
  openDrawer,
248
251
  toggleDrawer
249
252
  };
250
- $[26] = closeDrawer;
251
- $[27] = editDepth;
252
- $[28] = drawerSlug;
253
- $[29] = isOpen;
254
- $[30] = openDrawer;
255
- $[31] = toggleDrawer;
256
- $[32] = t12;
253
+ $[27] = closeDrawer;
254
+ $[28] = editDepth;
255
+ $[29] = drawerSlug;
256
+ $[30] = isOpen;
257
+ $[31] = openDrawer;
258
+ $[32] = toggleDrawer;
259
+ $[33] = t12;
257
260
  } else {
258
- t12 = $[32];
261
+ t12 = $[33];
259
262
  }
260
263
  t11 = t12;
261
264
  const MemoizedDrawerState = t11;
262
265
  let t13;
263
- if ($[33] !== MemoizedDrawer || $[34] !== MemoizedDrawerToggler || $[35] !== MemoizedDrawerState) {
266
+ if ($[34] !== MemoizedDrawer || $[35] !== MemoizedDrawerToggler || $[36] !== MemoizedDrawerState) {
264
267
  t13 = [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState];
265
- $[33] = MemoizedDrawer;
266
- $[34] = MemoizedDrawerToggler;
267
- $[35] = MemoizedDrawerState;
268
- $[36] = t13;
268
+ $[34] = MemoizedDrawer;
269
+ $[35] = MemoizedDrawerToggler;
270
+ $[36] = MemoizedDrawerState;
271
+ $[37] = t13;
269
272
  } else {
270
- t13 = $[36];
273
+ t13 = $[37];
271
274
  }
272
275
  return t13;
273
276
  };