@payloadcms/ui 3.56.0-internal.72f4fd2 → 3.56.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/EditForm/index.js +4 -18
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +173 -74
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +155 -67
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/Collapsible/index.js +15 -7
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +44 -8
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +97 -89
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +22 -2
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +47 -32
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +83 -47
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +55 -27
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +99 -47
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/Drawer/index.js +57 -23
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +21 -3
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +31 -24
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +20 -10
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +24 -18
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListSelection/index.js +27 -11
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +146 -65
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +11 -2
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +102 -46
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
- package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/SelectRow/index.js +40 -39
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +12 -20
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +30 -21
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +75 -35
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +26 -17
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +127 -51
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/index.js +10 -2
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-RHQXPDK5.js → CodeEditor-4J4OH4TD.js} +2 -2
- package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
- package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
- package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
- package/dist/exports/client/chunk-HBCG32CP.js +26 -0
- package/dist/exports/client/{chunk-FKP64OEZ.js.map → chunk-HBCG32CP.js.map} +4 -4
- package/dist/exports/client/index.d.ts +4 -5
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +0 -1
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +0 -1
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts +3 -2
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +23 -13
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +477 -273
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +19 -2
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/FieldError/index.js +29 -30
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +64 -12
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts +1 -1
- package/dist/fields/Relationship/Input.d.ts.map +1 -1
- package/dist/fields/Relationship/Input.js +8 -0
- package/dist/fields/Relationship/Input.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts +3 -1
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +31 -18
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +11 -2
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +1 -2
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +225 -185
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +127 -79
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/Form/createNestedClientFieldPath.js +1 -1
- package/dist/forms/Form/createNestedClientFieldPath.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +8 -1
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +237 -245
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/context.d.ts +29 -0
- package/dist/forms/RenderFields/context.d.ts.map +1 -1
- package/dist/forms/RenderFields/context.js +30 -2
- package/dist/forms/RenderFields/context.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +10 -2
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/useField/index.d.ts +0 -5
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +45 -74
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useIntersect.js +53 -35
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +44 -36
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/providers/Config/index.d.ts +17 -2
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +57 -20
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/Folders/index.d.ts.map +1 -1
- package/dist/providers/Folders/index.js +24 -13
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +1 -4
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +0 -13
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +2 -1
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.d.ts +1 -1
- package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.js +7 -12
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/views/BrowseByFolder/index.js +55 -37
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +40 -13
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +105 -93
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/package.json +8 -8
- package/dist/exports/client/chunk-FKP64OEZ.js +0 -26
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +0 -35
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +0 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +0 -83
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +0 -1
- /package/dist/exports/client/{CodeEditor-RHQXPDK5.js.map → CodeEditor-4J4OH4TD.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","serverURL","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","localeOptions","locales","map","_temp","t2","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t3","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t4","t5","useEffect","t6","t7","from","to","docID","overrideData","push","adminRoute","path","t8","error","message","copyLocaleData","info","t9","t10","Symbol","for","selectedOption","t11","selectedOption_0","t12","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n serverURL,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,QAAQ;AACnC,SAASC,KAAK,QAAQ;AAEtB,SAASC,aAAa,QAAQ;AAC9B,SAASC,WAAW,QAAQ;AAC5B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,YAAY,QAAQ;AAC7B,SAASC,MAAM,QAAQ;AACvB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,UAAA,GAAa;AACnB,OAAO,MAAMC,cAAA,GAA2BA,CAAA;EAAA,MAAAC,CAAA,GAAAxB,EAAA;EACtC;IAAAyB,MAAA,EAAAC;EAAA,IAMIf,SAAA;EALM;IAAAgB,YAAA;IAAAC,MAAA,EAAAC,EAAA;IAAAC;EAAA,IAAAJ,EAIP;EAFS;IAAAK;EAAA,IAAAF,EAAS;EAIrB;IAAAG;EAAA,IAAiBnB,SAAA;EACjB;IAAAoB,EAAA;IAAAC,cAAA;IAAAC;EAAA,IAA2CvB,eAAA;EAC3C;IAAAwB,IAAA;IAAAC;EAAA,IAAoBrB,cAAA;EACpB,MAAAsB,QAAA,GAAiB5B,eAAA;EACjB;IAAA6B;EAAA,IAAwBtC,QAAA;EACxB;IAAAuC;EAAA,IAA+BzB,kBAAA;EAC/B,MAAA0B,MAAA,GAAetC,SAAA;EACf;IAAAuC;EAAA,IAAiC5B,kBAAA;EAEjC,MAAA6B,aAAA,GACEhB,YAAC,IACCA,YAAA,CAAAiB,OAAA,CAAAC,GAAA,CAAAC,KAAgF,OAChF;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,QAAAQ,IAAA;IAEqDe,EAAA,GAAAC,QAAA,IAAYC,QAAA,CAAAC,KAAA,KAAiBlB,IAAA;IAAAR,CAAA,MAAAQ,IAAA;IAAAR,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAtF,MAAA2B,2BAAA,GAAoCR,aAAA,CAAAS,MAAA,CAAqBL,EAA6B;EAAA,IAAAM,EAAA;EAAA,IAAA7B,CAAA,QAAAY,IAAA,IAAAZ,CAAA,QAAAG,YAAA;IAE/D0B,EAAA,GAAAC,MAAA;MACrB,MAAAC,QAAA,GAAe5B,YAAA,IAAgBA,YAAA,CAAAiB,OAAA,CAAAY,IAAA,CAAAC,CAAA,IAAiCA,CAAA,CAAAzB,IAAA,KAAWA,MAAA;MAAA,OACpEiB,QAAA,IAAUA,QAAA,CAAAS,KAAY,GAAGxD,cAAA,CAAe+C,QAAA,CAAAS,KAAA,EAActB,IAAA,IAAQJ,MAAA;IAAA;IACvER,CAAA,MAAAY,IAAA;IAAAZ,CAAA,MAAAG,YAAA;IAAAH,CAAA,MAAA6B,EAAA;EAAA;IAAAA,EAAA,GAAA7B,CAAA;EAAA;EAHA,MAAAmC,cAAA,GAAuBN,EAGvB;EAEA,OAAAO,OAAA,EAAAC,UAAA,IAA8BxD,KAAA,CAAAyD,QAAA,MAAe;EAC7C,OAAAC,QAAA,EAAAC,WAAA,IAAgC3D,KAAA,CAAAyD,QAAA,KAA8B;EAC9D,OAAAG,UAAA,EAAAC,aAAA,IAAoC7D,KAAA,CAAAyD,QAAA,CAA8B9B,IAAA;EAClE,OAAAmC,iBAAA,EAAAC,oBAAA,IAAkD/D,KAAA,CAAAyD,QAAA,MAAe;EAAA,IAAAO,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA9C,CAAA,QAAAQ,IAAA,IAAAR,CAAA,QAAAyC,UAAA;IAEjDI,EAAA,GAAAA,CAAA;MAAA,IACVJ,UAAA,KAAejC,IAAA;QACjBkC,aAAA,CAAclC,IAAA;MAAA;IAAA;IAEfsC,EAAA,IAACtC,IAAA,EAAMiC,UAAA;IAAWzC,CAAA,MAAAQ,IAAA;IAAAR,CAAA,MAAAyC,UAAA;IAAAzC,CAAA,MAAA6C,EAAA;IAAA7C,CAAA,MAAA8C,EAAA;EAAA;IAAAD,EAAA,GAAA7C,CAAA;IAAA8C,EAAA,GAAA9C,CAAA;EAAA;EAJrBnB,KAAA,CAAAkE,SAAA,CAAgBF,EAIhB,EAAGC,EAAkB;EAAA,IAAAE,EAAA;EAAA,IAAAhD,CAAA,QAAAO,KAAA,IAAAP,CAAA,SAAAU,cAAA,IAAAV,CAAA,SAAAgB,kBAAA,IAAAhB,CAAA,SAAAW,UAAA,IAAAX,CAAA,SAAAS,EAAA,IAAAT,CAAA,SAAA2C,iBAAA,IAAA3C,CAAA,SAAAiB,MAAA,IAAAjB,CAAA,SAAAM,SAAA,IAAAN,CAAA,SAAAkB,oBAAA,IAAAlB,CAAA,SAAAe,WAAA;IAGnBiC,EAAA,SAAAC,EAAA;MAAO;QAAAC,IAAA;QAAAC;MAAA,IAAAF,EAAY;MACjBZ,UAAA,KAAW;MAAA;MAAA;QAAA,MAGHrB,kBAAA;UAAAN,cAAA;UAAA0C,KAAA,EAEG3C,EAAA;UAAAgC,UAAA,EACKS,IAAA;UAAAvC,UAAA;UAAA0C,YAAA,EAEEV,iBAAA;UAAAJ,QAAA,EACJY;QAAA,CACZ;QAEAd,UAAA,MAAW;QAEXnB,oBAAA,OACED,MAAA,CAAAqC,IAAA,CACE1E,cAAA;UAAA2E,UAAA,EACchD,KAAA;UAAAiD,IAAA,EACN,IAAI9C,cAAA,GAAiB,eAAeA,cAAA,IAAkBD,EAAA,EAAI,GAAG,WAAWE,UAAA,EAAY,EAAE;UAAAL;QAAA,CAE9F,IAAK,WAAW6C,EAAA,EAAI;QAIxBpC,WAAA,CAAAjB,UAAY;MAAA,SAAA2D,EAAA;QACLC,KAAA,CAAAA,KAAA,CAAAA,CAAA,CAAAA,EAAA;QACP3E,KAAA,CAAA2E,KAAA,CAAYA,KAAA,CAAAC,OAAa;MAAA;IAAA;IAE7B3D,CAAA,MAAAO,KAAA;IAAAP,CAAA,OAAAU,cAAA;IAAAV,CAAA,OAAAgB,kBAAA;IAAAhB,CAAA,OAAAW,UAAA;IAAAX,CAAA,OAAAS,EAAA;IAAAT,CAAA,OAAA2C,iBAAA;IAAA3C,CAAA,OAAAiB,MAAA;IAAAjB,CAAA,OAAAM,SAAA;IAAAN,CAAA,OAAAkB,oBAAA;IAAAlB,CAAA,OAAAe,WAAA;IAAAf,CAAA,OAAAgD,EAAA;EAAA;IAAAA,EAAA,GAAAhD,CAAA;EAAA;EA9BF,MAAA4D,cAAA,GAAuBZ,EA0CpB;EAAA,IAGC,CAACvC,EAAA,KAAOE,UAAA;IAAA;EAAA;EAAA,IAAAsC,EAAA;EAAA,IAAAjD,CAAA,SAAAc,QAAA,IAAAd,CAAA,SAAAa,CAAA,IAAAb,CAAA,SAAAe,WAAA;IAQGkC,EAAA,GAAAA,CAAA;MAAA,IACHnC,QAAA;QACF/B,KAAA,CAAA8E,IAAA,CAAWhD,CAAA,CAAE;MAAA;QAEbE,WAAA,CAAAjB,UAAY;MAAA;IAAA;IAEhBE,CAAA,OAAAc,QAAA;IAAAd,CAAA,OAAAa,CAAA;IAAAb,CAAA,OAAAe,WAAA;IAAAf,CAAA,OAAAiD,EAAA;EAAA;IAAAA,EAAA,GAAAjD,CAAA;EAAA;EAAA,IAAAyD,EAAA;EAAA,IAAAzD,CAAA,SAAAe,WAAA;IASa0C,EAAA,GAAAA,CAAA;MACP1C,WAAA,CAAAjB,UAAY;IAAA;IACdE,CAAA,OAAAe,WAAA;IAAAf,CAAA,OAAAyD,EAAA;EAAA;IAAAA,EAAA,GAAAzD,CAAA;EAAA;EAAA,IAAA8D,EAAA;EAAA,IAAA9D,CAAA,SAAA4D,cAAA,IAAA5D,CAAA,SAAAoC,OAAA,IAAApC,CAAA,SAAAyC,UAAA,IAAAzC,CAAA,SAAAa,CAAA,IAAAb,CAAA,SAAAuC,QAAA;IAuBSuB,EAAA,SAAAA,CAAA;MAAA,IACHrB,UAAA,KAAeF,QAAA;QACjBxD,KAAA,CAAA2E,KAAA,CAAY7C,CAAA,CAAE;QAAA;MAAA;MAAA,KAGXuB,OAAA;QAAA,MACGwB,cAAA;UAAAV,IAAA,EACET,UAAA;UAAAU,EAAA,EACFZ;QAAA,CACN;MAAA;IAAA;IAEJvC,CAAA,OAAA4D,cAAA;IAAA5D,CAAA,OAAAoC,OAAA;IAAApC,CAAA,OAAAyC,UAAA;IAAAzC,CAAA,OAAAa,CAAA;IAAAb,CAAA,OAAAuC,QAAA;IAAAvC,CAAA,OAAA8D,EAAA;EAAA;IAAAA,EAAA,GAAA9D,CAAA;EAAA;EAAA,IAAA+D,GAAA;EAAA,IAAA/D,CAAA,SAAAgE,MAAA,CAAAC,GAAA;IAWUF,GAAA,GAAAG,cAAA;MAAA,IACJA,cAAA,EAAAxC,KAAA;QACFgB,aAAA,CAAcwB,cAAA,CAAAxC,KAAoB;MAAA;IAAA;IAEtC1B,CAAA,OAAA+D,GAAA;EAAA;IAAAA,GAAA,GAAA/D,CAAA;EAAA;EAAA,IAAAmE,GAAA;EAAA,IAAAnE,CAAA,SAAAgE,MAAA,CAAAC,GAAA;IASUE,GAAA,GAAAC,gBAAA;MAAA,IACJF,gBAAA,EAAAxC,KAAA;QACFc,WAAA,CAAY0B,gBAAA,CAAAxC,KAAoB;MAAA;IAAA;IAEpC1B,CAAA,OAAAmE,GAAA;EAAA;IAAAA,GAAA,GAAAnE,CAAA;EAAA;EAAA,IAAAqE,GAAA;EAAA,IAAArE,CAAA,SAAA2C,iBAAA;IAWU0B,GAAA,GAAAA,CAAA,KAAMzB,oBAAA,EAAsBD,iBAAA;IAAA3C,CAAA,OAAA2C,iBAAA;IAAA3C,CAAA,OAAAqE,GAAA;EAAA;IAAAA,GAAA,GAAArE,CAAA;EAAA;EAAA,OA7F9CsE,KAAA,CAAAzF,KAAA,CAAA0F,QAAA;IAAAC,QAAA,GACEC,IAAA,CAAA7E,SAAA,CAAAF,MAAA;MAAAe,EAAA,EACM,GAAAZ,SAAA,UAAsB;MAAA6E,OAAA,EACjBzB,EAMT;MAAAuB,QAAA,EAEC3D,CAAA,CAAE;IAAA,C,GAELyD,KAAA,CAAA3E,MAAA;MAAAgF,SAAA,EAAA9E,SAAA;MAAA+E,MAAA;MAAAC,MAAA,EAIIJ,IAAA,CAAAhF,YAAA;QAAAqF,OAAA,EACWrB,EAET;QAAAsB,KAAA,EACOlE,CAAA,CAAE;MAAA,C;;iBAKbyD,KAAA,CAAC;QAAAK,SAAA,EAAe,GAAA9E,SAAA,cAA0B;QAAA2E,QAAA,GACxCC,IAAA,CAAC;UAAAD,QAAA,EACE/B,UAAA,IAAcF,QAAA,GACbkC,IAAA,CAAC;YAAAD,QAAA,EACE3D,CAAA,CAAE;cAAAqC,IAAA,EACKf,cAAA,CAAeM,UAAA;cAAAU,EAAA,EACjBhB,cAAA,CAAeI,QAAA;YAAA,CACrB;UAAA,C,IAGF1B,CAAA,CAAE;QAAA,C,GAGN4D,IAAA,CAAA/E,MAAA;UAAAsF,WAAA,EACc;UAAAC,QAAA,EACF,CAACxC,UAAA,KAAeF,QAAA;UAAA2C,YAAA,EACb;UAAAR,OAAA,EACJZ,EAWT;UAAAqB,IAAA,EACK;UAAAX,QAAA,EAEJpC,OAAA,GAAUvB,CAAA,CAAE,qBAAqB,QAAQA,CAAA,CAAE;QAAA,C;UAIhDyD,KAAA,CAAC;QAAAK,SAAA,EAAe,GAAA9E,SAAA,WAAuB;QAAA2E,QAAA,GACrCC,IAAA,CAAAxF,WAAA;UAAAiD,KAAA,EACSrB,CAAA,CAAE;UAAAuE,IAAA,EACH;UAAAC,QAAA,EACItB,GAIV;UAAAuB,OAAA,EACSnE,aAAA;UAAAqC,IAAA,EACJ;UAAA+B,QAAA;UAAA7D,KAAA,EAEEe;QAAA,C,GAETgC,IAAA,CAAAxF,WAAA;UAAAiD,KAAA,EACSrB,CAAA,CAAE;UAAAuE,IAAA,EACJ;UAAAC,QAAA,EACKlB,GAIV;UAAAmB,OAAA,EACS3D,2BAAA;UAAA6B,IAAA,EACJ;UAAA9B,KAAA,EACEa;QAAA,C,GAETkC,IAAA,CAAAzF,aAAA;UAAAwG,OAAA,EACW7C,iBAAA;UAAA8C,KAAA;YAAAL,IAAA,EAED;YAAAlD,KAAA,EACCrB,CAAA,CAAE;UAAA;UAAAwE,QAAA,EAEDhB,GAA4B;UAAAb,IAAA,EAChC;QAAA,C;;;;CAMlB;AA9LwC,SAAAlC,MAAAG,MAAA;EAAA;IAAAS,KAAA,EAmBaT,MAAA,CAAAS,KAAA;IAAAR,KAAA,EAAqBD,MAAA,CAAAjB;EAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","formatAdminURL","React","useCallback","toast","CheckboxField","SelectInput","useFormModified","useConfig","useDocumentInfo","useLocale","useRouteTransition","useServerFunctions","useTranslation","DrawerHeader","Button","Drawer","PopupList","baseClass","drawerSlug","CopyLocaleData","$","config","t0","localization","routes","t1","serverURL","admin","code","id","collectionSlug","globalSlug","i18n","t","modified","toggleModal","copyDataFromLocale","router","startRouteTransition","t2","locales","map","_temp","localeOptions","t3","locale_0","locale","value","localeOptionsWithoutCurrent","filter","t4","code_0","locale_1","find","l","label","getLocaleLabel","copying","setCopying","useState","toLocale","setToLocale","fromLocale","setFromLocale","overwriteExisting","setOverwriteExisting","t5","t6","useEffect","t7","t8","from","to","docID","overrideData","push","adminRoute","path","t9","error","message","copyLocaleData","info","t10","t11","Symbol","for","selectedOption","t12","selectedOption_0","t13","_jsxs","Fragment","children","_jsx","onClick","className","gutter","Header","onClose","title","buttonStyle","disabled","iconPosition","size","name","onChange","options","readOnly","checked","field"],"sources":["../../../src/elements/CopyLocaleData/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { useCallback } from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { SelectInput } from '../../fields/Select/index.js'\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DrawerHeader } from '../BulkUpload/Header/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-locale-data'\n\nconst drawerSlug = 'copy-locale'\nexport const CopyLocaleData: React.FC = () => {\n const {\n config: {\n localization,\n routes: { admin },\n serverURL,\n },\n } = useConfig()\n const { code } = useLocale()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const { i18n, t } = useTranslation()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const { copyDataFromLocale } = useServerFunctions()\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n const localeOptions =\n (localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))) ||\n []\n\n const localeOptionsWithoutCurrent = localeOptions.filter((locale) => locale.value !== code)\n\n const getLocaleLabel = (code: string) => {\n const locale = localization && localization.locales.find((l) => l.code === code)\n return locale && locale.label ? getTranslation(locale.label, i18n) : code\n }\n\n const [copying, setCopying] = React.useState(false)\n const [toLocale, setToLocale] = React.useState<null | string>(null)\n const [fromLocale, setFromLocale] = React.useState<null | string>(code)\n const [overwriteExisting, setOverwriteExisting] = React.useState(false)\n\n React.useEffect(() => {\n if (fromLocale !== code) {\n setFromLocale(code)\n }\n }, [code, fromLocale])\n\n const copyLocaleData = useCallback(\n async ({ from, to }) => {\n setCopying(true)\n\n try {\n await copyDataFromLocale({\n collectionSlug,\n docID: id,\n fromLocale: from,\n globalSlug,\n overrideData: overwriteExisting,\n toLocale: to,\n })\n\n setCopying(false)\n\n startRouteTransition(() =>\n router.push(\n formatAdminURL({\n adminRoute: admin,\n path: `/${collectionSlug ? `collections/${collectionSlug}/${id}` : `globals/${globalSlug}`}`,\n serverURL,\n }) + `?locale=${to}`,\n ),\n )\n\n toggleModal(drawerSlug)\n } catch (error) {\n toast.error(error.message)\n }\n },\n [\n copyDataFromLocale,\n collectionSlug,\n id,\n globalSlug,\n overwriteExisting,\n toggleModal,\n router,\n serverURL,\n admin,\n startRouteTransition,\n ],\n )\n\n if (!id && !globalSlug) {\n return null\n }\n\n return (\n <React.Fragment>\n <PopupList.Button\n id={`${baseClass}__button`}\n onClick={() => {\n if (modified) {\n toast.info(t('general:unsavedChanges'))\n } else {\n toggleModal(drawerSlug)\n }\n }}\n >\n {t('localization:copyToLocale')}\n </PopupList.Button>\n <Drawer\n className={baseClass}\n gutter={false}\n Header={\n <DrawerHeader\n onClose={() => {\n toggleModal(drawerSlug)\n }}\n title={t('localization:copyToLocale')}\n />\n }\n slug={drawerSlug}\n >\n <div className={`${baseClass}__sub-header`}>\n <span>\n {fromLocale && toLocale ? (\n <div>\n {t('localization:copyFromTo', {\n from: getLocaleLabel(fromLocale),\n to: getLocaleLabel(toLocale),\n })}\n </div>\n ) : (\n t('localization:selectLocaleToCopy')\n )}\n </span>\n <Button\n buttonStyle=\"primary\"\n disabled={!fromLocale || !toLocale}\n iconPosition=\"left\"\n onClick={async () => {\n if (fromLocale === toLocale) {\n toast.error(t('localization:cannotCopySameLocale'))\n return\n }\n if (!copying) {\n await copyLocaleData({\n from: fromLocale,\n to: toLocale,\n })\n }\n }}\n size=\"medium\"\n >\n {copying ? t('general:copying') + '...' : t('general:copy')}\n </Button>\n </div>\n\n <div className={`${baseClass}__content`}>\n <SelectInput\n label={t('localization:copyFrom')}\n name={'fromLocale'}\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setFromLocale(selectedOption.value)\n }\n }}\n options={localeOptions}\n path=\"fromLocale\"\n readOnly\n value={fromLocale}\n />\n <SelectInput\n label={t('localization:copyTo')}\n name=\"toLocale\"\n onChange={(selectedOption: { value: string }) => {\n if (selectedOption?.value) {\n setToLocale(selectedOption.value)\n }\n }}\n options={localeOptionsWithoutCurrent}\n path=\"toLocale\"\n value={toLocale}\n />\n <CheckboxField\n checked={overwriteExisting}\n field={{\n name: 'overwriteExisting',\n label: t('general:overwriteExistingData'),\n }}\n onChange={() => setOverwriteExisting(!overwriteExisting)}\n path={'overwriteExisting'}\n />\n </div>\n </Drawer>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ import { Tooltip } from '../Tooltip/index.js';
|
|
|
9
9
|
import './index.scss';
|
|
10
10
|
const baseClass = 'copy-to-clipboard';
|
|
11
11
|
export const CopyToClipboard = t0 => {
|
|
12
|
-
const $ = _c(
|
|
12
|
+
const $ = _c(19);
|
|
13
13
|
const {
|
|
14
14
|
defaultMessage,
|
|
15
15
|
successMessage,
|
|
@@ -51,6 +51,26 @@ export const CopyToClipboard = t0 => {
|
|
|
51
51
|
}
|
|
52
52
|
let t4;
|
|
53
53
|
if ($[4] !== copied || $[5] !== defaultMessage || $[6] !== hovered || $[7] !== successMessage || $[8] !== t || $[9] !== t1) {
|
|
54
|
+
let t5;
|
|
55
|
+
if ($[11] !== copied || $[12] !== successMessage || $[13] !== t) {
|
|
56
|
+
t5 = copied && (successMessage ?? t("general:copied"));
|
|
57
|
+
$[11] = copied;
|
|
58
|
+
$[12] = successMessage;
|
|
59
|
+
$[13] = t;
|
|
60
|
+
$[14] = t5;
|
|
61
|
+
} else {
|
|
62
|
+
t5 = $[14];
|
|
63
|
+
}
|
|
64
|
+
let t6;
|
|
65
|
+
if ($[15] !== copied || $[16] !== defaultMessage || $[17] !== t) {
|
|
66
|
+
t6 = !copied && (defaultMessage ?? t("general:copy"));
|
|
67
|
+
$[15] = copied;
|
|
68
|
+
$[16] = defaultMessage;
|
|
69
|
+
$[17] = t;
|
|
70
|
+
$[18] = t6;
|
|
71
|
+
} else {
|
|
72
|
+
t6 = $[18];
|
|
73
|
+
}
|
|
54
74
|
t4 = _jsxs("button", {
|
|
55
75
|
className: baseClass,
|
|
56
76
|
onClick: t1,
|
|
@@ -60,7 +80,7 @@ export const CopyToClipboard = t0 => {
|
|
|
60
80
|
children: [_jsx(CopyIcon, {}), _jsxs(Tooltip, {
|
|
61
81
|
delay: copied ? 0 : undefined,
|
|
62
82
|
show: hovered || copied,
|
|
63
|
-
children: [
|
|
83
|
+
children: [t5, t6]
|
|
64
84
|
})]
|
|
65
85
|
});
|
|
66
86
|
$[4] = copied;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useState","CopyIcon","useTranslation","Tooltip","baseClass","CopyToClipboard","t0","$","defaultMessage","successMessage","value","copied","setCopied","hovered","setHovered","t","t1","navigator","clipboard","writeText","t2","t3","Symbol","for","t4","_jsxs","className","onClick","onMouseEnter","onMouseLeave","type","children","_jsx","delay","undefined","show"],"sources":["../../../src/elements/CopyToClipboard/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-to-clipboard'\n\nexport type Props = {\n defaultMessage?: string\n successMessage?: string\n value?: string\n}\n\nexport const CopyToClipboard: React.FC<Props> = ({ defaultMessage, successMessage, value }) => {\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n const { t } = useTranslation()\n\n if (value) {\n return (\n <button\n className={baseClass}\n onClick={async () => {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n }}\n onMouseEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onMouseLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n type=\"button\"\n >\n <CopyIcon />\n <Tooltip delay={copied ? 0 : undefined} show={hovered || copied}>\n {copied && (successMessage ?? t('general:copied'))}\n {!copied && (defaultMessage ?? t('general:copy'))}\n </Tooltip>\n </button>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAQlB,OAAO,MAAMC,eAAA,GAAmCC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,cAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAJ,EAAyC;EACxF,OAAAK,MAAA,EAAAC,SAAA,IAA4BZ,QAAA,MAAS;EACrC,OAAAa,OAAA,EAAAC,UAAA,IAA8Bd,QAAA,MAAS;EACvC;IAAAe;EAAA,IAAcb,cAAA;EAAA,IAEVQ,KAAA;IAAA,IAAAM,EAAA;IAAA,IAAAT,CAAA,QAAAG,KAAA;MAIWM,EAAA,SAAAA,CAAA;QAAA,MACDC,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8BT,KAAA;QACpCE,SAAA,KAAU;MAAA;MACZL,CAAA,MAAAG,KAAA;MAAAH,CAAA,MAAAS,EAAA;IAAA;MAAAA,EAAA,GAAAT,CAAA;IAAA;IAAA,IAAAa,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAAd,CAAA,QAAAe,MAAA,CAAAC,GAAA;MACcH,EAAA,GAAAA,CAAA;QACZN,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEES,EAAA,GAAAA,CAAA;QACZP,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZL,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;IAAA;MAAAD,EAAA,GAAAb,CAAA;MAAAc,EAAA,GAAAd,CAAA;IAAA;IAAA,IAAAiB,EAAA;IAAA,IAAAjB,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAM,OAAA,IAAAN,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAQ,CAAA,IAAAR,CAAA,QAAAS,EAAA;
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useState","CopyIcon","useTranslation","Tooltip","baseClass","CopyToClipboard","t0","$","defaultMessage","successMessage","value","copied","setCopied","hovered","setHovered","t","t1","navigator","clipboard","writeText","t2","t3","Symbol","for","t4","t5","t6","_jsxs","className","onClick","onMouseEnter","onMouseLeave","type","children","_jsx","delay","undefined","show"],"sources":["../../../src/elements/CopyToClipboard/index.tsx"],"sourcesContent":["'use client'\nimport React, { useState } from 'react'\n\nimport { CopyIcon } from '../../icons/Copy/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\nimport './index.scss'\n\nconst baseClass = 'copy-to-clipboard'\n\nexport type Props = {\n defaultMessage?: string\n successMessage?: string\n value?: string\n}\n\nexport const CopyToClipboard: React.FC<Props> = ({ defaultMessage, successMessage, value }) => {\n const [copied, setCopied] = useState(false)\n const [hovered, setHovered] = useState(false)\n const { t } = useTranslation()\n\n if (value) {\n return (\n <button\n className={baseClass}\n onClick={async () => {\n await navigator.clipboard.writeText(value)\n setCopied(true)\n }}\n onMouseEnter={() => {\n setHovered(true)\n setCopied(false)\n }}\n onMouseLeave={() => {\n setHovered(false)\n setCopied(false)\n }}\n type=\"button\"\n >\n <CopyIcon />\n <Tooltip delay={copied ? 0 : undefined} show={hovered || copied}>\n {copied && (successMessage ?? t('general:copied'))}\n {!copied && (defaultMessage ?? t('general:copy'))}\n </Tooltip>\n </button>\n )\n }\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAEhC,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AACxB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAQlB,OAAO,MAAMC,eAAA,GAAmCC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU,cAAA;IAAAC,cAAA;IAAAC;EAAA,IAAAJ,EAAyC;EACxF,OAAAK,MAAA,EAAAC,SAAA,IAA4BZ,QAAA,MAAS;EACrC,OAAAa,OAAA,EAAAC,UAAA,IAA8Bd,QAAA,MAAS;EACvC;IAAAe;EAAA,IAAcb,cAAA;EAAA,IAEVQ,KAAA;IAAA,IAAAM,EAAA;IAAA,IAAAT,CAAA,QAAAG,KAAA;MAIWM,EAAA,SAAAA,CAAA;QAAA,MACDC,SAAA,CAAAC,SAAA,CAAAC,SAAA,CAA8BT,KAAA;QACpCE,SAAA,KAAU;MAAA;MACZL,CAAA,MAAAG,KAAA;MAAAH,CAAA,MAAAS,EAAA;IAAA;MAAAA,EAAA,GAAAT,CAAA;IAAA;IAAA,IAAAa,EAAA;IAAA,IAAAC,EAAA;IAAA,IAAAd,CAAA,QAAAe,MAAA,CAAAC,GAAA;MACcH,EAAA,GAAAA,CAAA;QACZN,UAAA,KAAW;QACXF,SAAA,MAAU;MAAA;MAEES,EAAA,GAAAA,CAAA;QACZP,UAAA,MAAW;QACXF,SAAA,MAAU;MAAA;MACZL,CAAA,MAAAa,EAAA;MAAAb,CAAA,MAAAc,EAAA;IAAA;MAAAD,EAAA,GAAAb,CAAA;MAAAc,EAAA,GAAAd,CAAA;IAAA;IAAA,IAAAiB,EAAA;IAAA,IAAAjB,CAAA,QAAAI,MAAA,IAAAJ,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAM,OAAA,IAAAN,CAAA,QAAAE,cAAA,IAAAF,CAAA,QAAAQ,CAAA,IAAAR,CAAA,QAAAS,EAAA;MAAA,IAAAS,EAAA;MAAA,IAAAlB,CAAA,SAAAI,MAAA,IAAAJ,CAAA,SAAAE,cAAA,IAAAF,CAAA,SAAAQ,CAAA;QAKGU,EAAA,GAAAd,MAAA,KAAWF,cAAA,IAAkBM,CAAA,CAAE,iBAAgB;QAAAR,CAAA,OAAAI,MAAA;QAAAJ,CAAA,OAAAE,cAAA;QAAAF,CAAA,OAAAQ,CAAA;QAAAR,CAAA,OAAAkB,EAAA;MAAA;QAAAA,EAAA,GAAAlB,CAAA;MAAA;MAAA,IAAAmB,EAAA;MAAA,IAAAnB,CAAA,SAAAI,MAAA,IAAAJ,CAAA,SAAAC,cAAA,IAAAD,CAAA,SAAAQ,CAAA;QAC/CW,EAAA,IAACf,MAAA,KAAWH,cAAA,IAAkBO,CAAA,CAAE,eAAc;QAAAR,CAAA,OAAAI,MAAA;QAAAJ,CAAA,OAAAC,cAAA;QAAAD,CAAA,OAAAQ,CAAA;QAAAR,CAAA,OAAAmB,EAAA;MAAA;QAAAA,EAAA,GAAAnB,CAAA;MAAA;MAnBnDiB,EAAA,GAAAG,KAAA,CAAC;QAAAC,SAAA,EAAAxB,SAAA;QAAAyB,OAAA,EAEUb,EAGT;QAAAc,YAAA,EACcV,EAGd;QAAAW,YAAA,EACcV,EAGd;QAAAW,IAAA,EACK;QAAAC,QAAA,GAELC,IAAA,CAAAjC,QAAA,IAAC,GACD0B,KAAA,CAAAxB,OAAA;UAAAgC,KAAA,EAAgBxB,MAAA,OAAAyB,SAAa;UAAAC,IAAA,EAAiBxB,OAAA,IAAWF,MAAA;UAAAsB,QAAA,GACtDR,EAA+C,EAC/CC,EAA8C;QAAA,C;;;;;;;;;;;;WAnBnDF,E;;;CA0BN","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ import { Button } from '../Button/index.js';
|
|
|
12
12
|
import './index.scss';
|
|
13
13
|
const baseClass = 'default-list-view-tabs';
|
|
14
14
|
export const DefaultListViewTabs = t0 => {
|
|
15
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(29);
|
|
16
16
|
const {
|
|
17
17
|
collectionConfig,
|
|
18
18
|
config,
|
|
@@ -77,49 +77,45 @@ export const DefaultListViewTabs = t0 => {
|
|
|
77
77
|
const allButtonLabel = `${t("general:all")} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`;
|
|
78
78
|
let t2;
|
|
79
79
|
if ($[6] !== allButtonLabel || $[7] !== collectionConfig.labels?.plural || $[8] !== handleViewChange || $[9] !== i18n || $[10] !== isFoldersEnabled || $[11] !== isTrashEnabled || $[12] !== t || $[13] !== viewType) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
80
|
+
const allButtonId = allButtonLabel.toLowerCase().replace(/\s+/g, "-");
|
|
81
|
+
const t3 = viewType === "list" && `${baseClass}__button--active`;
|
|
82
|
+
let t4;
|
|
83
|
+
if ($[15] !== t3) {
|
|
84
|
+
t4 = [`${baseClass}__button`, t3].filter(Boolean);
|
|
83
85
|
$[15] = t3;
|
|
86
|
+
$[16] = t4;
|
|
84
87
|
} else {
|
|
85
|
-
|
|
88
|
+
t4 = $[16];
|
|
86
89
|
}
|
|
87
|
-
const allButtonId = allButtonLabel.toLowerCase().replace(t3, "-");
|
|
88
|
-
const t4 = viewType === "list" && `${baseClass}__button--active`;
|
|
89
90
|
let t5;
|
|
90
|
-
if ($[
|
|
91
|
-
t5 =
|
|
92
|
-
$[
|
|
93
|
-
$[
|
|
91
|
+
if ($[17] !== handleViewChange) {
|
|
92
|
+
t5 = () => handleViewChange("list");
|
|
93
|
+
$[17] = handleViewChange;
|
|
94
|
+
$[18] = t5;
|
|
94
95
|
} else {
|
|
95
|
-
t5 = $[
|
|
96
|
+
t5 = $[18];
|
|
96
97
|
}
|
|
97
98
|
let t6;
|
|
98
|
-
if ($[
|
|
99
|
-
t6 =
|
|
100
|
-
$[18] = handleViewChange;
|
|
101
|
-
$[19] = t6;
|
|
102
|
-
} else {
|
|
103
|
-
t6 = $[19];
|
|
104
|
-
}
|
|
105
|
-
t2 = _jsxs("div", {
|
|
106
|
-
className: baseClass,
|
|
107
|
-
children: [_jsxs(Button, {
|
|
108
|
-
buttonStyle: "tab",
|
|
109
|
-
className: t5.join(" "),
|
|
110
|
-
disabled: viewType === "list",
|
|
111
|
-
el: "button",
|
|
112
|
-
id: allButtonId,
|
|
113
|
-
onClick: t6,
|
|
114
|
-
children: [t("general:all"), " ", getTranslation(collectionConfig?.labels?.plural, i18n)]
|
|
115
|
-
}), isFoldersEnabled && _jsx(Button, {
|
|
99
|
+
if ($[19] !== handleViewChange || $[20] !== isFoldersEnabled || $[21] !== t || $[22] !== viewType) {
|
|
100
|
+
t6 = isFoldersEnabled && _jsx(Button, {
|
|
116
101
|
buttonStyle: "tab",
|
|
117
102
|
className: [`${baseClass}__button`, viewType === "folders" && `${baseClass}__button--active`].filter(Boolean).join(" "),
|
|
118
103
|
disabled: viewType === "folders",
|
|
119
104
|
el: "button",
|
|
120
105
|
onClick: () => handleViewChange("folders"),
|
|
121
106
|
children: t("folder:byFolder")
|
|
122
|
-
})
|
|
107
|
+
});
|
|
108
|
+
$[19] = handleViewChange;
|
|
109
|
+
$[20] = isFoldersEnabled;
|
|
110
|
+
$[21] = t;
|
|
111
|
+
$[22] = viewType;
|
|
112
|
+
$[23] = t6;
|
|
113
|
+
} else {
|
|
114
|
+
t6 = $[23];
|
|
115
|
+
}
|
|
116
|
+
let t7;
|
|
117
|
+
if ($[24] !== handleViewChange || $[25] !== isTrashEnabled || $[26] !== t || $[27] !== viewType) {
|
|
118
|
+
t7 = isTrashEnabled && _jsx(Button, {
|
|
123
119
|
buttonStyle: "tab",
|
|
124
120
|
className: [`${baseClass}__button`, viewType === "trash" && `${baseClass}__button--active`].filter(Boolean).join(" "),
|
|
125
121
|
disabled: viewType === "trash",
|
|
@@ -127,7 +123,26 @@ export const DefaultListViewTabs = t0 => {
|
|
|
127
123
|
id: "trash-view-pill",
|
|
128
124
|
onClick: () => handleViewChange("trash"),
|
|
129
125
|
children: t("general:trash")
|
|
130
|
-
})
|
|
126
|
+
});
|
|
127
|
+
$[24] = handleViewChange;
|
|
128
|
+
$[25] = isTrashEnabled;
|
|
129
|
+
$[26] = t;
|
|
130
|
+
$[27] = viewType;
|
|
131
|
+
$[28] = t7;
|
|
132
|
+
} else {
|
|
133
|
+
t7 = $[28];
|
|
134
|
+
}
|
|
135
|
+
t2 = _jsxs("div", {
|
|
136
|
+
className: baseClass,
|
|
137
|
+
children: [_jsxs(Button, {
|
|
138
|
+
buttonStyle: "tab",
|
|
139
|
+
className: t4.join(" "),
|
|
140
|
+
disabled: viewType === "list",
|
|
141
|
+
el: "button",
|
|
142
|
+
id: allButtonId,
|
|
143
|
+
onClick: t5,
|
|
144
|
+
children: [t("general:all"), " ", getTranslation(collectionConfig?.labels?.plural, i18n)]
|
|
145
|
+
}), t6, t7]
|
|
131
146
|
});
|
|
132
147
|
$[6] = allButtonLabel;
|
|
133
148
|
$[7] = collectionConfig.labels?.plural;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatAdminURL","React","usePreferences","useTranslation","Button","baseClass","DefaultListViewTabs","t0","$","collectionConfig","config","onChange","viewType","i18n","t","setPreference","router","isTrashEnabled","trash","isFoldersEnabled","folders","t1","slug","newViewType","listViewType","path","bb21","url","adminRoute","routes","admin","serverURL","push","handleViewChange","allButtonLabel","labels","plural","t2","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","useRouter","formatAdminURL","React","usePreferences","useTranslation","Button","baseClass","DefaultListViewTabs","t0","$","collectionConfig","config","onChange","viewType","i18n","t","setPreference","router","isTrashEnabled","trash","isFoldersEnabled","folders","t1","slug","newViewType","listViewType","path","bb21","url","adminRoute","routes","admin","serverURL","push","handleViewChange","allButtonLabel","labels","plural","t2","allButtonId","toLowerCase","replace","t3","t4","filter","Boolean","t5","t6","_jsx","buttonStyle","className","join","disabled","el","onClick","children","t7","id","_jsxs"],"sources":["../../../src/elements/DefaultListViewTabs/index.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, ClientConfig, ViewTypes } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React from 'react'\n\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Button } from '../Button/index.js'\nimport './index.scss'\n\nconst baseClass = 'default-list-view-tabs'\n\ntype DefaultListViewTabsProps = {\n collectionConfig: ClientCollectionConfig\n config: ClientConfig\n onChange?: (viewType: ViewTypes) => void\n viewType?: ViewTypes\n}\n\nexport const DefaultListViewTabs: React.FC<DefaultListViewTabsProps> = ({\n collectionConfig,\n config,\n onChange,\n viewType,\n}) => {\n const { i18n, t } = useTranslation()\n const { setPreference } = usePreferences()\n const router = useRouter()\n const isTrashEnabled = collectionConfig.trash\n const isFoldersEnabled = collectionConfig.folders && config.folders\n\n if (!isTrashEnabled && !isFoldersEnabled) {\n return null\n }\n\n const handleViewChange = async (newViewType: ViewTypes) => {\n if (onChange) {\n onChange(newViewType)\n }\n\n if (newViewType === 'list' || newViewType === 'folders') {\n await setPreference(`collection-${collectionConfig.slug}`, {\n listViewType: newViewType,\n })\n }\n\n let path: `/${string}` = `/collections/${collectionConfig.slug}`\n switch (newViewType) {\n case 'folders':\n if (config.folders) {\n path = `/collections/${collectionConfig.slug}/${config.folders.slug}`\n }\n break\n case 'trash':\n path = `/collections/${collectionConfig.slug}/trash`\n break\n }\n\n const url = formatAdminURL({\n adminRoute: config.routes.admin,\n path,\n serverURL: config.serverURL,\n })\n\n router.push(url)\n }\n\n const allButtonLabel = `${t('general:all')} ${getTranslation(collectionConfig?.labels?.plural, i18n)}`\n const allButtonId = allButtonLabel.toLowerCase().replace(/\\s+/g, '-')\n\n return (\n <div className={baseClass}>\n <Button\n buttonStyle=\"tab\"\n className={[`${baseClass}__button`, viewType === 'list' && `${baseClass}__button--active`]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'list'}\n el=\"button\"\n id={allButtonId}\n onClick={() => handleViewChange('list')}\n >\n {t('general:all')} {getTranslation(collectionConfig?.labels?.plural, i18n)}\n </Button>\n\n {isFoldersEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'folders' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'folders'}\n el=\"button\"\n onClick={() => handleViewChange('folders')}\n >\n {t('folder:byFolder')}\n </Button>\n )}\n\n {isTrashEnabled && (\n <Button\n buttonStyle=\"tab\"\n className={[\n `${baseClass}__button`,\n viewType === 'trash' && `${baseClass}__button--active`,\n ]\n .filter(Boolean)\n .join(' ')}\n disabled={viewType === 'trash'}\n el=\"button\"\n id=\"trash-view-pill\"\n onClick={() => handleViewChange('trash')}\n >\n {t('general:trash')}\n </Button>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ import { ListSelectionButton } from '../ListSelection/index.js';
|
|
|
23
23
|
import { Translation } from '../Translation/index.js';
|
|
24
24
|
import './index.scss';
|
|
25
25
|
export const DeleteMany = props => {
|
|
26
|
-
const $ = _c(
|
|
26
|
+
const $ = _c(24);
|
|
27
27
|
const {
|
|
28
28
|
viewType
|
|
29
29
|
} = props;
|
|
@@ -31,10 +31,18 @@ export const DeleteMany = props => {
|
|
|
31
31
|
collection: t0,
|
|
32
32
|
modalPrefix
|
|
33
33
|
} = props;
|
|
34
|
+
let t1;
|
|
35
|
+
if ($[0] !== t0) {
|
|
36
|
+
t1 = t0 === undefined ? {} : t0;
|
|
37
|
+
$[0] = t0;
|
|
38
|
+
$[1] = t1;
|
|
39
|
+
} else {
|
|
40
|
+
t1 = $[1];
|
|
41
|
+
}
|
|
34
42
|
const {
|
|
35
43
|
slug,
|
|
36
44
|
trash
|
|
37
|
-
} =
|
|
45
|
+
} = t1;
|
|
38
46
|
const {
|
|
39
47
|
permissions
|
|
40
48
|
} = useAuth();
|
|
@@ -52,56 +60,84 @@ export const DeleteMany = props => {
|
|
|
52
60
|
const collectionPermissions = permissions?.collections?.[slug];
|
|
53
61
|
const hasDeletePermission = collectionPermissions?.delete;
|
|
54
62
|
const selectingAll = selectAll === SelectAllStatus.AllAvailable;
|
|
55
|
-
|
|
63
|
+
let t2;
|
|
64
|
+
if ($[2] !== selectedIDs || $[3] !== selectingAll) {
|
|
65
|
+
t2 = selectingAll ? [] : selectedIDs;
|
|
66
|
+
$[2] = selectedIDs;
|
|
67
|
+
$[3] = selectingAll;
|
|
68
|
+
$[4] = t2;
|
|
69
|
+
} else {
|
|
70
|
+
t2 = $[4];
|
|
71
|
+
}
|
|
72
|
+
const ids = t2;
|
|
56
73
|
if (selectAll === SelectAllStatus.None || !hasDeletePermission) {
|
|
57
74
|
return null;
|
|
58
75
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
76
|
+
let t3;
|
|
77
|
+
if ($[5] !== clearRouteCache || $[6] !== count || $[7] !== ids || $[8] !== modalPrefix || $[9] !== router || $[10] !== searchParams || $[11] !== selectAll || $[12] !== selectingAll || $[13] !== slug || $[14] !== toggleAll || $[15] !== trash || $[16] !== viewType) {
|
|
78
|
+
const baseWhere = parseSearchParams(searchParams)?.where;
|
|
79
|
+
const finalWhere = viewType === "trash" ? {
|
|
80
|
+
and: [...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []), {
|
|
81
|
+
deletedAt: {
|
|
82
|
+
exists: true
|
|
83
|
+
}
|
|
84
|
+
}]
|
|
85
|
+
} : baseWhere;
|
|
86
|
+
let t4;
|
|
87
|
+
if ($[18] !== clearRouteCache || $[19] !== router || $[20] !== searchParams || $[21] !== selectAll || $[22] !== toggleAll) {
|
|
88
|
+
t4 = () => {
|
|
89
|
+
toggleAll();
|
|
90
|
+
router.replace(qs.stringify({
|
|
91
|
+
...parseSearchParams(searchParams),
|
|
92
|
+
page: selectAll ? "1" : undefined
|
|
93
|
+
}, {
|
|
94
|
+
addQueryPrefix: true
|
|
95
|
+
}));
|
|
96
|
+
clearRouteCache();
|
|
97
|
+
};
|
|
98
|
+
$[18] = clearRouteCache;
|
|
99
|
+
$[19] = router;
|
|
100
|
+
$[20] = searchParams;
|
|
101
|
+
$[21] = selectAll;
|
|
102
|
+
$[22] = toggleAll;
|
|
103
|
+
$[23] = t4;
|
|
104
|
+
} else {
|
|
105
|
+
t4 = $[23];
|
|
106
|
+
}
|
|
107
|
+
t3 = _jsx(React.Fragment, {
|
|
108
|
+
children: _jsx(DeleteMany_v4, {
|
|
109
|
+
afterDelete: t4,
|
|
110
|
+
modalPrefix,
|
|
111
|
+
search: parseSearchParams(searchParams)?.search,
|
|
112
|
+
selections: {
|
|
113
|
+
[slug]: {
|
|
114
|
+
all: selectAll === SelectAllStatus.AllAvailable,
|
|
115
|
+
ids,
|
|
116
|
+
totalCount: selectingAll ? count : ids.length
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
trash,
|
|
120
|
+
viewType,
|
|
121
|
+
where: finalWhere
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
$[5] = clearRouteCache;
|
|
125
|
+
$[6] = count;
|
|
126
|
+
$[7] = ids;
|
|
127
|
+
$[8] = modalPrefix;
|
|
128
|
+
$[9] = router;
|
|
129
|
+
$[10] = searchParams;
|
|
130
|
+
$[11] = selectAll;
|
|
131
|
+
$[12] = selectingAll;
|
|
132
|
+
$[13] = slug;
|
|
133
|
+
$[14] = toggleAll;
|
|
134
|
+
$[15] = trash;
|
|
135
|
+
$[16] = viewType;
|
|
136
|
+
$[17] = t3;
|
|
85
137
|
} else {
|
|
86
|
-
|
|
138
|
+
t3 = $[17];
|
|
87
139
|
}
|
|
88
|
-
return
|
|
89
|
-
children: _jsx(DeleteMany_v4, {
|
|
90
|
-
afterDelete: t1,
|
|
91
|
-
modalPrefix,
|
|
92
|
-
search: parseSearchParams(searchParams)?.search,
|
|
93
|
-
selections: {
|
|
94
|
-
[slug]: {
|
|
95
|
-
all: selectAll === SelectAllStatus.AllAvailable,
|
|
96
|
-
ids,
|
|
97
|
-
totalCount: selectingAll ? count : ids.length
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
trash,
|
|
101
|
-
viewType,
|
|
102
|
-
where: finalWhere
|
|
103
|
-
})
|
|
104
|
-
});
|
|
140
|
+
return t3;
|
|
105
141
|
};
|
|
106
142
|
/**
|
|
107
143
|
* Handles polymorphic document delete operations.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","slug","trash","undefined","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","ids","None","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t1","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","limit","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,QAAQ,QAAQ;AACzB,SAASC,cAAc,QAAQ;AAC/B,SAASC,SAAS,EAAEC,eAAe,QAAQ;AAC3C,SAASC,uBAAuB,QAAQ;AACxC,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,MAAW;AAClB,SAASC,KAAK,QAAQ;AAEtB,SAASC,aAAa,QAAQ;AAC9B,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,EAAEC,YAAY,QAAQ;AAC9C,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,iBAAiB,QAAQ;AAClC,SAASC,iBAAiB,QAAQ;AAClC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,WAAW,QAAQ;AAC5B,OAAO;AAeP,OAAO,MAAMC,UAAA,GAA8BC,KAAA;EAAA,MAAAC,CAAA,GAAAxB,EAAA;EACzC;IAAAyB;EAAA,IAAqBF,KAAA;EACrB;IAAAG,UAAA,EAAAC,EAAA;IAAAC;EAAA,IAA0DL,KAAA;EAAtC;IAAAM,IAAA;IAAAC;EAAA,IAAAH,EAAoB,KAAAI,SAAA,QAApBJ,EAAoB;EAExC;IAAAK;EAAA,IAAwBtB,OAAA;EACxB;IAAAuB,KAAA;IAAAC,SAAA;IAAAC,WAAA;IAAAC;EAAA,IAAqDrB,YAAA;EACrD,MAAAsB,MAAA,GAAelC,SAAA;EACf,MAAAmC,YAAA,GAAqBlC,eAAA;EACrB;IAAAmC;EAAA,IAA4B1B,aAAA;EAE5B,MAAA2B,qBAAA,GAA8BR,WAAA,EAAAS,WAAA,GAA2BZ,IAAA;EACzD,MAAAa,mBAAA,GAA4BF,qBAAA,EAAAG,MAAA;EAE5B,MAAAC,YAAA,GAAqBV,SAAA,KAAApB,eAAA,CAAA+B,YAA0C;EAE/D,MAAAC,GAAA,GAAYF,YAAA,QAAoBT,WAAA;EAAA,IAE5BD,SAAA,KAAApB,eAAA,CAAAiC,IAAkC,KAAKL,mBAAA;IAAA;EAAA;EAI3C,MAAAM,SAAA,GAAkB9B,iBAAA,CAAkBoB,YAAA,GAAAW,KAAA;EAEpC,MAAAC,UAAA,GACEzB,QAAA,KAAa;IAAA0B,GAAA,OAGDC,KAAA,CAAAC,OAAA,CAAcL,SAAA,EAAAG,GAAW,IAAOH,SAAA,CAAAG,GAAA,GAAgBH,SAAA,IAAaA,SAAA,MAAe;MAAAM,SAAA;QAAAC,MAAA;MAAA;IAAA;EAAA,IAIpFP,SAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAhC,CAAA,QAAAe,eAAA,IAAAf,CAAA,QAAAa,MAAA,IAAAb,CAAA,QAAAc,YAAA,IAAAd,CAAA,QAAAU,SAAA,IAAAV,CAAA,QAAAY,SAAA;IAKaoB,EAAA,GAAAA,CAAA;MACXpB,SAAA;MAEAC,MAAA,CAAAoB,OAAA,CACEnD,EAAA,CAAAoD,SAAA;QAAA,GAEOxC,iBAAA,CAAkBoB,YAAA,CAAa;QAAAqB,IAAA,EAC5BzB,SAAA,GAAY,MAAAH;MAAM;QAAA6B,cAAA;MAAA,CAEH;MAI3BrB,eAAA;IAAA;IACFf,CAAA,MAAAe,eAAA;IAAAf,CAAA,MAAAa,MAAA;IAAAb,CAAA,MAAAc,YAAA;IAAAd,CAAA,MAAAU,SAAA;IAAAV,CAAA,MAAAY,SAAA;IAAAZ,CAAA,MAAAgC,EAAA;EAAA;IAAAA,EAAA,GAAAhC,CAAA;EAAA;EAAA,OAhBJqC,IAAA,CAAAtD,KAAA,CAAAuD,QAAA;IAAAC,QAAA,EACEF,IAAA,CAAAG,aAAA;MAAAC,WAAA,EACeT,EAcb;MAAA5B,WAAA;MAAAsC,MAAA,EAEQhD,iBAAA,CAAkBoB,YAAA,GAAA4B,MAAA;MAAAC,UAAA;QAAA,CAEvBtC,IAAA;UAAAuC,GAAA,EACMlC,SAAA,KAAApB,eAAA,CAAA+B,YAA0C;UAAAC,GAAA;UAAAuB,UAAA,EAEnCzB,YAAA,GAAeX,KAAA,GAAQa,GAAA,CAAAwB;QAAU;MAAA;MAAAxC,KAAA;MAAAL,QAAA;MAAAwB,KAAA,EAK1CC;IAAA,C;;CAIf;AAmDA;;;;;AAKA,OAAO,SAASc,cAAc;EAC5BC,WAAW;EACXrC,WAAW;EACXsC,MAAM;EACNC,UAAU;EACVrC,KAAK;EACLL,QAAQ;EACRwB;AAAK,CACc;EACnB,MAAM;IAAEsB;EAAC,CAAE,GAAGvD,cAAA;EAEd,MAAM;IACJwD,MAAA,EAAQ;MACN/B,WAAW;MACXgC,MAAA,EAAQ;QAAEC;MAAG,CAAE;MACfC;IAAS;EACV,CACF,GAAGhE,SAAA;EAEJ,MAAM;IAAEiE,IAAA,EAAMC;EAAM,CAAE,GAAGjE,SAAA;EACzB,MAAM;IAAEkE;EAAI,CAAE,GAAG9D,cAAA;EACjB,MAAM;IAAE+D;EAAS,CAAE,GAAG9E,QAAA;EAEtB,MAAM,CAAC+E,iBAAA,EAAmBC,oBAAA,CAAqB,GAAG1E,KAAA,CAAM2E,QAAQ,CAAC;EACjE,MAAMC,2BAAA,GAA8B,GAAGvD,WAAA,GAAc,GAAGA,WAAA,GAAc,GAAG,4BAA4B;EAErG,MAAMwD,YAAA,GAAe7E,KAAA,CAAM8E,WAAW,CAAC;IACrC,MAAMC,qBAAA,GAAwBC,MAAA,CAAOC,IAAI,CAACrB,UAAA,EAAYG,MAAM,KAAK;IACjE,MAAMmB,MAAA,GAA4B,CAAC;IAEnC,KAAK,MAAM,CAACC,UAAA,EAAY;MAAEtB,GAAG;MAAEtB,GAAA,GAAM;IAAE,CAAE,CAAC,IAAIyC,MAAA,CAAOI,OAAO,CAACxB,UAAA,GAAa;MACxE,MAAMyB,gBAAA,GAAmBnD,WAAA,CAAYoD,IAAI,CAAC,CAAC;QAAEhE;MAAI,CAAE,KAAKA,IAAA,KAAS6D,UAAA;MAEjE,IAAIE,gBAAA,EAAkB;QACpB,IAAIE,eAAA;QAEJ,IAAI1B,GAAA,EAAK;UACP;UACA,IAAIkB,qBAAA,IAAyBrC,KAAA,EAAO;YAClC6C,eAAA,GACErE,QAAA,KAAa,UACT;cACE0B,GAAA,EAAK,C,IACCC,KAAA,CAAMC,OAAO,CAACJ,KAAA,CAAME,GAAG,IAAIF,KAAA,CAAME,GAAG,GAAG,CAACF,KAAA,CAAM,GAClD;gBAAEK,SAAA,EAAW;kBAAEC,MAAA,EAAQ;gBAAK;cAAE;YAElC,IACAN,KAAA;UACR,OAAO;YACL6C,eAAA,GACErE,QAAA,KAAa,UACT;cACE0B,GAAA,EAAK,CAAC;gBAAE4C,EAAA,EAAI;kBAAEC,UAAA,EAAY;gBAAG;cAAE,GAAG;gBAAE1C,SAAA,EAAW;kBAAEC,MAAA,EAAQ;gBAAK;cAAE;YAClE,IACA;cACEwC,EAAA,EAAI;gBAAEC,UAAA,EAAY;cAAG;YACvB;UACR;QACF,OAAO;UACL;UACAF,eAAA,GAAkB;YAChB3C,GAAA,EAAK,CACH;cAAE4C,EAAA,EAAI;gBAAEE,EAAA,EAAInD;cAAI;YAAE,G,IACdrB,QAAA,KAAa,UAAU,CAAC;cAAE6B,SAAA,EAAW;gBAAEC,MAAA,EAAQ;cAAK;YAAE,EAAE,GAAG,EAAE;UAErE;QACF;QAEA,MAAM2C,GAAA,GAAM,GAAGvB,SAAA,GAAYD,GAAA,IAAOgB,UAAA,GAAapF,EAAA,CAAGoD,SAAS,CACzD;UACEyC,KAAA,EAAO;UACPtB,MAAA;UACA5B,KAAA,EAAO5C,uBAAA,CAAwB;YAC7BuF,gBAAA;YACA1B,MAAA;YACAjB,KAAA,EAAO6C;UACT;UACA,IAAIrE,QAAA,KAAa,UAAU;YAAEK,KAAA,EAAO;UAAK,IAAI,CAAC,CAAC;QACjD,GACA;UAAE8B,cAAA,EAAgB;QAAK,IACtB;QAEH,MAAMwC,kBAAA,GACJ3E,QAAA,KAAa,WAAWuD,iBAAA,IAAqB,CAACY,gBAAA,CAAiB9D,KAAK,GAChE,MAAMb,QAAA,CAAS0B,MAAM,CAACuD,GAAA,EAAK;UACzBG,OAAA,EAAS;YACP,mBAAmBvB,IAAA,CAAKwB,QAAQ;YAChC,gBAAgB;UAClB;QACF,KACA,MAAMrF,QAAA,CAASsF,KAAK,CAACL,GAAA,EAAK;UACxBM,IAAA,EAAMC,IAAA,CAAK/C,SAAS,CAAC;YACnBJ,SAAA,EAAW,IAAIoD,IAAA,GAAOC,WAAW;UACnC;UACAN,OAAA,EAAS;YACP,mBAAmBvB,IAAA,CAAKwB,QAAQ;YAChC,gBAAgB;UAClB;QACF;QAEN,IAAI;UACF,MAAM;YAAEM,MAAM;YAAEC;UAAQ,CAAE,GAAGjB,gBAAA,CAAiBkB,MAAM;UACpD,MAAMC,IAAA,GAAO,MAAMX,kBAAA,CAAmBW,IAAI;UAE1C,MAAMC,WAAA,GAAcD,IAAA,EAAME,IAAA,CAAK3C,MAAA,IAAU;UACzC,MAAM4C,YAAA,GAAeF,WAAA,GAAc,IAAIJ,MAAA,GAASC,QAAA;UAEhD,IAAIT,kBAAA,CAAmBe,MAAM,GAAG,OAAOH,WAAA,GAAc,GAAG;YACtD,MAAMI,UAAA,GAAaxB,gBAAA,CAAiB9D,KAAK,IAAI,CAACkD,iBAAA,IAAqBvD,QAAA,KAAa;YAEhF,IAAI4F,UAAA;YAKJ,IAAID,UAAA,EAAY;cACdC,UAAA,GAAa;YACf,OAAO,IAAI5F,QAAA,KAAa,WAAWuD,iBAAA,EAAmB;cACpDqC,UAAA,GAAa;YACf,OAAO;cACLA,UAAA,GAAa;YACf;YAEA7G,KAAA,CAAM8G,OAAO,CACX/C,CAAA,CAAE8C,UAAA,EAAY;cACZpF,KAAA,EAAO+E,WAAA;cACPO,KAAA,EAAOrH,cAAA,CAAegH,YAAA,EAAcpC,IAAA;YACtC;UAEJ;UAEA,IAAIiC,IAAA,EAAMS,MAAA,CAAOlD,MAAA,GAAS,GAAG;YAC3B9D,KAAA,CAAMiH,KAAK,CAACV,IAAA,CAAKW,OAAO,EAAE;cACxBC,WAAA,EAAaZ,IAAA,CAAKS,MAAM,CAACI,GAAG,CAAEH,KAAA,IAAUA,KAAA,CAAMC,OAAO,EAAEG,IAAI,CAAC;YAC9D;UACF;UAEApC,MAAM,CAACC,UAAA,CAAW,GAAG;YACnBoC,YAAA,EAAcd,WAAA;YACdQ,MAAA,EAAQT,IAAA,EAAMS,MAAA,IAAU;YACxB1E,GAAA,EAAKiE,IAAA,EAAME,IAAA,CAAKW,GAAA,CAAKG,GAAA,IAAQA,GAAA,CAAIhC,EAAE,KAAK,EAAE;YAC1C1B,UAAA,EAAY0C,IAAA,CAAKiB;UACnB;UAEA,IAAI5B,kBAAA,CAAmBe,MAAM,GAAG,OAAOJ,IAAA,EAAMS,MAAA,CAAOlD,MAAA,KAAW,GAAG;YAChE9D,KAAA,CAAMiH,KAAK,CAAClD,CAAA,CAAE;YACdkB,MAAM,CAACC,UAAA,CAAW,CAAC8B,MAAM,GAAG,CAACjD,CAAA,CAAE,iBAAiB;UAClD;UAEA;QACF,EAAE,OAAO0D,IAAA,EAAM;UACbzH,KAAA,CAAMiH,KAAK,CAAClD,CAAA,CAAE;UACdkB,MAAM,CAACC,UAAA,CAAW,GAAG;YACnBoC,YAAA,EAAc;YACdN,MAAA,EAAQ,CAACS,IAAA,CAAK;YACdnF,GAAA,EAAK,EAAE;YACPuB,UAAA,EAAY;UACd;UACA;QACF;MACF;IACF;IAEA,IAAI,OAAOJ,WAAA,KAAgB,YAAY;MACrCA,WAAA,CAAYwB,MAAA;IACd;EACF,GAAG,CACDtB,UAAA,EACAF,WAAA,EACAxB,WAAA,EACAuC,iBAAA,EACAH,MAAA,EACAX,MAAA,EACAS,SAAA,EACAD,GAAA,EACAI,IAAA,EACArD,QAAA,EACAwB,KAAA,EACAsB,CAAA,CACD;EAED,MAAM;IAAEgD,KAAA,EAAOW,WAAW;IAAEC,UAAU,EAAVA;EAAU,CAAE,GAAG5C,MAAA,CAAOI,OAAO,CAACxB,UAAA,EAAYiE,MAAM,CAC1E,CAACC,GAAA,EAAK,CAACC,GAAA,EAAKC,KAAA,CAAM,EAAEC,KAAA,EAAOC,KAAA;IACzB,MAAM7C,kBAAA,GAAmBnD,WAAA,CAAYoD,IAAI,CAAC,CAAC;MAAEhE,IAAI,EAAJA;IAAI,CAAE,KAAKA,MAAA,KAASyG,GAAA;IACjE,IAAI1C,kBAAA,EAAkB;MACpB,MAAMuC,UAAA,GAAaE,GAAA,CAAIF,UAAU,KAAKpG,SAAA,GAAYwG,KAAA,CAAMlE,UAAU,GAAGgE,GAAA,CAAIF,UAAU;MACnF,MAAMO,eAAA,GAAkB,GAAGL,GAAA,CAAIF,UAAU,KAAKpG,SAAA,GAAY,GAAGwG,KAAA,CAAMlE,UAAU,GAAG,GAAG,KAAKnE,cAAA,CACtFqI,KAAA,CAAMlE,UAAU,GAAG,IAAIuB,kBAAA,CAAiBkB,MAAM,CAACF,MAAM,GAAGhB,kBAAA,CAAiBkB,MAAM,CAACD,QAAQ,EACxF/B,IAAA,GACC;MAEH,IAAI6D,QAAA;MAEJ,IAAIH,KAAA,KAAUC,KAAA,CAAMnE,MAAM,GAAG,KAAKkE,KAAA,KAAU,GAAG;QAC7CG,QAAA,GAAW,GAAGN,GAAA,CAAId,KAAK,QAAQmB,eAAA,EAAiB;MAClD,OAAO,IAAIF,KAAA,GAAQ,GAAG;QACpBG,QAAA,GAAW,GAAGN,GAAA,CAAId,KAAK,KAAKmB,eAAA,EAAiB;MAC/C,OAAO;QACLC,QAAA,GAAWD,eAAA;MACb;MAEA,OAAO;QACLnB,KAAA,EAAOoB,QAAA;QACPR;MACF;IACF;IACA,OAAOE,GAAA;EACT,GACA;IACEd,KAAA,EAAO;IACPY,UAAA,EAAYpG;EACd;EAGF,oBACE6G,KAAA,CAACrI,KAAA,CAAMuD,QAAQ;4BACbD,IAAA,CAACzC,mBAAA;MACC,cAAYmD,CAAA,CAAE;MACdsE,SAAA,EAAU;MACVC,OAAA,EAASA,CAAA;QACP/D,SAAA,CAAUI,2BAAA;MACZ;gBAECZ,CAAA,CAAE;qBAELV,IAAA,CAAC1C,iBAAA;MACCqF,IAAA,eACEoC,KAAA,CAACrI,KAAA,CAAMuD,QAAQ;gCACbD,IAAA,CAAC;oBACE/B,KAAA,GACCL,QAAA,KAAa,uBACXoC,IAAA,CAACxC,WAAA;YACC0H,QAAA,EAAU;cACR,KAAKC,CAAC;gBAAEjF;cAAQ,CAAE,kBAAKF,IAAA,CAAC;0BAAQE;;cAChC,KAAKkF,CAAC;gBAAElF,QAAQ,EAARA;cAAQ,CAAE,kBAAKF,IAAA,CAAC;0BAAQE;;YAClC;YACAmF,OAAA,EAAQ;YACR3E,CAAA,EAAGA,CAAA;YACH4E,SAAA,EAAW;cACTlH,KAAA,EAAOkG,YAAA,IAAc;cACrBZ,KAAA,EAAOW;YACT;eAGF3D,CAAA,CAAE,6BAA6B;YAAEtC,KAAA,EAAOkG,YAAA;YAAYZ,KAAA,EAAOW;UAAY,KAGzE3D,CAAA,CAAE,8BAA8B;YAAEtC,KAAA,EAAOkG,YAAA;YAAYZ,KAAA,EAAOW;UAAY;YAG3EpG,KAAA,IAASL,QAAA,KAAa,wBACrBoC,IAAA,CAAC;UAAIgF,SAAA,EAAU;oBACb,aAAAhF,IAAA,CAACpD,aAAA;YACC2I,OAAA,EAASpE,iBAAA;YACTe,EAAA,EAAG;YACHwB,KAAA,EAAOhD,CAAA,CAAE;YACT8E,IAAA,EAAK;YACLC,QAAA,EAAWC,CAAA,IAAMtE,oBAAA,CAAqBsE,CAAA,CAAEC,MAAM,CAACJ,OAAO;;;;MAMhEK,eAAA,EAAiBlF,CAAA,CAAE;MACnBmF,OAAA,EAASnF,CAAA,CAAE;MACXoF,SAAA,EAAWxE,2BAAA;MACXyE,SAAA,EAAWxE;;;AAInB","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","getTranslation","useRouter","useSearchParams","mergeListSearchAndWhere","qs","React","toast","CheckboxInput","useAuth","useConfig","useLocale","useRouteCache","SelectAllStatus","useSelection","useTranslation","requests","parseSearchParams","ConfirmationModal","ListSelectionButton","Translation","DeleteMany","props","$","viewType","collection","t0","modalPrefix","t1","undefined","slug","trash","permissions","count","selectAll","selectedIDs","toggleAll","router","searchParams","clearRouteCache","collectionPermissions","collections","hasDeletePermission","delete","selectingAll","AllAvailable","t2","ids","None","t3","baseWhere","where","finalWhere","and","Array","isArray","deletedAt","exists","t4","replace","stringify","page","addQueryPrefix","_jsx","Fragment","children","DeleteMany_v4","afterDelete","search","selections","all","totalCount","length","t","config","routes","api","serverURL","code","locale","i18n","openModal","deletePermanently","setDeletePermanently","useState","confirmManyDeleteDrawerSlug","handleDelete","useCallback","deletingOneCollection","Object","keys","result","relationTo","entries","collectionConfig","find","whereConstraint","id","not_equals","in","url","limit","deleteManyResponse","headers","language","patch","body","JSON","Date","toISOString","plural","singular","labels","json","deletedDocs","docs","successLabel","status","wasTrashed","successKey","success","label","errors","error","message","description","map","join","deletedCount","doc","totalDocs","_err","labelString","labelCount","reduce","acc","key","value","index","array","collectionLabel","newLabel","_jsxs","className","onClick","elements","0","1","i18nKey","variables","checked","name","onToggle","e","target","confirmingLabel","heading","modalSlug","onConfirm"],"sources":["../../../src/elements/DeleteMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ViewTypes, Where } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { mergeListSearchAndWhere } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React from 'react'\nimport { toast } from 'sonner'\n\nimport { CheckboxInput } from '../../fields/Checkbox/Input.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { parseSearchParams } from '../../utilities/parseSearchParams.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { ListSelectionButton } from '../ListSelection/index.js'\nimport { Translation } from '../Translation/index.js'\nimport './index.scss'\n\nexport type Props = {\n collection: ClientCollectionConfig\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * When multiple PublishMany components are rendered on the page, this will differentiate them.\n */\n title?: string\n viewType?: ViewTypes\n}\n\nexport const DeleteMany: React.FC<Props> = (props) => {\n const { viewType } = props\n const { collection: { slug, trash } = {}, modalPrefix } = props\n\n const { permissions } = useAuth()\n const { count, selectAll, selectedIDs, toggleAll } = useSelection()\n const router = useRouter()\n const searchParams = useSearchParams()\n const { clearRouteCache } = useRouteCache()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasDeletePermission = collectionPermissions?.delete\n\n const selectingAll = selectAll === SelectAllStatus.AllAvailable\n\n const ids = selectingAll ? [] : selectedIDs\n\n if (selectAll === SelectAllStatus.None || !hasDeletePermission) {\n return null\n }\n\n const baseWhere = parseSearchParams(searchParams)?.where as Where\n\n const finalWhere =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(baseWhere?.and) ? baseWhere.and : baseWhere ? [baseWhere] : []),\n { deletedAt: { exists: true } },\n ],\n }\n : baseWhere\n\n return (\n <React.Fragment>\n <DeleteMany_v4\n afterDelete={() => {\n toggleAll()\n\n router.replace(\n qs.stringify(\n {\n ...parseSearchParams(searchParams),\n page: selectAll ? '1' : undefined,\n },\n { addQueryPrefix: true },\n ),\n )\n\n clearRouteCache()\n }}\n modalPrefix={modalPrefix}\n search={parseSearchParams(searchParams)?.search as string}\n selections={{\n [slug]: {\n all: selectAll === SelectAllStatus.AllAvailable,\n ids,\n totalCount: selectingAll ? count : ids.length,\n },\n }}\n trash={trash}\n viewType={viewType}\n where={finalWhere}\n />\n </React.Fragment>\n )\n}\n\ntype AfterDeleteResult = {\n [relationTo: string]: {\n deletedCount: number\n errors: unknown[]\n ids: (number | string)[]\n totalCount: number\n }\n}\ntype DeleteMany_v4Props = {\n /**\n * A callback function to be called after the delete request is completed.\n */\n afterDelete?: (result: AfterDeleteResult) => void\n /**\n * When multiple DeleteMany components are rendered on the page, this will differentiate them.\n */\n modalPrefix?: string\n /**\n * Optionally pass a search string to filter the documents to be deleted.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * search string that may not be stored in the URL.\n */\n search?: string\n /**\n * An object containing the relationTo as the key and an object with the following properties:\n * - all: boolean\n * - totalCount: number\n * - ids: (string | number)[]\n */\n selections: {\n [relationTo: string]: {\n all?: boolean\n ids?: (number | string)[]\n totalCount?: number\n }\n }\n trash?: boolean\n viewType?: ViewTypes\n /**\n * Optionally pass a where clause to filter the documents to be deleted.\n * This will be ignored if multiple relations are selected.\n *\n * This is intentionally passed as a prop so modals could pass in their own\n * where clause that may not be stored in the URL.\n */\n where?: Where\n}\n\n/**\n * Handles polymorphic document delete operations.\n *\n * If you are deleting monomorphic documents, shape your `selections` to match the polymorphic structure.\n */\nexport function DeleteMany_v4({\n afterDelete,\n modalPrefix,\n search,\n selections,\n trash,\n viewType,\n where,\n}: DeleteMany_v4Props) {\n const { t } = useTranslation()\n\n const {\n config: {\n collections,\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { code: locale } = useLocale()\n const { i18n } = useTranslation()\n const { openModal } = useModal()\n\n const [deletePermanently, setDeletePermanently] = React.useState(false)\n const confirmManyDeleteDrawerSlug = `${modalPrefix ? `${modalPrefix}-` : ''}confirm-delete-many-docs`\n\n const handleDelete = React.useCallback(async () => {\n const deletingOneCollection = Object.keys(selections).length === 1\n const result: AfterDeleteResult = {}\n\n for (const [relationTo, { all, ids = [] }] of Object.entries(selections)) {\n const collectionConfig = collections.find(({ slug }) => slug === relationTo)\n\n if (collectionConfig) {\n let whereConstraint: Where\n\n if (all) {\n // selecting all documents with optional where filter\n if (deletingOneCollection && where) {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [\n ...(Array.isArray(where.and) ? where.and : [where]),\n { deletedAt: { exists: true } },\n ],\n }\n : where\n } else {\n whereConstraint =\n viewType === 'trash'\n ? {\n and: [{ id: { not_equals: '' } }, { deletedAt: { exists: true } }],\n }\n : {\n id: { not_equals: '' },\n }\n }\n } else {\n // selecting specific documents\n whereConstraint = {\n and: [\n { id: { in: ids } },\n ...(viewType === 'trash' ? [{ deletedAt: { exists: true } }] : []),\n ],\n }\n }\n\n const url = `${serverURL}${api}/${relationTo}${qs.stringify(\n {\n limit: 0,\n locale,\n where: mergeListSearchAndWhere({\n collectionConfig,\n search,\n where: whereConstraint,\n }),\n ...(viewType === 'trash' ? { trash: true } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n const deleteManyResponse =\n viewType === 'trash' || deletePermanently || !collectionConfig.trash\n ? await requests.delete(url, {\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n : await requests.patch(url, {\n body: JSON.stringify({\n deletedAt: new Date().toISOString(),\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n })\n\n try {\n const { plural, singular } = collectionConfig.labels\n const json = await deleteManyResponse.json()\n\n const deletedDocs = json?.docs.length || 0\n const successLabel = deletedDocs > 1 ? plural : singular\n\n if (deleteManyResponse.status < 400 || deletedDocs > 0) {\n const wasTrashed = collectionConfig.trash && !deletePermanently && viewType !== 'trash'\n\n let successKey:\n | 'general:deletedCountSuccessfully'\n | 'general:permanentlyDeletedCountSuccessfully'\n | 'general:trashedCountSuccessfully'\n\n if (wasTrashed) {\n successKey = 'general:trashedCountSuccessfully'\n } else if (viewType === 'trash' || deletePermanently) {\n successKey = 'general:permanentlyDeletedCountSuccessfully'\n } else {\n successKey = 'general:deletedCountSuccessfully'\n }\n\n toast.success(\n t(successKey, {\n count: deletedDocs,\n label: getTranslation(successLabel, i18n),\n }),\n )\n }\n\n if (json?.errors.length > 0) {\n toast.error(json.message, {\n description: json.errors.map((error) => error.message).join('\\n'),\n })\n }\n\n result[relationTo] = {\n deletedCount: deletedDocs,\n errors: json?.errors || null,\n ids: json?.docs.map((doc) => doc.id) || [],\n totalCount: json.totalDocs,\n }\n\n if (deleteManyResponse.status > 400 && json?.errors.length === 0) {\n toast.error(t('error:unknown'))\n result[relationTo].errors = [t('error:unknown')]\n }\n\n continue\n } catch (_err) {\n toast.error(t('error:unknown'))\n result[relationTo] = {\n deletedCount: 0,\n errors: [_err],\n ids: [],\n totalCount: 0,\n }\n continue\n }\n }\n }\n\n if (typeof afterDelete === 'function') {\n afterDelete(result)\n }\n }, [\n selections,\n afterDelete,\n collections,\n deletePermanently,\n locale,\n search,\n serverURL,\n api,\n i18n,\n viewType,\n where,\n t,\n ])\n\n const { label: labelString, labelCount } = Object.entries(selections).reduce(\n (acc, [key, value], index, array) => {\n const collectionConfig = collections.find(({ slug }) => slug === key)\n if (collectionConfig) {\n const labelCount = acc.labelCount === undefined ? value.totalCount : acc.labelCount\n const collectionLabel = `${acc.labelCount !== undefined ? `${value.totalCount} ` : ''}${getTranslation(\n value.totalCount > 1 ? collectionConfig.labels.plural : collectionConfig.labels.singular,\n i18n,\n )}`\n\n let newLabel\n\n if (index === array.length - 1 && index !== 0) {\n newLabel = `${acc.label} and ${collectionLabel}`\n } else if (index > 0) {\n newLabel = `${acc.label}, ${collectionLabel}`\n } else {\n newLabel = collectionLabel\n }\n\n return {\n label: newLabel,\n labelCount,\n }\n }\n return acc\n },\n {\n label: '',\n labelCount: undefined,\n },\n )\n\n return (\n <React.Fragment>\n <ListSelectionButton\n aria-label={t('general:delete')}\n className=\"delete-documents__toggle\"\n onClick={() => {\n openModal(confirmManyDeleteDrawerSlug)\n }}\n >\n {t('general:delete')}\n </ListSelectionButton>\n <ConfirmationModal\n body={\n <React.Fragment>\n <p>\n {trash ? (\n viewType === 'trash' ? (\n <Translation\n elements={{\n '0': ({ children }) => <strong>{children}</strong>,\n '1': ({ children }) => <strong>{children}</strong>,\n }}\n i18nKey=\"general:aboutToPermanentlyDeleteTrash\"\n t={t}\n variables={{\n count: labelCount ?? 0,\n label: labelString,\n }}\n />\n ) : (\n t('general:aboutToTrashCount', { count: labelCount, label: labelString })\n )\n ) : (\n t('general:aboutToDeleteCount', { count: labelCount, label: labelString })\n )}\n </p>\n {trash && viewType !== 'trash' && (\n <div className=\"delete-documents__checkbox\">\n <CheckboxInput\n checked={deletePermanently}\n id=\"delete-forever\"\n label={t('general:deletePermanently')}\n name=\"delete-forever\"\n onToggle={(e) => setDeletePermanently(e.target.checked)}\n />\n </div>\n )}\n </React.Fragment>\n }\n confirmingLabel={t('general:deleting')}\n heading={t('general:confirmDeletion')}\n modalSlug={confirmManyDeleteDrawerSlug}\n onConfirm={handleDelete}\n />\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|