@payloadcms/ui 3.86.0-internal.ac46214 → 3.87.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/BulkUpload/EditMany/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/ControlledDocumentDrawer.d.ts +13 -0
- package/dist/elements/DocumentDrawer/ControlledDocumentDrawer.d.ts.map +1 -0
- package/dist/elements/DocumentDrawer/ControlledDocumentDrawer.js +114 -0
- package/dist/elements/DocumentDrawer/ControlledDocumentDrawer.js.map +1 -0
- package/dist/elements/DocumentDrawer/index.d.ts +6 -0
- package/dist/elements/DocumentDrawer/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +1 -1
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DraggableSortable/index.js.map +1 -1
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.d.ts.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js +3 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.spec.js +143 -0
- package/dist/elements/FieldSelect/reduceFieldOptions.spec.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +43 -35
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts +2 -7
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +28 -116
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
- package/dist/elements/Table/RelationshipProvider/index.js +1 -0
- package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-TL3K3PHG.js → CodeEditor-5OM6KTW4.js} +2 -2
- package/dist/exports/client/{chunk-MRRDX6D7.js → chunk-2GZJJKQF.js} +1 -1
- package/dist/exports/client/{chunk-MRRDX6D7.js.map → chunk-2GZJJKQF.js.map} +1 -1
- package/dist/exports/client/index.js +24 -24
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Row/index.d.ts +1 -1
- package/dist/fields/Slug/index.d.ts.map +1 -1
- package/dist/fields/Slug/index.js +29 -20
- package/dist/fields/Slug/index.js.map +1 -1
- package/dist/fields/Slug/index.scss +17 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +11 -10
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +2 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +48 -30
- package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
- package/dist/providers/TableColumns/buildColumnState/index.spec.js +40 -0
- package/dist/providers/TableColumns/buildColumnState/index.spec.js.map +1 -0
- package/dist/scss/app.scss +1 -1
- package/dist/scss/styles.scss +6 -6
- package/dist/scss/toastify.scss +2 -2
- package/dist/styles.css +1 -1
- package/dist/utilities/handleLivePreview.d.ts +1 -0
- package/dist/utilities/handleLivePreview.d.ts.map +1 -1
- package/dist/utilities/isURLAllowed.d.ts.map +1 -1
- package/dist/utilities/isURLAllowed.js +9 -3
- package/dist/utilities/isURLAllowed.js.map +1 -1
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
- package/dist/views/BrowseByFolder/index.js +92 -37
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/index.js +73 -21
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/package.json +4 -4
- /package/dist/exports/client/{CodeEditor-TL3K3PHG.js.map → CodeEditor-5OM6KTW4.js.map} +0 -0
|
@@ -17,7 +17,6 @@ import { useDocumentDrawer } from '../../../DocumentDrawer/index.js';
|
|
|
17
17
|
import { Drawer } from '../../../Drawer/index.js';
|
|
18
18
|
import { DrawerActionHeader } from '../../../DrawerActionHeader/index.js';
|
|
19
19
|
import { DrawerContentContainer } from '../../../DrawerContentContainer/index.js';
|
|
20
|
-
import { ListCreateNewDocInFolderButton } from '../../../ListHeader/TitleActions/ListCreateNewDocInFolderButton.js';
|
|
21
20
|
import { LoadingOverlay } from '../../../Loading/index.js';
|
|
22
21
|
import { NoListResults } from '../../../NoListResults/index.js';
|
|
23
22
|
import { Translation } from '../../../Translation/index.js';
|
|
@@ -68,7 +67,7 @@ function LoadFolderData(props) {
|
|
|
68
67
|
setFolderResultsComponent(result.FolderResultsComponent || null);
|
|
69
68
|
setFolderID(folderIDToPopulate);
|
|
70
69
|
setHasLoaded(true);
|
|
71
|
-
} catch (
|
|
70
|
+
} catch (_error) {
|
|
72
71
|
setBreadcrumbs([]);
|
|
73
72
|
setSubfolders([]);
|
|
74
73
|
setDocuments([]);
|
|
@@ -103,7 +102,7 @@ function LoadFolderData(props) {
|
|
|
103
102
|
}, folderID);
|
|
104
103
|
}
|
|
105
104
|
function Content(t0) {
|
|
106
|
-
const $ = _c(
|
|
105
|
+
const $ = _c(38);
|
|
107
106
|
const {
|
|
108
107
|
drawerSlug,
|
|
109
108
|
fromFolderID,
|
|
@@ -162,6 +161,7 @@ function Content(t0) {
|
|
|
162
161
|
closeDrawer: closeFolderDrawer,
|
|
163
162
|
openDrawer: openFolderDrawer
|
|
164
163
|
} = t3;
|
|
164
|
+
const newFolderAssignedCollections = folderID == null ? props.folderAssignedCollections : folderType;
|
|
165
165
|
let t4;
|
|
166
166
|
if ($[4] !== breadcrumbs || $[5] !== getSelectedItems) {
|
|
167
167
|
t4 = () => {
|
|
@@ -295,6 +295,22 @@ function Content(t0) {
|
|
|
295
295
|
} else {
|
|
296
296
|
t12 = $[33];
|
|
297
297
|
}
|
|
298
|
+
let t13;
|
|
299
|
+
if ($[34] !== closeFolderDrawer || $[35] !== folderCollectionConfig || $[36] !== onCreateSuccess) {
|
|
300
|
+
t13 = result => {
|
|
301
|
+
onCreateSuccess({
|
|
302
|
+
collectionSlug: folderCollectionConfig.slug,
|
|
303
|
+
doc: result.doc
|
|
304
|
+
});
|
|
305
|
+
closeFolderDrawer();
|
|
306
|
+
};
|
|
307
|
+
$[34] = closeFolderDrawer;
|
|
308
|
+
$[35] = folderCollectionConfig;
|
|
309
|
+
$[36] = onCreateSuccess;
|
|
310
|
+
$[37] = t13;
|
|
311
|
+
} else {
|
|
312
|
+
t13 = $[37];
|
|
313
|
+
}
|
|
298
314
|
return _jsxs("div", {
|
|
299
315
|
className: baseClass,
|
|
300
316
|
children: [_jsx(DrawerActionHeader, {
|
|
@@ -318,43 +334,35 @@ function Content(t0) {
|
|
|
318
334
|
}),
|
|
319
335
|
onClick: t11
|
|
320
336
|
}, ...breadcrumbs.map(t12)]
|
|
321
|
-
}), subfolders.length > 0 &&
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
})
|
|
332
|
-
}), _jsx(FolderDocumentDrawer, {
|
|
333
|
-
initialData: {
|
|
334
|
-
[folderFieldName]: folderID,
|
|
335
|
-
folderType
|
|
336
|
-
},
|
|
337
|
-
onSave: result => {
|
|
338
|
-
onCreateSuccess({
|
|
339
|
-
collectionSlug: folderCollectionConfig.slug,
|
|
340
|
-
doc: result.doc
|
|
341
|
-
});
|
|
342
|
-
closeFolderDrawer();
|
|
343
|
-
},
|
|
344
|
-
redirectAfterCreate: false
|
|
345
|
-
})]
|
|
337
|
+
}), subfolders.length > 0 && _jsx(Button, {
|
|
338
|
+
buttonStyle: "pill",
|
|
339
|
+
className: `${baseClass}__add-folder-button`,
|
|
340
|
+
margin: false,
|
|
341
|
+
onClick: () => {
|
|
342
|
+
openFolderDrawer();
|
|
343
|
+
},
|
|
344
|
+
children: t("fields:addLabel", {
|
|
345
|
+
label: getTranslation(folderCollectionConfig.labels?.singular, i18n)
|
|
346
|
+
})
|
|
346
347
|
})]
|
|
348
|
+
}), _jsx(FolderDocumentDrawer, {
|
|
349
|
+
initialData: {
|
|
350
|
+
[folderFieldName]: folderID,
|
|
351
|
+
folderType: newFolderAssignedCollections
|
|
352
|
+
},
|
|
353
|
+
onSave: t13,
|
|
354
|
+
redirectAfterCreate: false
|
|
347
355
|
}), _jsx(DrawerContentContainer, {
|
|
348
356
|
className: `${baseClass}__body-section`,
|
|
349
357
|
children: subfolders.length > 0 ? FolderResultsComponent : _jsx(NoListResults, {
|
|
350
|
-
Actions: [_jsx(
|
|
351
|
-
buttonLabel: `${t("general:create")} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`,
|
|
352
|
-
buttonSize: "medium",
|
|
358
|
+
Actions: [_jsx(Button, {
|
|
353
359
|
buttonStyle: "primary",
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
360
|
+
className: `${baseClass}__create-folder-button`,
|
|
361
|
+
onClick: () => {
|
|
362
|
+
openFolderDrawer();
|
|
363
|
+
},
|
|
364
|
+
size: "medium",
|
|
365
|
+
children: `${t("general:create")} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`
|
|
358
366
|
}, "create-folder")],
|
|
359
367
|
Message: _jsxs(_Fragment, {
|
|
360
368
|
children: [_jsx("h3", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","extractID","React","useAuth","FolderProvider","useFolder","useRouteCache","useServerFunctions","useTranslation","Button","ConfirmationModal","useDocumentDrawer","Drawer","DrawerActionHeader","DrawerContentContainer","ListCreateNewDocInFolderButton","LoadingOverlay","NoListResults","Translation","FolderBreadcrumbs","ColoredFolderIcon","baseClass","baseModalSlug","confirmModalSlug","MoveItemsToFolderDrawer","props","_jsx","gutter","Header","slug","drawerSlug","LoadFolderData","permissions","subfolders","setSubfolders","useState","documents","setDocuments","breadcrumbs","setBreadcrumbs","FolderResultsComponent","setFolderResultsComponent","hasLoaded","setHasLoaded","folderID","setFolderID","fromFolderID","hasLoadedRef","useRef","getFolderResultsComponentAndData","populateMoveToFolderDrawer","useCallback","folderIDToPopulate","result","browseByFolder","collectionsToDisplay","folderCollectionSlug","displayAs","folderAssignedCollections","sort","e","current","useEffect","allCollectionFolderSlugs","allowCreateCollectionSlugs","collections","create","allowMultiSelection","folderFieldName","onItemClick","item","value","id","Content","t0","$","fromFolderName","itemsToMove","onConfirm","skipConfirmModal","clearRouteCache","closeModal","isModalOpen","openModal","t1","length","count","folderAddedToUnderlyingFolder","setFolderAddedToUnderlyingFolder","i18n","t","folderCollectionConfig","folderType","getSelectedItems","t2","collectionSlug","FolderDocumentDrawer","t3","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","t4","selected","lastCrumb","name","_folderOrDocumentTitle","getSelectedFolder","t5","t6","doc","folder","onCreateSuccess","onConfirmMove","t7","t8","t9","t10","t11","undefined","t12","crumb","index","onClick","_jsxs","className","children","onCancel","onSave","saveLabel","title","DrawerHeading","action","map","_Fragment","buttonStyle","margin","label","labels","singular","initialData","redirectAfterCreate","Actions","buttonLabel","toLowerCase","buttonSize","collectionSlugs","slugPrefix","Message","body","ConfirmationMessage","toFolderName","confirmLabel","heading","modalSlug","fromFolder","elements","1","_temp","2","_temp2","i18nKey","variables","toFolder","_temp3","_temp4","_temp5","_temp6","children_1","children_0","children_4","children_3","children_2"],"sources":["../../../../../src/elements/FolderView/Drawers/MoveToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, Document } from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { extractID } from 'payload/shared'\nimport React from 'react'\n\nimport { useAuth } from '../../../../providers/Auth/index.js'\nimport { FolderProvider, useFolder } from '../../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../../providers/RouteCache/index.js'\nimport { useServerFunctions } from '../../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport { ConfirmationModal } from '../../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../../DocumentDrawer/index.js'\nimport { Drawer } from '../../../Drawer/index.js'\nimport { DrawerActionHeader } from '../../../DrawerActionHeader/index.js'\nimport { DrawerContentContainer } from '../../../DrawerContentContainer/index.js'\nimport { ListCreateNewDocInFolderButton } from '../../../ListHeader/TitleActions/ListCreateNewDocInFolderButton.js'\nimport { LoadingOverlay } from '../../../Loading/index.js'\nimport { NoListResults } from '../../../NoListResults/index.js'\nimport { Translation } from '../../../Translation/index.js'\nimport { FolderBreadcrumbs } from '../../Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../ColoredFolderIcon/index.js'\nimport './index.scss'\n\nconst baseClass = 'move-folder-drawer'\nconst baseModalSlug = 'move-folder-drawer'\nconst confirmModalSlug = `${baseModalSlug}-confirm-move`\n\ntype ActionProps =\n | {\n readonly action: 'moveItemsToFolder'\n }\n | {\n readonly action: 'moveItemToFolder'\n readonly title: string\n }\nexport type MoveToFolderDrawerProps = {\n readonly drawerSlug: string\n readonly folderAssignedCollections: CollectionSlug[]\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName?: string\n readonly itemsToMove: FolderOrDocument[]\n /**\n * Callback function to be called when the user confirms the move\n *\n * @param folderID - The ID of the folder to move the items to\n */\n readonly onConfirm: (args: {\n id: null | number | string\n name: null | string\n }) => Promise<void> | void\n readonly populateMoveToFolderDrawer?: (folderID: null | number | string) => Promise<void> | void\n /**\n * Set to `true` to skip the confirmation modal\n * @default false\n */\n readonly skipConfirmModal?: boolean\n} & ActionProps\n\nexport function MoveItemsToFolderDrawer(props: MoveToFolderDrawerProps) {\n return (\n <Drawer gutter={false} Header={null} slug={props.drawerSlug}>\n <LoadFolderData {...props} />\n </Drawer>\n )\n}\n\nfunction LoadFolderData(props: MoveToFolderDrawerProps) {\n const { permissions } = useAuth()\n const [subfolders, setSubfolders] = React.useState<FolderOrDocument[]>([])\n const [documents, setDocuments] = React.useState<FolderOrDocument[]>([])\n const [breadcrumbs, setBreadcrumbs] = React.useState<FolderBreadcrumb[]>([])\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState<React.ReactNode>(null)\n const [hasLoaded, setHasLoaded] = React.useState(false)\n const [folderID, setFolderID] = React.useState<null | number | string>(props.fromFolderID || null)\n const hasLoadedRef = React.useRef(false)\n const { getFolderResultsComponentAndData } = useServerFunctions()\n\n const populateMoveToFolderDrawer = React.useCallback(\n async (folderIDToPopulate: null | number | string) => {\n try {\n const result = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [props.folderCollectionSlug],\n displayAs: 'grid',\n // todo: should be able to pass undefined, empty array or null and get all folders. Need to look at API for this in the server function\n folderAssignedCollections: props.folderAssignedCollections,\n folderID: folderIDToPopulate,\n sort: 'name',\n })\n\n setBreadcrumbs(result.breadcrumbs || [])\n setSubfolders(result?.subfolders || [])\n setDocuments(result?.documents || [])\n setFolderResultsComponent(result.FolderResultsComponent || null)\n setFolderID(folderIDToPopulate)\n setHasLoaded(true)\n } catch (e) {\n setBreadcrumbs([])\n setSubfolders([])\n setDocuments([])\n }\n\n hasLoadedRef.current = true\n },\n [getFolderResultsComponentAndData, props.folderAssignedCollections, props.folderCollectionSlug],\n )\n\n React.useEffect(() => {\n if (!hasLoadedRef.current) {\n void populateMoveToFolderDrawer(props.fromFolderID)\n }\n }, [populateMoveToFolderDrawer, props.fromFolderID])\n\n if (!hasLoaded) {\n return <LoadingOverlay />\n }\n\n return (\n <FolderProvider\n allCollectionFolderSlugs={[props.folderCollectionSlug]}\n allowCreateCollectionSlugs={\n permissions.collections[props.folderCollectionSlug]?.create\n ? [props.folderCollectionSlug]\n : []\n }\n allowMultiSelection={false}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={props.folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n key={folderID}\n onItemClick={async (item) => {\n await populateMoveToFolderDrawer(item.value.id)\n }}\n subfolders={subfolders}\n >\n <Content {...props} populateMoveToFolderDrawer={populateMoveToFolderDrawer} />\n </FolderProvider>\n )\n}\n\nfunction Content({\n drawerSlug,\n fromFolderID,\n fromFolderName,\n itemsToMove,\n onConfirm,\n populateMoveToFolderDrawer,\n skipConfirmModal,\n ...props\n}: MoveToFolderDrawerProps) {\n const { clearRouteCache } = useRouteCache()\n const { closeModal, isModalOpen, openModal } = useModal()\n const [count] = React.useState(() => itemsToMove.length)\n const [folderAddedToUnderlyingFolder, setFolderAddedToUnderlyingFolder] = React.useState(false)\n const { i18n, t } = useTranslation()\n const {\n breadcrumbs,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n folderType,\n getSelectedItems,\n subfolders,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n collectionSlug: folderCollectionSlug,\n })\n\n const getSelectedFolder = React.useCallback((): {\n id: null | number | string\n name: null | string\n } => {\n const selected = getSelectedItems()\n\n if (selected.length === 0) {\n const lastCrumb = breadcrumbs?.[breadcrumbs.length - 1]\n // use the breadcrumb\n return {\n id: lastCrumb?.id || null,\n name: lastCrumb?.name || null,\n }\n } else {\n // use the selected item\n return {\n id: selected[0].value.id,\n name: selected[0].value._folderOrDocumentTitle,\n }\n }\n }, [breadcrumbs, getSelectedItems])\n\n const onCreateSuccess = React.useCallback(\n async ({ collectionSlug, doc }: { collectionSlug: CollectionSlug; doc: Document }) => {\n await populateMoveToFolderDrawer(folderID)\n if (\n collectionSlug === folderCollectionSlug &&\n ((doc?.folder && fromFolderID === extractID(doc?.folder)) ||\n (!fromFolderID && !doc?.folder))\n ) {\n // if the folder we created is in the same folder as the one we are moving from\n // set variable so we can clear the route cache when we close the drawer\n setFolderAddedToUnderlyingFolder(true)\n }\n },\n [populateMoveToFolderDrawer, folderID, fromFolderID, folderCollectionSlug],\n )\n\n const onConfirmMove = React.useCallback(() => {\n if (typeof onConfirm === 'function') {\n void onConfirm(getSelectedFolder())\n }\n }, [getSelectedFolder, onConfirm])\n\n React.useEffect(() => {\n if (!isModalOpen(drawerSlug) && folderAddedToUnderlyingFolder) {\n // if we added a folder to the underlying folder, clear the route cache\n // so that the folder view will be reloaded with the new folder\n setFolderAddedToUnderlyingFolder(false)\n clearRouteCache()\n }\n }, [drawerSlug, isModalOpen, clearRouteCache, folderAddedToUnderlyingFolder])\n\n return (\n <div className={baseClass}>\n <DrawerActionHeader\n onCancel={() => {\n closeModal(drawerSlug)\n }}\n onSave={() => {\n if (skipConfirmModal) {\n onConfirmMove()\n } else {\n openModal(confirmModalSlug)\n }\n }}\n saveLabel={t('general:select')}\n title={\n <DrawerHeading\n action={props.action}\n count={count}\n fromFolderName={fromFolderID ? fromFolderName : undefined}\n title={props.action === 'moveItemToFolder' ? props.title : undefined}\n />\n }\n />\n\n <div className={`${baseClass}__breadcrumbs-section`}>\n <FolderBreadcrumbs\n breadcrumbs={[\n {\n id: null,\n name: (\n <span className={`${baseClass}__folder-breadcrumbs-root`}>\n <ColoredFolderIcon />\n {t('folder:folders')}\n </span>\n ),\n onClick: breadcrumbs.length\n ? () => {\n void populateMoveToFolderDrawer(null)\n }\n : undefined,\n },\n ...breadcrumbs.map((crumb, index) => ({\n id: crumb.id,\n name: crumb.name,\n onClick:\n index !== breadcrumbs.length - 1\n ? () => {\n void populateMoveToFolderDrawer(crumb.id)\n }\n : undefined,\n })),\n ]}\n />\n {subfolders.length > 0 && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__add-folder-button`}\n margin={false}\n onClick={() => {\n openFolderDrawer()\n }}\n >\n {t('fields:addLabel', {\n label: getTranslation(folderCollectionConfig.labels?.singular, i18n),\n })}\n </Button>\n <FolderDocumentDrawer\n initialData={{\n [folderFieldName]: folderID,\n folderType,\n }}\n onSave={(result) => {\n void onCreateSuccess({\n collectionSlug: folderCollectionConfig.slug,\n doc: result.doc,\n })\n closeFolderDrawer()\n }}\n redirectAfterCreate={false}\n />\n </>\n )}\n </div>\n\n <DrawerContentContainer className={`${baseClass}__body-section`}>\n {subfolders.length > 0 ? (\n FolderResultsComponent\n ) : (\n <NoListResults\n Actions={[\n <ListCreateNewDocInFolderButton\n buttonLabel={`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n buttonSize=\"medium\"\n buttonStyle=\"primary\"\n collectionSlugs={[folderCollectionSlug]}\n folderAssignedCollections={props.folderAssignedCollections}\n key=\"create-folder\"\n onCreateSuccess={onCreateSuccess}\n slugPrefix=\"create-new-folder-from-drawer--no-results\"\n />,\n ]}\n Message={\n <>\n <h3>{i18n.t('general:noResultsFound')}</h3>\n <p>{i18n.t('general:noResultsDescription')}</p>\n </>\n }\n />\n )}\n </DrawerContentContainer>\n\n {!skipConfirmModal && (\n <ConfirmationModal\n body={\n <ConfirmationMessage\n action={props.action}\n count={count}\n fromFolderName={fromFolderName}\n title={props.action === 'moveItemToFolder' ? props.title : undefined}\n toFolderName={getSelectedFolder().name}\n />\n }\n confirmingLabel={t('general:moving')}\n confirmLabel={t('general:move')}\n heading={t('general:confirmMove')}\n modalSlug={confirmModalSlug}\n onConfirm={onConfirmMove}\n />\n )}\n </div>\n )\n}\n\nfunction DrawerHeading(\n props: { count?: number } & ActionProps & Pick<MoveToFolderDrawerProps, 'fromFolderName'>,\n): string {\n const { t } = useTranslation()\n\n switch (props.action) {\n case 'moveItemToFolder':\n // moving current folder from list view actions menu\n // or moving item from edit view\n if (props.fromFolderName) {\n // move from folder\n return t('folder:movingFromFolder', {\n fromFolder: props.fromFolderName,\n title: props.title,\n })\n } else {\n // move from root\n return t('folder:selectFolderForItem', {\n title: props.title,\n })\n }\n\n case 'moveItemsToFolder':\n if (props.fromFolderName) {\n // move from folder\n return t('folder:movingFromFolder', {\n fromFolder: props.fromFolderName,\n title: `${props.count} ${props.count > 1 ? t('general:items') : t('general:item')}`,\n })\n } else {\n // move from root\n return t('folder:selectFolderForItem', {\n title: `${props.count} ${props.count > 1 ? t('general:items') : t('general:item')}`,\n })\n }\n }\n}\n\nfunction ConfirmationMessage(\n props: { count?: number; toFolderName?: string } & ActionProps &\n Pick<MoveToFolderDrawerProps, 'fromFolderName'>,\n) {\n const { t } = useTranslation()\n\n switch (props.action) {\n case 'moveItemToFolder':\n // moving current folder from list view actions menu\n // or moving item from edit view\n if (props.toFolderName) {\n // move to destination\n // You are about to move {{title}} to {{toFolder}}. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n 2: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemToFolderConfirmation\"\n t={t}\n variables={{\n title: props.title,\n toFolder: props.toFolderName,\n }}\n />\n )\n } else {\n // move to root\n // You are about to move {{title}} to the root folder. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemToRootConfirmation\"\n t={t}\n variables={{\n title: props.title,\n }}\n />\n )\n }\n\n case 'moveItemsToFolder':\n // moving many (documents/folders) from list view\n if (props.toFolderName) {\n // move to destination\n // You are about to move {{count}} {{label}} to {{toFolder}}. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n 2: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemsToFolderConfirmation\"\n t={t}\n variables={{\n count: props.count,\n label: props.count > 1 ? t('general:items') : t('general:item'),\n toFolder: props.toFolderName,\n }}\n />\n )\n } else {\n // move to root\n // You are about to move {{count}} {{label}} to the root folder. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemsToRootConfirmation\"\n t={t}\n variables={{\n count: props.count,\n label: props.count > 1 ? t('general:items') : t('general:item'),\n }}\n />\n )\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","extractID","React","useAuth","FolderProvider","useFolder","useRouteCache","useServerFunctions","useTranslation","Button","ConfirmationModal","useDocumentDrawer","Drawer","DrawerActionHeader","DrawerContentContainer","LoadingOverlay","NoListResults","Translation","FolderBreadcrumbs","ColoredFolderIcon","baseClass","baseModalSlug","confirmModalSlug","MoveItemsToFolderDrawer","props","_jsx","gutter","Header","slug","drawerSlug","LoadFolderData","permissions","subfolders","setSubfolders","useState","documents","setDocuments","breadcrumbs","setBreadcrumbs","FolderResultsComponent","setFolderResultsComponent","hasLoaded","setHasLoaded","folderID","setFolderID","fromFolderID","hasLoadedRef","useRef","getFolderResultsComponentAndData","populateMoveToFolderDrawer","useCallback","folderIDToPopulate","result","browseByFolder","collectionsToDisplay","folderCollectionSlug","displayAs","folderAssignedCollections","sort","_error","current","useEffect","allCollectionFolderSlugs","allowCreateCollectionSlugs","collections","create","allowMultiSelection","folderFieldName","onItemClick","item","value","id","Content","t0","$","fromFolderName","itemsToMove","onConfirm","skipConfirmModal","clearRouteCache","closeModal","isModalOpen","openModal","t1","length","count","folderAddedToUnderlyingFolder","setFolderAddedToUnderlyingFolder","i18n","t","folderCollectionConfig","folderType","getSelectedItems","t2","collectionSlug","FolderDocumentDrawer","t3","closeDrawer","closeFolderDrawer","openDrawer","openFolderDrawer","newFolderAssignedCollections","t4","selected","lastCrumb","name","_folderOrDocumentTitle","getSelectedFolder","t5","t6","doc","folder","onCreateSuccess","onConfirmMove","t7","t8","t9","t10","t11","undefined","t12","crumb","index","onClick","t13","_jsxs","className","children","onCancel","onSave","saveLabel","title","DrawerHeading","action","map","buttonStyle","margin","label","labels","singular","initialData","redirectAfterCreate","Actions","size","toLowerCase","Message","_Fragment","body","ConfirmationMessage","toFolderName","confirmLabel","heading","modalSlug","fromFolder","elements","1","_temp","2","_temp2","i18nKey","variables","toFolder","_temp3","_temp4","_temp5","_temp6","children_1","children_0","children_4","children_3","children_2"],"sources":["../../../../../src/elements/FolderView/Drawers/MoveToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport type { CollectionSlug, Document } from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { extractID } from 'payload/shared'\nimport React from 'react'\n\nimport { useAuth } from '../../../../providers/Auth/index.js'\nimport { FolderProvider, useFolder } from '../../../../providers/Folders/index.js'\nimport { useRouteCache } from '../../../../providers/RouteCache/index.js'\nimport { useServerFunctions } from '../../../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { Button } from '../../../Button/index.js'\nimport { ConfirmationModal } from '../../../ConfirmationModal/index.js'\nimport { useDocumentDrawer } from '../../../DocumentDrawer/index.js'\nimport { Drawer } from '../../../Drawer/index.js'\nimport { DrawerActionHeader } from '../../../DrawerActionHeader/index.js'\nimport { DrawerContentContainer } from '../../../DrawerContentContainer/index.js'\nimport { LoadingOverlay } from '../../../Loading/index.js'\nimport { NoListResults } from '../../../NoListResults/index.js'\nimport { Translation } from '../../../Translation/index.js'\nimport { FolderBreadcrumbs } from '../../Breadcrumbs/index.js'\nimport { ColoredFolderIcon } from '../../ColoredFolderIcon/index.js'\nimport './index.scss'\n\nconst baseClass = 'move-folder-drawer'\nconst baseModalSlug = 'move-folder-drawer'\nconst confirmModalSlug = `${baseModalSlug}-confirm-move`\n\ntype ActionProps =\n | {\n readonly action: 'moveItemsToFolder'\n }\n | {\n readonly action: 'moveItemToFolder'\n readonly title: string\n }\nexport type MoveToFolderDrawerProps = {\n readonly drawerSlug: string\n readonly folderAssignedCollections: CollectionSlug[]\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName?: string\n readonly itemsToMove: FolderOrDocument[]\n /**\n * Callback function to be called when the user confirms the move\n *\n * @param folderID - The ID of the folder to move the items to\n */\n readonly onConfirm: (args: {\n id: null | number | string\n name: null | string\n }) => Promise<void> | void\n readonly populateMoveToFolderDrawer?: (folderID: null | number | string) => Promise<void> | void\n /**\n * Set to `true` to skip the confirmation modal\n * @default false\n */\n readonly skipConfirmModal?: boolean\n} & ActionProps\n\nexport function MoveItemsToFolderDrawer(props: MoveToFolderDrawerProps) {\n return (\n <Drawer gutter={false} Header={null} slug={props.drawerSlug}>\n <LoadFolderData {...props} />\n </Drawer>\n )\n}\n\nfunction LoadFolderData(props: MoveToFolderDrawerProps) {\n const { permissions } = useAuth()\n const [subfolders, setSubfolders] = React.useState<FolderOrDocument[]>([])\n const [documents, setDocuments] = React.useState<FolderOrDocument[]>([])\n const [breadcrumbs, setBreadcrumbs] = React.useState<FolderBreadcrumb[]>([])\n const [FolderResultsComponent, setFolderResultsComponent] = React.useState<React.ReactNode>(null)\n const [hasLoaded, setHasLoaded] = React.useState(false)\n const [folderID, setFolderID] = React.useState<null | number | string>(props.fromFolderID || null)\n const hasLoadedRef = React.useRef(false)\n const { getFolderResultsComponentAndData } = useServerFunctions()\n\n const populateMoveToFolderDrawer = React.useCallback(\n async (folderIDToPopulate: null | number | string) => {\n try {\n const result = await getFolderResultsComponentAndData({\n browseByFolder: false,\n collectionsToDisplay: [props.folderCollectionSlug],\n displayAs: 'grid',\n // todo: should be able to pass undefined, empty array or null and get all folders. Need to look at API for this in the server function\n folderAssignedCollections: props.folderAssignedCollections,\n folderID: folderIDToPopulate,\n sort: 'name',\n })\n\n setBreadcrumbs(result.breadcrumbs || [])\n setSubfolders(result?.subfolders || [])\n setDocuments(result?.documents || [])\n setFolderResultsComponent(result.FolderResultsComponent || null)\n setFolderID(folderIDToPopulate)\n setHasLoaded(true)\n } catch (_error) {\n setBreadcrumbs([])\n setSubfolders([])\n setDocuments([])\n }\n\n hasLoadedRef.current = true\n },\n [getFolderResultsComponentAndData, props.folderAssignedCollections, props.folderCollectionSlug],\n )\n\n React.useEffect(() => {\n if (!hasLoadedRef.current) {\n void populateMoveToFolderDrawer(props.fromFolderID)\n }\n }, [populateMoveToFolderDrawer, props.fromFolderID])\n\n if (!hasLoaded) {\n return <LoadingOverlay />\n }\n\n return (\n <FolderProvider\n allCollectionFolderSlugs={[props.folderCollectionSlug]}\n allowCreateCollectionSlugs={\n permissions.collections[props.folderCollectionSlug]?.create\n ? [props.folderCollectionSlug]\n : []\n }\n allowMultiSelection={false}\n breadcrumbs={breadcrumbs}\n documents={documents}\n folderFieldName={props.folderFieldName}\n folderID={folderID}\n FolderResultsComponent={FolderResultsComponent}\n key={folderID}\n onItemClick={async (item) => {\n await populateMoveToFolderDrawer(item.value.id)\n }}\n subfolders={subfolders}\n >\n <Content {...props} populateMoveToFolderDrawer={populateMoveToFolderDrawer} />\n </FolderProvider>\n )\n}\n\nfunction Content({\n drawerSlug,\n fromFolderID,\n fromFolderName,\n itemsToMove,\n onConfirm,\n populateMoveToFolderDrawer,\n skipConfirmModal,\n ...props\n}: MoveToFolderDrawerProps) {\n const { clearRouteCache } = useRouteCache()\n const { closeModal, isModalOpen, openModal } = useModal()\n const [count] = React.useState(() => itemsToMove.length)\n const [folderAddedToUnderlyingFolder, setFolderAddedToUnderlyingFolder] = React.useState(false)\n const { i18n, t } = useTranslation()\n const {\n breadcrumbs,\n folderCollectionConfig,\n folderCollectionSlug,\n folderFieldName,\n folderID,\n FolderResultsComponent,\n folderType,\n getSelectedItems,\n subfolders,\n } = useFolder()\n const [FolderDocumentDrawer, , { closeDrawer: closeFolderDrawer, openDrawer: openFolderDrawer }] =\n useDocumentDrawer({\n collectionSlug: folderCollectionSlug,\n })\n const newFolderAssignedCollections =\n folderID == null ? props.folderAssignedCollections : folderType\n\n const getSelectedFolder = React.useCallback((): {\n id: null | number | string\n name: null | string\n } => {\n const selected = getSelectedItems()\n\n if (selected.length === 0) {\n const lastCrumb = breadcrumbs?.[breadcrumbs.length - 1]\n // use the breadcrumb\n return {\n id: lastCrumb?.id || null,\n name: lastCrumb?.name || null,\n }\n } else {\n // use the selected item\n return {\n id: selected[0].value.id,\n name: selected[0].value._folderOrDocumentTitle,\n }\n }\n }, [breadcrumbs, getSelectedItems])\n\n const onCreateSuccess = React.useCallback(\n async ({ collectionSlug, doc }: { collectionSlug: CollectionSlug; doc: Document }) => {\n await populateMoveToFolderDrawer(folderID)\n if (\n collectionSlug === folderCollectionSlug &&\n ((doc?.folder && fromFolderID === extractID(doc?.folder)) ||\n (!fromFolderID && !doc?.folder))\n ) {\n // if the folder we created is in the same folder as the one we are moving from\n // set variable so we can clear the route cache when we close the drawer\n setFolderAddedToUnderlyingFolder(true)\n }\n },\n [populateMoveToFolderDrawer, folderID, fromFolderID, folderCollectionSlug],\n )\n\n const onConfirmMove = React.useCallback(() => {\n if (typeof onConfirm === 'function') {\n void onConfirm(getSelectedFolder())\n }\n }, [getSelectedFolder, onConfirm])\n\n React.useEffect(() => {\n if (!isModalOpen(drawerSlug) && folderAddedToUnderlyingFolder) {\n // if we added a folder to the underlying folder, clear the route cache\n // so that the folder view will be reloaded with the new folder\n setFolderAddedToUnderlyingFolder(false)\n clearRouteCache()\n }\n }, [drawerSlug, isModalOpen, clearRouteCache, folderAddedToUnderlyingFolder])\n\n return (\n <div className={baseClass}>\n <DrawerActionHeader\n onCancel={() => {\n closeModal(drawerSlug)\n }}\n onSave={() => {\n if (skipConfirmModal) {\n onConfirmMove()\n } else {\n openModal(confirmModalSlug)\n }\n }}\n saveLabel={t('general:select')}\n title={\n <DrawerHeading\n action={props.action}\n count={count}\n fromFolderName={fromFolderID ? fromFolderName : undefined}\n title={props.action === 'moveItemToFolder' ? props.title : undefined}\n />\n }\n />\n\n <div className={`${baseClass}__breadcrumbs-section`}>\n <FolderBreadcrumbs\n breadcrumbs={[\n {\n id: null,\n name: (\n <span className={`${baseClass}__folder-breadcrumbs-root`}>\n <ColoredFolderIcon />\n {t('folder:folders')}\n </span>\n ),\n onClick: breadcrumbs.length\n ? () => {\n void populateMoveToFolderDrawer(null)\n }\n : undefined,\n },\n ...breadcrumbs.map((crumb, index) => ({\n id: crumb.id,\n name: crumb.name,\n onClick:\n index !== breadcrumbs.length - 1\n ? () => {\n void populateMoveToFolderDrawer(crumb.id)\n }\n : undefined,\n })),\n ]}\n />\n {subfolders.length > 0 && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__add-folder-button`}\n margin={false}\n onClick={() => {\n openFolderDrawer()\n }}\n >\n {t('fields:addLabel', {\n label: getTranslation(folderCollectionConfig.labels?.singular, i18n),\n })}\n </Button>\n )}\n </div>\n <FolderDocumentDrawer\n initialData={{\n [folderFieldName]: folderID,\n folderType: newFolderAssignedCollections,\n }}\n onSave={(result) => {\n void onCreateSuccess({\n collectionSlug: folderCollectionConfig.slug,\n doc: result.doc,\n })\n closeFolderDrawer()\n }}\n redirectAfterCreate={false}\n />\n\n <DrawerContentContainer className={`${baseClass}__body-section`}>\n {subfolders.length > 0 ? (\n FolderResultsComponent\n ) : (\n <NoListResults\n Actions={[\n <Button\n buttonStyle=\"primary\"\n className={`${baseClass}__create-folder-button`}\n key=\"create-folder\"\n onClick={() => {\n openFolderDrawer()\n }}\n size=\"medium\"\n >\n {`${t('general:create')} ${getTranslation(folderCollectionConfig.labels?.singular, i18n).toLowerCase()}`}\n </Button>,\n ]}\n Message={\n <>\n <h3>{i18n.t('general:noResultsFound')}</h3>\n <p>{i18n.t('general:noResultsDescription')}</p>\n </>\n }\n />\n )}\n </DrawerContentContainer>\n\n {!skipConfirmModal && (\n <ConfirmationModal\n body={\n <ConfirmationMessage\n action={props.action}\n count={count}\n fromFolderName={fromFolderName}\n title={props.action === 'moveItemToFolder' ? props.title : undefined}\n toFolderName={getSelectedFolder().name}\n />\n }\n confirmingLabel={t('general:moving')}\n confirmLabel={t('general:move')}\n heading={t('general:confirmMove')}\n modalSlug={confirmModalSlug}\n onConfirm={onConfirmMove}\n />\n )}\n </div>\n )\n}\n\nfunction DrawerHeading(\n props: { count?: number } & ActionProps & Pick<MoveToFolderDrawerProps, 'fromFolderName'>,\n): string {\n const { t } = useTranslation()\n\n switch (props.action) {\n case 'moveItemToFolder':\n // moving current folder from list view actions menu\n // or moving item from edit view\n if (props.fromFolderName) {\n // move from folder\n return t('folder:movingFromFolder', {\n fromFolder: props.fromFolderName,\n title: props.title,\n })\n } else {\n // move from root\n return t('folder:selectFolderForItem', {\n title: props.title,\n })\n }\n\n case 'moveItemsToFolder':\n if (props.fromFolderName) {\n // move from folder\n return t('folder:movingFromFolder', {\n fromFolder: props.fromFolderName,\n title: `${props.count} ${props.count > 1 ? t('general:items') : t('general:item')}`,\n })\n } else {\n // move from root\n return t('folder:selectFolderForItem', {\n title: `${props.count} ${props.count > 1 ? t('general:items') : t('general:item')}`,\n })\n }\n }\n}\n\nfunction ConfirmationMessage(\n props: { count?: number; toFolderName?: string } & ActionProps &\n Pick<MoveToFolderDrawerProps, 'fromFolderName'>,\n) {\n const { t } = useTranslation()\n\n switch (props.action) {\n case 'moveItemToFolder':\n // moving current folder from list view actions menu\n // or moving item from edit view\n if (props.toFolderName) {\n // move to destination\n // You are about to move {{title}} to {{toFolder}}. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n 2: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemToFolderConfirmation\"\n t={t}\n variables={{\n title: props.title,\n toFolder: props.toFolderName,\n }}\n />\n )\n } else {\n // move to root\n // You are about to move {{title}} to the root folder. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemToRootConfirmation\"\n t={t}\n variables={{\n title: props.title,\n }}\n />\n )\n }\n\n case 'moveItemsToFolder':\n // moving many (documents/folders) from list view\n if (props.toFolderName) {\n // move to destination\n // You are about to move {{count}} {{label}} to {{toFolder}}. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n 2: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemsToFolderConfirmation\"\n t={t}\n variables={{\n count: props.count,\n label: props.count > 1 ? t('general:items') : t('general:item'),\n toFolder: props.toFolderName,\n }}\n />\n )\n } else {\n // move to root\n // You are about to move {{count}} {{label}} to the root folder. Are you sure?\n return (\n <Translation\n elements={{\n 1: ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"folder:moveItemsToRootConfirmation\"\n t={t}\n variables={{\n count: props.count,\n label: props.count > 1 ? t('general:items') : t('general:item'),\n }}\n />\n )\n }\n }\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAKA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,EAAEC,SAAS,QAAQ;AAC1C,SAASC,aAAa,QAAQ;AAC9B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,MAAM,QAAQ;AACvB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,WAAW,QAAQ;AAC5B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAClC,OAAO;AAEP,MAAMC,SAAA,GAAY;AAClB,MAAMC,aAAA,GAAgB;AACtB,MAAMC,gBAAA,GAAmB,GAAGD,aAAA,eAA4B;AAmCxD,OAAO,SAASE,wBAAwBC,KAA8B;EACpE,oBACEC,IAAA,CAACb,MAAA;IAAOc,MAAA,EAAQ;IAAOC,MAAA,EAAQ;IAAMC,IAAA,EAAMJ,KAAA,CAAMK,UAAU;cACzD,aAAAJ,IAAA,CAACK,cAAA;MAAgB,GAAGN;;;AAG1B;AAEA,SAASM,eAAeN,KAA8B;EACpD,MAAM;IAAEO;EAAW,CAAE,GAAG5B,OAAA;EACxB,MAAM,CAAC6B,UAAA,EAAYC,aAAA,CAAc,GAAG/B,KAAA,CAAMgC,QAAQ,CAAqB,EAAE;EACzE,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGlC,KAAA,CAAMgC,QAAQ,CAAqB,EAAE;EACvE,MAAM,CAACG,WAAA,EAAaC,cAAA,CAAe,GAAGpC,KAAA,CAAMgC,QAAQ,CAAqB,EAAE;EAC3E,MAAM,CAACK,sBAAA,EAAwBC,yBAAA,CAA0B,GAAGtC,KAAA,CAAMgC,QAAQ,CAAkB;EAC5F,MAAM,CAACO,SAAA,EAAWC,YAAA,CAAa,GAAGxC,KAAA,CAAMgC,QAAQ,CAAC;EACjD,MAAM,CAACS,QAAA,EAAUC,WAAA,CAAY,GAAG1C,KAAA,CAAMgC,QAAQ,CAAyBV,KAAA,CAAMqB,YAAY,IAAI;EAC7F,MAAMC,YAAA,GAAe5C,KAAA,CAAM6C,MAAM,CAAC;EAClC,MAAM;IAAEC;EAAgC,CAAE,GAAGzC,kBAAA;EAE7C,MAAM0C,0BAAA,GAA6B/C,KAAA,CAAMgD,WAAW,CAClD,MAAOC,kBAAA;IACL,IAAI;MACF,MAAMC,MAAA,GAAS,MAAMJ,gCAAA,CAAiC;QACpDK,cAAA,EAAgB;QAChBC,oBAAA,EAAsB,CAAC9B,KAAA,CAAM+B,oBAAoB,CAAC;QAClDC,SAAA,EAAW;QACX;QACAC,yBAAA,EAA2BjC,KAAA,CAAMiC,yBAAyB;QAC1Dd,QAAA,EAAUQ,kBAAA;QACVO,IAAA,EAAM;MACR;MAEApB,cAAA,CAAec,MAAA,CAAOf,WAAW,IAAI,EAAE;MACvCJ,aAAA,CAAcmB,MAAA,EAAQpB,UAAA,IAAc,EAAE;MACtCI,YAAA,CAAagB,MAAA,EAAQjB,SAAA,IAAa,EAAE;MACpCK,yBAAA,CAA0BY,MAAA,CAAOb,sBAAsB,IAAI;MAC3DK,WAAA,CAAYO,kBAAA;MACZT,YAAA,CAAa;IACf,EAAE,OAAOiB,MAAA,EAAQ;MACfrB,cAAA,CAAe,EAAE;MACjBL,aAAA,CAAc,EAAE;MAChBG,YAAA,CAAa,EAAE;IACjB;IAEAU,YAAA,CAAac,OAAO,GAAG;EACzB,GACA,CAACZ,gCAAA,EAAkCxB,KAAA,CAAMiC,yBAAyB,EAAEjC,KAAA,CAAM+B,oBAAoB,CAAC;EAGjGrD,KAAA,CAAM2D,SAAS,CAAC;IACd,IAAI,CAACf,YAAA,CAAac,OAAO,EAAE;MACzB,KAAKX,0BAAA,CAA2BzB,KAAA,CAAMqB,YAAY;IACpD;EACF,GAAG,CAACI,0BAAA,EAA4BzB,KAAA,CAAMqB,YAAY,CAAC;EAEnD,IAAI,CAACJ,SAAA,EAAW;IACd,oBAAOhB,IAAA,CAACV,cAAA;EACV;EAEA,oBACEU,IAAA,CAACrB,cAAA;IACC0D,wBAAA,EAA0B,CAACtC,KAAA,CAAM+B,oBAAoB,CAAC;IACtDQ,0BAAA,EACEhC,WAAA,CAAYiC,WAAW,CAACxC,KAAA,CAAM+B,oBAAoB,CAAC,EAAEU,MAAA,GACjD,CAACzC,KAAA,CAAM+B,oBAAoB,CAAC,GAC5B,EAAE;IAERW,mBAAA,EAAqB;IACrB7B,WAAA,EAAaA,WAAA;IACbF,SAAA,EAAWA,SAAA;IACXgC,eAAA,EAAiB3C,KAAA,CAAM2C,eAAe;IACtCxB,QAAA,EAAUA,QAAA;IACVJ,sBAAA,EAAwBA,sBAAA;IAExB6B,WAAA,EAAa,MAAOC,IAAA;MAClB,MAAMpB,0BAAA,CAA2BoB,IAAA,CAAKC,KAAK,CAACC,EAAE;IAChD;IACAvC,UAAA,EAAYA,UAAA;cAEZ,aAAAP,IAAA,CAAC+C,OAAA;MAAS,GAAGhD,KAAK;MAAEyB,0BAAA,EAA4BA;;KAN3CN,QAAA;AASX;AAEA,SAAA6B,QAAAC,EAAA;EAAA,MAAAC,CAAA,GAAA5E,EAAA;EAAiB;IAAA+B,UAAA;IAAAgB,YAAA;IAAA8B,cAAA;IAAAC,WAAA;IAAAC,SAAA;IAAA5B,0BAAA;IAAA6B,gBAAA;IAAA,GAAAtD;EAAA,IAAAiD,EASS;EACxB;IAAAM;EAAA,IAA4BzE,aAAA;EAC5B;IAAA0E,UAAA;IAAAC,WAAA;IAAAC;EAAA,IAA+CnF,QAAA;EAAA,IAAAoF,EAAA;EAAA,IAAAT,CAAA,QAAAE,WAAA;IAChBO,EAAA,GAAAA,CAAA,KAAMP,WAAA,CAAAQ,MAAA;IAAkBV,CAAA,MAAAE,WAAA;IAAAF,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAvD,OAAAW,KAAA,IAAgBnF,KAAA,CAAAgC,QAAA,CAAeiD,EAAwB;EACvD,OAAAG,6BAAA,EAAAC,gCAAA,IAA0ErF,KAAA,CAAAgC,QAAA,MAAe;EACzF;IAAAsD,IAAA;IAAAC;EAAA,IAAoBjF,cAAA;EACpB;IAAA6B,WAAA;IAAAqD,sBAAA;IAAAnC,oBAAA;IAAAY,eAAA;IAAAxB,QAAA;IAAAJ,sBAAA;IAAAoD,UAAA;IAAAC,gBAAA;IAAA5D;EAAA,IAUI3B,SAAA;EAAA,IAAAwF,EAAA;EAAA,IAAAnB,CAAA,QAAAnB,oBAAA;IAEgBsC,EAAA;MAAAC,cAAA,EACAvC;IAAA;IAClBmB,CAAA,MAAAnB,oBAAA;IAAAmB,CAAA,MAAAmB,EAAA;EAAA;IAAAA,EAAA,GAAAnB,CAAA;EAAA;EAHF,OAAAqB,oBAAA,GAAAC,EAAA,IACErF,iBAAA,CAAkBkF,EAElB;EAH6B;IAAAI,WAAA,EAAAC,iBAAA;IAAAC,UAAA,EAAAC;EAAA,IAAAJ,EAAgE;EAI/F,MAAAK,4BAAA,GACE1D,QAAA,QAAY,GAAOnB,KAAA,CAAAiC,yBAAA,GAAkCkC,UAAA;EAAA,IAAAW,EAAA;EAAA,IAAA5B,CAAA,QAAArC,WAAA,IAAAqC,CAAA,QAAAkB,gBAAA;IAEXU,EAAA,GAAAA,CAAA;MAI1C,MAAAC,QAAA,GAAiBX,gBAAA;MAAA,IAEbW,QAAA,CAAAnB,MAAA,MAAoB;QACtB,MAAAoB,SAAA,GAAkBnE,WAAA,GAAcA,WAAA,CAAA+C,MAAA,IAAqB;QAAE;UAAAb,EAAA,EAGjDiC,SAAA,EAAAjC,EAAA,QAAiB;UAAAkC,IAAA,EACfD,SAAA,EAAAC,IAAA;QAAmB;MAAA;QAAA;UAAAlC,EAAA,EAKrBgC,QAAQ,IAAAjC,KAAA,CAAAC,EAAA;UAAAkC,IAAA,EACNF,QAAQ,IAAAjC,KAAA,CAAAoC;QAAA;MAAA;IAAA;IAGpBhC,CAAA,MAAArC,WAAA;IAAAqC,CAAA,MAAAkB,gBAAA;IAAAlB,CAAA,MAAA4B,EAAA;EAAA;IAAAA,EAAA,GAAA5B,CAAA;EAAA;EApBA,MAAAiC,iBAAA,GAA0BL,EAoBQ;EAAA,IAAAM,EAAA;EAAA,IAAAlC,CAAA,QAAAnB,oBAAA,IAAAmB,CAAA,QAAA/B,QAAA,IAAA+B,CAAA,QAAA7B,YAAA,IAAA6B,CAAA,SAAAzB,0BAAA;IAGhC2D,EAAA,SAAAC,EAAA;MAAO;QAAAf,cAAA;QAAAgB;MAAA,IAAAD,EAA0E;MAAA,MACzE5D,0BAAA,CAA2BN,QAAA;MAAA,IAE/BmD,cAAA,KAAmBvC,oBAAA,KAClBuD,GAAC,EAAAC,MAAA,IAAelE,YAAA,KAAiB5C,SAAA,CAAU6G,GAAA,EAAAC,MAAK,KAC9C,CAAClE,YAAA,KAAiBiE,GAAA,EAAAC,MAAW;QAIhCxB,gCAAA,KAAiC;MAAA;IAAA;IAErCb,CAAA,MAAAnB,oBAAA;IAAAmB,CAAA,MAAA/B,QAAA;IAAA+B,CAAA,MAAA7B,YAAA;IAAA6B,CAAA,OAAAzB,0BAAA;IAAAyB,CAAA,OAAAkC,EAAA;EAAA;IAAAA,EAAA,GAAAlC,CAAA;EAAA;EAZF,MAAAsC,eAAA,GAAwBJ,EAaoD;EAAA,IAAAC,EAAA;EAAA,IAAAnC,CAAA,SAAAiC,iBAAA,IAAAjC,CAAA,SAAAG,SAAA;IAGpCgC,EAAA,GAAAA,CAAA;MAAA,IAClC,OAAOhC,SAAA,KAAc;QAClBA,SAAA,CAAU8B,iBAAA;MAAA;IAAA;IAEnBjC,CAAA,OAAAiC,iBAAA;IAAAjC,CAAA,OAAAG,SAAA;IAAAH,CAAA,OAAAmC,EAAA;EAAA;IAAAA,EAAA,GAAAnC,CAAA;EAAA;EAJA,MAAAuC,aAAA,GAAsBJ,EAIW;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAzC,CAAA,SAAAK,eAAA,IAAAL,CAAA,SAAA7C,UAAA,IAAA6C,CAAA,SAAAY,6BAAA,IAAAZ,CAAA,SAAAO,WAAA;IAEjBiC,EAAA,GAAAA,CAAA;MAAA,IACV,CAACjC,WAAA,CAAYpD,UAAA,KAAeyD,6BAAA;QAG9BC,gCAAA,MAAiC;QACjCR,eAAA;MAAA;IAAA;IAEDoC,EAAA,IAACtF,UAAA,EAAYoD,WAAA,EAAaF,eAAA,EAAiBO,6BAAA;IAA8BZ,CAAA,OAAAK,eAAA;IAAAL,CAAA,OAAA7C,UAAA;IAAA6C,CAAA,OAAAY,6BAAA;IAAAZ,CAAA,OAAAO,WAAA;IAAAP,CAAA,OAAAwC,EAAA;IAAAxC,CAAA,OAAAyC,EAAA;EAAA;IAAAD,EAAA,GAAAxC,CAAA;IAAAyC,EAAA,GAAAzC,CAAA;EAAA;EAP5ExE,KAAA,CAAA2D,SAAA,CAAgBqD,EAOhB,EAAGC,EAAyE;EAAA,IAAAC,EAAA;EAAA,IAAA1C,CAAA,SAAAM,UAAA,IAAAN,CAAA,SAAA7C,UAAA;IAK5DuF,EAAA,GAAAA,CAAA;MACRpC,UAAA,CAAWnD,UAAA;IAAA;IACb6C,CAAA,OAAAM,UAAA;IAAAN,CAAA,OAAA7C,UAAA;IAAA6C,CAAA,OAAA0C,EAAA;EAAA;IAAAA,EAAA,GAAA1C,CAAA;EAAA;EAAA,IAAA2C,GAAA;EAAA,IAAA3C,CAAA,SAAAuC,aAAA,IAAAvC,CAAA,SAAAQ,SAAA,IAAAR,CAAA,SAAAI,gBAAA;IACQuC,GAAA,GAAAA,CAAA;MAAA,IACFvC,gBAAA;QACFmC,aAAA;MAAA;QAEA/B,SAAA,CAAA5D,gBAAU;MAAA;IAAA;IAEdoD,CAAA,OAAAuC,aAAA;IAAAvC,CAAA,OAAAQ,SAAA;IAAAR,CAAA,OAAAI,gBAAA;IAAAJ,CAAA,OAAA2C,GAAA;EAAA;IAAAA,GAAA,GAAA3C,CAAA;EAAA;EAAA,IAAA4C,GAAA;EAAA,IAAA5C,CAAA,SAAArC,WAAA,CAAA+C,MAAA,IAAAV,CAAA,SAAAzB,0BAAA;IAuBeqE,GAAA,GAAAjF,WAAA,CAAA+C,MAAA;MAEEnC,0BAAA,KAA2B;IAAA,IAAAsE,SAElC;IAAA7C,CAAA,OAAArC,WAAA,CAAA+C,MAAA;IAAAV,CAAA,OAAAzB,0BAAA;IAAAyB,CAAA,OAAA4C,GAAA;EAAA;IAAAA,GAAA,GAAA5C,CAAA;EAAA;EAAA,IAAA8C,GAAA;EAAA,IAAA9C,CAAA,SAAArC,WAAA,CAAA+C,MAAA,IAAAV,CAAA,SAAAzB,0BAAA;IAEauE,GAAA,GAAAA,CAAAC,KAAA,EAAAC,KAAA;MAAAnD,EAAA,EACbkD,KAAA,CAAAlD,EAAA;MAAAkC,IAAA,EACEgB,KAAA,CAAAhB,IAAA;MAAAkB,OAAA,EAEJD,KAAA,KAAUrF,WAAA,CAAA+C,MAAA,IAAqB;QAEpBnC,0BAAA,CAA2BwE,KAAA,CAAAlD,EAAQ;MAAA,IAAAgD;IAE1C;IACR7C,CAAA,OAAArC,WAAA,CAAA+C,MAAA;IAAAV,CAAA,OAAAzB,0BAAA;IAAAyB,CAAA,OAAA8C,GAAA;EAAA;IAAAA,GAAA,GAAA9C,CAAA;EAAA;EAAA,IAAAkD,GAAA;EAAA,IAAAlD,CAAA,SAAAwB,iBAAA,IAAAxB,CAAA,SAAAgB,sBAAA,IAAAhB,CAAA,SAAAsC,eAAA;IAuBIY,GAAA,GAAAxE,MAAA;MACD4D,eAAA;QAAAlB,cAAA,EACaJ,sBAAA,CAAA9D,IAAA;QAAAkF,GAAA,EACX1D,MAAA,CAAA0D;MAAA,CACP;MACAZ,iBAAA;IAAA;IACFxB,CAAA,OAAAwB,iBAAA;IAAAxB,CAAA,OAAAgB,sBAAA;IAAAhB,CAAA,OAAAsC,eAAA;IAAAtC,CAAA,OAAAkD,GAAA;EAAA;IAAAA,GAAA,GAAAlD,CAAA;EAAA;EAAA,OA9EJmD,KAAA,CAAC;IAAAC,SAAA,EAAA1G,SAAA;IAAA2G,QAAA,GACCtG,IAAA,CAAAZ,kBAAA;MAAAmH,QAAA,EACYZ,EAEV;MAAAa,MAAA,EACQZ,GAMR;MAAAa,SAAA,EACWzC,CAAA,CAAE;MAAA0C,KAAA,EAEX1G,IAAA,CAAA2G,aAAA;QAAAC,MAAA,EACU7G,KAAA,CAAA6G,MAAA;QAAAhD,KAAA;QAAAV,cAAA,EAEQ9B,YAAA,GAAe8B,cAAA,GAAA4C,SAAiB;QAAAY,KAAA,EACzC3G,KAAA,CAAA6G,MAAA,KAAiB,qBAAqB7G,KAAA,CAAA2G,KAAA,GAAAZ;MAAc,C;QAKjEM,KAAA,CAAC;MAAAC,SAAA,EAAe,GAAA1G,SAAA,uBAAmC;MAAA2G,QAAA,GACjDtG,IAAA,CAAAP,iBAAA;QAAAmB,WAAA;UAAAkC,EAAA;UAAAkC,IAAA,EAKQoB,KAAA,CAAC;YAAAC,SAAA,EAAgB,GAAA1G,SAAA,2BAAuC;YAAA2G,QAAA,GACtDtG,IAAA,CAAAN,iBAAA,IAAC,GACAsE,CAAA,CAAE;UAAA,C;mBAGE6B;QAIL,MAEHjF,WAAA,CAAAiG,GAAA,CAAgBd,GASnB;MAAA,C,GAGHxF,UAAA,CAAAoD,MAAA,IAAoB,IACnB3D,IAAA,CAAAhB,MAAA;QAAA8H,WAAA,EACc;QAAAT,SAAA,EACD,GAAA1G,SAAA,qBAAiC;QAAAoH,MAAA;QAAAb,OAAA,EAAAA,CAAA;UAG1CvB,gBAAA;QAAA;QAAA2B,QAAA,EAGDtC,CAAA,CAAE;UAAAgD,KAAA,EACMzI,cAAA,CAAe0F,sBAAA,CAAAgD,MAAA,EAAAC,QAAA,EAAyCnD,IAAA;QAAA,CACjE;MAAA,C;QAIN/D,IAAA,CAACsE,oBAAA;MAAA6C,WAAA;QAAA,CAEIzE,eAAA,GAAkBxB,QAAA;QAAAgD,UAAA,EACPU;MAAA;MAAA4B,MAAA,EAENL,GAMR;MAAAiB,mBAAA;IAAA,C,GAIFpH,IAAA,CAAAX,sBAAA;MAAAgH,SAAA,EAAmC,GAAA1G,SAAA,gBAA4B;MAAA2G,QAAA,EAC5D/F,UAAA,CAAAoD,MAAA,IAAoB,GACnB7C,sBAAA,GAEAd,IAAA,CAAAT,aAAA;QAAA8H,OAAA,GAEIrH,IAAA,CAAAhB,MAAA;UAAA8H,WAAA,EACc;UAAAT,SAAA,EACD,GAAA1G,SAAA,wBAAoC;UAAAuG,OAAA,EAAAA,CAAA;YAG7CvB,gBAAA;UAAA;UAAA2C,IAAA,EAEG;UAAAhB,QAAA,EAEJ,GAAGtC,CAAA,CAAE,qBAAqBzF,cAAA,CAAe0F,sBAAA,CAAAgD,MAAA,EAAAC,QAAA,EAAyCnD,IAAA,EAAAwD,WAAA,CAAiB;QAAI,GANpG;QAAAC,OAAA,EAUNpB,KAAA,CAAAqB,SAAA;UAAAnB,QAAA,GACEtG,IAAA,CAAC;YAAAsG,QAAA,EAAIvC,IAAA,CAAAC,CAAA,CAAO;UAAA,C,GACZhE,IAAA,CAAC;YAAAsG,QAAA,EAAGvC,IAAA,CAAAC,CAAA,CAAO;UAAA,C;;;QAOpB,CAACX,gBAAA,IACArD,IAAA,CAAAf,iBAAA;MAAAyI,IAAA,EAEI1H,IAAA,CAAA2H,mBAAA;QAAAf,MAAA,EACU7G,KAAA,CAAA6G,MAAA;QAAAhD,KAAA;QAAAV,cAAA;QAAAwD,KAAA,EAGD3G,KAAA,CAAA6G,MAAA,KAAiB,qBAAqB7G,KAAA,CAAA2G,KAAA,GAAAZ,SAAc;QAAA8B,YAAA,EAC7C1C,iBAAA,GAAAF;MAAA,C;uBAGDhB,CAAA,CAAE;MAAA6D,YAAA,EACL7D,CAAA,CAAE;MAAA8D,OAAA,EACP9D,CAAA,CAAE;MAAA+D,SAAA,EAAAlI,gBAAA;MAAAuD,SAAA,EAEAoC;IAAA,C;;;AAOrB,SAAAmB,cAAA5G,KAAA;EAAA,MAAAkD,CAAA,GAAA5E,EAAA;EAGE;IAAA2F;EAAA,IAAcjF,cAAA;EAAA,QAENgB,KAAA,CAAA6G,MAAA;IAAA,KACD;MAAA;QAAA,IAGC7G,KAAA,CAAAmD,cAAA;UAAA,IAAAF,EAAA;UAAA,IAAAC,CAAA,QAAAlD,KAAA,CAAAmD,cAAA,IAAAD,CAAA,QAAAlD,KAAA,CAAA2G,KAAA,IAAAzD,CAAA,QAAAe,CAAA;YAEKhB,EAAA,GAAAgB,CAAA,CAAE;cAAAgE,UAAA,EACKjI,KAAA,CAAAmD,cAAA;cAAAwD,KAAA,EACL3G,KAAA,CAAA2G;YAAA,CACT;YAAAzD,CAAA,MAAAlD,KAAA,CAAAmD,cAAA;YAAAD,CAAA,MAAAlD,KAAA,CAAA2G,KAAA;YAAAzD,CAAA,MAAAe,CAAA;YAAAf,CAAA,MAAAD,EAAA;UAAA;YAAAA,EAAA,GAAAC,CAAA;UAAA;UAAA,OAHOD,EAGP;QAAA;UAAA,IAAAA,EAAA;UAAA,IAAAC,CAAA,QAAAlD,KAAA,CAAA2G,KAAA,IAAAzD,CAAA,QAAAe,CAAA;YAGOhB,EAAA,GAAAgB,CAAA,CAAE;cAAA0C,KAAA,EACA3G,KAAA,CAAA2G;YAAA,CACT;YAAAzD,CAAA,MAAAlD,KAAA,CAAA2G,KAAA;YAAAzD,CAAA,MAAAe,CAAA;YAAAf,CAAA,MAAAD,EAAA;UAAA;YAAAA,EAAA,GAAAC,CAAA;UAAA;UAAA,OAFOD,EAEP;QAAA;MAAA;IAAA,KAGC;MAAA;QAAA,IACCjD,KAAA,CAAAmD,cAAA;UAIO,MAAAF,EAAA,MAAGjD,KAAA,CAAA6D,KAAA,IAAe7D,KAAA,CAAA6D,KAAA,IAAc,GAAII,CAAA,CAAE,mBAAmBA,CAAA,CAAE,iBAAiB;UAAA,IAAAN,EAAA;UAAA,IAAAT,CAAA,QAAAlD,KAAA,CAAAmD,cAAA,IAAAD,CAAA,QAAAe,CAAA,IAAAf,CAAA,QAAAD,EAAA;YAF9EU,EAAA,GAAAM,CAAA,CAAE;cAAAgE,UAAA,EACKjI,KAAA,CAAAmD,cAAA;cAAAwD,KAAA,EACL1D;YAA4E,CACrF;YAAAC,CAAA,MAAAlD,KAAA,CAAAmD,cAAA;YAAAD,CAAA,MAAAe,CAAA;YAAAf,CAAA,MAAAD,EAAA;YAAAC,CAAA,OAAAS,EAAA;UAAA;YAAAA,EAAA,GAAAT,CAAA;UAAA;UAAA,OAHOS,EAGP;QAAA;UAIS,MAAAV,EAAA,MAAGjD,KAAA,CAAA6D,KAAA,IAAe7D,KAAA,CAAA6D,KAAA,IAAc,GAAII,CAAA,CAAE,mBAAmBA,CAAA,CAAE,iBAAiB;UAAA,IAAAN,EAAA;UAAA,IAAAT,CAAA,SAAAe,CAAA,IAAAf,CAAA,SAAAD,EAAA;YAD9EU,EAAA,GAAAM,CAAA,CAAE;cAAA0C,KAAA,EACA1D;YAA4E,CACrF;YAAAC,CAAA,OAAAe,CAAA;YAAAf,CAAA,OAAAD,EAAA;YAAAC,CAAA,OAAAS,EAAA;UAAA;YAAAA,EAAA,GAAAT,CAAA;UAAA;UAAA,OAFOS,EAEP;QAAA;MAAA;EAAA;AAAA;AAKR,SAAAiE,oBAAA5H,KAAA;EAAA,MAAAkD,CAAA,GAAA5E,EAAA;EAIE;IAAA2F;EAAA,IAAcjF,cAAA;EAAA,QAENgB,KAAA,CAAA6G,MAAA;IAAA,KACD;MAAA;QAAA,IAGC7G,KAAA,CAAA6H,YAAA;UAAA,IAAA5E,EAAA;UAAA,IAAAC,CAAA,QAAAlD,KAAA,CAAA2G,KAAA,IAAAzD,CAAA,QAAAlD,KAAA,CAAA6H,YAAA,IAAA3E,CAAA,QAAAe,CAAA;YAIAhB,EAAA,GAAAhD,IAAA,CAAAR,WAAA;cAAAyI,QAAA;gBAAAC,CAAA,EAAAC,KAAA;gBAAAC,CAAA,EAAAC;cAAA;cAAAC,OAAA,EAKU;cAAAtE,CAAA;cAAAuE,SAAA;gBAAA7B,KAAA,EAGC3G,KAAA,CAAA2G,KAAA;gBAAA8B,QAAA,EACGzI,KAAA,CAAA6H;cAAA;YAAA,C;;;;;;;;iBATd5E,E;;;;YAiBAA,EAAA,GAAAhD,IAAA,CAAAR,WAAA;cAAAyI,QAAA;gBAAAC,CAAA,EAAAO;cAAA;cAAAH,OAAA,EAIU;cAAAtE,CAAA;cAAAuE,SAAA;gBAAA7B,KAAA,EAGC3G,KAAA,CAAA2G;cAAA;YAAA,C;;;;;;;iBAPX1D,E;;;SAaD;MAAA;QAAA,IAECjD,KAAA,CAAA6H,YAAA;UAAA,IAAA5E,EAAA;UAAA,IAAAC,CAAA,QAAAlD,KAAA,CAAA6D,KAAA,IAAAX,CAAA,QAAAlD,KAAA,CAAA6H,YAAA,IAAA3E,CAAA,QAAAe,CAAA;YAIAhB,EAAA,GAAAhD,IAAA,CAAAR,WAAA;cAAAyI,QAAA;gBAAAC,CAAA,EAAAQ,MAAA;gBAAAN,CAAA,EAAAO;cAAA;cAAAL,OAAA,EAKU;cAAAtE,CAAA;cAAAuE,SAAA;gBAAA3E,KAAA,EAGC7D,KAAA,CAAA6D,KAAA;gBAAAoD,KAAA,EACAjH,KAAA,CAAA6D,KAAA,IAAc,GAAII,CAAA,CAAE,mBAAmBA,CAAA,CAAE;gBAAAwE,QAAA,EACtCzI,KAAA,CAAA6H;cAAA;YAAA,C;;;;;;;;iBAVd5E,E;;;;YAkBAA,EAAA,GAAAhD,IAAA,CAAAR,WAAA;cAAAyI,QAAA;gBAAAC,CAAA,EAAAU;cAAA;cAAAN,OAAA,EAIU;cAAAtE,CAAA;cAAAuE,SAAA;gBAAA3E,KAAA,EAGC7D,KAAA,CAAA6D,KAAA;gBAAAoD,KAAA,EACAjH,KAAA,CAAA6D,KAAA,IAAc,GAAII,CAAA,CAAE,mBAAmBA,CAAA,CAAE;cAAA;YAAA,C;;;;;;;iBARpDhB,E;;;;;AApEV,SAAA4F,OAAA5F,EAAA;EAsEkB;IAAAsD,QAAA,EAAAuC;EAAA,IAAA7F,EAAY;EAAA,OAAKhD,IAAA,CAAC;IAAAsG,QAAA,EAAQA;EAAA,C;;AAtE5C,SAAAqC,OAAA3F,EAAA;EAqDkB;IAAAsD,QAAA,EAAAwC;EAAA,IAAA9F,EAAY;EAAA,OAAKhD,IAAA,CAAC;IAAAsG,QAAA,EAAQA;EAAA,C;;AArD5C,SAAAoC,OAAA1F,EAAA;EAoDkB;IAAAsD;EAAA,IAAAtD,EAAY;EAAA,OAAKhD,IAAA,CAAC;IAAAsG;EAAA,C;;AApDpC,SAAAmC,OAAAzF,EAAA;EAiCkB;IAAAsD,QAAA,EAAAyC;EAAA,IAAA/F,EAAY;EAAA,OAAKhD,IAAA,CAAC;IAAAsG,QAAA,EAAQA;EAAA,C;;AAjC5C,SAAA+B,OAAArF,EAAA;EAiBkB;IAAAsD,QAAA,EAAA0C;EAAA,IAAAhG,EAAY;EAAA,OAAKhD,IAAA,CAAC;IAAAsG,QAAA,EAAQA;EAAA,C;;AAjB5C,SAAA6B,MAAAnF,EAAA;EAgBkB;IAAAsD,QAAA,EAAA2C;EAAA,IAAAjG,EAAY;EAAA,OAAKhD,IAAA,CAAC;IAAAsG,QAAA,EAAQA;EAAA,C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","extractID","React","DocumentIcon","useConfig","useFolder","useTranslation","formatDate","ColoredFolderIcon","DraggableTableRow","SimpleTable","TableHeader","baseClass","FolderFileTable","t0","$","showRelationCell","t1","undefined","checkIfItemIsDisabled","documents","focusedRowIndex","onItemClick","onItemKeyPress","selectedItemKeys","subfolders","config","i18n","t","t2","map","collections","forEach","collection","slug","plural","labels","singular","relationToMap","useState","t3","columnsToShow","name","label","push","columns","t4","t5","subfolder","rowIndex","itemKey","relationTo","value","subfolderID","_jsx","t6","index","name_0","cellValue","_folderOrDocumentTitle","pattern","admin","dateFormat","Array","isArray","folderType","reduce","acc","index_0","_jsxs","className","children","disabled","dragData","id","type","isDroppable","isFocused","isSelected","has","isSelecting","size","onClick","event","item","onKeyDown","event_0","length","document","unadjustedIndex","itemKey_0","relationTo_0","value_0","documentID","rowIndex_0","t7","index_1","name_1","cellValue_0","event_1","event_2","headerCells","_temp","tableRows"],"sources":["../../../../src/elements/FolderView/FolderFileTable/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { extractID } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentIcon } from '../../../icons/Document/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDate } from '../../../utilities/formatDocTitle/formatDateTitle.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport { DraggableTableRow } from '../DraggableTableRow/index.js'\nimport { SimpleTable, TableHeader } from '../SimpleTable/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-file-table'\n\ntype Props = {\n showRelationCell?: boolean\n}\n\nexport function FolderFileTable({ showRelationCell = true }: Props) {\n const {\n checkIfItemIsDisabled,\n documents,\n focusedRowIndex,\n onItemClick,\n onItemKeyPress,\n selectedItemKeys,\n subfolders,\n } = useFolder()\n const { config } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [relationToMap] = React.useState(() => {\n const map: Record<string, { plural: string; singular: string }> = {}\n config.collections.forEach((collection) => {\n map[collection.slug] = {\n plural: getTranslation(collection.labels?.plural, i18n),\n singular: getTranslation(collection.labels?.singular, i18n),\n }\n })\n return map\n })\n\n const [columns] = React.useState(() => {\n const columnsToShow = [\n {\n name: 'name',\n label: t('general:name'),\n },\n {\n name: 'createdAt',\n label: t('general:createdAt'),\n },\n {\n name: 'updatedAt',\n label: t('general:updatedAt'),\n },\n ]\n\n if (showRelationCell) {\n columnsToShow.push({\n name: 'type',\n label: t('version:type'),\n })\n }\n\n return columnsToShow\n })\n\n return (\n <SimpleTable\n headerCells={columns.map(({ name, label }) => (\n <TableHeader key={name}>{label}</TableHeader>\n ))}\n tableRows={[\n ...subfolders.map((subfolder, rowIndex) => {\n const { itemKey, relationTo, value } = subfolder\n const subfolderID = extractID(value)\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = (\n <>\n {relationToMap[relationTo]?.singular || relationTo}\n {Array.isArray(subfolder.value?.folderType)\n ? subfolder.value?.folderType.reduce((acc, slug, index) => {\n if (index === 0) {\n return ` — ${relationToMap[slug]?.plural || slug}`\n }\n if (index > 0) {\n return `${acc}, ${relationToMap[slug]?.plural || slug}`\n }\n return acc\n }, '')\n : ''}\n </>\n )\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <ColoredFolderIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(subfolder)}\n dragData={{\n id: subfolderID,\n type: 'folder',\n }}\n id={subfolderID}\n isDroppable\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n />\n )\n }),\n\n ...documents.map((document, unadjustedIndex) => {\n const { itemKey, relationTo, value } = document\n const documentID = extractID(value)\n const rowIndex = unadjustedIndex + subfolders.length\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = relationToMap[relationTo]?.singular || relationTo\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <DocumentIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(document)}\n dragData={{\n id: documentID,\n type: 'document',\n }}\n id={documentID}\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n />\n )\n }),\n ]}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","extractID","React","DocumentIcon","useConfig","useFolder","useTranslation","formatDate","ColoredFolderIcon","DraggableTableRow","SimpleTable","TableHeader","baseClass","FolderFileTable","t0","$","showRelationCell","t1","undefined","checkIfItemIsDisabled","documents","focusedRowIndex","onItemClick","onItemKeyPress","selectedItemKeys","subfolders","config","i18n","t","t2","map","collections","forEach","collection","slug","plural","labels","singular","relationToMap","useState","t3","columnsToShow","name","label","push","columns","t4","t5","subfolder","rowIndex","itemKey","relationTo","value","subfolderID","_jsx","t6","index","name_0","cellValue","_folderOrDocumentTitle","pattern","admin","dateFormat","Array","isArray","folderType","reduce","acc","index_0","_jsxs","className","children","disabled","dragData","id","type","isDroppable","isFocused","isSelected","has","isSelecting","size","onClick","event","item","onKeyDown","event_0","length","document","unadjustedIndex","itemKey_0","relationTo_0","value_0","documentID","rowIndex_0","t7","index_1","name_1","cellValue_0","event_1","event_2","headerCells","_temp","tableRows"],"sources":["../../../../src/elements/FolderView/FolderFileTable/index.tsx"],"sourcesContent":["'use client'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { extractID } from 'payload/shared'\nimport React from 'react'\n\nimport { DocumentIcon } from '../../../icons/Document/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useFolder } from '../../../providers/Folders/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDate } from '../../../utilities/formatDocTitle/formatDateTitle.js'\nimport { ColoredFolderIcon } from '../ColoredFolderIcon/index.js'\nimport { DraggableTableRow } from '../DraggableTableRow/index.js'\nimport { SimpleTable, TableHeader } from '../SimpleTable/index.js'\nimport './index.scss'\n\nconst baseClass = 'folder-file-table'\n\ntype Props = {\n showRelationCell?: boolean\n}\n\nexport function FolderFileTable({ showRelationCell = true }: Props) {\n const {\n checkIfItemIsDisabled,\n documents,\n focusedRowIndex,\n onItemClick,\n onItemKeyPress,\n selectedItemKeys,\n subfolders,\n } = useFolder()\n const { config } = useConfig()\n const { i18n, t } = useTranslation()\n\n const [relationToMap] = React.useState(() => {\n const map: Record<string, { plural: string; singular: string }> = {}\n config.collections.forEach((collection) => {\n map[collection.slug] = {\n plural: getTranslation(collection.labels?.plural, i18n),\n singular: getTranslation(collection.labels?.singular, i18n),\n }\n })\n return map\n })\n\n const [columns] = React.useState(() => {\n const columnsToShow = [\n {\n name: 'name',\n label: t('general:name'),\n },\n {\n name: 'createdAt',\n label: t('general:createdAt'),\n },\n {\n name: 'updatedAt',\n label: t('general:updatedAt'),\n },\n ]\n\n if (showRelationCell) {\n columnsToShow.push({\n name: 'type',\n label: t('version:type'),\n })\n }\n\n return columnsToShow\n })\n\n return (\n <SimpleTable\n headerCells={columns.map(({ name, label }) => (\n <TableHeader key={name}>{label}</TableHeader>\n ))}\n tableRows={[\n ...subfolders.map((subfolder, rowIndex) => {\n const { itemKey, relationTo, value } = subfolder\n const subfolderID = extractID(value)\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = (\n <>\n {relationToMap[relationTo]?.singular || relationTo}\n {Array.isArray(subfolder.value?.folderType)\n ? subfolder.value?.folderType.reduce((acc, slug, index) => {\n if (index === 0) {\n return ` — ${relationToMap[slug]?.plural || slug}`\n }\n if (index > 0) {\n return `${acc}, ${relationToMap[slug]?.plural || slug}`\n }\n return acc\n }, '')\n : ''}\n </>\n )\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <ColoredFolderIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(subfolder)}\n dragData={{\n id: subfolderID,\n type: 'folder',\n }}\n id={subfolderID}\n isDroppable\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: subfolder,\n })\n }}\n />\n )\n }),\n\n ...documents.map((document, unadjustedIndex) => {\n const { itemKey, relationTo, value } = document\n const documentID = extractID(value)\n const rowIndex = unadjustedIndex + subfolders.length\n\n return (\n <DraggableTableRow\n columns={columns.map(({ name }, index) => {\n let cellValue: React.ReactNode = '—'\n if (name === 'name' && value._folderOrDocumentTitle !== undefined) {\n cellValue = value._folderOrDocumentTitle\n }\n\n if ((name === 'createdAt' || name === 'updatedAt') && value[name]) {\n cellValue = formatDate({\n date: value[name],\n i18n,\n pattern: config.admin.dateFormat,\n })\n }\n\n if (name === 'type') {\n cellValue = relationToMap[relationTo]?.singular || relationTo\n }\n\n if (index === 0) {\n return (\n <span className={`${baseClass}__cell-with-icon`} key={`${itemKey}-${name}`}>\n <DocumentIcon />\n {cellValue}\n </span>\n )\n } else {\n return cellValue\n }\n })}\n disabled={checkIfItemIsDisabled(document)}\n dragData={{\n id: documentID,\n type: 'document',\n }}\n id={documentID}\n isFocused={focusedRowIndex === rowIndex}\n isSelected={selectedItemKeys.has(itemKey)}\n isSelecting={selectedItemKeys.size > 0}\n itemKey={itemKey}\n key={`${rowIndex}-${itemKey}`}\n onClick={(event) => {\n void onItemClick({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n onKeyDown={(event) => {\n void onItemKeyPress({\n event,\n index: rowIndex,\n item: document,\n })\n }}\n />\n )\n }),\n ]}\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","apiRoute","path","folderData","json","name","useEffect","t6","t7","t8","id_0","type","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { type FolderOrDocument, formatAdminURL } from 'payload/shared'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}/${fromFolderID}`,\n }),\n )\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","formatAdminURL","React","useId","toast","useForm","useFormFields","FolderIcon","useConfig","useDocumentInfo","useTranslation","Button","formatDrawerSlug","useDrawerDepth","MoveItemsToFolderDrawer","baseClass","MoveDocToFolder","t0","$","buttonProps","className","t1","folderCollectionSlug","folderFieldName","undefined","t","dispatchField","_temp","t2","t3","fields","currentParentFolder","fromFolderID","value","id","collectionSlug","initialData","title","setModified","fromFolderName","setFromFolderName","useState","config","modalID","t4","t5","routes","api","fetchFolderLabel","response","fetch","apiRoute","path","folderData","json","name","useEffect","t6","t7","t8","id_0","type","t9","_jsx","MoveDocToFolderButton","docData","docID","docTitle","modalSlug","onConfirm","skipConfirmModal","dispatch","getEntityConfig","i18n","closeModal","openModal","drawerDepth","drawerSlug","slug","depth","titleToRender","labels","singular","filter","Boolean","_jsxs","_Fragment","children","buttonStyle","join","icon","iconPosition","onClick","action","folderAssignedCollections","itemsToMove","itemKey","relationTo","args","success","folderName","_"],"sources":["../../../../src/elements/FolderView/MoveDocToFolder/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { type FolderOrDocument, formatAdminURL } from 'payload/shared'\nimport React, { useId } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props as ButtonProps } from '../../Button/types.js'\n\nimport { useForm, useFormFields } from '../../../forms/Form/context.js'\nimport { FolderIcon } from '../../../icons/Folder/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { formatDrawerSlug, useDrawerDepth } from '../../Drawer/index.js'\nimport './index.scss'\nimport { MoveItemsToFolderDrawer } from '../Drawers/MoveToFolder/index.js'\n\nconst baseClass = 'move-doc-to-folder'\n\n/**\n * This is the button shown on the edit document view. It uses the more generic `MoveDocToFolderButton` component.\n */\nexport function MoveDocToFolder({\n buttonProps,\n className = '',\n folderCollectionSlug,\n folderFieldName,\n}: {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n}) {\n const { t } = useTranslation()\n const dispatchField = useFormFields(([_, dispatch]) => dispatch)\n const currentParentFolder = useFormFields(\n ([fields]) => (fields && fields?.[folderFieldName]) || null,\n )\n const fromFolderID = currentParentFolder?.value\n const { id, collectionSlug, initialData, title } = useDocumentInfo()\n const { setModified } = useForm()\n const [fromFolderName, setFromFolderName] = React.useState(() => `${t('general:loading')}...`)\n\n const { config } = useConfig()\n const modalID = useId()\n\n React.useEffect(() => {\n async function fetchFolderLabel() {\n if (fromFolderID && (typeof fromFolderID === 'string' || typeof fromFolderID === 'number')) {\n const response = await fetch(\n formatAdminURL({\n apiRoute: config.routes.api,\n path: `/${folderCollectionSlug}/${fromFolderID}`,\n }),\n )\n const folderData = await response.json()\n setFromFolderName(folderData?.name || t('folder:noFolder'))\n } else {\n setFromFolderName(t('folder:noFolder'))\n }\n }\n\n void fetchFolderLabel()\n }, [folderCollectionSlug, config.routes.api, fromFolderID, t])\n\n return (\n <MoveDocToFolderButton\n buttonProps={buttonProps}\n className={className}\n collectionSlug={collectionSlug}\n docData={initialData as FolderOrDocument['value']}\n docID={id}\n docTitle={title}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID as number | string}\n fromFolderName={fromFolderName}\n modalSlug={`move-to-folder-${modalID}`}\n onConfirm={({ id }) => {\n if (currentParentFolder.value !== id) {\n dispatchField({\n type: 'UPDATE',\n path: folderFieldName,\n value: id,\n })\n setModified(true)\n }\n }}\n skipConfirmModal={!currentParentFolder?.value}\n />\n )\n}\n\ntype MoveDocToFolderButtonProps = {\n readonly buttonProps?: Partial<ButtonProps>\n readonly className?: string\n readonly collectionSlug: string\n readonly docData: FolderOrDocument['value']\n readonly docID: number | string\n readonly docTitle?: string\n readonly folderCollectionSlug: string\n readonly folderFieldName: string\n readonly fromFolderID?: number | string\n readonly fromFolderName: string\n readonly modalSlug: string\n readonly onConfirm?: (args: { id: number | string; name: string }) => Promise<void> | void\n readonly skipConfirmModal?: boolean\n}\n\n/**\n * This is a more generic button that can be used in other contexts, such as table cells and the edit view.\n */\nexport const MoveDocToFolderButton = ({\n buttonProps,\n className,\n collectionSlug,\n docData,\n docID,\n docTitle,\n folderCollectionSlug,\n folderFieldName,\n fromFolderID,\n fromFolderName,\n modalSlug,\n onConfirm,\n skipConfirmModal,\n}: MoveDocToFolderButtonProps) => {\n const { getEntityConfig } = useConfig()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const drawerDepth = useDrawerDepth()\n const drawerSlug = formatDrawerSlug({ slug: modalSlug, depth: drawerDepth })\n\n const titleToRender =\n docTitle || getTranslation(getEntityConfig({ collectionSlug }).labels.singular, i18n)\n\n return (\n <>\n <Button\n buttonStyle=\"subtle\"\n className={[baseClass, className].filter(Boolean).join(' ')}\n icon={<FolderIcon />}\n iconPosition=\"left\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n {...buttonProps}\n >\n {fromFolderName}\n </Button>\n\n <MoveItemsToFolderDrawer\n action=\"moveItemToFolder\"\n drawerSlug={drawerSlug}\n //todo this should inherit\n folderAssignedCollections={[collectionSlug]}\n folderCollectionSlug={folderCollectionSlug}\n folderFieldName={folderFieldName}\n fromFolderID={fromFolderID}\n fromFolderName={fromFolderName}\n itemsToMove={[\n {\n itemKey: `${collectionSlug}-${docID}`,\n relationTo: collectionSlug,\n value: { ...docData, id: docID },\n },\n ]}\n onConfirm={async (args) => {\n if (fromFolderID !== args.id && typeof onConfirm === 'function') {\n try {\n await onConfirm(args)\n\n if (args.id) {\n // moved to folder\n toast.success(\n t('folder:itemHasBeenMoved', {\n folderName: `\"${args.name}\"`,\n title: titleToRender,\n }),\n )\n } else {\n // moved to root\n toast.success(\n t('folder:itemHasBeenMovedToRoot', {\n title: titleToRender,\n }),\n )\n }\n } catch (_) {\n // todo: add error toast?\n }\n }\n\n closeModal(drawerSlug)\n }}\n skipConfirmModal={skipConfirmModal}\n title={titleToRender}\n />\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure you want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"usePreventLeave.js","names":["c","_c","useRouter","useCallback","useEffect","useRef","useRouteTransition","on","obj","args","addEventListener","off","removeEventListener","useBeforeUnload","t0","message","$","enabled","undefined","t1","event","finalEnabled","preventDefault","returnValue","handler","t2","t3","window","usePreventLeave","hasAccepted","onAccept","onPrevent","prevent","startRouteTransition","router","cancelledURL","isAnchorOfCurrentUrl","currentUrl","newUrl","currentUrlObj","URL","newUrlObj","hostname","pathname","search","currentHash","hash","newHash","href","replace","err","console","log","findClosestAnchor","element","tagName","toLowerCase","parentElement","handleClick","target","anchor","location","isAnchor","isDownloadLink","download","isNewTab","metaKey","ctrlKey","isPageLeaving","confirm","current","stopPropagation","document","push"],"sources":["../../../src/elements/LeaveWithoutSaving/usePreventLeave.tsx"],"sourcesContent":["'use client'\n// Credit: @Taiki92777\n// - Source: https://github.com/vercel/next.js/discussions/32231#discussioncomment-7284386\n// Credit: `react-use` maintainers\n// - Source: https://github.com/streamich/react-use/blob/ade8d3905f544305515d010737b4ae604cc51024/src/useBeforeUnload.ts#L2\nimport { useRouter } from 'next/navigation.js'\nimport { useCallback, useEffect, useRef } from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\n\nfunction on<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['addEventListener']>\n): void {\n if (obj && obj.addEventListener) {\n obj.addEventListener(...(args as Parameters<HTMLElement['addEventListener']>))\n }\n}\n\nfunction off<T extends Document | EventTarget | HTMLElement | Window>(\n obj: null | T,\n ...args: [string, (() => void) | null, ...any] | Parameters<T['removeEventListener']>\n): void {\n if (obj && obj.removeEventListener) {\n obj.removeEventListener(...(args as Parameters<HTMLElement['removeEventListener']>))\n }\n}\n\nexport const useBeforeUnload = (enabled: (() => boolean) | boolean = true, message?: string) => {\n const handler = useCallback(\n (event: BeforeUnloadEvent) => {\n const finalEnabled = typeof enabled === 'function' ? enabled() : true\n\n if (!finalEnabled) {\n return\n }\n\n event.preventDefault()\n\n if (message) {\n event.returnValue = message\n }\n\n return message\n },\n [enabled, message],\n )\n\n useEffect(() => {\n if (!enabled) {\n return\n }\n\n on(window, 'beforeunload', handler)\n\n return () => off(window, 'beforeunload', handler)\n }, [enabled, handler])\n}\n\nexport const usePreventLeave = ({\n hasAccepted = false,\n message = 'Are you sure you want to leave this page?',\n onAccept,\n onPrevent,\n prevent = true,\n}: {\n hasAccepted: boolean\n // if no `onPrevent` is provided, the message will be displayed in a confirm dialog\n message?: string\n onAccept?: () => void\n // to use a custom confirmation dialog, provide a function that returns a boolean\n onPrevent?: () => void\n prevent: boolean\n}) => {\n // check when page is about to be reloaded\n useBeforeUnload(prevent, message)\n const { startRouteTransition } = useRouteTransition()\n\n const router = useRouter()\n const cancelledURL = useRef<string>('')\n\n // check when page is about to be changed\n useEffect(() => {\n function isAnchorOfCurrentUrl(currentUrl: string, newUrl: string) {\n try {\n const currentUrlObj = new URL(currentUrl)\n const newUrlObj = new URL(newUrl)\n // Compare hostname, pathname, and search parameters\n if (\n currentUrlObj.hostname === newUrlObj.hostname &&\n currentUrlObj.pathname === newUrlObj.pathname &&\n currentUrlObj.search === newUrlObj.search\n ) {\n // Check if the new URL is just an anchor of the current URL page\n const currentHash = currentUrlObj.hash\n const newHash = newUrlObj.hash\n return (\n currentHash !== newHash &&\n currentUrlObj.href.replace(currentHash, '') === newUrlObj.href.replace(newHash, '')\n )\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:isAnchorOfCurrentUrl', err)\n }\n return false\n }\n\n function findClosestAnchor(element: HTMLElement | null): HTMLAnchorElement | null {\n while (element && element.tagName.toLowerCase() !== 'a') {\n element = element.parentElement\n }\n return element as HTMLAnchorElement\n }\n\n function handleClick(event: MouseEvent) {\n try {\n const target = event.target as HTMLElement\n const anchor = findClosestAnchor(target)\n if (anchor) {\n const currentUrl = window.location.href\n const newUrl = anchor.href\n const isAnchor = isAnchorOfCurrentUrl(currentUrl, newUrl)\n const isDownloadLink = anchor.download !== ''\n const isNewTab = anchor.target === '_blank' || event.metaKey || event.ctrlKey\n\n const isPageLeaving = !(newUrl === currentUrl || isAnchor || isDownloadLink || isNewTab)\n\n if (isPageLeaving && prevent && (!onPrevent ? !window.confirm(message) : true)) {\n // Keep a reference of the href\n cancelledURL.current = newUrl\n\n // Cancel the route change\n event.preventDefault()\n event.stopPropagation()\n\n if (typeof onPrevent === 'function') {\n onPrevent()\n }\n }\n }\n } catch (err) {\n // eslint-disable-next-line no-console\n console.log('Unexpected exception thrown in LeaveWithoutSaving:usePreventLeave', err)\n }\n }\n\n if (prevent) {\n // Add the global click event listener\n document.addEventListener('click', handleClick, true)\n }\n\n // Clean up the global click event listener when the component is unmounted\n return () => {\n document.removeEventListener('click', handleClick, true)\n }\n }, [onPrevent, prevent, message])\n\n useEffect(() => {\n if (hasAccepted && cancelledURL.current) {\n if (onAccept) {\n onAccept()\n }\n\n startRouteTransition(() => router.push(cancelledURL.current))\n }\n }, [hasAccepted, onAccept, router, startRouteTransition])\n}\n"],"mappings":"AAAA;;AACA;AACA;AACA;AACA;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,QAAQ;AAC1B,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,QAAQ;AAE/C,SAASC,kBAAkB,QAAQ;AAEnC,SAASC,GACPC,GAAa,EACb,GAAGC,IAA+E;EAElF,IAAID,GAAA,IAAOA,GAAA,CAAIE,gBAAgB,EAAE;IAC/BF,GAAA,CAAIE,gBAAgB,IAAKD,IAAA;EAC3B;AACF;AAEA,SAASE,IACPH,GAAa,EACb,GAAGC,IAAkF;EAErF,IAAID,GAAA,IAAOA,GAAA,CAAII,mBAAmB,EAAE;IAClCJ,GAAA,CAAII,mBAAmB,IAAKH,IAAA;EAC9B;AACF;AAEA,OAAO,MAAMI,eAAA,GAAkBA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAAC,MAAAgB,OAAA,GAAAA,EAAyC,KAAAC,SAAA,UAAzCD,EAAyC;EAAA,IAAAE,EAAA;EAAA,IAAAH,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAD,OAAA;IAErEI,EAAA,GAAAC,KAAA;MACE,MAAAC,YAAA,GAAqB,OAAOJ,OAAA,KAAY,aAAaA,OAAA,SAAY;MAAA,KAE5DI,YAAA;QAAA;MAAA;MAILD,KAAA,CAAAE,cAAA,CAAoB;MAAA,IAEhBP,OAAA;QACFK,KAAA,CAAAG,WAAA,GAAoBR,OAAA;MAAA;MAAA,OAGfA,OAAA;IAAA;IACTC,CAAA,MAAAC,OAAA;IAAAD,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,EAAA;EAAA;IAAAA,EAAA,GAAAH,CAAA;EAAA;EAfF,MAAAQ,OAAA,GAAgBL,EAgBI;EAAA,IAAAM,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAC,OAAA,IAAAD,CAAA,QAAAQ,OAAA;IAGVC,EAAA,GAAAA,CAAA;MAAA,KACHR,OAAA;QAAA;MAAA;MAILV,EAAA,CAAAoB,MAAA,EAAW,gBAAgBH,OAAA;MAAA,aAEdb,GAAA,CAAAgB,MAAA,EAAY,gBAAgBH,OAAA;IAAA;IACxCE,EAAA,IAACT,OAAA,EAASO,OAAA;IAAQR,CAAA,MAAAC,OAAA;IAAAD,CAAA,MAAAQ,OAAA;IAAAR,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EARrBZ,SAAA,CAAUqB,EAQV,EAAGC,EAAkB;AAAA,CACvB;AAEA,OAAO,MAAME,eAAA,GAAkBA,CAAC;EAC9BC,WAAA,GAAc,KAAK;EACnBd,OAAA,GAAU,2CAA2C;EACrDe,QAAQ;EACRC,SAAS;EACTC,OAAA,GAAU;AAAI,CASf;EACC;EACAnB,eAAA,CAAgBmB,OAAA,EAASjB,OAAA;EACzB,MAAM;IAAEkB;EAAoB,CAAE,GAAG3B,kBAAA;EAEjC,MAAM4B,MAAA,GAAShC,SAAA;EACf,MAAMiC,YAAA,GAAe9B,MAAA,CAAe;EAEpC;EACAD,SAAA,CAAU;IACR,SAASgC,qBAAqBC,UAAkB,EAAEC,MAAc;MAC9D,IAAI;QACF,MAAMC,aAAA,GAAgB,IAAIC,GAAA,CAAIH,UAAA;QAC9B,MAAMI,SAAA,GAAY,IAAID,GAAA,CAAIF,MAAA;QAC1B;QACA,IACEC,aAAA,CAAcG,QAAQ,KAAKD,SAAA,CAAUC,QAAQ,IAC7CH,aAAA,CAAcI,QAAQ,KAAKF,SAAA,CAAUE,QAAQ,IAC7CJ,aAAA,CAAcK,MAAM,KAAKH,SAAA,CAAUG,MAAM,EACzC;UACA;UACA,MAAMC,WAAA,GAAcN,aAAA,CAAcO,IAAI;UACtC,MAAMC,OAAA,GAAUN,SAAA,CAAUK,IAAI;UAC9B,OACED,WAAA,KAAgBE,OAAA,IAChBR,aAAA,CAAcS,IAAI,CAACC,OAAO,CAACJ,WAAA,EAAa,QAAQJ,SAAA,CAAUO,IAAI,CAACC,OAAO,CAACF,OAAA,EAAS;QAEpF;MACF,EAAE,OAAOG,GAAA,EAAK;QACZ;QACAC,OAAA,CAAQC,GAAG,CAAC,0EAA0EF,GAAA;MACxF;MACA,OAAO;IACT;IAEA,SAASG,kBAAkBC,OAA2B;MACpD,OAAOA,OAAA,IAAWA,OAAA,CAAQC,OAAO,CAACC,WAAW,OAAO,KAAK;QACvDF,OAAA,GAAUA,OAAA,CAAQG,aAAa;MACjC;MACA,OAAOH,OAAA;IACT;IAEA,SAASI,YAAYtC,KAAiB;MACpC,IAAI;QACF,MAAMuC,MAAA,GAASvC,KAAA,CAAMuC,MAAM;QAC3B,MAAMC,MAAA,GAASP,iBAAA,CAAkBM,MAAA;QACjC,IAAIC,MAAA,EAAQ;UACV,MAAMvB,YAAA,GAAaV,MAAA,CAAOkC,QAAQ,CAACb,IAAI;UACvC,MAAMV,QAAA,GAASsB,MAAA,CAAOZ,IAAI;UAC1B,MAAMc,QAAA,GAAW1B,oBAAA,CAAqBC,YAAA,EAAYC,QAAA;UAClD,MAAMyB,cAAA,GAAiBH,MAAA,CAAOI,QAAQ,KAAK;UAC3C,MAAMC,QAAA,GAAWL,MAAA,CAAOD,MAAM,KAAK,YAAYvC,KAAA,CAAM8C,OAAO,IAAI9C,KAAA,CAAM+C,OAAO;UAE7E,MAAMC,aAAA,GAAgB,EAAE9B,QAAA,KAAWD,YAAA,IAAcyB,QAAA,IAAYC,cAAA,IAAkBE,QAAO;UAEtF,IAAIG,aAAA,IAAiBpC,OAAA,KAAY,CAACD,SAAA,GAAY,CAACJ,MAAA,CAAO0C,OAAO,CAACtD,OAAA,IAAW,IAAG,GAAI;YAC9E;YACAoB,YAAA,CAAamC,OAAO,GAAGhC,QAAA;YAEvB;YACAlB,KAAA,CAAME,cAAc;YACpBF,KAAA,CAAMmD,eAAe;YAErB,IAAI,OAAOxC,SAAA,KAAc,YAAY;cACnCA,SAAA;YACF;UACF;QACF;MACF,EAAE,OAAOmB,KAAA,EAAK;QACZ;QACAC,OAAA,CAAQC,GAAG,CAAC,qEAAqEF,KAAA;MACnF;IACF;IAEA,IAAIlB,OAAA,EAAS;MACX;MACAwC,QAAA,CAAS9D,gBAAgB,CAAC,SAASgD,WAAA,EAAa;IAClD;IAEA;IACA,OAAO;MACLc,QAAA,CAAS5D,mBAAmB,CAAC,SAAS8C,WAAA,EAAa;IACrD;EACF,GAAG,CAAC3B,SAAA,EAAWC,OAAA,EAASjB,OAAA,CAAQ;EAEhCX,SAAA,CAAU;IACR,IAAIyB,WAAA,IAAeM,YAAA,CAAamC,OAAO,EAAE;MACvC,IAAIxC,QAAA,EAAU;QACZA,QAAA;MACF;MAEAG,oBAAA,CAAqB,MAAMC,MAAA,CAAOuC,IAAI,CAACtC,YAAA,CAAamC,OAAO;IAC7D;EACF,GAAG,CAACzC,WAAA,EAAaC,QAAA,EAAUI,MAAA,EAAQD,oBAAA,CAAqB;AAC1D","ignoreList":[]}
|
|
@@ -171,7 +171,7 @@ export const ListDrawerContent = ({
|
|
|
171
171
|
DocumentDrawerToggler: DocumentDrawerToggler,
|
|
172
172
|
drawerSlug: drawerSlug,
|
|
173
173
|
enabledCollections: collectionSlugs,
|
|
174
|
-
onBulkSelect: onBulkSelect,
|
|
174
|
+
onBulkSelect: selected => onBulkSelect?.(selected, selectedOption.value),
|
|
175
175
|
onQueryChange: onQueryChange,
|
|
176
176
|
onSelect: onSelect,
|
|
177
177
|
refresh: refreshSelf,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContent.js","names":["useModal","hoistQueryParamsToAnd","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","disableQueryPresets","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","collectionSlugFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","refresh","query","newQuery","where","filterOption","result","name","args","disableBulkDelete","disableBulkEdit","List","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","refreshSelf","incomingCollectionSlug","_jsx","_jsxs","createNewDrawerSlug","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug, ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hoistQueryParamsToAnd } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerContextProps, ListDrawerContextType } from '../ListDrawer/Provider.js'\nimport type {\n ListDrawerProps,\n RenderListServerFnArgs,\n RenderListServerFnReturnType,\n} from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: collectionSlugFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = collectionSlugFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((collectionSlug: CollectionSlug) => {\n if (collectionSlug && collectionSlug !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug })?.labels,\n value: collectionSlug,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(collectionSlugFromProps)\n }, [collectionSlugFromProps])\n\n /**\n * This performs a full server round trip to get the list view for the selected collection.\n * On the server, the data is freshly queried for the list view and all components are fully rendered.\n * This work includes building column state, rendering custom components, etc.\n */\n const refresh = useCallback(\n async ({ slug, query }: { query?: ListQuery; slug: string }) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n if (slug) {\n const result: RenderListServerFnReturnType = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n } satisfies RenderListServerFnArgs,\n })) as RenderListServerFnReturnType\n\n setListView(result?.List || null)\n } else {\n setListView(null)\n }\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n disableQueryPresets,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void refresh({ slug: selectedOption?.value })\n }\n }, [refresh, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption?.value,\n doc,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange: ListDrawerContextProps['onQueryChange'] = useCallback(\n (query) => {\n void refresh({ slug: selectedOption?.value, query })\n },\n [refresh, selectedOption.value],\n )\n\n const setMySelectedOption: ListDrawerContextProps['setSelectedOption'] = useCallback(\n (incomingSelection) => {\n setSelectedOption(incomingSelection)\n void refresh({ slug: incomingSelection?.value })\n },\n [refresh],\n )\n\n const refreshSelf: ListDrawerContextType['refresh'] = useCallback(\n async (incomingCollectionSlug) => {\n if (incomingCollectionSlug) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: incomingCollectionSlug })?.labels,\n value: incomingCollectionSlug,\n })\n }\n\n await refresh({ slug: selectedOption.value || incomingCollectionSlug })\n },\n [getEntityConfig, refresh, selectedOption.value],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={onBulkSelect}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n refresh={refreshSelf}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DrawerContent.js","names":["useModal","hoistQueryParamsToAnd","React","useCallback","useEffect","useState","useDocumentDrawer","useEffectEvent","useConfig","useServerFunctions","ListDrawerContextProvider","LoadingOverlay","ListDrawerContent","allowCreate","collectionSlugs","disableQueryPresets","drawerSlug","enableRowSelections","filterOptions","onBulkSelect","onSelect","overrideEntityVisibility","selectedCollection","collectionSlugFromProps","closeModal","isModalOpen","serverFunction","ListView","setListView","undefined","isLoading","setIsLoading","config","collections","getEntityConfig","isOpen","enabledCollections","filter","slug","includes","selectedOption","setSelectedOption","initialSelection","found","collectionSlug","label","labels","value","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","updateSelectedOption","refresh","query","newQuery","where","filterOption","result","name","args","disableBulkDelete","disableBulkEdit","List","_err","console","error","onCreateNew","doc","docID","id","onQueryChange","setMySelectedOption","incomingSelection","refreshSelf","incomingCollectionSlug","_jsx","_jsxs","createNewDrawerSlug","selected","onSave"],"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { CollectionSlug, ListQuery } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hoistQueryParamsToAnd } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { ListDrawerContextProps, ListDrawerContextType } from '../ListDrawer/Provider.js'\nimport type {\n ListDrawerProps,\n RenderListServerFnArgs,\n RenderListServerFnReturnType,\n} from './types.js'\n\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { ListDrawerContextProvider } from '../ListDrawer/Provider.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { type Option } from '../ReactSelect/index.js'\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n allowCreate = true,\n collectionSlugs,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n filterOptions,\n onBulkSelect,\n onSelect,\n overrideEntityVisibility = true,\n selectedCollection: collectionSlugFromProps,\n}) => {\n const { closeModal, isModalOpen } = useModal()\n\n const { serverFunction } = useServerFunctions()\n const [ListView, setListView] = useState<React.ReactNode>(undefined)\n const [isLoading, setIsLoading] = useState(true)\n\n const {\n config: { collections },\n getEntityConfig,\n } = useConfig()\n\n const isOpen = isModalOpen(drawerSlug)\n\n const enabledCollections = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedOption, setSelectedOption] = useState<Option<string>>(() => {\n const initialSelection = collectionSlugFromProps || enabledCollections[0]?.slug\n const found = getEntityConfig({ collectionSlug: initialSelection })\n\n return found\n ? {\n label: found.labels,\n value: found.slug,\n }\n : undefined\n })\n\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedOption.value,\n })\n\n const updateSelectedOption = useEffectEvent((collectionSlug: CollectionSlug) => {\n if (collectionSlug && collectionSlug !== selectedOption?.value) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug })?.labels,\n value: collectionSlug,\n })\n }\n })\n\n useEffect(() => {\n updateSelectedOption(collectionSlugFromProps)\n }, [collectionSlugFromProps])\n\n /**\n * This performs a full server round trip to get the list view for the selected collection.\n * On the server, the data is freshly queried for the list view and all components are fully rendered.\n * This work includes building column state, rendering custom components, etc.\n */\n const refresh = useCallback(\n async ({ slug, query }: { query?: ListQuery; slug: string }) => {\n try {\n const newQuery: ListQuery = { ...(query || {}), where: { ...(query?.where || {}) } }\n\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n newQuery.where = hoistQueryParamsToAnd(newQuery.where, filterOption)\n }\n\n if (slug) {\n const result: RenderListServerFnReturnType = (await serverFunction({\n name: 'render-list',\n args: {\n collectionSlug: slug,\n disableBulkDelete: true,\n disableBulkEdit: true,\n disableQueryPresets,\n drawerSlug,\n enableRowSelections,\n overrideEntityVisibility,\n query: newQuery,\n } satisfies RenderListServerFnArgs,\n })) as RenderListServerFnReturnType\n\n setListView(result?.List || null)\n } else {\n setListView(null)\n }\n setIsLoading(false)\n } catch (_err) {\n console.error('Error rendering List View: ', _err) // eslint-disable-line no-console\n\n if (isOpen) {\n closeModal(drawerSlug)\n }\n }\n },\n [\n serverFunction,\n closeModal,\n drawerSlug,\n isOpen,\n enableRowSelections,\n filterOptions,\n overrideEntityVisibility,\n disableQueryPresets,\n ],\n )\n\n useEffect(() => {\n if (!ListView) {\n void refresh({ slug: selectedOption?.value })\n }\n }, [refresh, ListView, selectedOption.value])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedOption?.value,\n doc,\n docID: doc.id,\n })\n }\n\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedOption.value],\n )\n\n const onQueryChange: ListDrawerContextProps['onQueryChange'] = useCallback(\n (query) => {\n void refresh({ slug: selectedOption?.value, query })\n },\n [refresh, selectedOption.value],\n )\n\n const setMySelectedOption: ListDrawerContextProps['setSelectedOption'] = useCallback(\n (incomingSelection) => {\n setSelectedOption(incomingSelection)\n void refresh({ slug: incomingSelection?.value })\n },\n [refresh],\n )\n\n const refreshSelf: ListDrawerContextType['refresh'] = useCallback(\n async (incomingCollectionSlug) => {\n if (incomingCollectionSlug) {\n setSelectedOption({\n label: getEntityConfig({ collectionSlug: incomingCollectionSlug })?.labels,\n value: incomingCollectionSlug,\n })\n }\n\n await refresh({ slug: selectedOption.value || incomingCollectionSlug })\n },\n [getEntityConfig, refresh, selectedOption.value],\n )\n\n if (isLoading) {\n return <LoadingOverlay />\n }\n\n return (\n <ListDrawerContextProvider\n allowCreate={allowCreate}\n createNewDrawerSlug={documentDrawerSlug}\n DocumentDrawerToggler={DocumentDrawerToggler}\n drawerSlug={drawerSlug}\n enabledCollections={collectionSlugs}\n onBulkSelect={(selected) => onBulkSelect?.(selected, selectedOption.value)}\n onQueryChange={onQueryChange}\n onSelect={onSelect}\n refresh={refreshSelf}\n selectedOption={selectedOption}\n setSelectedOption={setMySelectedOption}\n >\n {ListView}\n <DocumentDrawer onSave={onCreateNew} />\n </ListDrawerContextProvider>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ export type ListDrawerContextProps = {
|
|
|
8
8
|
readonly DocumentDrawerToggler?: ReturnType<UseDocumentDrawer>[1];
|
|
9
9
|
readonly drawerSlug?: string;
|
|
10
10
|
readonly enabledCollections?: CollectionSlug[];
|
|
11
|
-
readonly onBulkSelect?: (selected: ReturnType<typeof useSelection>['selected']) => void;
|
|
11
|
+
readonly onBulkSelect?: (selected: ReturnType<typeof useSelection>['selected'], collectionSlug?: CollectionSlug) => void;
|
|
12
12
|
readonly onQueryChange?: (query: ListQuery) => void;
|
|
13
13
|
readonly onSelect?: (args: {
|
|
14
14
|
collectionSlug: CollectionSlug;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/Provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAI9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAA;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAErD,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,cAAc,EAAE,CAAA;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,CACtB,QAAQ,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,UAAU,CAAC,EACrD,cAAc,CAAC,EAAE,cAAc,KAC5B,IAAI,CAAA;IACT,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IACnD,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QACzB,cAAc,EAAE,cAAc,CAAA;QAC9B,GAAG,EAAE,IAAI,CAAA;QACT;;;;WAIG;QACH,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI,CAAA;CACtE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACrE,GAAG,sBAAsB,CAAA;AAE1B,eAAO,MAAM,iBAAiB,gDAA6C,CAAA;AAE3E,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,EAAE,CAC9C;IACE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC,CAAA;CAC1C,GAAG,sBAAsB,CAO3B,CAAA;AAED,eAAO,MAAM,oBAAoB,QAAO,qBAQvC,CAAA"}
|