@payloadcms/ui 3.41.0-canary.2 → 3.41.0-canary.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/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/DatePicker.js +36 -50
- package/dist/elements/DatePicker/DatePicker.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts +1 -0
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +3 -0
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-7N7BMHRP.js → CodeEditor-Z3ZZJH7C.js} +2 -2
- package/dist/exports/client/{DatePicker-4DPXLCID.js → DatePicker-JDD2RARJ.js} +2 -2
- package/dist/exports/client/chunk-CNCOIY3Y.js +26 -0
- package/dist/exports/client/{chunk-QPA2ZA5J.js.map → chunk-CNCOIY3Y.js.map} +3 -3
- package/dist/exports/client/{chunk-OA4JPMVI.js → chunk-L7Q3DZ67.js} +2 -2
- package/dist/exports/client/{chunk-OA4JPMVI.js.map → chunk-L7Q3DZ67.js.map} +3 -3
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +3 -3
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +26 -23
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +4 -0
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +4 -1
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +12 -6
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.d.ts +3 -3
- package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
- package/dist/views/Edit/index.d.ts +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +2 -0
- package/dist/views/Edit/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/exports/client/chunk-QPA2ZA5J.js +0 -26
- /package/dist/exports/client/{CodeEditor-7N7BMHRP.js.map → CodeEditor-Z3ZZJH7C.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-4DPXLCID.js.map → DatePicker-JDD2RARJ.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Text/types.ts"],"sourcesContent":["import type { StaticDescription, StaticLabel } from 'payload'\nimport type { ChangeEvent } from 'react'\nimport type React from 'react'\n\nimport type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nexport type SharedTextFieldProps =\n | {\n readonly hasMany?: false\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void\n }\n | {\n readonly hasMany?: true\n readonly onChange?: ReactSelectAdapterProps['onChange']\n }\n\nexport type TextInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly inputRef?: React.RefObject<HTMLInputElement>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly maxRows?: number\n readonly minRows?: number\n readonly onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n readonly path: string\n readonly placeholder?: Record<string, string> | string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly rtl?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly valueToRender?: Option[]\n} & SharedTextFieldProps\n"],"mappings":"AAgBA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Text/types.ts"],"sourcesContent":["import type { StaticDescription, StaticLabel } from 'payload'\nimport type { ChangeEvent, JSX } from 'react'\nimport type React from 'react'\n\nimport type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nexport type SharedTextFieldProps =\n | {\n readonly hasMany?: false\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void\n }\n | {\n readonly hasMany?: true\n readonly onChange?: ReactSelectAdapterProps['onChange']\n }\n\nexport type TextInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly htmlAttributes?: {\n autoComplete?: JSX.IntrinsicElements['input']['autoComplete']\n }\n readonly inputRef?: React.RefObject<HTMLInputElement>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly maxRows?: number\n readonly minRows?: number\n readonly onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n readonly path: string\n readonly placeholder?: Record<string, string> | string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly rtl?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly valueToRender?: Option[]\n} & SharedTextFieldProps\n"],"mappings":"AAgBA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAgF,MAAM,OAAO,CAAA;AAEpG,KAAK,iBAAiB,GAAG;IAGvB,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,sBAAsB,CAAA;IAI3F,CAAC,IAAI,EAAE;QAAE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAA;KAAE,GAAG,kBAAkB,CAAA;IAGnF,CAAC,IAAI,EAAE;QACL,cAAc,CAAC,EAAE,EAAE,GAAG,cAAc,CAAA;QACpC,UAAU,CAAC,EAAE,EAAE,GAAG,UAAU,CAAA;KAC7B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB;;;;OAIG;IACH,eAAe,EAAE,iBAAiB,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAsBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAAA;CACxD,CA8CA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAA6C,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import React, { createContext, use, useCallback, useEffect, useMemo, useState } from 'react';
|
|
5
|
+
import React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
6
6
|
const RootConfigContext = /*#__PURE__*/createContext(undefined);
|
|
7
7
|
function sanitizeClientConfig(unSanitizedConfig) {
|
|
8
8
|
if (!unSanitizedConfig?.blocks?.length || unSanitizedConfig.blocksMap) {
|
|
@@ -24,9 +24,14 @@ export const ConfigProvider = ({
|
|
|
24
24
|
config: configFromProps
|
|
25
25
|
}) => {
|
|
26
26
|
const [config, setConfig] = useState(() => sanitizeClientConfig(configFromProps));
|
|
27
|
+
const isFirstRenderRef = useRef(true);
|
|
27
28
|
// Need to update local config state if config from props changes, for HMR.
|
|
28
29
|
// That way, config changes will be updated in the UI immediately without needing a refresh.
|
|
29
30
|
useEffect(() => {
|
|
31
|
+
if (isFirstRenderRef.current) {
|
|
32
|
+
isFirstRenderRef.current = false;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
30
35
|
setConfig(sanitizeClientConfig(configFromProps));
|
|
31
36
|
}, [configFromProps]);
|
|
32
37
|
// Build lookup maps for collections and globals so we can do O(1) lookups by slug
|
|
@@ -56,12 +61,13 @@ export const ConfigProvider = ({
|
|
|
56
61
|
}
|
|
57
62
|
return null;
|
|
58
63
|
}, [collectionsBySlug_0, globalsBySlug_0]);
|
|
64
|
+
const value = useMemo(() => ({
|
|
65
|
+
config,
|
|
66
|
+
getEntityConfig,
|
|
67
|
+
setConfig
|
|
68
|
+
}), [config, getEntityConfig]);
|
|
59
69
|
return /*#__PURE__*/_jsx(RootConfigContext, {
|
|
60
|
-
value:
|
|
61
|
-
config,
|
|
62
|
-
getEntityConfig,
|
|
63
|
-
setConfig
|
|
64
|
-
},
|
|
70
|
+
value: value,
|
|
65
71
|
children: children
|
|
66
72
|
});
|
|
67
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","use","useCallback","useEffect","useMemo","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","isFirstRenderRef","current","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","value","_jsx","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n UnsanitizedClientConfig,\n} from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nfunction sanitizeClientConfig(\n unSanitizedConfig: ClientConfig | UnsanitizedClientConfig,\n): ClientConfig {\n if (!unSanitizedConfig?.blocks?.length || (unSanitizedConfig as ClientConfig).blocksMap) {\n ;(unSanitizedConfig as ClientConfig).blocksMap = {}\n return unSanitizedConfig as ClientConfig\n }\n const sanitizedConfig: ClientConfig = { ...unSanitizedConfig } as ClientConfig\n\n sanitizedConfig.blocksMap = {}\n\n for (const block of unSanitizedConfig.blocks) {\n sanitizedConfig.blocksMap[block.slug] = block\n }\n\n return sanitizedConfig\n}\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig | UnsanitizedClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(() => sanitizeClientConfig(configFromProps))\n\n const isFirstRenderRef = useRef(true)\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false\n return\n }\n setConfig(sanitizeClientConfig(configFromProps))\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n const value = useMemo(() => ({ config, getEntityConfig, setConfig }), [config, getEntityConfig])\n\n return <RootConfigContext value={value}>{children}</RootConfigContext>\n}\n\nexport const useConfig = (): ClientConfigContext => use(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AA6B7F,MAAMC,iBAAA,gBAAoBP,aAAA,CAA+CQ,SAAA;AAEzE,SAASC,qBACPC,iBAAyD;EAEzD,IAAI,CAACA,iBAAA,EAAmBC,MAAA,EAAQC,MAAA,IAAUF,iBAAC,CAAmCG,SAAS,EAAE;;IACrFH,iBAAA,CAAmCG,SAAS,GAAG,CAAC;IAClD,OAAOH,iBAAA;EACT;EACA,MAAMI,eAAA,GAAgC;IAAE,GAAGJ;EAAkB;EAE7DI,eAAA,CAAgBD,SAAS,GAAG,CAAC;EAE7B,KAAK,MAAME,KAAA,IAASL,iBAAA,CAAkBC,MAAM,EAAE;IAC5CG,eAAA,CAAgBD,SAAS,CAACE,KAAA,CAAMC,IAAI,CAAC,GAAGD,KAAA;EAC1C;EAEA,OAAOD,eAAA;AACT;AAEA,OAAO,MAAMG,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGf,QAAA,CAAuB,MAAMG,oBAAA,CAAqBW,eAAA;EAE9E,MAAME,gBAAA,GAAmBjB,MAAA,CAAO;EAEhC;EACA;EACAF,SAAA,CAAU;IACR,IAAImB,gBAAA,CAAiBC,OAAO,EAAE;MAC5BD,gBAAA,CAAiBC,OAAO,GAAG;MAC3B;IACF;IACAF,SAAA,CAAUZ,oBAAA,CAAqBW,eAAA;EACjC,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEI,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGrB,OAAA,CAAQ;IACnD,MAAMoB,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcP,MAAA,CAAOQ,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWV,IAAI,CAAC,GAAGU,UAAA;IACvC;IACA,KAAK,MAAME,MAAA,IAAUT,MAAA,CAAOU,OAAO,EAAE;MACnCJ,aAAa,CAACG,MAAA,CAAOZ,IAAI,CAAC,GAAGY,MAAA;IAC/B;IAEA,OAAO;MAAEJ,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACN,MAAA,CAAO;EAEX,MAAMW,eAAA,GAAkB5B,WAAA,CACrB6B,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOP,mBAAiB,CAACO,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAON,eAAa,CAACM,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACT,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,MAAMS,KAAA,GAAQ9B,OAAA,CAAQ,OAAO;IAAEe,MAAA;IAAQW,eAAA;IAAiBT;EAAU,IAAI,CAACF,MAAA,EAAQW,eAAA,CAAgB;EAE/F,oBAAOK,IAAA,CAAC5B,iBAAA;IAAkB2B,KAAA,EAAOA,KAAA;cAAQhB;;AAC3C;AAEA,OAAO,MAAMkB,SAAA,GAAYA,CAAA,KAA2BnC,GAAA,CAAIM,iBAAA","ignoreList":[]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import type { I18n } from '@payloadcms/translations';
|
|
1
|
+
import type { I18n, I18nClient } from '@payloadcms/translations';
|
|
2
2
|
export type FormatDateArgs = {
|
|
3
3
|
date: Date | number | string | undefined;
|
|
4
|
-
i18n: I18n<unknown, unknown>;
|
|
4
|
+
i18n: I18n<unknown, unknown> | I18nClient<unknown>;
|
|
5
5
|
pattern: string;
|
|
6
6
|
timezone?: string;
|
|
7
7
|
};
|
|
8
8
|
export declare const formatDate: ({ date, i18n, pattern, timezone }: FormatDateArgs) => string;
|
|
9
9
|
type FormatTimeToNowArgs = {
|
|
10
10
|
date: Date | number | string | undefined;
|
|
11
|
-
i18n: I18n<unknown, unknown>;
|
|
11
|
+
i18n: I18n<unknown, unknown> | I18nClient<unknown>;
|
|
12
12
|
};
|
|
13
13
|
export declare const formatTimeToNow: ({ date, i18n }: FormatTimeToNowArgs) => string;
|
|
14
14
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatDateTitle.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"formatDateTitle.d.ts","sourceRoot":"","sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAKhE,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,UAAU,sCAAuC,cAAc,KAAG,MAoB9E,CAAA;AAED,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACxC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,eAAe,mBAAoB,mBAAmB,KAAG,MAKrE,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatDateTitle.js","names":["TZDateMini","TZDate","format","formatDistanceToNow","transpose","formatDate","date","i18n","pattern","timezone","theDate","Date","DateWithOriginalTz","tz","modifiedDate","withTimeZone","dateWithTimezone","dateFNS","locale","t","formatTimeToNow"],"sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { format, formatDistanceToNow, transpose } from 'date-fns'\n\nexport type FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown>\n pattern: string\n timezone?: string\n}\n\nexport const formatDate = ({ date, i18n, pattern, timezone }: FormatDateArgs): string => {\n const theDate = new TZDate(new Date(date))\n\n if (timezone) {\n const DateWithOriginalTz = TZDate.tz(timezone)\n\n const modifiedDate = theDate.withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n return i18n.dateFNS\n ? format(dateWithTimezone, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n }\n\n return i18n.dateFNS\n ? format(theDate, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = new Date(date)\n return i18n?.dateFNS\n ? formatDistanceToNow(theDate, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n"],"mappings":"AAEA,SAASA,UAAA,IAAcC,MAAM,QAAQ;AACrC,SAASC,MAAM,EAAEC,mBAAmB,EAAEC,SAAS,QAAQ;AASvD,OAAO,MAAMC,UAAA,GAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,OAAO;EAAEC;AAAQ,CAAkB;EAC1E,MAAMC,OAAA,GAAU,IAAIT,MAAA,CAAO,IAAIU,IAAA,CAAKL,IAAA;EAEpC,IAAIG,QAAA,EAAU;IACZ,MAAMG,kBAAA,GAAqBX,MAAA,CAAOY,EAAE,CAACJ,QAAA;IAErC,MAAMK,YAAA,GAAeJ,OAAA,CAAQK,YAAY,CAACN,QAAA;IAE1C;IACA,MAAMO,gBAAA,GAAmBZ,SAAA,CAAUU,YAAA,EAAcF,kBAAA;IAEjD;IACA,OAAOL,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOc,gBAAA,EAAkBR,OAAA,EAAS;MAAEU,MAAA,EAAQX,IAAA,CAAKU;IAAQ,KACzD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;EACvC;EAEA,OAAOZ,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOQ,OAAA,EAASF,OAAA,EAAS;IAAEU,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KAChD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC;AAOA,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEd,IAAI;EAAEC;AAAI,CAAuB;EACjE,MAAMG,OAAA,GAAU,IAAIC,IAAA,CAAKL,IAAA;EACzB,OAAOC,IAAA,EAAMU,OAAA,GACTd,mBAAA,CAAoBO,OAAA,EAAS;IAAEQ,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KACpD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"formatDateTitle.js","names":["TZDateMini","TZDate","format","formatDistanceToNow","transpose","formatDate","date","i18n","pattern","timezone","theDate","Date","DateWithOriginalTz","tz","modifiedDate","withTimeZone","dateWithTimezone","dateFNS","locale","t","formatTimeToNow"],"sources":["../../../src/utilities/formatDocTitle/formatDateTitle.ts"],"sourcesContent":["import type { I18n, I18nClient } from '@payloadcms/translations'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { format, formatDistanceToNow, transpose } from 'date-fns'\n\nexport type FormatDateArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown> | I18nClient<unknown>\n pattern: string\n timezone?: string\n}\n\nexport const formatDate = ({ date, i18n, pattern, timezone }: FormatDateArgs): string => {\n const theDate = new TZDate(new Date(date))\n\n if (timezone) {\n const DateWithOriginalTz = TZDate.tz(timezone)\n\n const modifiedDate = theDate.withTimeZone(timezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n return i18n.dateFNS\n ? format(dateWithTimezone, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n }\n\n return i18n.dateFNS\n ? format(theDate, pattern, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n\ntype FormatTimeToNowArgs = {\n date: Date | number | string | undefined\n i18n: I18n<unknown, unknown> | I18nClient<unknown>\n}\n\nexport const formatTimeToNow = ({ date, i18n }: FormatTimeToNowArgs): string => {\n const theDate = new Date(date)\n return i18n?.dateFNS\n ? formatDistanceToNow(theDate, { locale: i18n.dateFNS })\n : `${i18n.t('general:loading')}...`\n}\n"],"mappings":"AAEA,SAASA,UAAA,IAAcC,MAAM,QAAQ;AACrC,SAASC,MAAM,EAAEC,mBAAmB,EAAEC,SAAS,QAAQ;AASvD,OAAO,MAAMC,UAAA,GAAaA,CAAC;EAAEC,IAAI;EAAEC,IAAI;EAAEC,OAAO;EAAEC;AAAQ,CAAkB;EAC1E,MAAMC,OAAA,GAAU,IAAIT,MAAA,CAAO,IAAIU,IAAA,CAAKL,IAAA;EAEpC,IAAIG,QAAA,EAAU;IACZ,MAAMG,kBAAA,GAAqBX,MAAA,CAAOY,EAAE,CAACJ,QAAA;IAErC,MAAMK,YAAA,GAAeJ,OAAA,CAAQK,YAAY,CAACN,QAAA;IAE1C;IACA,MAAMO,gBAAA,GAAmBZ,SAAA,CAAUU,YAAA,EAAcF,kBAAA;IAEjD;IACA,OAAOL,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOc,gBAAA,EAAkBR,OAAA,EAAS;MAAEU,MAAA,EAAQX,IAAA,CAAKU;IAAQ,KACzD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;EACvC;EAEA,OAAOZ,IAAA,CAAKU,OAAO,GACff,MAAA,CAAOQ,OAAA,EAASF,OAAA,EAAS;IAAEU,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KAChD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC;AAOA,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEd,IAAI;EAAEC;AAAI,CAAuB;EACjE,MAAMG,OAAA,GAAU,IAAIC,IAAA,CAAKL,IAAA;EACzB,OAAOC,IAAA,EAAMU,OAAA,GACTd,mBAAA,CAAoBO,OAAA,EAAS;IAAEQ,MAAA,EAAQX,IAAA,CAAKU;EAAQ,KACpD,GAAGV,IAAA,CAAKY,CAAC,CAAC,uBAAuB;AACvC","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { DocumentViewClientProps } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import './index.scss';
|
|
4
|
-
export declare function DefaultEditView({ BeforeDocumentControls, Description, PreviewButton, PublishButton, SaveButton, SaveDraftButton, Upload: CustomUpload, }: DocumentViewClientProps): React.JSX.Element;
|
|
4
|
+
export declare function DefaultEditView({ BeforeDocumentControls, Description, EditMenuItems, PreviewButton, PublishButton, SaveButton, SaveDraftButton, Upload: CustomUpload, }: DocumentViewClientProps): React.JSX.Element;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,GACrB,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Edit/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAc,uBAAuB,EAAa,MAAM,SAAS,CAAA;AAI7E,OAAO,KAAsE,MAAM,OAAO,CAAA;AA8B1F,OAAO,cAAc,CAAA;AAOrB,wBAAgB,eAAe,CAAC,EAC9B,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,eAAe,EACf,MAAM,EAAE,YAAY,GACrB,EAAE,uBAAuB,qBAqiBzB"}
|
package/dist/views/Edit/index.js
CHANGED
|
@@ -37,6 +37,7 @@ const baseClass = 'collection-edit';
|
|
|
37
37
|
export function DefaultEditView({
|
|
38
38
|
BeforeDocumentControls,
|
|
39
39
|
Description,
|
|
40
|
+
EditMenuItems,
|
|
40
41
|
PreviewButton,
|
|
41
42
|
PublishButton,
|
|
42
43
|
SaveButton,
|
|
@@ -373,6 +374,7 @@ export function DefaultEditView({
|
|
|
373
374
|
data: savedDocumentData,
|
|
374
375
|
disableActions: disableActions,
|
|
375
376
|
disableCreate: disableCreate,
|
|
377
|
+
EditMenuItems: EditMenuItems,
|
|
376
378
|
hasPublishPermission: hasPublishPermission,
|
|
377
379
|
hasSavePermission: hasSavePermission,
|
|
378
380
|
id: id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","BeforeDocumentControls","Description","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["/* eslint-disable react-compiler/react-compiler -- TODO: fix */\n'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n redirectAfterCreate,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n skipValidation: !submitted,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["useRouter","useSearchParams","formatAdminURL","React","Fragment","useCallback","useEffect","useMemo","useRef","useState","DocumentControls","DocumentDrawerHeader","useDocumentDrawerContext","DocumentFields","DocumentLocked","DocumentTakeOver","LeaveWithoutSaving","Upload","Form","useAuth","useConfig","useDocumentEvents","useDocumentInfo","useEditDepth","OperationProvider","useRouteTransition","useServerFunctions","useUploadEdits","abortAndIgnore","handleAbortRef","handleBackToDashboard","handleGoBack","handleTakeOver","Auth","SetDocumentStepNav","SetDocumentTitle","baseClass","DefaultEditView","BeforeDocumentControls","Description","EditMenuItems","PreviewButton","PublishButton","SaveButton","SaveDraftButton","CustomUpload","id","action","AfterDocument","AfterFields","apiURL","BeforeFields","collectionSlug","currentEditor","disableActions","disableCreate","disableLeaveWithoutSaving","docPermissions","documentIsLocked","getDocPermissions","getDocPreferences","globalSlug","hasPublishPermission","hasSavePermission","incrementVersionCount","initialState","isEditing","isInitializing","lastUpdateTime","redirectAfterCreate","redirectAfterDelete","redirectAfterDuplicate","savedDocumentData","setCurrentEditor","setDocumentIsLocked","unlockDocument","updateDocumentEditor","updateSavedDocumentData","clearDoc","drawerSlug","onDelete","onDuplicate","onSave","onSaveFromContext","isInDrawer","Boolean","refreshCookieAsync","user","config","admin","userSlug","routes","adminRoute","getEntityConfig","collectionConfig","globalConfig","depth","router","params","reportUpdate","resetUploadEdits","getFormState","startRouteTransition","abortOnChangeRef","abortOnSaveRef","locale","get","entitySlug","slug","operation","auth","undefined","upload","docConfig","lockDocumentsProp","lockDocuments","isLockingEnabled","lockDurationDefault","lockDuration","duration","lockDurationInMilliseconds","autosaveEnabled","versions","drafts","autosave","preventLeaveWithoutSaving","isReadOnlyForIncomingUser","setIsReadOnlyForIncomingUser","showTakeOverModal","setShowTakeOverModal","editSessionStartTime","setEditSessionStartTime","Date","now","lockExpiryTime","isLockExpired","documentLockStateRef","hasShownLockedModal","isLocked","classes","push","schemaPathSegments","validateBeforeSubmit","setValidateBeforeSubmit","disableLocalStrategy","handleDocumentLocking","lockedState","previousOwnerID","current","lockedUserID","json","controller","document","doc","result","updatedAt","toISOString","redirectRoute","path","docPreferences","state","data","renderAllFields","returnLockStatus","schemaPath","join","signal","skipValidation","onChange","formState","prevFormState","submitted","currentTime","timeSinceLastUpdate","updateLastEdited","shouldUnlockDocument","some","window","location","pathname","includes","abortOnChange","abortOnSave","shouldShowDocumentLockedModal","_jsx","className","filter","_jsxs","disabled","disableValidationOnSubmit","isDocumentForm","method","onSuccess","isActive","onReadOnly","onTakeOver","pluralLabel","labels","plural","useAsTitle","fallback","toString","customComponents","onDrawerCreateNew","permissions","readOnlyForIncomingUser","email","loginWithUsername","readOnly","requirePassword","useAPIKey","username","verify","uploadConfig","fields"],"sources":["../../../src/views/Edit/index.tsx"],"sourcesContent":["/* eslint-disable react-compiler/react-compiler -- TODO: fix */\n'use client'\n\nimport type { ClientUser, DocumentViewClientProps, FormState } from 'payload'\n\nimport { useRouter, useSearchParams } from 'next/navigation.js'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\nimport type { FormProps } from '../../forms/Form/index.js'\nimport type { LockedState } from '../../utilities/buildFormState.js'\n\nimport { DocumentControls } from '../../elements/DocumentControls/index.js'\nimport { DocumentDrawerHeader } from '../../elements/DocumentDrawer/DrawerHeader/index.js'\nimport { useDocumentDrawerContext } from '../../elements/DocumentDrawer/Provider.js'\nimport { DocumentFields } from '../../elements/DocumentFields/index.js'\nimport { DocumentLocked } from '../../elements/DocumentLocked/index.js'\nimport { DocumentTakeOver } from '../../elements/DocumentTakeOver/index.js'\nimport { LeaveWithoutSaving } from '../../elements/LeaveWithoutSaving/index.js'\nimport { Upload } from '../../elements/Upload/index.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentEvents } from '../../providers/DocumentEvents/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { OperationProvider } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { handleBackToDashboard } from '../../utilities/handleBackToDashboard.js'\nimport { handleGoBack } from '../../utilities/handleGoBack.js'\nimport { handleTakeOver } from '../../utilities/handleTakeOver.js'\nimport { Auth } from './Auth/index.js'\nimport { SetDocumentStepNav } from './SetDocumentStepNav/index.js'\nimport { SetDocumentTitle } from './SetDocumentTitle/index.js'\nimport './index.scss'\n\nconst baseClass = 'collection-edit'\n\n// This component receives props only on _pages_\n// When rendered within a drawer, props are empty\n// This is solely to support custom edit views which get server-rendered\nexport function DefaultEditView({\n BeforeDocumentControls,\n Description,\n EditMenuItems,\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n Upload: CustomUpload,\n}: DocumentViewClientProps) {\n const {\n id,\n action,\n AfterDocument,\n AfterFields,\n apiURL,\n BeforeFields,\n collectionSlug,\n currentEditor,\n disableActions,\n disableCreate,\n disableLeaveWithoutSaving,\n docPermissions,\n documentIsLocked,\n getDocPermissions,\n getDocPreferences,\n globalSlug,\n hasPublishPermission,\n hasSavePermission,\n incrementVersionCount,\n initialState,\n isEditing,\n isInitializing,\n lastUpdateTime,\n redirectAfterCreate,\n redirectAfterDelete,\n redirectAfterDuplicate,\n savedDocumentData,\n setCurrentEditor,\n setDocumentIsLocked,\n unlockDocument,\n updateDocumentEditor,\n updateSavedDocumentData,\n } = useDocumentInfo()\n\n const {\n clearDoc,\n drawerSlug,\n onDelete,\n onDuplicate,\n onSave: onSaveFromContext,\n } = useDocumentDrawerContext()\n\n const isInDrawer = Boolean(drawerSlug)\n\n const { refreshCookieAsync, user } = useAuth()\n\n const {\n config,\n config: {\n admin: { user: userSlug },\n routes: { admin: adminRoute },\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const depth = useEditDepth()\n\n const router = useRouter()\n const params = useSearchParams()\n const { reportUpdate } = useDocumentEvents()\n const { resetUploadEdits } = useUploadEdits()\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n\n const abortOnChangeRef = useRef<AbortController>(null)\n const abortOnSaveRef = useRef<AbortController>(null)\n\n const locale = params.get('locale')\n\n const entitySlug = collectionConfig?.slug || globalConfig?.slug\n\n const operation = collectionSlug && !id ? 'create' : 'update'\n\n const auth = collectionConfig ? collectionConfig.auth : undefined\n const upload = collectionConfig ? collectionConfig.upload : undefined\n\n const docConfig = collectionConfig || globalConfig\n\n const lockDocumentsProp = docConfig?.lockDocuments !== undefined ? docConfig?.lockDocuments : true\n const isLockingEnabled = lockDocumentsProp !== false\n\n const lockDurationDefault = 300 // Default 5 minutes in seconds\n const lockDuration =\n typeof lockDocumentsProp === 'object' ? lockDocumentsProp.duration : lockDurationDefault\n const lockDurationInMilliseconds = lockDuration * 1000\n\n const autosaveEnabled = Boolean(\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave),\n )\n\n const preventLeaveWithoutSaving =\n typeof disableLeaveWithoutSaving !== 'undefined' ? !disableLeaveWithoutSaving : !autosaveEnabled\n\n const [isReadOnlyForIncomingUser, setIsReadOnlyForIncomingUser] = useState(false)\n const [showTakeOverModal, setShowTakeOverModal] = useState(false)\n\n const [editSessionStartTime, setEditSessionStartTime] = useState(Date.now())\n\n const lockExpiryTime = lastUpdateTime + lockDurationInMilliseconds\n\n const isLockExpired = Date.now() > lockExpiryTime\n\n const documentLockStateRef = useRef<{\n hasShownLockedModal: boolean\n isLocked: boolean\n user: ClientUser | number | string\n } | null>({\n hasShownLockedModal: false,\n isLocked: false,\n user: null,\n })\n\n const classes = [baseClass, (id || globalSlug) && `${baseClass}--is-editing`]\n\n if (globalSlug) {\n classes.push(`global-edit--${globalSlug}`)\n }\n\n if (collectionSlug) {\n classes.push(`collection-edit--${collectionSlug}`)\n }\n\n const schemaPathSegments = useMemo(() => [entitySlug], [entitySlug])\n\n const [validateBeforeSubmit, setValidateBeforeSubmit] = useState(() => {\n if (operation === 'create' && auth && !auth.disableLocalStrategy) {\n return true\n }\n\n return false\n })\n\n const handleDocumentLocking = useCallback(\n (lockedState: LockedState) => {\n setDocumentIsLocked(true)\n const previousOwnerID =\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id\n : documentLockStateRef.current?.user\n\n if (lockedState) {\n const lockedUserID =\n typeof lockedState.user === 'string' || typeof lockedState.user === 'number'\n ? lockedState.user\n : lockedState.user.id\n\n if (!documentLockStateRef.current || lockedUserID !== previousOwnerID) {\n if (previousOwnerID === user.id && lockedUserID !== user.id) {\n setShowTakeOverModal(true)\n documentLockStateRef.current.hasShownLockedModal = true\n }\n\n documentLockStateRef.current = {\n hasShownLockedModal: documentLockStateRef.current?.hasShownLockedModal || false,\n isLocked: true,\n user: lockedState.user as ClientUser,\n }\n setCurrentEditor(lockedState.user as ClientUser)\n }\n }\n },\n [setCurrentEditor, setDocumentIsLocked, user?.id],\n )\n\n const onSave = useCallback(\n async (json): Promise<FormState> => {\n const controller = handleAbortRef(abortOnSaveRef)\n\n const document = json?.doc || json?.result\n\n reportUpdate({\n id,\n entitySlug,\n updatedAt: document?.updatedAt || new Date().toISOString(),\n })\n\n // If we're editing the doc of the logged-in user,\n // Refresh the cookie to get new permissions\n if (user && collectionSlug === userSlug && id === user.id) {\n void refreshCookieAsync()\n }\n\n incrementVersionCount()\n\n if (typeof updateSavedDocumentData === 'function') {\n void updateSavedDocumentData(document || {})\n }\n\n if (typeof onSaveFromContext === 'function') {\n const operation = id ? 'update' : 'create'\n\n void onSaveFromContext({\n ...json,\n operation,\n updatedAt:\n operation === 'update'\n ? new Date().toISOString()\n : document?.updatedAt || new Date().toISOString(),\n })\n }\n\n if (!isEditing && depth < 2 && redirectAfterCreate !== false) {\n // Redirect to the same locale if it's been set\n const redirectRoute = formatAdminURL({\n adminRoute,\n path: `/collections/${collectionSlug}/${document?.id}${locale ? `?locale=${locale}` : ''}`,\n })\n\n startRouteTransition(() => router.push(redirectRoute))\n } else {\n resetUploadEdits()\n }\n\n await getDocPermissions(json)\n\n if ((id || globalSlug) && !autosaveEnabled) {\n const docPreferences = await getDocPreferences()\n\n const { state } = await getFormState({\n id,\n collectionSlug,\n data: document,\n docPermissions,\n docPreferences,\n globalSlug,\n operation,\n renderAllFields: true,\n returnLockStatus: false,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n skipValidation: true,\n })\n\n // Unlock the document after save\n if (isLockingEnabled) {\n setDocumentIsLocked(false)\n }\n\n abortOnSaveRef.current = null\n\n return state\n }\n },\n [\n reportUpdate,\n id,\n entitySlug,\n user,\n collectionSlug,\n userSlug,\n incrementVersionCount,\n updateSavedDocumentData,\n onSaveFromContext,\n redirectAfterCreate,\n isEditing,\n depth,\n getDocPermissions,\n globalSlug,\n autosaveEnabled,\n refreshCookieAsync,\n adminRoute,\n locale,\n router,\n resetUploadEdits,\n getDocPreferences,\n getFormState,\n docPermissions,\n operation,\n schemaPathSegments,\n isLockingEnabled,\n setDocumentIsLocked,\n startRouteTransition,\n ],\n )\n\n const onChange: FormProps['onChange'][0] = useCallback(\n async ({ formState: prevFormState, submitted }) => {\n const controller = handleAbortRef(abortOnChangeRef)\n\n const currentTime = Date.now()\n const timeSinceLastUpdate = currentTime - editSessionStartTime\n\n const updateLastEdited = isLockingEnabled && timeSinceLastUpdate >= 10000 // 10 seconds\n\n if (updateLastEdited) {\n setEditSessionStartTime(currentTime)\n }\n\n const docPreferences = await getDocPreferences()\n\n const { lockedState, state } = await getFormState({\n id,\n collectionSlug,\n docPermissions,\n docPreferences,\n formState: prevFormState,\n globalSlug,\n operation,\n skipValidation: !submitted,\n // Performance optimization: Setting it to false ensure that only fields that have explicit requireRender set in the form state will be rendered (e.g. new array rows).\n // We only want to render ALL fields on initial render, not in onChange.\n renderAllFields: false,\n returnLockStatus: isLockingEnabled,\n schemaPath: schemaPathSegments.join('.'),\n signal: controller.signal,\n updateLastEdited,\n })\n\n if (isLockingEnabled) {\n handleDocumentLocking(lockedState)\n }\n\n abortOnChangeRef.current = null\n\n return state\n },\n [\n id,\n collectionSlug,\n getDocPreferences,\n getFormState,\n globalSlug,\n handleDocumentLocking,\n isLockingEnabled,\n operation,\n schemaPathSegments,\n docPermissions,\n editSessionStartTime,\n ],\n )\n\n // Clean up when the component unmounts or when the document is unlocked\n useEffect(() => {\n return () => {\n if (isLockingEnabled && documentIsLocked && (id || globalSlug)) {\n // Only retain the lock if the user is still viewing the document\n const shouldUnlockDocument = !['preview', 'api', 'versions'].some((path) =>\n window.location.pathname.includes(path),\n )\n if (shouldUnlockDocument) {\n // Check if this user is still the current editor\n if (\n typeof documentLockStateRef.current?.user === 'object'\n ? documentLockStateRef.current?.user?.id === user?.id\n : documentLockStateRef.current?.user === user?.id\n ) {\n void unlockDocument(id, collectionSlug ?? globalSlug)\n setDocumentIsLocked(false)\n setCurrentEditor(null)\n }\n }\n }\n\n setShowTakeOverModal(false)\n }\n }, [\n collectionSlug,\n globalSlug,\n id,\n unlockDocument,\n user,\n setCurrentEditor,\n isLockingEnabled,\n documentIsLocked,\n setDocumentIsLocked,\n ])\n\n useEffect(() => {\n const abortOnChange = abortOnChangeRef.current\n const abortOnSave = abortOnSaveRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n abortAndIgnore(abortOnSave)\n }\n }, [])\n\n const shouldShowDocumentLockedModal =\n documentIsLocked &&\n currentEditor &&\n (typeof currentEditor === 'object'\n ? currentEditor.id !== user?.id\n : currentEditor !== user?.id) &&\n !isReadOnlyForIncomingUser &&\n !showTakeOverModal &&\n !documentLockStateRef.current?.hasShownLockedModal &&\n !isLockExpired\n\n return (\n <main className={classes.filter(Boolean).join(' ')}>\n <OperationProvider operation={operation}>\n <Form\n action={action}\n className={`${baseClass}__form`}\n disabled={isReadOnlyForIncomingUser || isInitializing || !hasSavePermission}\n disableValidationOnSubmit={!validateBeforeSubmit}\n initialState={!isInitializing && initialState}\n isDocumentForm={true}\n isInitializing={isInitializing}\n method={id ? 'PATCH' : 'POST'}\n onChange={[onChange]}\n onSuccess={onSave}\n >\n {isInDrawer && <DocumentDrawerHeader drawerSlug={drawerSlug} />}\n {isLockingEnabled && shouldShowDocumentLockedModal && !isReadOnlyForIncomingUser && (\n <DocumentLocked\n handleGoBack={() => handleGoBack({ adminRoute, collectionSlug, router })}\n isActive={shouldShowDocumentLockedModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n false,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n )\n }\n updatedAt={lastUpdateTime}\n user={currentEditor}\n />\n )}\n {isLockingEnabled && showTakeOverModal && (\n <DocumentTakeOver\n handleBackToDashboard={() => handleBackToDashboard({ adminRoute, router })}\n isActive={showTakeOverModal}\n onReadOnly={() => {\n setIsReadOnlyForIncomingUser(true)\n setShowTakeOverModal(false)\n }}\n />\n )}\n {!isReadOnlyForIncomingUser && preventLeaveWithoutSaving && <LeaveWithoutSaving />}\n {!isInDrawer && (\n <SetDocumentStepNav\n collectionSlug={collectionConfig?.slug}\n globalSlug={globalConfig?.slug}\n id={id}\n pluralLabel={collectionConfig?.labels?.plural}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n <SetDocumentTitle\n collectionConfig={collectionConfig}\n config={config}\n fallback={depth <= 1 ? id?.toString() : undefined}\n globalConfig={globalConfig}\n />\n <DocumentControls\n apiURL={apiURL}\n BeforeDocumentControls={BeforeDocumentControls}\n customComponents={{\n PreviewButton,\n PublishButton,\n SaveButton,\n SaveDraftButton,\n }}\n data={savedDocumentData}\n disableActions={disableActions}\n disableCreate={disableCreate}\n EditMenuItems={EditMenuItems}\n hasPublishPermission={hasPublishPermission}\n hasSavePermission={hasSavePermission}\n id={id}\n isEditing={isEditing}\n onDelete={onDelete}\n onDrawerCreateNew={clearDoc}\n onDuplicate={onDuplicate}\n onSave={onSave}\n onTakeOver={() =>\n handleTakeOver(\n id,\n collectionSlug,\n globalSlug,\n user,\n true,\n updateDocumentEditor,\n setCurrentEditor,\n documentLockStateRef,\n isLockingEnabled,\n setIsReadOnlyForIncomingUser,\n )\n }\n permissions={docPermissions}\n readOnlyForIncomingUser={isReadOnlyForIncomingUser}\n redirectAfterDelete={redirectAfterDelete}\n redirectAfterDuplicate={redirectAfterDuplicate}\n slug={collectionConfig?.slug || globalConfig?.slug}\n user={currentEditor}\n />\n <DocumentFields\n AfterFields={AfterFields}\n BeforeFields={\n BeforeFields || (\n <Fragment>\n {auth && (\n <Auth\n className={`${baseClass}__auth`}\n collectionSlug={collectionConfig.slug}\n disableLocalStrategy={collectionConfig.auth?.disableLocalStrategy}\n email={savedDocumentData?.email}\n loginWithUsername={auth?.loginWithUsername}\n operation={operation}\n readOnly={!hasSavePermission}\n requirePassword={!id}\n setValidateBeforeSubmit={setValidateBeforeSubmit}\n useAPIKey={auth.useAPIKey}\n username={savedDocumentData?.username}\n verify={auth.verify}\n />\n )}\n {upload && (\n <React.Fragment>\n {CustomUpload || (\n <Upload\n collectionSlug={collectionConfig.slug}\n initialState={initialState}\n uploadConfig={upload}\n />\n )}\n </React.Fragment>\n )}\n </Fragment>\n )\n }\n Description={Description}\n docPermissions={docPermissions}\n fields={docConfig.fields}\n readOnly={isReadOnlyForIncomingUser || !hasSavePermission}\n schemaPathSegments={schemaPathSegments}\n />\n {AfterDocument}\n </Form>\n </OperationProvider>\n </main>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/ui",
|
|
3
|
-
"version": "3.41.0-canary.
|
|
3
|
+
"version": "3.41.0-canary.3",
|
|
4
4
|
"homepage": "https://payloadcms.com",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -136,7 +136,7 @@
|
|
|
136
136
|
"ts-essentials": "10.0.3",
|
|
137
137
|
"use-context-selector": "2.0.0",
|
|
138
138
|
"uuid": "10.0.0",
|
|
139
|
-
"@payloadcms/translations": "3.41.0-canary.
|
|
139
|
+
"@payloadcms/translations": "3.41.0-canary.3"
|
|
140
140
|
},
|
|
141
141
|
"devDependencies": {
|
|
142
142
|
"@babel/cli": "7.27.2",
|
|
@@ -151,14 +151,14 @@
|
|
|
151
151
|
"babel-plugin-react-compiler": "19.1.0-rc.2",
|
|
152
152
|
"esbuild": "0.25.5",
|
|
153
153
|
"esbuild-sass-plugin": "3.3.1",
|
|
154
|
-
"payload": "3.41.0-canary.
|
|
154
|
+
"payload": "3.41.0-canary.3",
|
|
155
155
|
"@payloadcms/eslint-config": "3.28.0"
|
|
156
156
|
},
|
|
157
157
|
"peerDependencies": {
|
|
158
158
|
"next": "^15.2.3",
|
|
159
159
|
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
160
160
|
"react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
161
|
-
"payload": "3.41.0-canary.
|
|
161
|
+
"payload": "3.41.0-canary.3"
|
|
162
162
|
},
|
|
163
163
|
"engines": {
|
|
164
164
|
"node": "^18.20.2 || >=20.9.0"
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
// Workaround for react-datepicker and other cjs dependencies potentially inserting require("react") statements
|
|
3
|
-
import * as requireReact from 'react';
|
|
4
|
-
import * as requireReactDom from 'react-dom';
|
|
5
|
-
|
|
6
|
-
function require(m) {
|
|
7
|
-
if (m === 'react') return requireReact;
|
|
8
|
-
if (m === 'react-dom') return requireReactDom;
|
|
9
|
-
throw new Error(`Unknown module ${m}`);
|
|
10
|
-
}
|
|
11
|
-
// Workaround end
|
|
12
|
-
|
|
13
|
-
import{c as Sr}from"react/compiler-runtime";import{jsx as Ue}from"react/jsx-runtime";function qe(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function se(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function re(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?se(Object(r),!0).forEach(function(n){qe(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):se(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function ze(t,e){if(t==null)return{};var r={},n=Object.keys(t),o,i;for(i=0;i<n.length;i++)o=n[i],!(e.indexOf(o)>=0)&&(r[o]=t[o]);return r}function de(t,e){if(t==null)return{};var r=ze(t,e),n,o;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(o=0;o<i.length;o++)n=i[o],!(e.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(t,n)&&(r[n]=t[n])}return r}function me(t,e){return Ke(t)||Ge(t,e)||Ye(t,e)||Je()}function Ke(t){if(Array.isArray(t))return t}function Ge(t,e){if(!(typeof Symbol>"u"||!(Symbol.iterator in Object(t)))){var r=[],n=!0,o=!1,i=void 0;try{for(var c=t[Symbol.iterator](),a;!(n=(a=c.next()).done)&&(r.push(a.value),!(e&&r.length===e));n=!0);}catch(u){o=!0,i=u}finally{try{!n&&c.return!=null&&c.return()}finally{if(o)throw i}}return r}}function Ye(t,e){if(t){if(typeof t=="string")return fe(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return fe(t,e)}}function fe(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}function Je(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
14
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Qe(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function pe(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function ge(t){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?pe(Object(r),!0).forEach(function(n){Qe(t,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):pe(Object(r)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(r,n))})}return t}function Xe(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return function(n){return e.reduceRight(function(o,i){return i(o)},n)}}function W(t){return function e(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=t.length?t.apply(this,o):function(){for(var c=arguments.length,a=new Array(c),u=0;u<c;u++)a[u]=arguments[u];return e.apply(r,[].concat(o,a))}}}function G(t){return{}.toString.call(t).includes("Object")}function Ze(t){return!Object.keys(t).length}function H(t){return typeof t=="function"}function et(t,e){return Object.prototype.hasOwnProperty.call(t,e)}function tt(t,e){return G(e)||A("changeType"),Object.keys(e).some(function(r){return!et(t,r)})&&A("changeField"),e}function rt(t){H(t)||A("selectorType")}function nt(t){H(t)||G(t)||A("handlerType"),G(t)&&Object.values(t).some(function(e){return!H(e)})&&A("handlersType")}function ot(t){t||A("initialIsRequired"),G(t)||A("initialType"),Ze(t)&&A("initialContent")}function it(t,e){throw new Error(t[e]||t.default)}var at={initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"},A=W(it)(at),K={changes:tt,selector:rt,handler:nt,initial:ot};function ct(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};K.initial(t),K.handler(e);var r={current:t},n=W(st)(r,e),o=W(lt)(r),i=W(K.changes)(t),c=W(ut)(r);function a(){var l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:function(d){return d};return K.selector(l),l(r.current)}function u(l){Xe(n,o,i,c)(l)}return[a,u]}function ut(t,e){return H(e)?e(t.current):e}function lt(t,e){return t.current=ge(ge({},t.current),e),e}function st(t,e,r){return H(e)?e(t.current):Object.keys(r).forEach(function(n){var o;return(o=e[n])===null||o===void 0?void 0:o.call(e,t.current[n])}),r}var ft={create:ct},he=ft;var dt={paths:{vs:"https://cdn.jsdelivr.net/npm/monaco-editor@0.52.2/min/vs"}},ve=dt;function mt(t){return function e(){for(var r=this,n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];return o.length>=t.length?t.apply(this,o):function(){for(var c=arguments.length,a=new Array(c),u=0;u<c;u++)a[u]=arguments[u];return e.apply(r,[].concat(o,a))}}}var be=mt;function pt(t){return{}.toString.call(t).includes("Object")}var ye=pt;function gt(t){return t||we("configIsRequired"),ye(t)||we("configType"),t.urls?(ht(),{paths:{vs:t.urls.monacoBase}}):t}function ht(){console.warn(Oe.deprecation)}function vt(t,e){throw new Error(t[e]||t.default)}var Oe={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:`Deprecation warning!
|
|
15
|
-
You are using deprecated way of configuration.
|
|
16
|
-
|
|
17
|
-
Instead of using
|
|
18
|
-
monaco.config({ urls: { monacoBase: '...' } })
|
|
19
|
-
use
|
|
20
|
-
monaco.config({ paths: { vs: '...' } })
|
|
21
|
-
|
|
22
|
-
For more please check the link https://github.com/suren-atoyan/monaco-loader#config
|
|
23
|
-
`},we=be(vt)(Oe),bt={config:gt},je=bt;var yt=function(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];return function(o){return r.reduceRight(function(i,c){return c(i)},o)}},Me=yt;function xe(t,e){return Object.keys(e).forEach(function(r){e[r]instanceof Object&&t[r]&&Object.assign(e[r],xe(t[r],e[r]))}),re(re({},t),e)}var Se=xe;var wt={type:"cancelation",msg:"operation is manually canceled"};function Ot(t){var e=!1,r=new Promise(function(n,o){t.then(function(i){return e?o(wt):n(i)}),t.catch(o)});return r.cancel=function(){return e=!0},r}var Y=Ot;var jt=he.create({config:ve,isInitialized:!1,resolve:null,reject:null,monaco:null}),Ee=me(jt,2),B=Ee[0],J=Ee[1];function Mt(t){var e=je.config(t),r=e.monaco,n=de(e,["monaco"]);J(function(o){return{config:Se(o.config,n),monaco:r}})}function xt(){var t=B(function(e){var r=e.monaco,n=e.isInitialized,o=e.resolve;return{monaco:r,isInitialized:n,resolve:o}});if(!t.isInitialized){if(J({isInitialized:!0}),t.monaco)return t.resolve(t.monaco),Y(ne);if(window.monaco&&window.monaco.editor)return Pe(window.monaco),t.resolve(window.monaco),Y(ne);Me(St,Pt)(Ct)}return Y(ne)}function St(t){return document.body.appendChild(t)}function Et(t){var e=document.createElement("script");return t&&(e.src=t),e}function Pt(t){var e=B(function(n){var o=n.config,i=n.reject;return{config:o,reject:i}}),r=Et("".concat(e.config.paths.vs,"/loader.js"));return r.onload=function(){return t()},r.onerror=e.reject,r}function Ct(){var t=B(function(r){var n=r.config,o=r.resolve,i=r.reject;return{config:n,resolve:o,reject:i}}),e=window.require;e.config(t.config),e(["vs/editor/editor.main"],function(r){Pe(r),t.resolve(r)},function(r){t.reject(r)})}function Pe(t){B().monaco||J({monaco:t})}function Tt(){return B(function(t){var e=t.monaco;return e})}var ne=new Promise(function(t,e){return J({resolve:t,reject:e})}),It={config:Mt,init:xt,__getMonacoInstance:Tt},D=It;import{memo as Rt}from"react";import At,{useState as Ce,useRef as L,useCallback as Te,useEffect as Ie}from"react";import{memo as Dt}from"react";import oe from"react";import Lt from"react";import{useEffect as Ut}from"react";import{useEffect as qt,useRef as zt}from"react";import{useState as dn}from"react";import{memo as Xt}from"react";import Zt,{useState as Re,useEffect as Q,useRef as I,useCallback as er}from"react";import{useEffect as tr,useRef as rr}from"react";var kt={wrapper:{display:"flex",position:"relative",textAlign:"initial"},fullWidth:{width:"100%"},hide:{display:"none"}},ie=kt,_t={container:{display:"flex",height:"100%",width:"100%",justifyContent:"center",alignItems:"center"}},$t=_t;function Nt({children:t}){return Lt.createElement("div",{style:$t.container},t)}var Vt=Nt,Wt=Vt;function Ht({width:t,height:e,isEditorReady:r,loading:n,_ref:o,className:i,wrapperProps:c}){return oe.createElement("section",{style:{...ie.wrapper,width:t,height:e},...c},!r&&oe.createElement(Wt,null,n),oe.createElement("div",{ref:o,style:{...ie.fullWidth,...!r&&ie.hide},className:i}))}var Bt=Ht,Ae=Dt(Bt);function Ft(t){Ut(t,[])}var De=Ft;function Kt(t,e,r=!0){let n=zt(!0);qt(n.current||!r?()=>{n.current=!1}:t,e)}var E=Kt;function U(){}function _(t,e,r,n){return Gt(t,n)||Yt(t,e,r,n)}function Gt(t,e){return t.editor.getModel(ke(t,e))}function Yt(t,e,r,n){return t.editor.createModel(e,r,n?ke(t,n):void 0)}function ke(t,e){return t.Uri.parse(e)}function Jt({original:t,modified:e,language:r,originalLanguage:n,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:c,keepCurrentOriginalModel:a=!1,keepCurrentModifiedModel:u=!1,theme:l="light",loading:d="Loading...",options:s={},height:x="100%",width:v="100%",className:P,wrapperProps:y={},beforeMount:b=U,onMount:S=U}){let[g,T]=Ce(!1),[C,p]=Ce(!0),w=L(null),h=L(null),N=L(null),j=L(S),f=L(b),k=L(!1);De(()=>{let m=D.init();return m.then(O=>(h.current=O)&&p(!1)).catch(O=>O?.type!=="cancelation"&&console.error("Monaco initialization: error:",O)),()=>w.current?V():m.cancel()}),E(()=>{if(w.current&&h.current){let m=w.current.getOriginalEditor(),O=_(h.current,t||"",n||r||"text",i||"");O!==m.getModel()&&m.setModel(O)}},[i],g),E(()=>{if(w.current&&h.current){let m=w.current.getModifiedEditor(),O=_(h.current,e||"",o||r||"text",c||"");O!==m.getModel()&&m.setModel(O)}},[c],g),E(()=>{let m=w.current.getModifiedEditor();m.getOption(h.current.editor.EditorOption.readOnly)?m.setValue(e||""):e!==m.getValue()&&(m.executeEdits("",[{range:m.getModel().getFullModelRange(),text:e||"",forceMoveMarkers:!0}]),m.pushUndoStop())},[e],g),E(()=>{w.current?.getModel()?.original.setValue(t||"")},[t],g),E(()=>{let{original:m,modified:O}=w.current.getModel();h.current.editor.setModelLanguage(m,n||r||"text"),h.current.editor.setModelLanguage(O,o||r||"text")},[r,n,o],g),E(()=>{h.current?.editor.setTheme(l)},[l],g),E(()=>{w.current?.updateOptions(s)},[s],g);let q=Te(()=>{if(!h.current)return;f.current(h.current);let m=_(h.current,t||"",n||r||"text",i||""),O=_(h.current,e||"",o||r||"text",c||"");w.current?.setModel({original:m,modified:O})},[r,e,o,t,n,i,c]),z=Te(()=>{!k.current&&N.current&&(w.current=h.current.editor.createDiffEditor(N.current,{automaticLayout:!0,...s}),q(),h.current?.editor.setTheme(l),T(!0),k.current=!0)},[s,l,q]);Ie(()=>{g&&j.current(w.current,h.current)},[g]),Ie(()=>{!C&&!g&&z()},[C,g,z]);function V(){let m=w.current?.getModel();a||m?.original?.dispose(),u||m?.modified?.dispose(),w.current?.dispose()}return At.createElement(Ae,{width:v,height:x,isEditorReady:g,loading:d,_ref:N,className:P,wrapperProps:y})}var Qt=Jt,sn=Rt(Qt);function nr(t){let e=rr();return tr(()=>{e.current=t},[t]),e.current}var or=nr,X=new Map;function ir({defaultValue:t,defaultLanguage:e,defaultPath:r,value:n,language:o,path:i,theme:c="light",line:a,loading:u="Loading...",options:l={},overrideServices:d={},saveViewState:s=!0,keepCurrentModel:x=!1,width:v="100%",height:P="100%",className:y,wrapperProps:b={},beforeMount:S=U,onMount:g=U,onChange:T,onValidate:C=U}){let[p,w]=Re(!1),[h,N]=Re(!0),j=I(null),f=I(null),k=I(null),q=I(g),z=I(S),V=I(),m=I(n),O=or(i),ue=I(!1),Z=I(!1);De(()=>{let M=D.init();return M.then(R=>(j.current=R)&&N(!1)).catch(R=>R?.type!=="cancelation"&&console.error("Monaco initialization: error:",R)),()=>f.current?Fe():M.cancel()}),E(()=>{let M=_(j.current,t||n||"",e||o||"",i||r||"");M!==f.current?.getModel()&&(s&&X.set(O,f.current?.saveViewState()),f.current?.setModel(M),s&&f.current?.restoreViewState(X.get(i)))},[i],p),E(()=>{f.current?.updateOptions(l)},[l],p),E(()=>{!f.current||n===void 0||(f.current.getOption(j.current.editor.EditorOption.readOnly)?f.current.setValue(n):n!==f.current.getValue()&&(Z.current=!0,f.current.executeEdits("",[{range:f.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),f.current.pushUndoStop(),Z.current=!1))},[n],p),E(()=>{let M=f.current?.getModel();M&&o&&j.current?.editor.setModelLanguage(M,o)},[o],p),E(()=>{a!==void 0&&f.current?.revealLine(a)},[a],p),E(()=>{j.current?.editor.setTheme(c)},[c],p);let le=er(()=>{if(!(!k.current||!j.current)&&!ue.current){z.current(j.current);let M=i||r,R=_(j.current,n||t||"",e||o||"",M||"");f.current=j.current?.editor.create(k.current,{model:R,automaticLayout:!0,...l},d),s&&f.current.restoreViewState(X.get(M)),j.current.editor.setTheme(c),a!==void 0&&f.current.revealLine(a),w(!0),ue.current=!0}},[t,e,r,n,o,i,l,d,s,c,a]);Q(()=>{p&&q.current(f.current,j.current)},[p]),Q(()=>{!h&&!p&&le()},[h,p,le]),m.current=n,Q(()=>{p&&T&&(V.current?.dispose(),V.current=f.current?.onDidChangeModelContent(M=>{Z.current||T(f.current.getValue(),M)}))},[p,T]),Q(()=>{if(p){let M=j.current.editor.onDidChangeMarkers(R=>{let ee=f.current.getModel()?.uri;if(ee&&R.find(te=>te.path===ee.path)){let te=j.current.editor.getModelMarkers({resource:ee});C?.(te)}});return()=>{M?.dispose()}}return()=>{}},[p,C]);function Fe(){V.current?.dispose(),x?s&&X.set(i,f.current.saveViewState()):f.current.getModel()?.dispose(),f.current.dispose()}return Zt.createElement(Ae,{width:v,height:P,isEditorReady:p,loading:u,_ref:k,className:y,wrapperProps:b})}var ar=ir,cr=Xt(ar),ae=cr;import{useState as Er}from"react";import{c as gr}from"react/compiler-runtime";import{jsx as hr}from"react/jsx-runtime";import{createContext as vr,use as br,useEffect as yr,useState as Ne}from"react";import{jsx as ur}from"react/jsx-runtime";import{createContext as lr,use as sr,useCallback as fr,useEffect as dr,useMemo as mr,useState as pr}from"react";var _e=lr(void 0);function Le(t){if(!t?.blocks?.length||t.blocksMap)return t.blocksMap={},t;let e={...t};e.blocksMap={};for(let r of t.blocks)e.blocksMap[r.slug]=r;return e}var jn=({children:t,config:e})=>{let[r,n]=pr(()=>Le(e));dr(()=>{n(Le(e))},[e]);let{collectionsBySlug:o,globalsBySlug:i}=mr(()=>{let a={},u={};for(let l of r.collections)a[l.slug]=l;for(let l of r.globals)u[l.slug]=l;return{collectionsBySlug:a,globalsBySlug:u}},[r]),c=fr(a=>"collectionSlug"in a?o[a.collectionSlug]??null:"globalSlug"in a?i[a.globalSlug]??null:null,[o,i]);return ur(_e,{value:{config:r,getEntityConfig:c,setConfig:n},children:t})},$e=()=>sr(_e);var wr={autoMode:!0,setTheme:()=>null,theme:"light"},We=vr(wr);function Ve(t,e,r){let n=new Date;n.setTime(n.getTime()+r*24*60*60*1e3);let o="expires="+n.toUTCString();document.cookie=t+"="+e+";"+o+";path=/"}var Or=t=>{let e,r=window.document.cookie.split("; ").find(n=>n.startsWith(`${t}=`))?.split("=")[1];return r==="light"||r==="dark"?e=r:e=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light",document.documentElement.setAttribute("data-theme",e),{theme:e,themeFromCookies:r}},jr="light",In=t=>{let e=gr(11),{children:r,theme:n}=t,{config:o}=$e(),i=o.admin.theme,c=`${o.cookiePrefix||"payload"}-theme`,[a,u]=Ne(n||jr),[l,d]=Ne(),s,x;e[0]!==c||e[1]!==i?(s=()=>{if(i!=="all")return;let{theme:b,themeFromCookies:S}=Or(c);u(b),d(!S)},x=[i,c],e[0]=c,e[1]=i,e[2]=s,e[3]=x):(s=e[2],x=e[3]),yr(s,x);let v;e[4]!==c?(v=b=>{if(b==="light"||b==="dark")u(b),d(!1),Ve(c,b,365),document.documentElement.setAttribute("data-theme",b);else if(b==="auto"){Ve(c,b,-1);let S=window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";document.documentElement.setAttribute("data-theme",S),d(!0),u(S)}},e[4]=c,e[5]=v):v=e[5];let P=v,y;return e[6]!==l||e[7]!==r||e[8]!==P||e[9]!==a?(y=hr(We,{value:{autoMode:l,setTheme:P,theme:a},children:r}),e[6]=l,e[7]=r,e[8]=P,e[9]=a,e[10]=y):y=e[10],y},He=()=>br(We);import{c as xr}from"react/compiler-runtime";import{jsx as F}from"react/jsx-runtime";import"react";import{c as Mr}from"react/compiler-runtime";import*as $ from"react";var Be=(t,e)=>{let r=Mr(9),n=e===void 0?!1:e,[o,i]=$.useState(!1),c=$.useRef(void 0),a;r[0]!==t?(a=()=>(i(!1),clearTimeout(c.current),c.current=setTimeout(()=>{i(!0)},t),()=>{clearTimeout(c.current)}),r[0]=t,r[1]=a):a=r[1];let u=a,l,d;r[2]!==u||r[3]!==n?(l=()=>{n&&u()},d=[u,n],r[2]=u,r[3]=n,r[4]=l,r[5]=d):(l=r[4],d=r[5]),$.useEffect(l,d);let s;return r[6]!==o||r[7]!==u?(s=[o,u],r[6]=o,r[7]=u,r[8]=s):s=r[8],s};var ce=({animationDelay:t="0ms",height:e="60px",width:r="100%"})=>F("div",{className:"shimmer-effect",style:{height:typeof e=="number"?`${e}px`:e,width:typeof r=="number"?`${r}px`:r},children:F("div",{className:"shimmer-effect__shine",style:{animationDelay:t}})}),Nn=t=>{let e=xr(7),{className:r,count:n,height:o,renderDelay:i,shimmerDelay:c,shimmerItemClassName:a,width:u}=t,l=i===void 0?500:i,d=c===void 0?25:c,s=typeof d=="number"?`${d}ms`:d,[x]=Be(l,!0);if(!x)return null;let v;return e[0]!==r||e[1]!==n||e[2]!==o||e[3]!==s||e[4]!==a||e[5]!==u?(v=F("div",{className:r,children:[...Array(n)].map((P,y)=>F("div",{className:a,children:F(ce,{animationDelay:`calc(${y} * ${s})`,height:o,width:u})},y))}),e[0]=r,e[1]=n,e[2]=o,e[3]=s,e[4]=a,e[5]=u,e[6]=v):v=e[6],v};var Pr=ae.default||ae,Cr="code-editor",Tr=t=>{let e=Sr(26),r,n,o,i,c,a;e[0]!==t?({className:r,maxHeight:n,minHeight:o,options:i,readOnly:c,...a}=t,e[0]=t,e[1]=r,e[2]=n,e[3]=o,e[4]=i,e[5]=c,e[6]=a):(r=e[1],n=e[2],o=e[3],i=e[4],c=e[5],a=e[6]);let u=o??56,l=i?.padding?(i.padding.top||0)+(i.padding?.bottom||0):0,[d,s]=Er(u),{theme:x}=He(),v=a?.defaultLanguage?`language--${a.defaultLanguage}`:"",P=c&&"read-only",y;e[7]!==r||e[8]!==v||e[9]!==P?(y=[Cr,r,v,P].filter(Boolean),e[7]=r,e[8]=v,e[9]=P,e[10]=y):y=e[10];let b=y.join(" "),S;if(e[11]!==u||e[12]!==b||e[13]!==d||e[14]!==n||e[15]!==i||e[16]!==l||e[17]!==c||e[18]!==a||e[19]!==x){let g,T;e[21]!==u||e[22]!==l||e[23]!==a?(g=(C,p)=>{a.onChange?.(C,p),s(Math.max(u,C.split(`
|
|
24
|
-
`).length*18+2+l))},T=(C,p)=>{a.onMount?.(C,p),s(Math.max(u,C.getValue().split(`
|
|
25
|
-
`).length*18+2+l))},e[21]=u,e[22]=l,e[23]=a,e[24]=g,e[25]=T):(g=e[24],T=e[25]),S=Ue(Pr,{className:b,loading:Ue(ce,{height:d}),options:{detectIndentation:!0,hideCursorInOverviewRuler:!0,minimap:{enabled:!1},overviewRulerBorder:!1,readOnly:!!c,scrollbar:{alwaysConsumeMouseWheel:!1},scrollBeyondLastLine:!1,tabSize:2,wordWrap:"on",...i},theme:x==="dark"?"vs-dark":"vs",...a,height:n?Math.min(d,n):d,onChange:g,onMount:T}),e[11]=u,e[12]=b,e[13]=d,e[14]=n,e[15]=i,e[16]=l,e[17]=c,e[18]=a,e[19]=x,e[20]=S}else S=e[20];return S},Kn=Tr;export{jn as a,$e as b,Be as c,ce as d,Nn as e,jr as f,In as g,He as h,Kn as i};
|
|
26
|
-
//# sourceMappingURL=chunk-QPA2ZA5J.js.map
|
|
File without changes
|
|
File without changes
|