@payloadcms/ui 4.0.0-beta.1 → 4.0.0-beta.3
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/css/preflight.css +21 -2
- package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/FormsManager/index.js +1 -34
- package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
- package/dist/elements/CloseModalOnRouteChange/index.d.ts.map +1 -1
- package/dist/elements/CloseModalOnRouteChange/index.js +27 -19
- package/dist/elements/CloseModalOnRouteChange/index.js.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +6 -2
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DatePicker/index.css +35 -25
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.css +2 -2
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/ListDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/ListDrawer/Provider.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.css +7 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js +1 -1
- package/dist/elements/Nav/SidebarTabs/index.client.js.map +1 -1
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/SchedulePublishButton/index.js.map +1 -1
- package/dist/elements/SegmentedControl/index.css +50 -7
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +6 -1
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-S7MOGZSR.js → CodeEditor-I6PL55BF.js} +2 -2
- package/dist/exports/client/{DatePicker-POZJVQP4.js → DatePicker-RFCB5VGD.js} +2 -2
- package/dist/exports/client/{chunk-2AY67NFV.js → chunk-O2RR6XEH.js} +2 -2
- package/dist/exports/client/chunk-O2RR6XEH.js.map +7 -0
- package/dist/exports/client/{chunk-Z42OBP5U.js → chunk-R7M6BG75.js} +1 -1
- package/dist/exports/client/{chunk-Z42OBP5U.js.map → chunk-R7M6BG75.js.map} +1 -1
- package/dist/exports/client/index.js +15 -15
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +3 -3
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +3 -1
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.d.ts +9 -4
- package/dist/forms/Form/reduceToSerializableFields.d.ts.map +1 -1
- package/dist/forms/Form/reduceToSerializableFields.js +34 -7
- package/dist/forms/Form/reduceToSerializableFields.js.map +1 -1
- package/dist/icons/Table/index.css +5 -1
- package/dist/layouts/Root/index.d.ts +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +4 -15
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/providers/RouteCache/index.d.ts.map +1 -1
- package/dist/providers/RouteCache/index.js +37 -25
- package/dist/providers/RouteCache/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +34 -23
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +22 -3
- package/dist/templates/Default/index.css +0 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.d.ts.map +1 -1
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js +32 -6
- package/dist/utilities/buildClientFieldSchemaMap/traverseFields.js.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.d.ts +8 -2
- package/dist/utilities/getDisplayedFieldValue.d.ts.map +1 -1
- package/dist/utilities/getDisplayedFieldValue.js +11 -1
- package/dist/utilities/getDisplayedFieldValue.js.map +1 -1
- package/dist/utilities/getHasScheduledPublish.js.map +1 -1
- package/dist/utilities/handleLivePreview.js.map +1 -1
- package/dist/utilities/handleServerFunctions.d.ts +2 -10
- package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
- package/dist/utilities/handleServerFunctions.js +3 -7
- package/dist/utilities/handleServerFunctions.js.map +1 -1
- package/dist/utilities/hasSavePermission.js.map +1 -1
- package/dist/utilities/schedulePublishHandler.js.map +1 -1
- package/dist/utilities/serverFunctionRegistry.d.ts +2 -7
- package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
- package/dist/utilities/serverFunctionRegistry.js +2 -7
- package/dist/utilities/serverFunctionRegistry.js.map +1 -1
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/widgets/RecentlyViewed/getDocuments.d.ts.map +1 -1
- package/dist/widgets/RecentlyViewed/getDocuments.js +4 -1
- package/dist/widgets/RecentlyViewed/getDocuments.js.map +1 -1
- package/dist/widgets/RecentlyViewed/index.client.d.ts.map +1 -1
- package/dist/widgets/RecentlyViewed/index.client.js +7 -2
- package/dist/widgets/RecentlyViewed/index.client.js.map +1 -1
- package/package.json +16 -16
- package/dist/exports/client/chunk-2AY67NFV.js.map +0 -7
- /package/dist/exports/client/{CodeEditor-S7MOGZSR.js.map → CodeEditor-I6PL55BF.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-POZJVQP4.js.map → DatePicker-RFCB5VGD.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasLocalizeStatusEnabled","qs","React","useCallback","useState","toast","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","useUploadEdits","traverseForLocalizedFields","PopupList","FieldErrorsToast","validateDocumentLocales","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","getData","submit","uploadEdits","modified","editDepth","locale","localeCode","code","blocksMap","localization","routes","api","i18n","t","shortLabel","entityConfig","useMemo","hasNewerVersions","canPublish","isValidatingLocales","setIsValidatingLocales","hasLocalizedFields","Boolean","fields","isSpecificLocalePublishEnabled","operation","disabled","hasAutosave","saveDraft","params","stringify","depth","draft","undefined","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","localizeStatusEnabled","publish","validation","encodedID","encodeURIComponent","String","validationPath","Error","activeLocale","data","endpoint","locales","map","error","valid","introMessage","count","errors","length","fieldList","join","_jsx","errorMessage","publishAllLocales","result","publishLocale","pathSegment","find","activeLocaleLabel","Fragment","buttonId","loading","onClick","size","SubMenuPopupContent","ButtonGroup","Button","type","_jsxs","className"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { FieldErrorsToast } from '../Toasts/fieldErrors.js'\nimport { validateDocumentLocales } from './validateAllLocales.js'\nimport './index.css'\n\nexport function PublishButton({\n label: labelProp,\n}: { label?: string } & PublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { getData, submit } = useForm()\n const { uploadEdits } = useUploadEdits()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const locale = useLocale()\n const localeCode = locale?.code\n const {\n blocksMap,\n localization,\n routes: { api },\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n const shortLabel = labelProp || t('version:publish')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const [isValidatingLocales, setIsValidatingLocales] = useState(false)\n\n const hasLocalizedFields = React.useMemo(\n () =>\n Boolean(\n entityConfig?.fields &&\n traverseForLocalizedFields({\n blocksMap,\n fields: entityConfig.fields,\n }),\n ),\n [blocksMap, entityConfig?.fields],\n )\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n uploadEdits: uploadEdits || undefined,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id, uploadEdits])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const localizeStatusEnabled = hasLocalizeStatusEnabled(entityConfig)\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n if (localization && hasLocalizedFields) {\n setIsValidatingLocales(true)\n let validation\n\n try {\n const encodedID = id === undefined ? '' : `/${encodeURIComponent(String(id))}`\n let validationPath: `/${string}`\n\n if (globalSlug) {\n validationPath = `/globals/${encodeURIComponent(globalSlug)}/validate`\n } else if (collectionSlug) {\n validationPath = `/${encodeURIComponent(collectionSlug)}${encodedID}/validate`\n } else {\n throw new Error('Document validation requires a collection or global slug.')\n }\n\n validation = await validateDocumentLocales({\n activeLocale: localeCode,\n blocksMap,\n data: { ...getData(), _status: 'published' },\n endpoint: formatAdminURL({ apiRoute: api, path: validationPath }),\n fields: entityConfig?.fields ?? [],\n locales: localization.locales.map(({ code }) => code),\n })\n } catch {\n toast.error(t('error:unknown'))\n return\n } finally {\n setIsValidatingLocales(false)\n }\n\n if (!validation.valid) {\n const introMessage = t('error:followingFieldsInvalid', { count: validation.errors.length })\n const fieldList = validation.errors\n .map(\n (error) =>\n `${error.locale ? `[${error.locale}] ` : ''}${\n error.label ? getTranslation(error.label, i18n) : error.path\n }`,\n )\n .join(', ')\n\n toast.error(<FieldErrorsToast errorMessage={`${introMessage} ${fieldList}`} />)\n return\n }\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n uploadEdits: uploadEdits || undefined,\n ...(localizeStatusEnabled && { publishAllLocales: true }),\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n localeCode,\n localizeStatusEnabled,\n api,\n blocksMap,\n collectionSlug,\n entityConfig?.fields,\n getData,\n globalSlug,\n hasLocalizedFields,\n id,\n localization,\n i18n,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n t,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n uploadEdits,\n ])\n\n const publishLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n uploadEdits: uploadEdits || undefined,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n submit,\n uploadStatus,\n uploadEdits,\n ],\n )\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish || isValidatingLocales}\n loading={isValidatingLocales}\n onClick={isSpecificLocalePublishEnabled ? () => publishLocale(activeLocale.code) : publish}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-all-locales\" onClick={publish}>\n {t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : undefined\n }\n type=\"button\"\n >\n {isSpecificLocalePublishEnabled ? (\n t('version:publishIn', { locale: activeLocaleLabel })\n ) : (\n <React.Fragment>\n <span className=\"publish-button__label--full\">{label}</span>\n <span className=\"publish-button__label--short\">{shortLabel}</span>\n </React.Fragment>\n )}\n </FormSubmit>\n </React.Fragment>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["getTranslation","formatAdminURL","hasAutosaveEnabled","hasLocalizeStatusEnabled","qs","React","useCallback","useState","toast","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","useUploadEdits","traverseForLocalizedFields","PopupList","FieldErrorsToast","validateDocumentLocales","PublishButton","label","labelProp","id","collectionSlug","globalSlug","hasPublishedDoc","hasPublishPermission","setHasPublishedDoc","setMostRecentVersionIsAutosaved","setUnpublishedVersionCount","unpublishedVersionCount","uploadStatus","config","getEntityConfig","getData","submit","uploadEdits","modified","editDepth","locale","localeCode","code","blocksMap","localization","routes","api","i18n","t","shortLabel","entityConfig","useMemo","hasNewerVersions","canPublish","isValidatingLocales","setIsValidatingLocales","hasLocalizedFields","Boolean","fields","isSpecificLocalePublishEnabled","operation","disabled","hasAutosave","saveDraft","params","stringify","depth","draft","undefined","addQueryPrefix","action","method","apiRoute","path","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","localizeStatusEnabled","publish","validation","encodedID","encodeURIComponent","String","validationPath","Error","activeLocale","data","endpoint","locales","map","error","valid","introMessage","count","errors","length","fieldList","join","_jsx","errorMessage","publishAllLocales","result","publishLocale","pathSegment","find","activeLocaleLabel","Fragment","buttonId","loading","onClick","size","SubMenuPopupContent","ButtonGroup","Button","type","_jsxs","className"],"sources":["../../../src/elements/PublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport type { PublishButtonClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL, hasAutosaveEnabled, hasLocalizeStatusEnabled } from 'payload/shared'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { traverseForLocalizedFields } from '../../utilities/traverseForLocalizedFields.js'\nimport { PopupList } from '../Popup/index.js'\nimport { FieldErrorsToast } from '../Toasts/fieldErrors.js'\nimport { validateDocumentLocales } from './validateAllLocales.js'\nimport './index.css'\n\nexport function PublishButton({\n label: labelProp,\n}: { label?: string } & PublishButtonClientProps = {}) {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishedDoc,\n hasPublishPermission,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n unpublishedVersionCount,\n uploadStatus,\n } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n const { getData, submit } = useForm()\n const { uploadEdits } = useUploadEdits()\n const modified = useFormModified()\n const editDepth = useEditDepth()\n const locale = useLocale()\n const localeCode = locale?.code\n const {\n blocksMap,\n localization,\n routes: { api },\n } = config\n\n const { i18n, t } = useTranslation()\n const label = labelProp || t('version:publishChanges')\n const shortLabel = labelProp || t('version:publish')\n\n const entityConfig = React.useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const hasNewerVersions = unpublishedVersionCount > 0\n\n const canPublish =\n hasPublishPermission &&\n (modified || hasNewerVersions || !hasPublishedDoc) &&\n uploadStatus !== 'uploading'\n\n const [isValidatingLocales, setIsValidatingLocales] = useState(false)\n\n const hasLocalizedFields = React.useMemo(\n () =>\n Boolean(\n entityConfig?.fields &&\n traverseForLocalizedFields({\n blocksMap,\n fields: entityConfig.fields,\n }),\n ),\n [blocksMap, entityConfig?.fields],\n )\n\n const isSpecificLocalePublishEnabled = localization && hasLocalizedFields && hasPublishPermission\n\n const operation = useOperation()\n\n const disabled = operation === 'update' && !modified\n\n // If autosave is enabled the modified will always be true so only conditionally check on modified state\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const saveDraft = useCallback(async () => {\n if (disabled) {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n draft: true,\n 'fallback-locale': 'null',\n locale: localeCode,\n uploadEdits: uploadEdits || undefined,\n },\n { addQueryPrefix: true },\n )\n\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/${collectionSlug}${id ? `/${id}` : ''}${params}`,\n })\n if (id) {\n method = 'PATCH'\n }\n }\n\n if (globalSlug) {\n action = formatAdminURL({\n apiRoute: api,\n path: `/globals/${globalSlug}${params}`,\n })\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [disabled, localeCode, collectionSlug, globalSlug, submit, api, id, uploadEdits])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n\n if (saveDraft && hasAutosave) {\n void saveDraft()\n }\n })\n\n const localizeStatusEnabled = hasLocalizeStatusEnabled(entityConfig)\n\n const publish = useCallback(async () => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n if (localization && hasLocalizedFields) {\n setIsValidatingLocales(true)\n let validation\n\n try {\n const encodedID = id === undefined ? '' : `/${encodeURIComponent(String(id))}`\n let validationPath: `/${string}`\n\n if (globalSlug) {\n validationPath = `/globals/${encodeURIComponent(globalSlug)}/validate`\n } else if (collectionSlug) {\n validationPath = `/${encodeURIComponent(collectionSlug)}${encodedID}/validate`\n } else {\n throw new Error('Document validation requires a collection or global slug.')\n }\n\n validation = await validateDocumentLocales({\n activeLocale: localeCode,\n blocksMap,\n data: { ...getData(), _status: 'published' },\n endpoint: formatAdminURL({ apiRoute: api, path: validationPath }),\n fields: entityConfig?.fields ?? [],\n locales: localization.locales.map(({ code }) => code),\n })\n } catch {\n toast.error(t('error:unknown'))\n return\n } finally {\n setIsValidatingLocales(false)\n }\n\n if (!validation.valid) {\n const introMessage = t('error:followingFieldsInvalid', { count: validation.errors.length })\n const fieldList = validation.errors\n .map(\n (error) =>\n `${error.locale ? `[${error.locale}] ` : ''}${\n error.label ? getTranslation(error.label, i18n) : error.path\n }`,\n )\n .join(', ')\n\n toast.error(<FieldErrorsToast errorMessage={`${introMessage} ${fieldList}`} />)\n return\n }\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale: localeCode,\n uploadEdits: uploadEdits || undefined,\n ...(localizeStatusEnabled && { publishAllLocales: true }),\n },\n { addQueryPrefix: true },\n )\n\n const action = formatAdminURL({\n apiRoute: api,\n path: `${\n globalSlug ? `/globals/${globalSlug}` : `/${collectionSlug}${id ? `/${id}` : ''}`\n }${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n }, [\n localeCode,\n localizeStatusEnabled,\n api,\n blocksMap,\n collectionSlug,\n entityConfig?.fields,\n getData,\n globalSlug,\n hasLocalizedFields,\n id,\n localization,\n i18n,\n setHasPublishedDoc,\n submit,\n setUnpublishedVersionCount,\n t,\n uploadStatus,\n setMostRecentVersionIsAutosaved,\n uploadEdits,\n ])\n\n const publishLocale = useCallback(\n async (locale) => {\n if (uploadStatus === 'uploading') {\n return\n }\n\n const params = qs.stringify(\n {\n depth: 0,\n locale,\n uploadEdits: uploadEdits || undefined,\n },\n { addQueryPrefix: true },\n )\n\n const pathSegment = globalSlug\n ? `/globals/${globalSlug}`\n : `/${collectionSlug}${id ? `/${id}` : ''}`\n const action = formatAdminURL({\n apiRoute: api,\n path: `${pathSegment}${params}` as `/${string}`,\n })\n\n const result = await submit({\n action,\n overrides: {\n _status: 'published',\n },\n })\n\n if (result) {\n setUnpublishedVersionCount(0)\n setMostRecentVersionIsAutosaved(false)\n setHasPublishedDoc(true)\n }\n },\n [\n api,\n collectionSlug,\n globalSlug,\n id,\n setHasPublishedDoc,\n setMostRecentVersionIsAutosaved,\n setUnpublishedVersionCount,\n submit,\n uploadStatus,\n uploadEdits,\n ],\n )\n\n const activeLocale =\n localization &&\n localization?.locales.find((locale) =>\n typeof locale === 'string' ? locale === localeCode : locale.code === localeCode,\n )\n\n const activeLocaleLabel = activeLocale && getTranslation(activeLocale.label, i18n)\n\n if (!hasPublishPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <FormSubmit\n buttonId=\"action-save\"\n disabled={!canPublish || isValidatingLocales}\n loading={isValidatingLocales}\n onClick={isSpecificLocalePublishEnabled ? () => publishLocale(activeLocale.code) : publish}\n size=\"medium\"\n SubMenuPopupContent={\n isSpecificLocalePublishEnabled\n ? () => (\n <PopupList.ButtonGroup>\n <PopupList.Button id=\"publish-all-locales\" onClick={publish}>\n {t('version:publishAllLocales')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )\n : undefined\n }\n type=\"button\"\n >\n {isSpecificLocalePublishEnabled ? (\n t('version:publishIn', { locale: activeLocaleLabel })\n ) : (\n <React.Fragment>\n <span className=\"publish-button__label--full\">{label}</span>\n <span className=\"publish-button__label--short\">{shortLabel}</span>\n </React.Fragment>\n )}\n </FormSubmit>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAIA,SAASA,cAAc,QAAQ;AAC/B,SAASC,cAAc,EAAEC,kBAAkB,EAAEC,wBAAwB,QAAQ;AAC7E,YAAYC,EAAA,MAAQ;AACpB,OAAOC,KAAA,IAASC,WAAW,EAAEC,QAAQ,QAAQ;AAC7C,SAASC,KAAK,QAAQ;AAEtB,SAASC,OAAO,EAAEC,eAAe,QAAQ;AACzC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,SAAS,QAAQ;AAC1B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,uBAAuB,QAAQ;AACxC,OAAO;AAEP,OAAO,SAASC,cAAc;EAC5BC,KAAA,EAAOC;AAAS,CAC8B,GAAG,CAAC,CAAC;EACnD,MAAM;IACJC,EAAE;IACFC,cAAc;IACdC,UAAU;IACVC,eAAe;IACfC,oBAAoB;IACpBC,kBAAkB;IAClBC,+BAA+B;IAC/BC,0BAA0B;IAC1BC,uBAAuB;IACvBC;EAAY,CACb,GAAGtB,eAAA;EAEJ,MAAM;IAAEuB,MAAM;IAAEC;EAAe,CAAE,GAAGzB,SAAA;EACpC,MAAM;IAAE0B,OAAO;IAAEC;EAAM,CAAE,GAAG/B,OAAA;EAC5B,MAAM;IAAEgC;EAAW,CAAE,GAAGtB,cAAA;EACxB,MAAMuB,QAAA,GAAWhC,eAAA;EACjB,MAAMiC,SAAA,GAAY5B,YAAA;EAClB,MAAM6B,MAAA,GAAS5B,SAAA;EACf,MAAM6B,UAAA,GAAaD,MAAA,EAAQE,IAAA;EAC3B,MAAM;IACJC,SAAS;IACTC,YAAY;IACZC,MAAA,EAAQ;MAAEC;IAAG;EAAE,CAChB,GAAGb,MAAA;EAEJ,MAAM;IAAEc,IAAI;IAAEC;EAAC,CAAE,GAAGlC,cAAA;EACpB,MAAMO,KAAA,GAAQC,SAAA,IAAa0B,CAAA,CAAE;EAC7B,MAAMC,UAAA,GAAa3B,SAAA,IAAa0B,CAAA,CAAE;EAElC,MAAME,YAAA,GAAejD,KAAA,CAAMkD,OAAO,CAAC;IACjC,IAAI3B,cAAA,EAAgB;MAClB,OAAOU,eAAA,CAAgB;QAAEV;MAAe;IAC1C;IAEA,IAAIC,UAAA,EAAY;MACd,OAAOS,eAAA,CAAgB;QAAET;MAAW;IACtC;EACF,GAAG,CAACD,cAAA,EAAgBC,UAAA,EAAYS,eAAA,CAAgB;EAEhD,MAAMkB,gBAAA,GAAmBrB,uBAAA,GAA0B;EAEnD,MAAMsB,UAAA,GACJ1B,oBAAA,KACCW,QAAA,IAAYc,gBAAA,IAAoB,CAAC1B,eAAc,KAChDM,YAAA,KAAiB;EAEnB,MAAM,CAACsB,mBAAA,EAAqBC,sBAAA,CAAuB,GAAGpD,QAAA,CAAS;EAE/D,MAAMqD,kBAAA,GAAqBvD,KAAA,CAAMkD,OAAO,CACtC,MACEM,OAAA,CACEP,YAAA,EAAcQ,MAAA,IACd1C,0BAAA,CAA2B;IACzB2B,SAAA;IACAe,MAAA,EAAQR,YAAA,CAAaQ;EACvB,KAEJ,CAACf,SAAA,EAAWO,YAAA,EAAcQ,MAAA,CAAO;EAGnC,MAAMC,8BAAA,GAAiCf,YAAA,IAAgBY,kBAAA,IAAsB7B,oBAAA;EAE7E,MAAMiC,SAAA,GAAY/C,YAAA;EAElB,MAAMgD,QAAA,GAAWD,SAAA,KAAc,YAAY,CAACtB,QAAA;EAE5C;EACA,MAAMwB,WAAA,GAAchE,kBAAA,CAAmBoD,YAAA;EAEvC,MAAMa,SAAA,GAAY7D,WAAA,CAAY;IAC5B,IAAI2D,QAAA,EAAU;MACZ;IACF;IAEA,MAAMG,MAAA,GAAShE,EAAA,CAAGiE,SAAS,CACzB;MACEC,KAAA,EAAO;MACPC,KAAA,EAAO;MACP,mBAAmB;MACnB3B,MAAA,EAAQC,UAAA;MACRJ,WAAA,EAAaA,WAAA,IAAe+B;IAC9B,GACA;MAAEC,cAAA,EAAgB;IAAK;IAGzB,IAAIC,MAAA;IACJ,IAAIC,MAAA,GAAS;IAEb,IAAI/C,cAAA,EAAgB;MAClB8C,MAAA,GAASzE,cAAA,CAAe;QACtB2E,QAAA,EAAU1B,GAAA;QACV2B,IAAA,EAAM,IAAIjD,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,KAAKyC,MAAA;MAClD;MACA,IAAIzC,EAAA,EAAI;QACNgD,MAAA,GAAS;MACX;IACF;IAEA,IAAI9C,UAAA,EAAY;MACd6C,MAAA,GAASzE,cAAA,CAAe;QACtB2E,QAAA,EAAU1B,GAAA;QACV2B,IAAA,EAAM,YAAYhD,UAAA,GAAauC,MAAA;MACjC;IACF;IAEA,MAAM5B,MAAA,CAAO;MACXkC,MAAA;MACAC,MAAA;MACAG,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;MACAC,cAAA,EAAgB;IAClB;EACF,GAAG,CAACf,QAAA,EAAUpB,UAAA,EAAYjB,cAAA,EAAgBC,UAAA,EAAYW,MAAA,EAAQU,GAAA,EAAKvB,EAAA,EAAIc,WAAA,CAAY;EAEnF7B,SAAA,CAAU;IAAEqE,UAAA,EAAY;IAAMtC,SAAA;IAAWuC,QAAA,EAAU,CAAC;EAAK,GAAIC,CAAA;IAC3DA,CAAA,CAAEC,cAAc;IAChBD,CAAA,CAAEE,eAAe;IAEjB,IAAIlB,SAAA,IAAaD,WAAA,EAAa;MAC5B,KAAKC,SAAA;IACP;EACF;EAEA,MAAMmB,qBAAA,GAAwBnF,wBAAA,CAAyBmD,YAAA;EAEvD,MAAMiC,OAAA,GAAUjF,WAAA,CAAY;IAC1B,IAAI8B,YAAA,KAAiB,aAAa;MAChC;IACF;IAEA,IAAIY,YAAA,IAAgBY,kBAAA,EAAoB;MACtCD,sBAAA,CAAuB;MACvB,IAAI6B,UAAA;MAEJ,IAAI;QACF,MAAMC,SAAA,GAAY9D,EAAA,KAAO6C,SAAA,GAAY,KAAK,IAAIkB,kBAAA,CAAmBC,MAAA,CAAOhE,EAAA,IAAM;QAC9E,IAAIiE,cAAA;QAEJ,IAAI/D,UAAA,EAAY;UACd+D,cAAA,GAAiB,YAAYF,kBAAA,CAAmB7D,UAAA,YAAsB;QACxE,OAAO,IAAID,cAAA,EAAgB;UACzBgE,cAAA,GAAiB,IAAIF,kBAAA,CAAmB9D,cAAA,IAAkB6D,SAAA,WAAoB;QAChF,OAAO;UACL,MAAM,IAAII,KAAA,CAAM;QAClB;QAEAL,UAAA,GAAa,MAAMjE,uBAAA,CAAwB;UACzCuE,YAAA,EAAcjD,UAAA;UACdE,SAAA;UACAgD,IAAA,EAAM;YAAE,GAAGxD,OAAA,EAAS;YAAEwC,OAAA,EAAS;UAAY;UAC3CiB,QAAA,EAAU/F,cAAA,CAAe;YAAE2E,QAAA,EAAU1B,GAAA;YAAK2B,IAAA,EAAMe;UAAe;UAC/D9B,MAAA,EAAQR,YAAA,EAAcQ,MAAA,IAAU,EAAE;UAClCmC,OAAA,EAASjD,YAAA,CAAaiD,OAAO,CAACC,GAAG,CAAC,CAAC;YAAEpD;UAAI,CAAE,KAAKA,IAAA;QAClD;MACF,EAAE,MAAM;QACNtC,KAAA,CAAM2F,KAAK,CAAC/C,CAAA,CAAE;QACd;MACF,UAAU;QACRO,sBAAA,CAAuB;MACzB;MAEA,IAAI,CAAC6B,UAAA,CAAWY,KAAK,EAAE;QACrB,MAAMC,YAAA,GAAejD,CAAA,CAAE,gCAAgC;UAAEkD,KAAA,EAAOd,UAAA,CAAWe,MAAM,CAACC;QAAO;QACzF,MAAMC,SAAA,GAAYjB,UAAA,CAAWe,MAAM,CAChCL,GAAG,CACDC,KAAA,IACC,GAAGA,KAAA,CAAMvD,MAAM,GAAG,IAAIuD,KAAA,CAAMvD,MAAM,IAAI,GAAG,KACvCuD,KAAA,CAAM1E,KAAK,GAAGzB,cAAA,CAAemG,KAAA,CAAM1E,KAAK,EAAE0B,IAAA,IAAQgD,KAAA,CAAMtB,IAAI,EAC5D,EAEL6B,IAAI,CAAC;QAERlG,KAAA,CAAM2F,KAAK,cAACQ,IAAA,CAACrF,gBAAA;UAAiBsF,YAAA,EAAc,GAAGP,YAAA,IAAgBI,SAAA;;QAC/D;MACF;IACF;IAEA,MAAMrC,QAAA,GAAShE,EAAA,CAAGiE,SAAS,CACzB;MACEC,KAAA,EAAO;MACP1B,MAAA,EAAQC,UAAA;MACRJ,WAAA,EAAaA,WAAA,IAAe+B,SAAA;MAC5B,IAAIc,qBAAA,IAAyB;QAAEuB,iBAAA,EAAmB;MAAK,CAAC;IAC1D,GACA;MAAEpC,cAAA,EAAgB;IAAK;IAGzB,MAAMC,QAAA,GAASzE,cAAA,CAAe;MAC5B2E,QAAA,EAAU1B,GAAA;MACV2B,IAAA,EAAM,GACJhD,UAAA,GAAa,YAAYA,UAAA,EAAY,GAAG,IAAID,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,IAAI,GAChFyC,QAAA;IACL;IAEA,MAAM0C,MAAA,GAAS,MAAMtE,MAAA,CAAO;MAC1BkC,MAAA,EAAAA,QAAA;MACAI,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;IACF;IAEA,IAAI+B,MAAA,EAAQ;MACV5E,0BAAA,CAA2B;MAC3BD,+BAAA,CAAgC;MAChCD,kBAAA,CAAmB;IACrB;EACF,GAAG,CACDa,UAAA,EACAyC,qBAAA,EACApC,GAAA,EACAH,SAAA,EACAnB,cAAA,EACA0B,YAAA,EAAcQ,MAAA,EACdvB,OAAA,EACAV,UAAA,EACA+B,kBAAA,EACAjC,EAAA,EACAqB,YAAA,EACAG,IAAA,EACAnB,kBAAA,EACAQ,MAAA,EACAN,0BAAA,EACAkB,CAAA,EACAhB,YAAA,EACAH,+BAAA,EACAQ,WAAA,CACD;EAED,MAAMsE,aAAA,GAAgBzG,WAAA,CACpB,MAAOsC,QAAA;IACL,IAAIR,YAAA,KAAiB,aAAa;MAChC;IACF;IAEA,MAAMgC,QAAA,GAAShE,EAAA,CAAGiE,SAAS,CACzB;MACEC,KAAA,EAAO;MACP1B,MAAA,EAAAA,QAAA;MACAH,WAAA,EAAaA,WAAA,IAAe+B;IAC9B,GACA;MAAEC,cAAA,EAAgB;IAAK;IAGzB,MAAMuC,WAAA,GAAcnF,UAAA,GAChB,YAAYA,UAAA,EAAY,GACxB,IAAID,cAAA,GAAiBD,EAAA,GAAK,IAAIA,EAAA,EAAI,GAAG,IAAI;IAC7C,MAAM+C,QAAA,GAASzE,cAAA,CAAe;MAC5B2E,QAAA,EAAU1B,GAAA;MACV2B,IAAA,EAAM,GAAGmC,WAAA,GAAc5C,QAAA;IACzB;IAEA,MAAM0C,QAAA,GAAS,MAAMtE,MAAA,CAAO;MAC1BkC,MAAA,EAAAA,QAAA;MACAI,SAAA,EAAW;QACTC,OAAA,EAAS;MACX;IACF;IAEA,IAAI+B,QAAA,EAAQ;MACV5E,0BAAA,CAA2B;MAC3BD,+BAAA,CAAgC;MAChCD,kBAAA,CAAmB;IACrB;EACF,GACA,CACEkB,GAAA,EACAtB,cAAA,EACAC,UAAA,EACAF,EAAA,EACAK,kBAAA,EACAC,+BAAA,EACAC,0BAAA,EACAM,MAAA,EACAJ,YAAA,EACAK,WAAA,CACD;EAGH,MAAMqD,YAAA,GACJ9C,YAAA,IACAA,YAAA,EAAciD,OAAA,CAAQgB,IAAA,CAAMrE,QAAA,IAC1B,OAAOA,QAAA,KAAW,WAAWA,QAAA,KAAWC,UAAA,GAAaD,QAAA,CAAOE,IAAI,KAAKD,UAAA;EAGzE,MAAMqE,iBAAA,GAAoBpB,YAAA,IAAgB9F,cAAA,CAAe8F,YAAA,CAAarE,KAAK,EAAE0B,IAAA;EAE7E,IAAI,CAACpB,oBAAA,EAAsB;IACzB,OAAO;EACT;EAEA,oBACE4E,IAAA,CAACtG,KAAA,CAAM8G,QAAQ;cACb,aAAAR,IAAA,CAAChG,UAAA;MACCyG,QAAA,EAAS;MACTnD,QAAA,EAAU,CAACR,UAAA,IAAcC,mBAAA;MACzB2D,OAAA,EAAS3D,mBAAA;MACT4D,OAAA,EAASvD,8BAAA,GAAiC,MAAMgD,aAAA,CAAcjB,YAAA,CAAahD,IAAI,IAAIyC,OAAA;MACnFgC,IAAA,EAAK;MACLC,mBAAA,EACEzD,8BAAA,GACI,mBACE4C,IAAA,CAACtF,SAAA,CAAUoG,WAAW;kBACpB,aAAAd,IAAA,CAACtF,SAAA,CAAUqG,MAAM;UAAC/F,EAAA,EAAG;UAAsB2F,OAAA,EAAS/B,OAAA;oBACjDnC,CAAA,CAAE;;WAIToB,SAAA;MAENmD,IAAA,EAAK;gBAEJ5D,8BAAA,GACCX,CAAA,CAAE,qBAAqB;QAAER,MAAA,EAAQsE;MAAkB,kBAEnDU,KAAA,CAACvH,KAAA,CAAM8G,QAAQ;gCACbR,IAAA,CAAC;UAAKkB,SAAA,EAAU;oBAA+BpG;yBAC/CkF,IAAA,CAAC;UAAKkB,SAAA,EAAU;oBAAgCxE;;;;;AAM5D","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useModal","hasAutosaveEnabled","hasScheduledPublishEnabled","React","useMemo","useState","useFormModified","ScheduleIcon","useConfig","useDocumentInfo","useTranslation","Button","ScheduleDrawer","Tooltip","SchedulePublishButton","disabled","id","collectionSlug","globalSlug","hasPublishPermission","hasScheduledPublish","setHasScheduledPublish","unpublishedVersionCount","getEntityConfig","isModalOpen","toggleModal","t","modified","hovered","setHovered","entityConfig","scheduledPublishEnabled","hasAutosave","canSchedulePublish","Boolean","drawerSlug","hasNewerVersions","label","_jsxs","Fragment","onPointerEnter","onPointerLeave","style","position","_jsx","buttonStyle","icon","active","onClick","delay","show","defaultType","onUpcomingChange","schedulePublishConfig","versions","drafts","schedulePublish","undefined","slug"],"sources":["../../../src/elements/SchedulePublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared'\nimport React, { useMemo, useState } from 'react'\n\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { ScheduleIcon } from '../../icons/Schedule/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 { ScheduleDrawer } from '../PublishButton/ScheduleDrawer/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\n\nexport const SchedulePublishButton: React.FC<{ disabled?: boolean }> = ({ disabled }) => {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishPermission,\n hasScheduledPublish,\n setHasScheduledPublish,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { getEntityConfig } = useConfig()\n const { isModalOpen, toggleModal } = useModal()\n const { t } = useTranslation()\n const modified = useFormModified()\n const [hovered, setHovered] = useState(false)\n\n const entityConfig = useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const scheduledPublishEnabled = hasScheduledPublishEnabled(entityConfig)\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["useModal","hasAutosaveEnabled","hasScheduledPublishEnabled","React","useMemo","useState","useFormModified","ScheduleIcon","useConfig","useDocumentInfo","useTranslation","Button","ScheduleDrawer","Tooltip","SchedulePublishButton","disabled","id","collectionSlug","globalSlug","hasPublishPermission","hasScheduledPublish","setHasScheduledPublish","unpublishedVersionCount","getEntityConfig","isModalOpen","toggleModal","t","modified","hovered","setHovered","entityConfig","scheduledPublishEnabled","hasAutosave","canSchedulePublish","Boolean","drawerSlug","hasNewerVersions","label","_jsxs","Fragment","onPointerEnter","onPointerLeave","style","position","_jsx","buttonStyle","icon","active","onClick","delay","show","defaultType","onUpcomingChange","schedulePublishConfig","versions","drafts","schedulePublish","undefined","slug"],"sources":["../../../src/elements/SchedulePublishButton/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { hasAutosaveEnabled, hasScheduledPublishEnabled } from 'payload/shared'\nimport React, { useMemo, useState } from 'react'\n\nimport { useFormModified } from '../../forms/Form/context.js'\nimport { ScheduleIcon } from '../../icons/Schedule/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 { ScheduleDrawer } from '../PublishButton/ScheduleDrawer/index.js'\nimport { Tooltip } from '../Tooltip/index.js'\n\nexport const SchedulePublishButton: React.FC<{ disabled?: boolean }> = ({ disabled }) => {\n const {\n id,\n collectionSlug,\n globalSlug,\n hasPublishPermission,\n hasScheduledPublish,\n setHasScheduledPublish,\n unpublishedVersionCount,\n } = useDocumentInfo()\n\n const { getEntityConfig } = useConfig()\n const { isModalOpen, toggleModal } = useModal()\n const { t } = useTranslation()\n const modified = useFormModified()\n const [hovered, setHovered] = useState(false)\n\n const entityConfig = useMemo(() => {\n if (collectionSlug) {\n return getEntityConfig({ collectionSlug })\n }\n if (globalSlug) {\n return getEntityConfig({ globalSlug })\n }\n }, [collectionSlug, globalSlug, getEntityConfig])\n\n const scheduledPublishEnabled = hasScheduledPublishEnabled(entityConfig)\n const hasAutosave = hasAutosaveEnabled(entityConfig)\n\n const canSchedulePublish = Boolean(\n scheduledPublishEnabled &&\n hasPublishPermission &&\n (globalSlug || (collectionSlug && id)) &&\n (hasAutosave || !modified),\n )\n\n const drawerSlug = `schedule-publish-${id}`\n const hasNewerVersions = unpublishedVersionCount > 0\n\n if (!canSchedulePublish) {\n return null\n }\n\n const label = t('version:schedulePublish')\n\n return (\n <React.Fragment>\n <span\n onPointerEnter={() => setHovered(true)}\n onPointerLeave={() => setHovered(false)}\n style={{ position: 'relative' }}\n >\n <Button\n buttonStyle=\"ghost\"\n disabled={disabled}\n icon={<ScheduleIcon active={hasScheduledPublish} />}\n id=\"schedule-publish-button\"\n onClick={() => toggleModal(drawerSlug)}\n />\n <Tooltip delay={0} show={hovered}>\n {label}\n </Tooltip>\n </span>\n {isModalOpen(drawerSlug) && (\n <ScheduleDrawer\n defaultType={!hasNewerVersions ? 'unpublish' : 'publish'}\n onUpcomingChange={setHasScheduledPublish}\n schedulePublishConfig={\n scheduledPublishEnabled &&\n typeof entityConfig.versions.drafts.schedulePublish === 'object'\n ? entityConfig.versions.drafts.schedulePublish\n : undefined\n }\n slug={drawerSlug}\n />\n )}\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;;AAEA,SAASA,QAAQ,QAAQ;AACzB,SAASC,kBAAkB,EAAEC,0BAA0B,QAAQ;AAC/D,OAAOC,KAAA,IAASC,OAAO,EAAEC,QAAQ,QAAQ;AAEzC,SAASC,eAAe,QAAQ;AAChC,SAASC,YAAY,QAAQ;AAC7B,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,MAAM,QAAQ;AACvB,SAASC,cAAc,QAAQ;AAC/B,SAASC,OAAO,QAAQ;AAExB,OAAO,MAAMC,qBAAA,GAA0DA,CAAC;EAAEC;AAAQ,CAAE;EAClF,MAAM;IACJC,EAAE;IACFC,cAAc;IACdC,UAAU;IACVC,oBAAoB;IACpBC,mBAAmB;IACnBC,sBAAsB;IACtBC;EAAuB,CACxB,GAAGb,eAAA;EAEJ,MAAM;IAAEc;EAAe,CAAE,GAAGf,SAAA;EAC5B,MAAM;IAAEgB,WAAW;IAAEC;EAAW,CAAE,GAAGzB,QAAA;EACrC,MAAM;IAAE0B;EAAC,CAAE,GAAGhB,cAAA;EACd,MAAMiB,QAAA,GAAWrB,eAAA;EACjB,MAAM,CAACsB,OAAA,EAASC,UAAA,CAAW,GAAGxB,QAAA,CAAS;EAEvC,MAAMyB,YAAA,GAAe1B,OAAA,CAAQ;IAC3B,IAAIa,cAAA,EAAgB;MAClB,OAAOM,eAAA,CAAgB;QAAEN;MAAe;IAC1C;IACA,IAAIC,UAAA,EAAY;MACd,OAAOK,eAAA,CAAgB;QAAEL;MAAW;IACtC;EACF,GAAG,CAACD,cAAA,EAAgBC,UAAA,EAAYK,eAAA,CAAgB;EAEhD,MAAMQ,uBAAA,GAA0B7B,0BAAA,CAA2B4B,YAAA;EAC3D,MAAME,WAAA,GAAc/B,kBAAA,CAAmB6B,YAAA;EAEvC,MAAMG,kBAAA,GAAqBC,OAAA,CACzBH,uBAAA,IACAZ,oBAAA,KACCD,UAAA,IAAeD,cAAA,IAAkBD,EAAE,MACnCgB,WAAA,IAAe,CAACL,QAAO;EAG1B,MAAMQ,UAAA,GAAa,oBAAoBnB,EAAA,EAAI;EAC3C,MAAMoB,gBAAA,GAAmBd,uBAAA,GAA0B;EAEnD,IAAI,CAACW,kBAAA,EAAoB;IACvB,OAAO;EACT;EAEA,MAAMI,KAAA,GAAQX,CAAA,CAAE;EAEhB,oBACEY,KAAA,CAACnC,KAAA,CAAMoC,QAAQ;4BACbD,KAAA,CAAC;MACCE,cAAA,EAAgBA,CAAA,KAAMX,UAAA,CAAW;MACjCY,cAAA,EAAgBA,CAAA,KAAMZ,UAAA,CAAW;MACjCa,KAAA,EAAO;QAAEC,QAAA,EAAU;MAAW;8BAE9BC,IAAA,CAACjC,MAAA;QACCkC,WAAA,EAAY;QACZ9B,QAAA,EAAUA,QAAA;QACV+B,IAAA,eAAMF,IAAA,CAACrC,YAAA;UAAawC,MAAA,EAAQ3B;;QAC5BJ,EAAA,EAAG;QACHgC,OAAA,EAASA,CAAA,KAAMvB,WAAA,CAAYU,UAAA;uBAE7BS,IAAA,CAAC/B,OAAA;QAAQoC,KAAA,EAAO;QAAGC,IAAA,EAAMtB,OAAA;kBACtBS;;QAGJb,WAAA,CAAYW,UAAA,kBACXS,IAAA,CAAChC,cAAA;MACCuC,WAAA,EAAa,CAACf,gBAAA,GAAmB,cAAc;MAC/CgB,gBAAA,EAAkB/B,sBAAA;MAClBgC,qBAAA,EACEtB,uBAAA,IACA,OAAOD,YAAA,CAAawB,QAAQ,CAACC,MAAM,CAACC,eAAe,KAAK,WACpD1B,YAAA,CAAawB,QAAQ,CAACC,MAAM,CAACC,eAAe,GAC5CC,SAAA;MAENC,IAAA,EAAMvB;;;AAKhB","ignoreList":[]}
|
|
@@ -1,9 +1,52 @@
|
|
|
1
1
|
@layer payload-default {
|
|
2
|
-
.segmented-control {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
.segmented-control {
|
|
3
|
+
display: flex;
|
|
4
|
+
margin: 0;
|
|
5
|
+
border: none;
|
|
6
|
+
padding: var(--spacer-0);
|
|
7
|
+
min-width: 0;
|
|
8
|
+
line-height: 0;
|
|
9
|
+
}
|
|
10
|
+
.segmented-control__options {
|
|
11
|
+
display: inline-flex;
|
|
12
|
+
width: 100%;
|
|
13
|
+
padding: var(--spacer-0);
|
|
14
|
+
border-radius: var(--radius-medium);
|
|
15
|
+
background-color: var(--color-bg-secondary);
|
|
16
|
+
}
|
|
17
|
+
.segmented-control__option {
|
|
18
|
+
position: relative;
|
|
19
|
+
display: inline-block;
|
|
20
|
+
flex: 1;
|
|
21
|
+
}
|
|
22
|
+
.segmented-control__input {
|
|
23
|
+
position: absolute;
|
|
24
|
+
inset: var(--spacer-0);
|
|
25
|
+
width: 100%;
|
|
26
|
+
height: 100%;
|
|
27
|
+
margin: 0;
|
|
28
|
+
opacity: 0;
|
|
29
|
+
cursor: pointer;
|
|
30
|
+
}
|
|
31
|
+
.segmented-control__icon {
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
width: var(--spacer-4);
|
|
36
|
+
height: var(--spacer-4);
|
|
37
|
+
padding: var(--spacer-0);
|
|
38
|
+
border-radius: var(--radius-medium);
|
|
39
|
+
background-color: transparent;
|
|
40
|
+
color: var(--color-text-secondary);
|
|
41
|
+
}
|
|
42
|
+
.segmented-control__input:checked + .segmented-control__icon {
|
|
43
|
+
background-color: var(--color-bg);
|
|
44
|
+
box-shadow: inset 0 0 0 var(--stroke-width-small) var(--color-border);
|
|
45
|
+
color: var(--color-text);
|
|
46
|
+
}
|
|
47
|
+
.segmented-control__input:focus-visible + .segmented-control__icon {
|
|
48
|
+
outline: var(--stroke-width-small) solid var(--color-border-selected);
|
|
49
|
+
outline-offset: -1px;
|
|
50
|
+
box-shadow: none;
|
|
51
|
+
}
|
|
9
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAKpB,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,aAAa,CAAA;AAKpB,MAAM,WAAW,aAAc,SAAQ,yBAAyB,CAC9D,eAAe,GAAG,iBAAiB,CACpC;IACC,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA+C5C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["getBestFitFromSizes","isImage","React","Thumbnail","baseClass","FileCell","cellData","filename","collectionConfig","field","rowData","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","isFileImage","mimeType","fileSrc","thumbnailURL","url","sizes","variants","width","uploadConfig","imageCacheTag","cacheTags","updatedAt","_jsxs","className","_jsx","collectionSlug","slug","doc","size","String","_Fragment"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n DefaultCellComponentProps,\n TextFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getBestFitFromSizes, isImage } from 'payload/shared'\nimport React from 'react'\n\nimport './index.css'\nimport { Thumbnail } from '../../../../Thumbnail/index.js'\n\nconst baseClass = 'file'\n\nexport interface FileCellProps
|
|
1
|
+
{"version":3,"file":"index.js","names":["getBestFitFromSizes","isImage","React","Thumbnail","baseClass","FileCell","cellData","filename","collectionConfig","field","rowData","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","isFileImage","mimeType","fileSrc","thumbnailURL","url","sizes","variants","width","uploadConfig","imageCacheTag","cacheTags","updatedAt","_jsxs","className","_jsx","collectionSlug","slug","doc","size","String","_Fragment"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n DefaultCellComponentProps,\n TextFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getBestFitFromSizes, isImage } from 'payload/shared'\nimport React from 'react'\n\nimport './index.css'\nimport { Thumbnail } from '../../../../Thumbnail/index.js'\n\nconst baseClass = 'file'\n\nexport interface FileCellProps extends DefaultCellComponentProps<\n TextFieldClient | UploadFieldClient\n> {\n readonly collectionConfig: ClientCollectionConfig\n}\n\nexport const FileCell: React.FC<FileCellProps> = ({\n cellData: filename,\n collectionConfig,\n field,\n rowData,\n}) => {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed = fieldPreviewAllowed ?? collectionConfig.upload?.displayPreview ?? true\n\n if (previewAllowed) {\n const isFileImage = isImage(rowData?.mimeType)\n let fileSrc: string | undefined = isFileImage\n ? rowData?.thumbnailURL || rowData?.url\n : rowData?.thumbnailURL\n\n if (isFileImage) {\n fileSrc = getBestFitFromSizes({\n sizes: rowData?.variants,\n thumbnailURL: rowData?.thumbnailURL,\n url: rowData?.url,\n width: rowData?.width,\n })\n }\n\n const uploadConfig = collectionConfig?.upload\n const imageCacheTag = uploadConfig?.cacheTags && rowData?.updatedAt\n\n return (\n <div className={baseClass}>\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionConfig?.slug}\n doc={{\n ...rowData,\n filename,\n }}\n fileSrc={fileSrc}\n imageCacheTag={imageCacheTag}\n size=\"small\"\n uploadConfig={uploadConfig}\n />\n <span className={`${baseClass}__filename`}>{String(filename)}</span>\n </div>\n )\n } else {\n return <>{String(filename)}</>\n }\n}\n"],"mappings":"AAAA;;;AAQA,SAASA,mBAAmB,EAAEC,OAAO,QAAQ;AAC7C,OAAOC,KAAA,MAAW;AAElB,OAAO;AACP,SAASC,SAAS,QAAQ;AAE1B,MAAMC,SAAA,GAAY;AAQlB,OAAO,MAAMC,QAAA,GAAoCA,CAAC;EAChDC,QAAA,EAAUC,QAAQ;EAClBC,gBAAgB;EAChBC,KAAK;EACLC;AAAO,CACR;EACC,MAAMC,mBAAA,GAAsB,oBAAoBF,KAAA,GAAQA,KAAA,CAAMG,cAAc,GAAGC,SAAA;EAC/E,MAAMC,cAAA,GAAiBH,mBAAA,IAAuBH,gBAAA,CAAiBO,MAAM,EAAEH,cAAA,IAAkB;EAEzF,IAAIE,cAAA,EAAgB;IAClB,MAAME,WAAA,GAAcf,OAAA,CAAQS,OAAA,EAASO,QAAA;IACrC,IAAIC,OAAA,GAA8BF,WAAA,GAC9BN,OAAA,EAASS,YAAA,IAAgBT,OAAA,EAASU,GAAA,GAClCV,OAAA,EAASS,YAAA;IAEb,IAAIH,WAAA,EAAa;MACfE,OAAA,GAAUlB,mBAAA,CAAoB;QAC5BqB,KAAA,EAAOX,OAAA,EAASY,QAAA;QAChBH,YAAA,EAAcT,OAAA,EAASS,YAAA;QACvBC,GAAA,EAAKV,OAAA,EAASU,GAAA;QACdG,KAAA,EAAOb,OAAA,EAASa;MAClB;IACF;IAEA,MAAMC,YAAA,GAAehB,gBAAA,EAAkBO,MAAA;IACvC,MAAMU,aAAA,GAAgBD,YAAA,EAAcE,SAAA,IAAahB,OAAA,EAASiB,SAAA;IAE1D,oBACEC,KAAA,CAAC;MAAIC,SAAA,EAAWzB,SAAA;8BACd0B,IAAA,CAAC3B,SAAA;QACC0B,SAAA,EAAW,GAAGzB,SAAA,aAAsB;QACpC2B,cAAA,EAAgBvB,gBAAA,EAAkBwB,IAAA;QAClCC,GAAA,EAAK;UACH,GAAGvB,OAAO;UACVH;QACF;QACAW,OAAA,EAASA,OAAA;QACTO,aAAA,EAAeA,aAAA;QACfS,IAAA,EAAK;QACLV,YAAA,EAAcA;uBAEhBM,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGzB,SAAA,YAAqB;kBAAG+B,MAAA,CAAO5B,QAAA;;;EAGzD,OAAO;IACL,oBAAOuB,IAAA,CAAAM,SAAA;gBAAGD,MAAA,CAAO5B,QAAA;;EACnB;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAqB,MAAM,SAAS,CAAA;AAI3E,OAAO,KAAK,MAAM,OAAO,CAAA;AAYzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAmL3D,CAAA"}
|
|
@@ -91,7 +91,12 @@ export const DefaultCell = props => {
|
|
|
91
91
|
});
|
|
92
92
|
break bb0;
|
|
93
93
|
}
|
|
94
|
-
const displayedValue = getDisplayedFieldValue(
|
|
94
|
+
const displayedValue = getDisplayedFieldValue({
|
|
95
|
+
cellData,
|
|
96
|
+
collectionConfig,
|
|
97
|
+
field,
|
|
98
|
+
i18n
|
|
99
|
+
});
|
|
95
100
|
const isHierarchyField = field.type === "relationship" && (() => {
|
|
96
101
|
const relationTo = "relationTo" in field ? field.relationTo : undefined;
|
|
97
102
|
if (typeof relationTo !== "string") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","formatAdminURL","React","useConfig","useTranslation","getDisplayedFieldValue","isValidReactElement","IDLabel","Link","HierarchyCell","cellComponents","StatusCell","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","displayedValue","isHierarchyField","relationTo","relatedCollection","Boolean","hierarchy","name","DefaultCellComponent","CellComponent","upload","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID, formatAdminURL } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { IDLabel } from '../../IDLabel/index.js'\nimport { Link } from '../../Link/index.js'\nimport { HierarchyCell } from './fields/Hierarchy/index.js'\nimport { cellComponents } from './fields/index.js'\nimport { StatusCell } from './fields/Status/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <IDLabel id={cellData} />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue(cellData, field, i18n)\n\n // Check if this is a hierarchy relationship field by checking if the related collection has hierarchy config\n const isHierarchyField =\n field.type === 'relationship' &&\n (() => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n if (typeof relationTo !== 'string') {\n return false\n }\n const relatedCollection = getEntityConfig({ collectionSlug: relationTo })\n return Boolean(relatedCollection?.hierarchy)\n })()\n\n // For hierarchy fields, render the HierarchyCell directly (no wrapper needed)\n if (isHierarchyField && field.type === 'relationship') {\n return <HierarchyCell cellData={cellData} rowData={rowData} {...props} field={field} />\n }\n\n // For status fields, render the StatusCell directly\n if (field.type === 'select' && 'name' in field && field.name === '_status') {\n return (\n <WrapElement {...wrapElementProps}>\n <StatusCell cellData={cellData} rowData={rowData} {...props} field={field} />\n </WrapElement>\n )\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","fieldAffectsData","fieldIsID","formatAdminURL","React","useConfig","useTranslation","getDisplayedFieldValue","isValidReactElement","IDLabel","Link","HierarchyCell","cellComponents","StatusCell","DefaultCell","props","$","cellData","className","classNameFromProps","collectionSlug","field","t0","link","linkURL","onClick","onClickFromProps","rowData","viewType","admin","i18n","config","t1","getEntityConfig","routes","t2","adminRoute","t3","t4","Symbol","for","collectionConfig","classNameFromConfigContext","undefined","WrapElement","wrapElementProps","prefetch","href","slug","path","encodeURIComponent","id","type","_jsx","children","displayedValue","isHierarchyField","relationTo","relatedCollection","Boolean","hierarchy","name","DefaultCellComponent","CellComponent","upload","FileCellComponent","File","_jsxs","t","label","JSON","stringify","options","length","classes","Array","isArray","map","_temp","join","className_0","filter","value"],"sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, UploadFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { fieldAffectsData, fieldIsID, formatAdminURL } from 'payload/shared'\nimport React from 'react' // TODO: abstract this out to support all routers\n\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { getDisplayedFieldValue } from '../../../utilities/getDisplayedFieldValue.js'\nimport { isValidReactElement } from '../../../utilities/isValidReactElement.js'\nimport { IDLabel } from '../../IDLabel/index.js'\nimport { Link } from '../../Link/index.js'\nimport { HierarchyCell } from './fields/Hierarchy/index.js'\nimport { cellComponents } from './fields/index.js'\nimport { StatusCell } from './fields/Status/index.js'\n\nexport const DefaultCell: React.FC<DefaultCellComponentProps> = (props) => {\n const {\n cellData,\n className: classNameFromProps,\n collectionSlug,\n field,\n field: { admin },\n link,\n linkURL,\n onClick: onClickFromProps,\n rowData,\n viewType,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: {\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n\n const classNameFromConfigContext = admin && 'className' in admin ? admin.className : undefined\n\n const className =\n classNameFromProps ||\n (field.admin && 'className' in field.admin ? field.admin.className : null) ||\n classNameFromConfigContext\n\n const onClick = onClickFromProps\n\n let WrapElement: React.ComponentType<any> | string = 'span'\n\n const wrapElementProps: {\n className?: string\n href?: string\n onClick?: () => void\n prefetch?: false\n type?: 'button'\n } = {\n className,\n }\n\n if (link) {\n wrapElementProps.prefetch = false\n WrapElement = Link\n\n // Use custom linkURL if provided, otherwise use default URL generation\n if (linkURL) {\n wrapElementProps.href = linkURL\n } else {\n wrapElementProps.href = collectionConfig?.slug\n ? formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}${viewType === 'trash' ? '/trash' : ''}/${encodeURIComponent(rowData.id)}`,\n })\n : ''\n }\n }\n\n if (typeof onClick === 'function') {\n WrapElement = 'button'\n wrapElementProps.type = 'button'\n wrapElementProps.onClick = () => {\n onClick({\n cellData,\n collectionSlug: collectionConfig?.slug,\n rowData,\n })\n }\n }\n\n if (fieldIsID(field)) {\n return (\n <WrapElement {...wrapElementProps}>\n <IDLabel id={cellData} />\n </WrapElement>\n )\n }\n\n const displayedValue = getDisplayedFieldValue({\n cellData,\n collectionConfig,\n field,\n i18n,\n })\n\n // Check if this is a hierarchy relationship field by checking if the related collection has hierarchy config\n const isHierarchyField =\n field.type === 'relationship' &&\n (() => {\n const relationTo = 'relationTo' in field ? field.relationTo : undefined\n if (typeof relationTo !== 'string') {\n return false\n }\n const relatedCollection = getEntityConfig({ collectionSlug: relationTo })\n return Boolean(relatedCollection?.hierarchy)\n })()\n\n // For hierarchy fields, render the HierarchyCell directly (no wrapper needed)\n if (isHierarchyField && field.type === 'relationship') {\n return <HierarchyCell cellData={cellData} rowData={rowData} {...props} field={field} />\n }\n\n // For status fields, render the StatusCell directly\n if (field.type === 'select' && 'name' in field && field.name === '_status') {\n return (\n <WrapElement {...wrapElementProps}>\n <StatusCell cellData={cellData} rowData={rowData} {...props} field={field} />\n </WrapElement>\n )\n }\n\n const DefaultCellComponent: React.FC<DefaultCellComponentProps> =\n typeof cellData !== 'undefined' && cellComponents[field.type]\n\n let CellComponent: React.ReactNode = null\n\n // Handle JSX labels before using DefaultCellComponent\n if (isValidReactElement(displayedValue)) {\n CellComponent = displayedValue\n } else if (DefaultCellComponent) {\n CellComponent = <DefaultCellComponent cellData={cellData} rowData={rowData} {...props} />\n } else if (!DefaultCellComponent) {\n // DefaultCellComponent does not exist for certain field types like `text`\n if (\n collectionConfig?.upload &&\n fieldAffectsData(field) &&\n field.name === 'filename' &&\n field.type === 'text'\n ) {\n const FileCellComponent = cellComponents.File\n\n CellComponent = (\n <FileCellComponent\n cellData={cellData}\n rowData={rowData}\n {...(props as DefaultCellComponentProps<UploadFieldClient>)}\n collectionConfig={collectionConfig}\n field={field}\n />\n )\n } else {\n return (\n <WrapElement {...wrapElementProps}>\n {(displayedValue === '' ||\n typeof displayedValue === 'undefined' ||\n displayedValue === null) &&\n i18n.t('general:noLabel', {\n label: getTranslation(('label' in field ? field.label : null) || 'data', i18n),\n })}\n {typeof displayedValue === 'string' && displayedValue}\n {typeof displayedValue === 'number' && displayedValue}\n {typeof displayedValue === 'object' &&\n displayedValue !== null &&\n JSON.stringify(displayedValue)}\n </WrapElement>\n )\n }\n }\n\n if ((field.type === 'select' || field.type === 'radio') && field.options.length && cellData) {\n const classes = Array.isArray(cellData)\n ? cellData.map((value) => `selected--${value}`).join(' ')\n : `selected--${cellData}`\n\n const className = [wrapElementProps.className, classes].filter(Boolean).join(' ')\n\n return (\n <WrapElement {...wrapElementProps} className={className}>\n {CellComponent}\n </WrapElement>\n )\n }\n\n return <WrapElement {...wrapElementProps}>{CellComponent}</WrapElement>\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useRef","useAuth","useSelection","useGridNavigation","TableGridContext","useTableID","useTableNavigationLabel","baseClass","Table","id","appearance","ariaLabel","BeforeTable","columns","data","navigationLabel","navigationLabelFromProps","tableID","navigationLabelFromContext","tableRef","isGrid","Boolean","selected","user","activeColumns","filter","col","active","hasRowSelection","some","column","accessor","isEnabled","length","ref","_jsx","_jsxs","className","join","value","undefined","cellPadding","cellSpacing","role","map","replace","scope","Heading","row","rowIndex","userEditing","_userEditing","isLockedByAnotherUser","_isLocked","String","get","isLinkedColumn","renderedCells"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column, User } from 'payload'\n\nimport React, { useRef } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useSelection } from '../../providers/Selection/index.js'\nimport { useGridNavigation } from './GridNavigation/useGridNavigation.js'\nimport { TableGridContext, useTableID, useTableNavigationLabel } from './TableIdentity.js'\nimport './index.css'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly ariaLabel?: string\n readonly BeforeTable?: React.ReactNode\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly id?: string\n readonly navigationLabel?: string\n}\n\nexport const Table: React.FC<Props> = ({\n id,\n appearance,\n ariaLabel,\n BeforeTable,\n columns,\n data,\n navigationLabel: navigationLabelFromProps,\n}) => {\n const tableID = useTableID(id)\n const navigationLabelFromContext = useTableNavigationLabel()\n const navigationLabel = navigationLabelFromProps ?? navigationLabelFromContext\n const tableRef = useRef<HTMLTableElement>(null)\n const isGrid = Boolean(navigationLabel)\n const { selected } = useSelection()\n const { user } = useAuth()\n\n const activeColumns = columns?.filter((col) => col?.active)\n const hasRowSelection = isGrid && activeColumns?.some((column) => column.accessor === '_select')\n\n useGridNavigation({ id, isEnabled: isGrid && Boolean(activeColumns?.length), ref: tableRef })\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <TableGridContext value={isGrid}>\n <table\n aria-label={ariaLabel ?? navigationLabel}\n aria-multiselectable={hasRowSelection || undefined}\n cellPadding=\"0\"\n cellSpacing=\"0\"\n id={tableID}\n ref={tableRef}\n role={isGrid ? 'grid' : undefined}\n >\n <thead>\n <tr role={isGrid ? 'row' : undefined}>\n {activeColumns.map((col) => (\n <th\n data-column={col.accessor}\n id={`heading-${col.accessor.replace(/\\./g, '__')}`}\n key={col.accessor}\n role={isGrid ? 'columnheader' : undefined}\n scope=\"col\"\n >\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data?.map((row, rowIndex) => {\n const userEditing = row._userEditing as undefined | User\n const isLockedByAnotherUser =\n row._isLocked && userEditing && userEditing.id !== user?.id\n\n return (\n <tr\n aria-label={isGrid ? String(rowIndex + 1) : undefined}\n aria-selected={\n hasRowSelection && !isLockedByAnotherUser\n ? Boolean(\n (typeof row.id === 'string' || typeof row.id === 'number') &&\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useRef","useAuth","useSelection","useGridNavigation","TableGridContext","useTableID","useTableNavigationLabel","baseClass","Table","id","appearance","ariaLabel","BeforeTable","columns","data","navigationLabel","navigationLabelFromProps","tableID","navigationLabelFromContext","tableRef","isGrid","Boolean","selected","user","activeColumns","filter","col","active","hasRowSelection","some","column","accessor","isEnabled","length","ref","_jsx","_jsxs","className","join","value","undefined","cellPadding","cellSpacing","role","map","replace","scope","Heading","row","rowIndex","userEditing","_userEditing","isLockedByAnotherUser","_isLocked","String","get","isLinkedColumn","renderedCells"],"sources":["../../../src/elements/Table/index.tsx"],"sourcesContent":["'use client'\n\nimport type { Column, User } from 'payload'\n\nimport React, { useRef } from 'react'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useSelection } from '../../providers/Selection/index.js'\nimport { useGridNavigation } from './GridNavigation/useGridNavigation.js'\nimport { TableGridContext, useTableID, useTableNavigationLabel } from './TableIdentity.js'\nimport './index.css'\n\nconst baseClass = 'table'\n\nexport type Props = {\n readonly appearance?: 'condensed' | 'default'\n readonly ariaLabel?: string\n readonly BeforeTable?: React.ReactNode\n readonly columns?: Column[]\n readonly data: Record<string, unknown>[]\n readonly id?: string\n readonly navigationLabel?: string\n}\n\nexport const Table: React.FC<Props> = ({\n id,\n appearance,\n ariaLabel,\n BeforeTable,\n columns,\n data,\n navigationLabel: navigationLabelFromProps,\n}) => {\n const tableID = useTableID(id)\n const navigationLabelFromContext = useTableNavigationLabel()\n const navigationLabel = navigationLabelFromProps ?? navigationLabelFromContext\n const tableRef = useRef<HTMLTableElement>(null)\n const isGrid = Boolean(navigationLabel)\n const { selected } = useSelection()\n const { user } = useAuth()\n\n const activeColumns = columns?.filter((col) => col?.active)\n const hasRowSelection = isGrid && activeColumns?.some((column) => column.accessor === '_select')\n\n useGridNavigation({ id, isEnabled: isGrid && Boolean(activeColumns?.length), ref: tableRef })\n\n if (!activeColumns || activeColumns.length === 0) {\n return <div>No columns selected</div>\n }\n\n return (\n <div\n className={[baseClass, appearance && `${baseClass}--appearance-${appearance}`]\n .filter(Boolean)\n .join(' ')}\n >\n {BeforeTable}\n <TableGridContext value={isGrid}>\n <table\n aria-label={ariaLabel ?? navigationLabel}\n aria-multiselectable={hasRowSelection || undefined}\n cellPadding=\"0\"\n cellSpacing=\"0\"\n id={tableID}\n ref={tableRef}\n role={isGrid ? 'grid' : undefined}\n >\n <thead>\n <tr role={isGrid ? 'row' : undefined}>\n {activeColumns.map((col) => (\n <th\n data-column={col.accessor}\n id={`heading-${col.accessor.replace(/\\./g, '__')}`}\n key={col.accessor}\n role={isGrid ? 'columnheader' : undefined}\n scope=\"col\"\n >\n {col.Heading}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {data &&\n data?.map((row, rowIndex) => {\n const userEditing = row._userEditing as undefined | User\n const isLockedByAnotherUser =\n row._isLocked && userEditing && userEditing.id !== user?.id\n\n return (\n <tr\n aria-label={isGrid ? String(rowIndex + 1) : undefined}\n aria-selected={\n hasRowSelection && !isLockedByAnotherUser\n ? Boolean(\n (typeof row.id === 'string' || typeof row.id === 'number') &&\n selected.get(row.id),\n )\n : undefined\n }\n className={`row-${rowIndex + 1}`}\n data-id={row.id}\n key={\n typeof row.id === 'string' || typeof row.id === 'number'\n ? String(row.id)\n : rowIndex\n }\n role={isGrid ? 'row' : undefined}\n >\n {activeColumns.map((col) => {\n const { accessor } = col\n\n return (\n <td\n className={[\n `cell-${accessor.replace(/\\./g, '__')}`,\n col.isLinkedColumn && 'cell--linked',\n ]\n .filter(Boolean)\n .join(' ')}\n data-column={accessor}\n key={accessor}\n role={isGrid ? 'gridcell' : undefined}\n >\n {col.renderedCells[rowIndex]}\n </td>\n )\n })}\n </tr>\n )\n })}\n </tbody>\n </table>\n </TableGridContext>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{l as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=CodeEditor-
|
|
13
|
+
import{l as a}from"./chunk-R7M6BG75.js";import"./chunk-AVJIZPR3.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=CodeEditor-I6PL55BF.js.map
|
|
@@ -10,5 +10,5 @@ function require(m) {
|
|
|
10
10
|
}
|
|
11
11
|
// Workaround end
|
|
12
12
|
|
|
13
|
-
import{ca as a}from"./chunk-
|
|
14
|
-
//# sourceMappingURL=DatePicker-
|
|
13
|
+
import{ca as a}from"./chunk-O2RR6XEH.js";import"./chunk-AVJIZPR3.js";export{a as default};
|
|
14
|
+
//# sourceMappingURL=DatePicker-RFCB5VGD.js.map
|