{"version":3,"file":"index.js","names":["useModal","getTranslation","setsAreEqual","React","useCallback","useMemo","useState","CheckboxInput","useTranslation","DrawerHeader","Button","Drawer","getLocaleOptions","i18n","localization","locales","map","locale","label","value","code","baseClass","SelectLocalesDrawer","slug","onConfirm","t","toggleModal","selectedLocales","setSelectedLocales","localeOptions","allLocales","allLocalesSelected","Set","handleSelectAll","handleToggleLocale","localeValue","prev","includes","filter","l","handleConfirm","_jsxs","className","gutter","Header","_jsx","onClose","title","buttonStyle","disabled","length","iconPosition","id","onClick","size","checked","count","onToggle"],"sources":["../../../../src/elements/DuplicateDocument/SelectLocalesDrawer/index.tsx"],"sourcesContent":["'use client'\n\nimport type { I18nClient } from '@payloadcms/translations'\nimport type { ClientConfig } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { setsAreEqual } from 'payload/shared'\nimport React, { useCallback, useMemo, useState } from 'react'\n\nimport { CheckboxInput } from '../../../fields/Checkbox/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 './index.scss'\n\nexport type LocaleOption = {\n label: string\n value: string\n}\n\nexport type SelectLocalesDrawerProps = {\n readonly localization: Exclude\n readonly onConfirm: (args: { selectedLocales: string[] }) => Promise | void\n readonly slug: string\n}\n\nconst getLocaleOptions = ({\n i18n,\n localization,\n}: {\n i18n: I18nClient\n localization: SelectLocalesDrawerProps['localization']\n}): LocaleOption[] => {\n return localization.locales.map((locale) => ({\n label: getTranslation(locale.label, i18n),\n value: locale.code,\n }))\n}\n\nconst baseClass = 'select-locales-drawer'\n\nexport const SelectLocalesDrawer: React.FC = ({\n slug,\n localization,\n onConfirm,\n}) => {\n const { i18n, t } = useTranslation()\n const { toggleModal } = useModal()\n const [selectedLocales, setSelectedLocales] = useState([])\n\n const localeOptions = useMemo(\n () => getLocaleOptions({ i18n, localization }),\n [localization, i18n],\n )\n const allLocales = useMemo(() => localeOptions.map((locale) => locale.value), [localeOptions])\n const allLocalesSelected = useMemo(\n () => setsAreEqual(new Set(selectedLocales), new Set(allLocales)),\n [selectedLocales, allLocales],\n )\n\n const handleSelectAll = useCallback(() => {\n setSelectedLocales(allLocalesSelected ? [] : [...allLocales])\n }, [allLocalesSelected, allLocales])\n\n const handleToggleLocale = useCallback((localeValue: string) => {\n setSelectedLocales((prev) =>\n prev.includes(localeValue) ? prev.filter((l) => l !== localeValue) : [...prev, localeValue],\n )\n }, [])\n\n const handleConfirm = useCallback(async () => {\n await onConfirm({ selectedLocales })\n toggleModal(slug)\n }, [onConfirm, selectedLocales, slug, toggleModal])\n\n return (\n {\n toggleModal(slug)\n }}\n title={`${t('general:duplicate')} ${t('localization:selectedLocales')}`}\n />\n }\n slug={slug}\n >\n
\n {t('localization:selectLocaleToDuplicate')}\n \n {t('general:duplicate')}\n \n
\n
\n
\n \n
\n {localeOptions.map((locale) => (\n
\n handleToggleLocale(locale.value)}\n />\n
\n ))}\n
\n \n )\n}\n"],"mappings":"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","ignoreList":[]}