@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.
- package/dist/elements/AddNewRelation/index.d.ts.map +1 -1
- package/dist/elements/AddNewRelation/index.js.map +1 -1
- package/dist/elements/AnimateHeight/index.d.ts +10 -0
- package/dist/elements/AnimateHeight/index.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/index.js +75 -0
- package/dist/elements/AnimateHeight/index.js.map +1 -0
- package/dist/elements/AnimateHeight/index.scss +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +8 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +49 -0
- package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -0
- package/dist/elements/AppHeader/index.scss +7 -8
- package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FileSidebar/index.js +2 -4
- package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +1 -3
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.d.ts +4 -0
- package/dist/elements/CopyLocaleData/index.d.ts.map +1 -0
- package/dist/elements/CopyLocaleData/index.js +182 -0
- package/dist/elements/CopyLocaleData/index.js.map +1 -0
- package/dist/elements/CopyLocaleData/index.scss +24 -0
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +3 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +3 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +30 -27
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/types.d.ts +2 -0
- package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/types.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +2 -3
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +3 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +2 -0
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/NavGroup/index.d.ts.map +1 -1
- package/dist/elements/NavGroup/index.js +1 -2
- package/dist/elements/NavGroup/index.js.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
- package/dist/elements/Popup/PopupTrigger/index.js +5 -0
- package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
- package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
- package/dist/elements/RelationshipTable/index.js +4 -4
- package/dist/elements/RelationshipTable/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +0 -1
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +1 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +1 -0
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +10 -0
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts +7 -1
- package/dist/forms/fieldSchemasToFormState/index.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/index.js +5 -0
- package/dist/forms/fieldSchemasToFormState/index.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts +3 -2
- package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/iterateFields.js +2 -0
- package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +4 -3
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts +2 -1
- package/dist/forms/fieldSchemasToFormState/types.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/types.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +0 -1
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/Locale/index.js +30 -29
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +0 -4
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +8 -0
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +19 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts +16 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js +70 -0
- package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts +15 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +129 -0
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js +13 -14
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/buildFormState.d.ts +1 -8
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +19 -41
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.d.ts +1 -7
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +2 -21
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/copyDataFromLocale.d.ts +13 -0
- package/dist/utilities/copyDataFromLocale.d.ts.map +1 -0
- package/dist/utilities/copyDataFromLocale.js +195 -0
- package/dist/utilities/copyDataFromLocale.js.map +1 -0
- package/dist/utilities/getClientConfig.d.ts +8 -0
- package/dist/utilities/getClientConfig.d.ts.map +1 -0
- package/dist/utilities/getClientConfig.js +25 -0
- package/dist/utilities/getClientConfig.js.map +1 -0
- package/dist/utilities/getClientSchemaMap.d.ts +11 -0
- package/dist/utilities/getClientSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getClientSchemaMap.js +39 -0
- package/dist/utilities/getClientSchemaMap.js.map +1 -0
- package/dist/utilities/getSchemaMap.d.ts +9 -0
- package/dist/utilities/getSchemaMap.d.ts.map +1 -0
- package/dist/utilities/getSchemaMap.js +35 -0
- package/dist/utilities/getSchemaMap.js.map +1 -0
- package/dist/views/Edit/Auth/types.d.ts +2 -2
- package/dist/views/Edit/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Auth/types.js.map +1 -1
- 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":"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","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;
|
|
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')}: </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')}: </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')}: </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')}: </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":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAUA,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,QAAQ,EAAEC,SAAS,QAAQ;AAI3C,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,GAAA5B,EAAA;EACH;IAAA6B,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,IAAkCrE,KAAA,CAAAsE,QAAA,CAAuB;EACzD,OAAAC,SAAA,EAAAC,YAAA,IAAkCxE,KAAA,CAAAsE,QAAA,CAAuB;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAhD,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAA0B,IAAA,IAAA1B,CAAA,QAAAwC,UAAA;IAE/CO,EAAA,GAAAA,CAAA;MAAA,IACJ1C,IAAA,EAAAqC,SAAA;QACFC,YAAA,CAAa9D,UAAA;UAAAoE,IAAA,EAAmB5C,IAAA,CAAAqC,SAAA;UAAAhB,IAAA;UAAAwB,OAAA,EAA+BV;QAAA,CAAW;MAAA;MAAA,IAExEnC,IAAA,EAAAwC,SAAA;QACFC,YAAA,CAAajE,UAAA;UAAAoE,IAAA,EAAmB5C,IAAA,CAAAwC,SAAA;UAAAnB,IAAA;UAAAwB,OAAA,EAA+BV;QAAA,CAAW;MAAA;IAAA;IAE3EQ,EAAA,IAAC3C,IAAA,EAAMqB,IAAA,EAAMc,UAAA;IAAWxC,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAA0B,IAAA;IAAA1B,CAAA,MAAAwC,UAAA;IAAAxC,CAAA,MAAA+C,EAAA;IAAA/C,CAAA,MAAAgD,EAAA;EAAA;IAAAD,EAAA,GAAA/C,CAAA;IAAAgD,EAAA,GAAAhD,CAAA;EAAA;EAP3BxB,SAAA,CAAUuE,EAOV,EAAGC,EAAwB;EAE3B,MAAAG,mBAAA,GAA4BpC,WAAA,IAAe,YAAYA,WAAA,IAAeA,WAAA,CAAAqC,MAAkB;EAExF,MAAAC,mBAAA,GAA4BtC,WAAA,IAAe,YAAYA,WAAA,IAAeA,WAAA,CAAAuC,MAAkB;EAExF,MAAAC,WAAA,GAAoBC,OAAA,CAClBzB,gBAAA,IAAoB9B,EAAA,KAAOK,cAAA,KAAmB6C,mBAAA,IAAuBE,mBAAkB;EAGzF,MAAAI,2BAAA,GACE,CAACxD,EAAA,IAAM8B,gBAAA,EAAA2B,QAAA,EAAAC,MAA4B,IAAU5B,gBAAA,CAAA2B,QAAA,EAAAC,MAAA,CAAAC,QAAkC;EAEjF,MAAAC,eAAA,GACE9B,gBAAC,EAAA2B,QAAA,EAAAC,MAAA,IAAsC5B,gBAAA,EAAA2B,QAAA,EAAAC,MAAA,EAAAG,QAAoC,IAC1E7B,YAAA,EAAAyB,QAAA,EAAAC,MAAA,IAAkC1B,YAAA,EAAAyB,QAAA,EAAAC,MAAA,EAAAG,QAAgC;EAAA,IAAAC,EAAA;EAAA,IAAA/D,CAAA,QAAAmB,IAAA,IAAAnB,CAAA,QAAAgB,uBAAA;IAmB1D+C,EAAA,GAAA5C,IAAA,IAAQH,uBAAA,IACPgD,IAAA,CAAA5E,MAAA;MAAA6E,SAAA,EAAmB,GAAApE,SAAA,mBAA+B;MAAAsB;IAAA,C;;;;;;;;;IAgFnD+C,EAAA,GAAA/C,IAAA,IAAQH,uBAAA,IACPgD,IAAA,CAAAjF,MAAA;MAAAoF,WAAA,EACc;MAAAlE,EAAA,EACT;MAAAmE,OAAA,EACMtD,UAAA;MAAAuD,IAAA,EACJ;MAAAC,IAAA,EACA;MAAAC,QAAA,EAEJ5C,CAAA,CAAE;IAAA,C;;;;;;;;;SAzGf6C,KAAA,CAAArF,MAAA;IAAA8E,SAAA,EAAApE,SAAA;IAAA0E,QAAA,GACEC,KAAA,CAAC;MAAAP,SAAA,EAAe,GAAApE,SAAA,WAAuB;MAAA0E,QAAA,GACrCP,IAAA,CAAC;QAAAC,SAAA,EAAe,GAAApE,SAAA,WAAuB;QAAA0E,QAAA,EACrCC,KAAA,CAAC;UAAAP,SAAA,EAAc,GAAApE,SAAA,QAAoB;UAAA0E,QAAA,GAChCxC,gBAAA,KAAqBrB,SAAA,KAAcD,aAAA,IAClCuD,IAAA,CAAC;YAAAC,SAAA,EAAc,GAAApE,SAAA,aAAyB;YAAA0E,QAAA,EACtCP,IAAA,CAAC;cAAAC,SAAA,EAAa,GAAApE,SAAA,SAAqB;cAAA0E,QAAA,EAChC7C,IAAA,CAAAC,CAAA,CAAO;gBAAA8C,KAAA,EACCpG,cAAA,CACL0D,gBAAA,EAAA2C,MAAA,EAAAC,QAAA,IAAsCjD,IAAA,CAAAC,CAAA,CAAO,qBAC7CD,IAAA;cAAA,CAEJ;YAAA,C;cAILqC,E,EAGC,CAAAhC,gBAAA,EAAA2B,QAAA,EAAAC,MAAA,IAAsC1B,YAAA,EAAAyB,QAAA,EAAAC,MAA6B,KACnEa,KAAA,CAAAjG,QAAA;YAAAgG,QAAA,GACI,CAAAtC,YAAA,IAAiBF,gBAAA,IAAoBrB,SAAS,KAC9CsD,IAAA,CAAC;cAAAC,SAAA,EACY,CAAC,GAAApE,SAAA,UAAsB,EAAE,GAAAA,SAAA,aAAyB,EAAA+E,MAAA,CAAApB,OACnD,EAAAqB,IAAA,CACF;cAAAN,QAAA,EAERP,IAAA,CAAApE,MAAA,IAAC;YAAA,C,GAGJY,iBAAA,IAAqBqD,eAAA,KAAoBJ,2BAAA,IACxCO,IAAA,CAAC;cAAAC,SAAA,EAAc,GAAApE,SAAA,aAAyB;cAAA0E,QAAA,EACtCP,IAAA,CAAAlF,QAAA;gBAAAgG,UAAA,EACc/C,gBAAA;gBAAAgD,MAAA,EACJ9C,YAAA;gBAAAhC,EAAA;gBAAA+E,qBAAA,EAEe3E,IAAA,EAAAwC;cAAA,C;;cAMhCd,gBAAA,EAAAkD,UAAA,KAAiCvE,SAAA,IAAaD,aAAY,KACzD+D,KAAA,CAAAjG,QAAA;YAAAgG,QAAA,GACEC,KAAA,CAAC;cAAAP,SAAA,EACY,CAAC,GAAApE,SAAA,aAAyB,EAAE,GAAAA,SAAA,cAA0B,EAAA+E,MAAA,CAAApB,OACvD,EAAAqB,IAAA,CACF;cAAAK,KAAA,EACD7E,IAAA,EAAAqC,SAAA,GAAkBA,SAAA,GAAY;cAAA6B,QAAA,GAErCC,KAAA,CAAC;gBAAAP,SAAA,EAAa,GAAApE,SAAA,SAAqB;gBAAA0E,QAAA,GAAG7C,IAAA,CAAAC,CAAA,CAAO,yBAAwB;cAAA,C,GACpEtB,IAAA,EAAAqC,SAAA,IAAmBsB,IAAA,CAAC;gBAAAC,SAAA,EAAa,GAAApE,SAAA,SAAqB;gBAAA0E,QAAA,EAAG7B;cAAA,C;gBAE5D8B,KAAA,CAAC;cAAAP,SAAA,EACY,CAAC,GAAApE,SAAA,aAAyB,EAAE,GAAAA,SAAA,cAA0B,EAAA+E,MAAA,CAAApB,OACvD,EAAAqB,IAAA,CACF;cAAAK,KAAA,EACD7E,IAAA,EAAAwC,SAAA,GAAkBA,SAAA,GAAY;cAAA0B,QAAA,GAErCC,KAAA,CAAC;gBAAAP,SAAA,EAAa,GAAApE,SAAA,SAAqB;gBAAA0E,QAAA,GAAG7C,IAAA,CAAAC,CAAA,CAAO,oBAAmB;cAAA,C,GAC/DtB,IAAA,EAAAwC,SAAA,IAAmBmB,IAAA,CAAC;gBAAAC,SAAA,EAAa,GAAApE,SAAA,SAAqB;gBAAA0E,QAAA,EAAG1B;cAAA,C;;;;UAMpE2B,KAAA,CAAC;QAAAP,SAAA,EAAe,GAAApE,SAAA,oBAAgC;QAAA0E,QAAA,GAC9CC,KAAA,CAAC;UAAAP,SAAA,EAAe,GAAApE,SAAA,YAAwB;UAAA0E,QAAA,GACpC,CAAAxC,gBAAA,EAAAI,KAAA,CAAAgD,OAAA,IAAmClD,YAAA,EAAAE,KAAA,CAAAgD,OAA0B,KAC7DnB,IAAA,CAAAvE,qBAAA;YAAA2F,eAAA,EACmB9D,mBAAA;YAAA+D,QAAA,EACPrB,IAAA,CAAAzE,aAAA,IAAC;UAAA,C,GAGdiB,iBAAA,IACCwD,IAAA,CAAAzF,QAAA;YAAAgG,QAAA,EACGxC,gBAAA,EAAA2B,QAAA,EAAAC,MAAA,IAAsC1B,YAAA,EAAAyB,QAAA,EAAAC,MAAwB,GAC7Da,KAAA,CAAAjG,QAAA;cAAAgG,QAAA,GACI,CAAAd,2BAAA,KAAgCI,eAAc,KAC9CG,IAAA,CAAAvE,qBAAA;gBAAA2F,eAAA,EACmB3D,qBAAA;gBAAA4D,QAAA,EACPrB,IAAA,CAAArE,eAAA,IAAC;cAAA,C,GAGfqE,IAAA,CAAAvE,qBAAA;gBAAA2F,eAAA,EACmB7D,mBAAA;gBAAA8D,QAAA,EACPrB,IAAA,CAAAxE,aAAA,IAAC;cAAA,C;iBAIfwE,IAAA,CAAAvE,qBAAA;cAAA2F,eAAA,EACmB5D,gBAAA;cAAA6D,QAAA,EACPrB,IAAA,CAAAtE,UAAA,IAAC;YAAA,C;cAKlBwE,E;YAYFX,WAAA,KAAgBvC,uBAAA,IACfgD,IAAA,CAAA3E,KAAA;UAAAiG,MAAA,EAEId,KAAA,CAAC;YAAAP,SAAA,EAAe,GAAApE,SAAA,QAAoB;YAAA0E,QAAA,GAClCP,IAAA,CAAC,YACDA,IAAA,CAAC,YACDA,IAAA,CAAC;UAAA,C;qBAGM,GAAAnE,SAAA,SAAqB;UAAA0F,eAAA,EAChB;UAAAlB,IAAA,EACX;UAAAmB,aAAA,EACS;UAAAjB,QAAA,EAEdC,KAAA,CAAAlF,SAAA,CAAAmG,WAAA;YAAAlB,QAAA,GACGlC,YAAA,IAAgB2B,IAAA,CAAAhF,cAAA,IAAC,GACjBmE,mBAAA,IACCqB,KAAA,CAAAlG,KAAA,CAAAC,QAAA;cAAAgG,QAAA,GACG,CAAChE,aAAA,IACAyD,IAAA,CAAAzF,QAAA;gBAAAgG,QAAA,EACG3C,SAAA,IAAY,GACXoC,IAAA,CAAA1E,SAAA,CAAAP,MAAA;kBAAAkB,EAAA,EAAqB;kBAAAmE,OAAA,EAAyBxD,iBAAA;kBAAA2D,QAAA,EAC3C7C,IAAA,CAAAC,CAAA,CAAO;gBAAA,C,IAGVqC,IAAA,CAAA1E,SAAA,CAAAP,MAAA;kBAAA2G,IAAA,EACQ9G,cAAA;oBAAA6D,UAAA;oBAAAkD,IAAA,EAEE,gBAAgB5D,gBAAA,EAAA7B,IAAA;kBAA+B,CACvD;kBAAAD,EAAA,EACG;kBAAAsE,QAAA,EAEF7C,IAAA,CAAAC,CAAA,CAAO;gBAAA,C;kBAKfI,gBAAA,CAAA6D,gBAAA,SAAsC,IAAQlF,SAAA,IAC7CsD,IAAA,CAAA9E,iBAAA;gBAAAe,EAAA,EACMA,EAAA,CAAA4F,QAAA,CAAW;gBAAAhF,WAAA;gBAAAK,sBAAA;gBAAA4E,aAAA,EAGA/D,gBAAA,EAAA2C,MAAA,EAAAC,QAAA;gBAAAzE,IAAA,EACT6B,gBAAA,EAAA7B;cAAA,C;gBAKbmD,mBAAA,IACCW,IAAA,CAAA/E,cAAA;cAAA8G,QAAA,EACW;cAAA/D,cAAA,EACOD,gBAAA,EAAA7B,IAAA;cAAAD,EAAA,EACZA,EAAA,CAAA4F,QAAA,CAAW;cAAAlF,QAAA;cAAAM,mBAAA;cAAA6E,aAAA,EAGA/D,gBAAA,EAAA2C,MAAA,EAAAC,QAAA;cAAAqB,UAAA,EACHjE,gBAAA,EAAAI,KAAA,EAAA6D;YAAA,C;;;;QAQ1BhC,IAAA,CAAC;MAAAC,SAAA,EAAe,GAAApE,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;AASrD,eAAO,MAAM,qBAAqB,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
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":"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,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,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,mBAAmB;EACnBC;AAAsB,CACvB;EACC,MAAM;IACJC,MAAA,EAAQ;MAAEC;IAAW;EAAE,CACxB,
|
|
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,
|
|
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(
|
|
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] =
|
|
217
|
+
$[21] = overrideEntityVisibility;
|
|
218
|
+
$[22] = t8;
|
|
216
219
|
} else {
|
|
217
|
-
t8 = $[
|
|
220
|
+
t8 = $[22];
|
|
218
221
|
}
|
|
219
222
|
t7 = t8;
|
|
220
223
|
const MemoizedDrawer = t7;
|
|
221
224
|
let t9;
|
|
222
225
|
let t10;
|
|
223
|
-
if ($[
|
|
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
|
-
$[
|
|
231
|
-
$[
|
|
232
|
-
$[
|
|
233
|
-
$[
|
|
233
|
+
$[23] = collectionSlug;
|
|
234
|
+
$[24] = drawerSlug;
|
|
235
|
+
$[25] = id;
|
|
236
|
+
$[26] = t10;
|
|
234
237
|
} else {
|
|
235
|
-
t10 = $[
|
|
238
|
+
t10 = $[26];
|
|
236
239
|
}
|
|
237
240
|
t9 = t10;
|
|
238
241
|
const MemoizedDrawerToggler = t9;
|
|
239
242
|
let t11;
|
|
240
243
|
let t12;
|
|
241
|
-
if ($[
|
|
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
|
-
$[
|
|
251
|
-
$[
|
|
252
|
-
$[
|
|
253
|
-
$[
|
|
254
|
-
$[
|
|
255
|
-
$[
|
|
256
|
-
$[
|
|
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 = $[
|
|
261
|
+
t12 = $[33];
|
|
259
262
|
}
|
|
260
263
|
t11 = t12;
|
|
261
264
|
const MemoizedDrawerState = t11;
|
|
262
265
|
let t13;
|
|
263
|
-
if ($[
|
|
266
|
+
if ($[34] !== MemoizedDrawer || $[35] !== MemoizedDrawerToggler || $[36] !== MemoizedDrawerState) {
|
|
264
267
|
t13 = [MemoizedDrawer, MemoizedDrawerToggler, MemoizedDrawerState];
|
|
265
|
-
$[
|
|
266
|
-
$[
|
|
267
|
-
$[
|
|
268
|
-
$[
|
|
268
|
+
$[34] = MemoizedDrawer;
|
|
269
|
+
$[35] = MemoizedDrawerToggler;
|
|
270
|
+
$[36] = MemoizedDrawerState;
|
|
271
|
+
$[37] = t13;
|
|
269
272
|
} else {
|
|
270
|
-
t13 = $[
|
|
273
|
+
t13 = $[37];
|
|
271
274
|
}
|
|
272
275
|
return t13;
|
|
273
276
|
};
|