@payloadcms/next 3.89.0-internal.95c9cba → 3.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +55 -47
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/utilities/handleServerFunctions.d.ts.map +1 -1
- package/dist/utilities/handleServerFunctions.js +2 -1
- package/dist/utilities/handleServerFunctions.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
- package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +42 -28
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js +258 -0
- package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js.map +1 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +56 -2
- package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +3 -13
- package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/routes/graphql/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/routes/graphql/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,SAAS,CAAA;AAsEjF,eAAO,MAAM,UAAU,WAAkB,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,iBAyBlF,CAAA;AAED,eAAO,MAAM,IAAI,WACN,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eAAqB,OAAO,sBAmE9E,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { configToSchema } from '@payloadcms/graphql';
|
|
2
2
|
import { createHandler } from 'graphql-http/lib/use/fetch';
|
|
3
3
|
import { status as httpStatus } from 'http-status';
|
|
4
|
-
import { addDataAndFileToRequest, addLocalesToRequestFromData, createPayloadRequest, headersWithCors, logError, mergeHeaders } from 'payload';
|
|
4
|
+
import { addDataAndFileToRequest, addLocalesToRequestFromData, createPayloadRequest, headersWithCors, logError, mergeHeaders, unlinkClientUploadTempFile } from 'payload';
|
|
5
5
|
const handleError = async ({
|
|
6
6
|
err,
|
|
7
7
|
payload,
|
|
@@ -90,53 +90,61 @@ export const POST = config => async request => {
|
|
|
90
90
|
status: 404
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
try {
|
|
94
|
+
await addDataAndFileToRequest(req);
|
|
95
|
+
addLocalesToRequestFromData(req);
|
|
96
|
+
const {
|
|
97
|
+
schema,
|
|
98
|
+
validationRules
|
|
99
|
+
} = await getGraphql(config);
|
|
100
|
+
const headers = {};
|
|
101
|
+
const apiResponse = await createHandler({
|
|
102
|
+
context: {
|
|
103
|
+
headers,
|
|
104
|
+
req
|
|
105
|
+
},
|
|
106
|
+
onOperation: async (request, args, result) => {
|
|
107
|
+
const response = typeof payload.extensions === 'function' ? await payload.extensions({
|
|
108
|
+
args,
|
|
109
|
+
req: request,
|
|
110
|
+
result
|
|
111
|
+
}) : result;
|
|
112
|
+
if (response.errors) {
|
|
113
|
+
const errors = await Promise.all(result.errors.map(error => {
|
|
114
|
+
return handleError({
|
|
115
|
+
err: error,
|
|
116
|
+
payload,
|
|
117
|
+
req
|
|
118
|
+
});
|
|
119
|
+
}));
|
|
120
|
+
// errors type should be FormattedGraphQLError[] but onOperation has a return type of ExecutionResult instead of FormattedExecutionResult
|
|
121
|
+
return {
|
|
122
|
+
...response,
|
|
123
|
+
errors
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
return response;
|
|
127
|
+
},
|
|
128
|
+
schema,
|
|
129
|
+
validationRules: (_, args, defaultRules) => defaultRules.concat(validationRules(args))
|
|
130
|
+
})(originalRequest);
|
|
131
|
+
const resHeaders = headersWithCors({
|
|
132
|
+
headers: new Headers(apiResponse.headers),
|
|
103
133
|
req
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}));
|
|
119
|
-
// errors type should be FormattedGraphQLError[] but onOperation has a return type of ExecutionResult instead of FormattedExecutionResult
|
|
120
|
-
return {
|
|
121
|
-
...response,
|
|
122
|
-
errors
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
return response;
|
|
126
|
-
},
|
|
127
|
-
schema,
|
|
128
|
-
validationRules: (_, args, defaultRules) => defaultRules.concat(validationRules(args))
|
|
129
|
-
})(originalRequest);
|
|
130
|
-
const resHeaders = headersWithCors({
|
|
131
|
-
headers: new Headers(apiResponse.headers),
|
|
132
|
-
req
|
|
133
|
-
});
|
|
134
|
-
for (const key in headers) {
|
|
135
|
-
resHeaders.append(key, headers[key]);
|
|
134
|
+
});
|
|
135
|
+
for (const key in headers) {
|
|
136
|
+
resHeaders.append(key, headers[key]);
|
|
137
|
+
}
|
|
138
|
+
return new Response(apiResponse.body, {
|
|
139
|
+
headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,
|
|
140
|
+
status: apiResponse.status
|
|
141
|
+
});
|
|
142
|
+
} finally {
|
|
143
|
+
// GraphQL parses the body itself instead of going through wrapInternalEndpoints, and an
|
|
144
|
+
// operation that writes no document never reaches the operation-level cleanup.
|
|
145
|
+
await unlinkClientUploadTempFile({
|
|
146
|
+
req
|
|
147
|
+
});
|
|
136
148
|
}
|
|
137
|
-
return new Response(apiResponse.body, {
|
|
138
|
-
headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,
|
|
139
|
-
status: apiResponse.status
|
|
140
|
-
});
|
|
141
149
|
};
|
|
142
150
|
//# sourceMappingURL=handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","names":["configToSchema","createHandler","status","httpStatus","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","logError","mergeHeaders","handleError","err","payload","req","originalError","INTERNAL_SERVER_ERROR","errorMessage","message","config","debug","response","extensions","name","undefined","data","stack","statusCode","locations","path","hooks","afterError","reduce","promise","hook","result","context","error","graphqlResult","Promise","resolve","cached","global","_payload_graphql","graphql","getGraphql","process","env","NODE_ENV","resolvedConfig","schema","e","POST","request","originalRequest","clone","canSetHeaders","graphQL","disable","Response","validationRules","headers","apiResponse","onOperation","args","errors","all","map","_","defaultRules","concat","resHeaders","Headers","key","append","body","responseHeaders"],"sources":["../../../src/routes/graphql/handler.ts"],"sourcesContent":["import type { GraphQLError, GraphQLFormattedError } from 'graphql'\nimport type { APIError, Payload, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { configToSchema } from '@payloadcms/graphql'\nimport { createHandler } from 'graphql-http/lib/use/fetch'\nimport { status as httpStatus } from 'http-status'\nimport {\n addDataAndFileToRequest,\n addLocalesToRequestFromData,\n createPayloadRequest,\n headersWithCors,\n logError,\n mergeHeaders,\n} from 'payload'\n\nconst handleError = async ({\n err,\n payload,\n req,\n}: {\n err: GraphQLError\n payload: Payload\n req: PayloadRequest\n}): Promise<GraphQLFormattedError> => {\n const status = (err.originalError as APIError).status || httpStatus.INTERNAL_SERVER_ERROR\n let errorMessage = err.message\n logError({ err, payload })\n\n // Internal server errors can contain anything, including potentially sensitive data.\n // Therefore, error details will be hidden from the response unless `config.debug` is `true`\n if (!payload.config.debug && status === httpStatus.INTERNAL_SERVER_ERROR) {\n errorMessage = 'Something went wrong.'\n }\n\n let response: GraphQLFormattedError = {\n extensions: {\n name: err?.originalError?.name || undefined,\n data: (err && err.originalError && (err.originalError as APIError).data) || undefined,\n stack: payload.config.debug ? err.stack : undefined,\n statusCode: status,\n },\n locations: err.locations,\n message: errorMessage,\n path: err.path,\n }\n\n await payload.config.hooks.afterError?.reduce(async (promise, hook) => {\n await promise\n\n const result = await hook({\n context: req.context,\n error: err,\n graphqlResult: response,\n req,\n })\n\n if (result) {\n response = result.graphqlResult || response\n }\n }, Promise.resolve())\n\n return response\n}\n\nlet cached = global._payload_graphql\n\nif (!cached) {\n cached = global._payload_graphql = { graphql: null, promise: null }\n}\n\nexport const getGraphql = async (config: Promise<SanitizedConfig> | SanitizedConfig) => {\n if (process.env.NODE_ENV === 'development') {\n cached = global._payload_graphql = { graphql: null, promise: null }\n }\n\n if (cached.graphql) {\n return cached.graphql\n }\n\n if (!cached.promise) {\n const resolvedConfig = await config\n cached.promise = new Promise((resolve) => {\n const schema = configToSchema(resolvedConfig)\n resolve(cached.graphql || schema)\n })\n }\n\n try {\n cached.graphql = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.graphql\n}\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n const originalRequest = request.clone()\n const req = await createPayloadRequest({\n canSetHeaders: true,\n config,\n request,\n })\n\n const { payload } = req\n\n if (payload.config.graphQL?.disable) {\n return new Response(null, {\n status: 404,\n })\n }\n\n await addDataAndFileToRequest(req)\n
|
|
1
|
+
{"version":3,"file":"handler.js","names":["configToSchema","createHandler","status","httpStatus","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","logError","mergeHeaders","unlinkClientUploadTempFile","handleError","err","payload","req","originalError","INTERNAL_SERVER_ERROR","errorMessage","message","config","debug","response","extensions","name","undefined","data","stack","statusCode","locations","path","hooks","afterError","reduce","promise","hook","result","context","error","graphqlResult","Promise","resolve","cached","global","_payload_graphql","graphql","getGraphql","process","env","NODE_ENV","resolvedConfig","schema","e","POST","request","originalRequest","clone","canSetHeaders","graphQL","disable","Response","validationRules","headers","apiResponse","onOperation","args","errors","all","map","_","defaultRules","concat","resHeaders","Headers","key","append","body","responseHeaders"],"sources":["../../../src/routes/graphql/handler.ts"],"sourcesContent":["import type { GraphQLError, GraphQLFormattedError } from 'graphql'\nimport type { APIError, Payload, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { configToSchema } from '@payloadcms/graphql'\nimport { createHandler } from 'graphql-http/lib/use/fetch'\nimport { status as httpStatus } from 'http-status'\nimport {\n addDataAndFileToRequest,\n addLocalesToRequestFromData,\n createPayloadRequest,\n headersWithCors,\n logError,\n mergeHeaders,\n unlinkClientUploadTempFile,\n} from 'payload'\n\nconst handleError = async ({\n err,\n payload,\n req,\n}: {\n err: GraphQLError\n payload: Payload\n req: PayloadRequest\n}): Promise<GraphQLFormattedError> => {\n const status = (err.originalError as APIError).status || httpStatus.INTERNAL_SERVER_ERROR\n let errorMessage = err.message\n logError({ err, payload })\n\n // Internal server errors can contain anything, including potentially sensitive data.\n // Therefore, error details will be hidden from the response unless `config.debug` is `true`\n if (!payload.config.debug && status === httpStatus.INTERNAL_SERVER_ERROR) {\n errorMessage = 'Something went wrong.'\n }\n\n let response: GraphQLFormattedError = {\n extensions: {\n name: err?.originalError?.name || undefined,\n data: (err && err.originalError && (err.originalError as APIError).data) || undefined,\n stack: payload.config.debug ? err.stack : undefined,\n statusCode: status,\n },\n locations: err.locations,\n message: errorMessage,\n path: err.path,\n }\n\n await payload.config.hooks.afterError?.reduce(async (promise, hook) => {\n await promise\n\n const result = await hook({\n context: req.context,\n error: err,\n graphqlResult: response,\n req,\n })\n\n if (result) {\n response = result.graphqlResult || response\n }\n }, Promise.resolve())\n\n return response\n}\n\nlet cached = global._payload_graphql\n\nif (!cached) {\n cached = global._payload_graphql = { graphql: null, promise: null }\n}\n\nexport const getGraphql = async (config: Promise<SanitizedConfig> | SanitizedConfig) => {\n if (process.env.NODE_ENV === 'development') {\n cached = global._payload_graphql = { graphql: null, promise: null }\n }\n\n if (cached.graphql) {\n return cached.graphql\n }\n\n if (!cached.promise) {\n const resolvedConfig = await config\n cached.promise = new Promise((resolve) => {\n const schema = configToSchema(resolvedConfig)\n resolve(cached.graphql || schema)\n })\n }\n\n try {\n cached.graphql = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.graphql\n}\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n const originalRequest = request.clone()\n const req = await createPayloadRequest({\n canSetHeaders: true,\n config,\n request,\n })\n\n const { payload } = req\n\n if (payload.config.graphQL?.disable) {\n return new Response(null, {\n status: 404,\n })\n }\n\n try {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n const { schema, validationRules } = await getGraphql(config)\n\n const headers = {}\n const apiResponse = await createHandler({\n context: { headers, req },\n onOperation: async (request, args, result) => {\n const response =\n typeof payload.extensions === 'function'\n ? await payload.extensions({\n args,\n req: request,\n result,\n })\n : result\n if (response.errors) {\n const errors = (await Promise.all(\n result.errors.map((error) => {\n return handleError({ err: error, payload, req })\n }),\n )) as GraphQLError[]\n // errors type should be FormattedGraphQLError[] but onOperation has a return type of ExecutionResult instead of FormattedExecutionResult\n return { ...response, errors }\n }\n return response\n },\n schema,\n validationRules: (_, args, defaultRules) => defaultRules.concat(validationRules(args)),\n })(originalRequest)\n\n const resHeaders = headersWithCors({\n headers: new Headers(apiResponse.headers),\n req,\n })\n\n for (const key in headers) {\n resHeaders.append(key, headers[key])\n }\n\n return new Response(apiResponse.body, {\n headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,\n status: apiResponse.status,\n })\n } finally {\n // GraphQL parses the body itself instead of going through wrapInternalEndpoints, and an\n // operation that writes no document never reaches the operation-level cleanup.\n await unlinkClientUploadTempFile({ req })\n }\n }\n"],"mappings":"AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,aAAa,QAAQ;AAC9B,SAASC,MAAA,IAAUC,UAAU,QAAQ;AACrC,SACEC,uBAAuB,EACvBC,2BAA2B,EAC3BC,oBAAoB,EACpBC,eAAe,EACfC,QAAQ,EACRC,YAAY,EACZC,0BAA0B,QACrB;AAEP,MAAMC,WAAA,GAAc,MAAAA,CAAO;EACzBC,GAAG;EACHC,OAAO;EACPC;AAAG,CAKJ;EACC,MAAMZ,MAAA,GAASU,GAAC,CAAIG,aAAa,CAAcb,MAAM,IAAIC,UAAA,CAAWa,qBAAqB;EACzF,IAAIC,YAAA,GAAeL,GAAA,CAAIM,OAAO;EAC9BV,QAAA,CAAS;IAAEI,GAAA;IAAKC;EAAQ;EAExB;EACA;EACA,IAAI,CAACA,OAAA,CAAQM,MAAM,CAACC,KAAK,IAAIlB,MAAA,KAAWC,UAAA,CAAWa,qBAAqB,EAAE;IACxEC,YAAA,GAAe;EACjB;EAEA,IAAII,QAAA,GAAkC;IACpCC,UAAA,EAAY;MACVC,IAAA,EAAMX,GAAA,EAAKG,aAAA,EAAeQ,IAAA,IAAQC,SAAA;MAClCC,IAAA,EAAMb,GAAC,IAAOA,GAAA,CAAIG,aAAa,IAAIH,GAAC,CAAIG,aAAa,CAAcU,IAAI,IAAKD,SAAA;MAC5EE,KAAA,EAAOb,OAAA,CAAQM,MAAM,CAACC,KAAK,GAAGR,GAAA,CAAIc,KAAK,GAAGF,SAAA;MAC1CG,UAAA,EAAYzB;IACd;IACA0B,SAAA,EAAWhB,GAAA,CAAIgB,SAAS;IACxBV,OAAA,EAASD,YAAA;IACTY,IAAA,EAAMjB,GAAA,CAAIiB;EACZ;EAEA,MAAMhB,OAAA,CAAQM,MAAM,CAACW,KAAK,CAACC,UAAU,EAAEC,MAAA,CAAO,OAAOC,OAAA,EAASC,IAAA;IAC5D,MAAMD,OAAA;IAEN,MAAME,MAAA,GAAS,MAAMD,IAAA,CAAK;MACxBE,OAAA,EAAStB,GAAA,CAAIsB,OAAO;MACpBC,KAAA,EAAOzB,GAAA;MACP0B,aAAA,EAAejB,QAAA;MACfP;IACF;IAEA,IAAIqB,MAAA,EAAQ;MACVd,QAAA,GAAWc,MAAA,CAAOG,aAAa,IAAIjB,QAAA;IACrC;EACF,GAAGkB,OAAA,CAAQC,OAAO;EAElB,OAAOnB,QAAA;AACT;AAEA,IAAIoB,MAAA,GAASC,MAAA,CAAOC,gBAAgB;AAEpC,IAAI,CAACF,MAAA,EAAQ;EACXA,MAAA,GAASC,MAAA,CAAOC,gBAAgB,GAAG;IAAEC,OAAA,EAAS;IAAMX,OAAA,EAAS;EAAK;AACpE;AAEA,OAAO,MAAMY,UAAA,GAAa,MAAO1B,MAAA;EAC/B,IAAI2B,OAAA,CAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;IAC1CP,MAAA,GAASC,MAAA,CAAOC,gBAAgB,GAAG;MAAEC,OAAA,EAAS;MAAMX,OAAA,EAAS;IAAK;EACpE;EAEA,IAAIQ,MAAA,CAAOG,OAAO,EAAE;IAClB,OAAOH,MAAA,CAAOG,OAAO;EACvB;EAEA,IAAI,CAACH,MAAA,CAAOR,OAAO,EAAE;IACnB,MAAMgB,cAAA,GAAiB,MAAM9B,MAAA;IAC7BsB,MAAA,CAAOR,OAAO,GAAG,IAAIM,OAAA,CAASC,OAAA;MAC5B,MAAMU,MAAA,GAASlD,cAAA,CAAeiD,cAAA;MAC9BT,OAAA,CAAQC,MAAA,CAAOG,OAAO,IAAIM,MAAA;IAC5B;EACF;EAEA,IAAI;IACFT,MAAA,CAAOG,OAAO,GAAG,MAAMH,MAAA,CAAOR,OAAO;EACvC,EAAE,OAAOkB,CAAA,EAAG;IACVV,MAAA,CAAOR,OAAO,GAAG;IACjB,MAAMkB,CAAA;EACR;EAEA,OAAOV,MAAA,CAAOG,OAAO;AACvB;AAEA,OAAO,MAAMQ,IAAA,GACVjC,MAAA,IAAuD,MAAOkC,OAAA;EAC7D,MAAMC,eAAA,GAAkBD,OAAA,CAAQE,KAAK;EACrC,MAAMzC,GAAA,GAAM,MAAMR,oBAAA,CAAqB;IACrCkD,aAAA,EAAe;IACfrC,MAAA;IACAkC;EACF;EAEA,MAAM;IAAExC;EAAO,CAAE,GAAGC,GAAA;EAEpB,IAAID,OAAA,CAAQM,MAAM,CAACsC,OAAO,EAAEC,OAAA,EAAS;IACnC,OAAO,IAAIC,QAAA,CAAS,MAAM;MACxBzD,MAAA,EAAQ;IACV;EACF;EAEA,IAAI;IACF,MAAME,uBAAA,CAAwBU,GAAA;IAC9BT,2BAAA,CAA4BS,GAAA;IAE5B,MAAM;MAAEoC,MAAM;MAAEU;IAAe,CAAE,GAAG,MAAMf,UAAA,CAAW1B,MAAA;IAErD,MAAM0C,OAAA,GAAU,CAAC;IACjB,MAAMC,WAAA,GAAc,MAAM7D,aAAA,CAAc;MACtCmC,OAAA,EAAS;QAAEyB,OAAA;QAAS/C;MAAI;MACxBiD,WAAA,EAAa,MAAAA,CAAOV,OAAA,EAASW,IAAA,EAAM7B,MAAA;QACjC,MAAMd,QAAA,GACJ,OAAOR,OAAA,CAAQS,UAAU,KAAK,aAC1B,MAAMT,OAAA,CAAQS,UAAU,CAAC;UACvB0C,IAAA;UACAlD,GAAA,EAAKuC,OAAA;UACLlB;QACF,KACAA,MAAA;QACN,IAAId,QAAA,CAAS4C,MAAM,EAAE;UACnB,MAAMA,MAAA,GAAU,MAAM1B,OAAA,CAAQ2B,GAAG,CAC/B/B,MAAA,CAAO8B,MAAM,CAACE,GAAG,CAAE9B,KAAA;YACjB,OAAO1B,WAAA,CAAY;cAAEC,GAAA,EAAKyB,KAAA;cAAOxB,OAAA;cAASC;YAAI;UAChD;UAEF;UACA,OAAO;YAAE,GAAGO,QAAQ;YAAE4C;UAAO;QAC/B;QACA,OAAO5C,QAAA;MACT;MACA6B,MAAA;MACAU,eAAA,EAAiBA,CAACQ,CAAA,EAAGJ,IAAA,EAAMK,YAAA,KAAiBA,YAAA,CAAaC,MAAM,CAACV,eAAA,CAAgBI,IAAA;IAClF,GAAGV,eAAA;IAEH,MAAMiB,UAAA,GAAahE,eAAA,CAAgB;MACjCsD,OAAA,EAAS,IAAIW,OAAA,CAAQV,WAAA,CAAYD,OAAO;MACxC/C;IACF;IAEA,KAAK,MAAM2D,GAAA,IAAOZ,OAAA,EAAS;MACzBU,UAAA,CAAWG,MAAM,CAACD,GAAA,EAAKZ,OAAO,CAACY,GAAA,CAAI;IACrC;IAEA,OAAO,IAAId,QAAA,CAASG,WAAA,CAAYa,IAAI,EAAE;MACpCd,OAAA,EAAS/C,GAAA,CAAI8D,eAAe,GAAGnE,YAAA,CAAaK,GAAA,CAAI8D,eAAe,EAAEL,UAAA,IAAcA,UAAA;MAC/ErE,MAAA,EAAQ4D,WAAA,CAAY5D;IACtB;EACF,UAAU;IACR;IACA;IACA,MAAMQ,0BAAA,CAA2B;MAAEI;IAAI;EACzC;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunctions.d.ts","sourceRoot":"","sources":["../../src/utilities/handleServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6C,qBAAqB,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"handleServerFunctions.d.ts","sourceRoot":"","sources":["../../src/utilities/handleServerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6C,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAmC/F,eAAO,MAAM,qBAAqB,EAAE,qBA+BnC,CAAA"}
|
|
@@ -2,7 +2,7 @@ import { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloa
|
|
|
2
2
|
import { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState';
|
|
3
3
|
import { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState';
|
|
4
4
|
import { getFolderResultsComponentAndDataHandler } from '@payloadcms/ui/utilities/getFolderResultsComponentAndData';
|
|
5
|
-
import { schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler';
|
|
5
|
+
import { getUpcomingScheduledPublishHandler, schedulePublishHandler } from '@payloadcms/ui/utilities/schedulePublishHandler';
|
|
6
6
|
import { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js';
|
|
7
7
|
import { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js';
|
|
8
8
|
import { renderDocumentHandler } from '../views/Document/handleServerFunction.js';
|
|
@@ -15,6 +15,7 @@ const baseServerFunctions = {
|
|
|
15
15
|
'form-state': buildFormStateHandler,
|
|
16
16
|
'get-default-layout': getDefaultLayoutHandler,
|
|
17
17
|
'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,
|
|
18
|
+
'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,
|
|
18
19
|
'render-document': renderDocumentHandler,
|
|
19
20
|
'render-document-slots': renderDocumentSlotsHandler,
|
|
20
21
|
'render-field': _internal_renderFieldHandler,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","getFolderResultsComponentAndDataHandler","schedulePublishHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","slugifyHandler","baseServerFunctions","slugify","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","cookies","locale","permissions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { DefaultServerFunctionArgs, ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { getFolderResultsComponentAndDataHandler } from '@payloadcms/ui/utilities/getFolderResultsComponentAndData'\nimport {
|
|
1
|
+
{"version":3,"file":"handleServerFunctions.js","names":["_internal_renderFieldHandler","copyDataFromLocaleHandler","buildFormStateHandler","buildTableStateHandler","getFolderResultsComponentAndDataHandler","getUpcomingScheduledPublishHandler","schedulePublishHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","initReq","slugifyHandler","baseServerFunctions","slugify","handleServerFunctions","args","name","fnKey","fnArgs","config","configPromise","importMap","serverFunctions","extraServerFunctions","cookies","locale","permissions","req","key","augmentedArgs","fn","Error"],"sources":["../../src/utilities/handleServerFunctions.ts"],"sourcesContent":["import type { DefaultServerFunctionArgs, ServerFunction, ServerFunctionHandler } from 'payload'\n\nimport { _internal_renderFieldHandler, copyDataFromLocaleHandler } from '@payloadcms/ui/rsc'\nimport { buildFormStateHandler } from '@payloadcms/ui/utilities/buildFormState'\nimport { buildTableStateHandler } from '@payloadcms/ui/utilities/buildTableState'\nimport { getFolderResultsComponentAndDataHandler } from '@payloadcms/ui/utilities/getFolderResultsComponentAndData'\nimport {\n getUpcomingScheduledPublishHandler,\n schedulePublishHandler,\n} from '@payloadcms/ui/utilities/schedulePublishHandler'\n\nimport { getDefaultLayoutHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/getDefaultLayoutServerFn.js'\nimport { renderWidgetHandler } from '../views/Dashboard/Default/ModularDashboard/renderWidget/renderWidgetServerFn.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { initReq } from './initReq.js'\nimport { slugifyHandler } from './slugify.js'\n\nconst baseServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-folder-results-component-and-data': getFolderResultsComponentAndDataHandler,\n 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'table-state': buildTableStateHandler,\n}\n\nexport const handleServerFunctions: ServerFunctionHandler = async (args) => {\n const {\n name: fnKey,\n args: fnArgs,\n config: configPromise,\n importMap,\n serverFunctions: extraServerFunctions,\n } = args\n\n const { cookies, locale, permissions, req } = await initReq({\n configPromise,\n importMap,\n key: 'RootLayout',\n })\n\n const augmentedArgs: DefaultServerFunctionArgs = {\n ...fnArgs,\n cookies,\n importMap,\n locale,\n permissions,\n req,\n }\n\n const fn = extraServerFunctions?.[fnKey] || baseServerFunctions[fnKey]\n\n if (!fn) {\n throw new Error(`Unknown Server Function: ${fnKey}`)\n }\n\n return fn(augmentedArgs)\n}\n"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,yBAAyB,QAAQ;AACxE,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,uCAAuC,QAAQ;AACxD,SACEC,kCAAkC,EAClCC,sBAAsB,QACjB;AAEP,SAASC,uBAAuB,QAAQ;AACxC,SAASC,mBAAmB,QAAQ;AACpC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,OAAO,QAAQ;AACxB,SAASC,cAAc,QAAQ;AAE/B,MAAMC,mBAAA,GAAgE;EACpE,yBAAyBb,yBAAA;EACzB,cAAcC,qBAAA;EACd,sBAAsBK,uBAAA;EACtB,yCAAyCH,uCAAA;EACzC,kCAAkCC,kCAAA;EAClC,mBAAmBI,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBV,4BAAA;EAChB,eAAeW,iBAAA;EACf,iBAAiBH,mBAAA;EACjB,oBAAoBF,sBAAA;EACpBS,OAAA,EAASF,cAAA;EACT,eAAeV;AACjB;AAEA,OAAO,MAAMa,qBAAA,GAA+C,MAAOC,IAAA;EACjE,MAAM;IACJC,IAAA,EAAMC,KAAK;IACXF,IAAA,EAAMG,MAAM;IACZC,MAAA,EAAQC,aAAa;IACrBC,SAAS;IACTC,eAAA,EAAiBC;EAAoB,CACtC,GAAGR,IAAA;EAEJ,MAAM;IAAES,OAAO;IAAEC,MAAM;IAAEC,WAAW;IAAEC;EAAG,CAAE,GAAG,MAAMjB,OAAA,CAAQ;IAC1DU,aAAA;IACAC,SAAA;IACAO,GAAA,EAAK;EACP;EAEA,MAAMC,aAAA,GAA2C;IAC/C,GAAGX,MAAM;IACTM,OAAA;IACAH,SAAA;IACAI,MAAA;IACAC,WAAA;IACAC;EACF;EAEA,MAAMG,EAAA,GAAKP,oBAAA,GAAuBN,KAAA,CAAM,IAAIL,mBAAmB,CAACK,KAAA,CAAM;EAEtE,IAAI,CAACa,EAAA,EAAI;IACP,MAAM,IAAIC,KAAA,CAAM,4BAA4Bd,KAAA,EAAO;EACrD;EAEA,OAAOa,EAAA,CAAGD,aAAA;AACZ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,KAAK,KAAK,GAAG;IACX,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,CACA;IAEE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,GACD;IAEE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CACJ,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAI1C,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,cAAc,CAAA;AAKrB,KAAK,KAAK,GAAG;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;IACtB,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,CAAA;IAC7B,iBAAiB,EAAE,OAAO,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;CACjB,GAAG,CACA;IAEE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,KAAK,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,GACD;IAEE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,CAAC,EAAE,KAAK,CAAA;IACd,UAAU,EAAE,IAAI,CAAA;IAChB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CACJ,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsFzC,CAAA"}
|
|
@@ -8,8 +8,9 @@ import React, { useState } from 'react';
|
|
|
8
8
|
import { countChangedFields, countChangedFieldsInRows } from '../utilities/countChangedFields.js';
|
|
9
9
|
const baseClass = 'diff-collapser';
|
|
10
10
|
export const DiffCollapser = t0 => {
|
|
11
|
-
const $ = _c(
|
|
11
|
+
const $ = _c(20);
|
|
12
12
|
const {
|
|
13
|
+
changeCount: changeCountFromProps,
|
|
13
14
|
children,
|
|
14
15
|
field,
|
|
15
16
|
fields,
|
|
@@ -33,54 +34,58 @@ export const DiffCollapser = t0 => {
|
|
|
33
34
|
config
|
|
34
35
|
} = useConfig();
|
|
35
36
|
let t4;
|
|
36
|
-
if ($[0] !== Label || $[1] !==
|
|
37
|
+
if ($[0] !== Label || $[1] !== changeCountFromProps || $[2] !== children || $[3] !== config || $[4] !== field || $[5] !== fields || $[6] !== hideGutter || $[7] !== isCollapsed || $[8] !== isIterable || $[9] !== locales || $[10] !== parentIsLocalized || $[11] !== t || $[12] !== valueFrom || $[13] !== valueTo) {
|
|
37
38
|
let changeCount;
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
throw new Error("DiffCollapser: field must be an array or blocks field when isIterable is true");
|
|
41
|
-
}
|
|
42
|
-
const valueFromRows = valueFrom ?? [];
|
|
43
|
-
const valueToRows = valueTo ?? [];
|
|
44
|
-
if (!Array.isArray(valueFromRows) || !Array.isArray(valueToRows)) {
|
|
45
|
-
throw new Error("DiffCollapser: valueFrom and valueTro must be arrays when isIterable is true");
|
|
46
|
-
}
|
|
47
|
-
changeCount = countChangedFieldsInRows({
|
|
48
|
-
config,
|
|
49
|
-
field,
|
|
50
|
-
locales,
|
|
51
|
-
parentIsLocalized,
|
|
52
|
-
valueFromRows,
|
|
53
|
-
valueToRows
|
|
54
|
-
});
|
|
39
|
+
if (typeof changeCountFromProps === "number") {
|
|
40
|
+
changeCount = changeCountFromProps;
|
|
55
41
|
} else {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
42
|
+
if (isIterable) {
|
|
43
|
+
if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {
|
|
44
|
+
throw new Error("DiffCollapser: field must be an array or blocks field when isIterable is true");
|
|
45
|
+
}
|
|
46
|
+
const valueFromRows = valueFrom ?? [];
|
|
47
|
+
const valueToRows = valueTo ?? [];
|
|
48
|
+
if (!Array.isArray(valueFromRows) || !Array.isArray(valueToRows)) {
|
|
49
|
+
throw new Error("DiffCollapser: valueFrom and valueTro must be arrays when isIterable is true");
|
|
50
|
+
}
|
|
51
|
+
changeCount = countChangedFieldsInRows({
|
|
52
|
+
config,
|
|
53
|
+
field,
|
|
54
|
+
locales,
|
|
55
|
+
parentIsLocalized,
|
|
56
|
+
valueFromRows,
|
|
57
|
+
valueToRows
|
|
58
|
+
});
|
|
59
|
+
} else {
|
|
60
|
+
changeCount = countChangedFields({
|
|
61
|
+
config,
|
|
62
|
+
fields,
|
|
63
|
+
locales,
|
|
64
|
+
parentIsLocalized,
|
|
65
|
+
valueFrom,
|
|
66
|
+
valueTo
|
|
67
|
+
});
|
|
68
|
+
}
|
|
64
69
|
}
|
|
65
70
|
const t5 = isCollapsed && `${baseClass}__content--is-collapsed`;
|
|
66
71
|
const t6 = hideGutter && `${baseClass}__content--hide-gutter`;
|
|
67
72
|
let t7;
|
|
68
|
-
if ($[
|
|
73
|
+
if ($[15] !== t5 || $[16] !== t6) {
|
|
69
74
|
t7 = [`${baseClass}__content`, t5, t6].filter(Boolean);
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
72
|
-
$[
|
|
75
|
+
$[15] = t5;
|
|
76
|
+
$[16] = t6;
|
|
77
|
+
$[17] = t7;
|
|
73
78
|
} else {
|
|
74
|
-
t7 = $[
|
|
79
|
+
t7 = $[17];
|
|
75
80
|
}
|
|
76
81
|
const contentClassNames = t7.join(" ");
|
|
77
82
|
let t8;
|
|
78
|
-
if ($[
|
|
83
|
+
if ($[18] !== isCollapsed) {
|
|
79
84
|
t8 = () => setIsCollapsed(!isCollapsed);
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
85
|
+
$[18] = isCollapsed;
|
|
86
|
+
$[19] = t8;
|
|
82
87
|
} else {
|
|
83
|
-
t8 = $[
|
|
88
|
+
t8 = $[19];
|
|
84
89
|
}
|
|
85
90
|
t4 = _jsxs("div", {
|
|
86
91
|
className: baseClass,
|
|
@@ -109,21 +114,22 @@ export const DiffCollapser = t0 => {
|
|
|
109
114
|
})]
|
|
110
115
|
});
|
|
111
116
|
$[0] = Label;
|
|
112
|
-
$[1] =
|
|
113
|
-
$[2] =
|
|
114
|
-
$[3] =
|
|
115
|
-
$[4] =
|
|
116
|
-
$[5] =
|
|
117
|
-
$[6] =
|
|
118
|
-
$[7] =
|
|
119
|
-
$[8] =
|
|
120
|
-
$[9] =
|
|
121
|
-
$[10] =
|
|
122
|
-
$[11] =
|
|
123
|
-
$[12] =
|
|
124
|
-
$[13] =
|
|
117
|
+
$[1] = changeCountFromProps;
|
|
118
|
+
$[2] = children;
|
|
119
|
+
$[3] = config;
|
|
120
|
+
$[4] = field;
|
|
121
|
+
$[5] = fields;
|
|
122
|
+
$[6] = hideGutter;
|
|
123
|
+
$[7] = isCollapsed;
|
|
124
|
+
$[8] = isIterable;
|
|
125
|
+
$[9] = locales;
|
|
126
|
+
$[10] = parentIsLocalized;
|
|
127
|
+
$[11] = t;
|
|
128
|
+
$[12] = valueFrom;
|
|
129
|
+
$[13] = valueTo;
|
|
130
|
+
$[14] = t4;
|
|
125
131
|
} else {
|
|
126
|
-
t4 = $[
|
|
132
|
+
t4 = $[14];
|
|
127
133
|
}
|
|
128
134
|
return t4;
|
|
129
135
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","ChevronIcon","FieldDiffLabel","useConfig","useTranslation","fieldIsArrayType","fieldIsBlockType","React","useState","countChangedFields","countChangedFieldsInRows","baseClass","DiffCollapser","t0","$","children","field","fields","hideGutter","t1","initCollapsed","t2","isIterable","t3","Label","locales","parentIsLocalized","valueFrom","valueTo","undefined","t","isCollapsed","setIsCollapsed","config","t4","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","ChevronIcon","FieldDiffLabel","useConfig","useTranslation","fieldIsArrayType","fieldIsBlockType","React","useState","countChangedFields","countChangedFieldsInRows","baseClass","DiffCollapser","t0","$","changeCount","changeCountFromProps","children","field","fields","hideGutter","t1","initCollapsed","t2","isIterable","t3","Label","locales","parentIsLocalized","valueFrom","valueTo","undefined","t","isCollapsed","setIsCollapsed","config","t4","Error","valueFromRows","valueToRows","Array","isArray","t5","t6","t7","filter","Boolean","contentClassNames","join","t8","_jsxs","className","onClick","type","_jsx","direction","size","count"],"sources":["../../../../../src/views/Version/RenderFieldsToDiff/DiffCollapser/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\n\nimport { ChevronIcon, FieldDiffLabel, useConfig, useTranslation } from '@payloadcms/ui'\nimport { fieldIsArrayType, fieldIsBlockType } from 'payload/shared'\nimport React, { useState } from 'react'\n\nimport './index.scss'\nimport { countChangedFields, countChangedFieldsInRows } from '../utilities/countChangedFields.js'\n\nconst baseClass = 'diff-collapser'\n\ntype Props = {\n changeCount?: number\n hideGutter?: boolean\n initCollapsed?: boolean\n Label: React.ReactNode\n locales: string[] | undefined\n parentIsLocalized: boolean\n valueTo: unknown\n} & (\n | {\n // fields collapser\n children: React.ReactNode\n field?: never\n fields: ClientField[]\n isIterable?: false\n valueFrom: unknown\n }\n | {\n // iterable collapser\n children: React.ReactNode\n field: ClientField\n fields?: never\n isIterable: true\n valueFrom?: unknown\n }\n)\n\nexport const DiffCollapser: React.FC<Props> = ({\n changeCount: changeCountFromProps,\n children,\n field,\n fields,\n hideGutter = false,\n initCollapsed = false,\n isIterable = false,\n Label,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n}) => {\n const { t } = useTranslation()\n const [isCollapsed, setIsCollapsed] = useState(initCollapsed)\n const { config } = useConfig()\n\n let changeCount: number\n\n if (typeof changeCountFromProps === 'number') {\n changeCount = changeCountFromProps\n } else if (isIterable) {\n if (!fieldIsArrayType(field) && !fieldIsBlockType(field)) {\n throw new Error(\n 'DiffCollapser: field must be an array or blocks field when isIterable is true',\n )\n }\n const valueFromRows = valueFrom ?? []\n const valueToRows = valueTo ?? []\n\n if (!Array.isArray(valueFromRows) || !Array.isArray(valueToRows)) {\n throw new Error(\n 'DiffCollapser: valueFrom and valueTro must be arrays when isIterable is true',\n )\n }\n\n changeCount = countChangedFieldsInRows({\n config,\n field,\n locales,\n parentIsLocalized,\n valueFromRows,\n valueToRows,\n })\n } else {\n changeCount = countChangedFields({\n config,\n fields,\n locales,\n parentIsLocalized,\n valueFrom,\n valueTo,\n })\n }\n\n const contentClassNames = [\n `${baseClass}__content`,\n isCollapsed && `${baseClass}__content--is-collapsed`,\n hideGutter && `${baseClass}__content--hide-gutter`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div className={baseClass}>\n <FieldDiffLabel>\n <button\n aria-label={isCollapsed ? 'Expand' : 'Collapse'}\n className={`${baseClass}__toggle-button`}\n onClick={() => setIsCollapsed(!isCollapsed)}\n type=\"button\"\n >\n <div className={`${baseClass}__label`}>{Label}</div>\n\n <ChevronIcon direction={isCollapsed ? 'right' : 'down'} size={'small'} />\n </button>\n {changeCount > 0 && isCollapsed && (\n <span className={`${baseClass}__field-change-count`}>\n {t('version:changedFieldsCount', { count: changeCount })}\n </span>\n )}\n </FieldDiffLabel>\n <div className={contentClassNames}>{children}</div>\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,WAAW,EAAEC,cAAc,EAAEC,SAAS,EAAEC,cAAc,QAAQ;AACvE,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ;AACnD,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAGhC,SAASC,kBAAkB,EAAEC,wBAAwB,QAAQ;AAE7D,MAAMC,SAAA,GAAY;AA6BlB,OAAO,MAAMC,aAAA,GAAiCC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAAC;IAAAe,WAAA,EAAAC,oBAAA;IAAAC,QAAA;IAAAC,KAAA;IAAAC,MAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,aAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,KAAA;IAAAC,OAAA;IAAAC,iBAAA;IAAAC,SAAA;IAAAC;EAAA,IAAAjB,EAa9C;EARC,MAAAO,UAAA,GAAAC,EAAkB,KAAAU,SAAA,WAAlBV,EAAkB;EAClB,MAAAC,aAAA,GAAAC,EAAqB,KAAAQ,SAAA,WAArBR,EAAqB;EACrB,MAAAC,UAAA,GAAAC,EAAkB,KAAAM,SAAA,WAAlBN,EAAkB;EAOlB;IAAAO;EAAA,IAAc5B,cAAA;EACd,OAAA6B,WAAA,EAAAC,cAAA,IAAsC1B,QAAA,CAASc,aAAA;EAC/C;IAAAa;EAAA,IAAmBhC,SAAA;EAAA,IAAAiC,EAAA;EAAA,IAAAtB,CAAA,QAAAY,KAAA,IAAAZ,CAAA,QAAAE,oBAAA,IAAAF,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAqB,MAAA,IAAArB,CAAA,QAAAI,KAAA,IAAAJ,CAAA,QAAAK,MAAA,IAAAL,CAAA,QAAAM,UAAA,IAAAN,CAAA,QAAAmB,WAAA,IAAAnB,CAAA,QAAAU,UAAA,IAAAV,CAAA,QAAAa,OAAA,IAAAb,CAAA,SAAAc,iBAAA,IAAAd,CAAA,SAAAkB,CAAA,IAAAlB,CAAA,SAAAe,SAAA,IAAAf,CAAA,SAAAgB,OAAA;IAEff,GAAA,CAAAA,WAAA;IAAA,IAEA,OAAOC,oBAAA,KAAyB;MAClCD,WAAA,CAAAA,CAAA,CAAcC,oBAAA;IAAd;MAAA,IACSQ,UAAA;QAAA,IACL,CAACnB,gBAAA,CAAiBa,KAAA,MAAWZ,gBAAA,CAAiBY,KAAA;UAAA,UAAAmB,KAAA,CAE9C;QAAA;QAGJ,MAAAC,aAAA,GAAsBT,SAAA,MAAe;QACrC,MAAAU,WAAA,GAAoBT,OAAA,MAAa;QAAA,IAE7B,CAACU,KAAA,CAAAC,OAAA,CAAcH,aAAA,MAAmBE,KAAA,CAAAC,OAAA,CAAcF,WAAA;UAAA,UAAAF,KAAA,CAEhD;QAAA;QAIJtB,WAAA,CAAAA,CAAA,CAAcA;UAAAA;UAAAA;UAAAA;UAAAA;UAAAA;UAAAA;QAAAA,CAOdA,CAAA;MAPA;QASAA,WAAA,CAAAA,CAAA,CAAcA;UAAAA;UAAAA;UAAAA;UAAAA;UAAAA;UAAAA;QAAAA,CAOdA,CAAA;MAPA;IAAA;IAYA,MAAA2B,EAAA,GAAAT,WAAA,IAAe,GAAAtB,SAAA,yBAAqC;IACpD,MAAAgC,EAAA,GAAAvB,UAAA,IAAc,GAAAT,SAAA,wBAAoC;IAAA,IAAAiC,EAAA;IAAA,IAAA9B,CAAA,SAAA4B,EAAA,IAAA5B,CAAA,SAAA6B,EAAA;MAH1BC,EAAA,IACxB,GAAAjC,SAAA,WAAuB,EACvB+B,EAAoD,EACpDC,EAAkD,EAAAE,MAAA,CAAAC,OAE1C;MAAAhC,CAAA,OAAA4B,EAAA;MAAA5B,CAAA,OAAA6B,EAAA;MAAA7B,CAAA,OAAA8B,EAAA;IAAA;MAAAA,EAAA,GAAA9B,CAAA;IAAA;IALV,MAAAiC,iBAAA,GAA0BH,EAKhB,CAAAI,IAAA,CACF;IAAA,IAAAC,EAAA;IAAA,IAAAnC,CAAA,SAAAmB,WAAA;MAQSgB,EAAA,GAAAA,CAAA,KAAMf,cAAA,EAAgBD,WAAA;MAAAnB,CAAA,OAAAmB,WAAA;MAAAnB,CAAA,OAAAmC,EAAA;IAAA;MAAAA,EAAA,GAAAnC,CAAA;IAAA;IALrCsB,EAAA,GAAAc,KAAA,CAAC;MAAAC,SAAA,EAAAxC,SAAA;MAAAM,QAAA,GACCiC,KAAA,CAAAhD,cAAA;QAAAe,QAAA,GACEiC,KAAA,CAAC;UAAA,cACajB,WAAA,GAAc,WAAW;UAAAkB,SAAA,EAC1B,GAAAxC,SAAA,iBAA6B;UAAAyC,OAAA,EAC/BH,EAAsB;UAAAI,IAAA,EAC1B;UAAApC,QAAA,GAELqC,IAAA,CAAC;YAAAH,SAAA,EAAe,GAAAxC,SAAA,SAAqB;YAAAM,QAAA,EAAGS;UAAA,C,GAExC4B,IAAA,CAAArD,WAAA;YAAAsD,SAAA,EAAwBtB,WAAA,GAAc,UAAU;YAAAuB,IAAA,EAAc;UAAA,C;YAE/DzC,WAAA,IAAc,IAAKkB,WAAA,IAClBqB,IAAA,CAAC;UAAAH,SAAA,EAAgB,GAAAxC,SAAA,sBAAkC;UAAAM,QAAA,EAChDe,CAAA,CAAE;YAAAyB,KAAA,EAAuC1C;UAAA,CAAY;QAAA,C;UAI5DuC,IAAA,CAAC;QAAAH,SAAA,EAAeJ,iBAAA;QAAA9B;MAAA,C;;;;;;;;;;;;;;;;;;;;SAlBlBmB,E;CAqBJ","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildVersionFields.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAI1D,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,KAAK,EACV,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAClB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"buildVersionFields.d.ts","sourceRoot":"","sources":["../../../../src/views/Version/RenderFieldsToDiff/buildVersionFields.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAI1D,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,KAAK,EACV,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,UAAU,EAGf,KAAK,gBAAgB,EACrB,KAAK,cAAc,EAEnB,KAAK,0BAA0B,EAC/B,KAAK,YAAY,EAClB,MAAM,SAAS,CAAA;AAKhB,MAAM,MAAM,sBAAsB,GAAG;IACnC,eAAe,EAAE,oBAAoB,CAAA;IACrC,oBAAoB,EAAE,OAAO,CAC3B,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,CACjF,CAAA;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,IAAI,EAAE,UAAU,CAAA;IAChB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;IACnB,eAAe,EAAE,MAAM,EAAE,CAAA;IACzB,sBAAsB,EAAE,MAAM,CAAA;IAC9B,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,8PAiB5B,sBAAsB,KAAG;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAA;CAgH9B,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent';
|
|
2
2
|
import { dequal } from 'dequal/lite';
|
|
3
3
|
import { MissingEditorProp } from 'payload';
|
|
4
|
-
import { fieldIsID, fieldShouldBeLocalized, getFieldPaths,
|
|
4
|
+
import { fieldIsID, fieldShouldBeLocalized, getFieldPaths, tabHasName } from 'payload/shared';
|
|
5
5
|
import { diffComponents } from './fields/index.js';
|
|
6
6
|
/**
|
|
7
7
|
* Build up an object that contains rendered diff components for each field.
|
|
@@ -341,37 +341,22 @@ const buildVersionField = ({
|
|
|
341
341
|
const toRow = Array.isArray(valueTo) && valueTo?.[i] || {};
|
|
342
342
|
const blockSlugToMatch = toRow?.blockType ?? fromRow?.blockType;
|
|
343
343
|
const toBlock = req.payload.blocks[blockSlugToMatch] ?? (field.blockReferences ?? field.blocks).find(block => typeof block !== 'string' && block.slug === blockSlugToMatch);
|
|
344
|
-
let
|
|
345
|
-
if (toRow.blockType
|
|
346
|
-
|
|
347
|
-
} else {
|
|
348
|
-
const fromBlockSlugToMatch = toRow?.blockType ?? fromRow?.blockType;
|
|
344
|
+
let replacedBlock = undefined;
|
|
345
|
+
if (toRow.blockType !== fromRow.blockType) {
|
|
346
|
+
const fromBlockSlugToMatch = fromRow?.blockType ?? toRow?.blockType;
|
|
349
347
|
const fromBlock = req.payload.blocks[fromBlockSlugToMatch] ?? (field.blockReferences ?? field.blocks).find(block => typeof block !== 'string' && block.slug === fromBlockSlugToMatch);
|
|
350
|
-
if (fromBlock) {
|
|
351
|
-
|
|
352
|
-
} else {
|
|
353
|
-
fields = toBlock.fields;
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
let blockFieldsPermissions = undefined;
|
|
357
|
-
// fieldPermissions will be set here, as the blocks field has a name
|
|
358
|
-
if (typeof fieldPermissions === 'boolean') {
|
|
359
|
-
blockFieldsPermissions = fieldPermissions;
|
|
360
|
-
} else if (typeof fieldPermissions?.blocks === 'boolean') {
|
|
361
|
-
blockFieldsPermissions = fieldPermissions.blocks;
|
|
362
|
-
} else {
|
|
363
|
-
const permissionsBlockSpecific = fieldPermissions?.blocks?.[blockSlugToMatch];
|
|
364
|
-
if (typeof permissionsBlockSpecific === 'boolean') {
|
|
365
|
-
blockFieldsPermissions = permissionsBlockSpecific;
|
|
366
|
-
} else {
|
|
367
|
-
blockFieldsPermissions = permissionsBlockSpecific?.fields;
|
|
348
|
+
if (fromBlock && fromBlock.slug !== toBlock.slug) {
|
|
349
|
+
replacedBlock = fromBlock;
|
|
368
350
|
}
|
|
369
351
|
}
|
|
370
|
-
const
|
|
352
|
+
const blockFieldsPermissions = getBlockFieldsPermissions({
|
|
353
|
+
blockSlug: blockSlugToMatch,
|
|
354
|
+
fieldPermissions
|
|
355
|
+
});
|
|
356
|
+
const blockDiffArgs = {
|
|
371
357
|
clientSchemaMap,
|
|
372
358
|
customDiffComponents,
|
|
373
359
|
entitySlug,
|
|
374
|
-
fields,
|
|
375
360
|
fieldsPermissions: blockFieldsPermissions,
|
|
376
361
|
i18n,
|
|
377
362
|
modifiedOnly,
|
|
@@ -379,12 +364,28 @@ const buildVersionField = ({
|
|
|
379
364
|
parentIndexPath: 'name' in field ? '' : indexPath,
|
|
380
365
|
parentIsLocalized: parentIsLocalized || 'localized' in field && field.localized,
|
|
381
366
|
parentPath: ('name' in field ? path : parentPath) + '.' + i,
|
|
382
|
-
parentSchemaPath: schemaPath + '.' + toBlock.slug,
|
|
383
367
|
req,
|
|
384
|
-
selectedLocales
|
|
368
|
+
selectedLocales
|
|
369
|
+
};
|
|
370
|
+
const oldBlockFields = replacedBlock ? buildVersionFields({
|
|
371
|
+
...blockDiffArgs,
|
|
372
|
+
fields: replacedBlock.fields,
|
|
373
|
+
fieldsPermissions: getBlockFieldsPermissions({
|
|
374
|
+
blockSlug: replacedBlock.slug,
|
|
375
|
+
fieldPermissions
|
|
376
|
+
}),
|
|
377
|
+
parentSchemaPath: schemaPath + '.' + replacedBlock.slug,
|
|
385
378
|
versionFromSiblingData: fromRow,
|
|
379
|
+
versionToSiblingData: {}
|
|
380
|
+
}).versionFields : [];
|
|
381
|
+
const newBlockFields = buildVersionFields({
|
|
382
|
+
...blockDiffArgs,
|
|
383
|
+
fields: toBlock.fields,
|
|
384
|
+
parentSchemaPath: schemaPath + '.' + toBlock.slug,
|
|
385
|
+
versionFromSiblingData: replacedBlock ? {} : fromRow,
|
|
386
386
|
versionToSiblingData: toRow
|
|
387
387
|
}).versionFields;
|
|
388
|
+
const versionFields = [...oldBlockFields, ...newBlockFields];
|
|
388
389
|
if (versionFields?.length) {
|
|
389
390
|
baseVersionField.rows[i] = versionFields;
|
|
390
391
|
}
|
|
@@ -436,4 +437,17 @@ const buildVersionField = ({
|
|
|
436
437
|
});
|
|
437
438
|
return baseVersionField;
|
|
438
439
|
};
|
|
440
|
+
const getBlockFieldsPermissions = ({
|
|
441
|
+
blockSlug,
|
|
442
|
+
fieldPermissions
|
|
443
|
+
}) => {
|
|
444
|
+
if (typeof fieldPermissions === 'boolean') {
|
|
445
|
+
return fieldPermissions;
|
|
446
|
+
}
|
|
447
|
+
if (typeof fieldPermissions?.blocks === 'boolean') {
|
|
448
|
+
return fieldPermissions.blocks;
|
|
449
|
+
}
|
|
450
|
+
const blockPermissions = fieldPermissions?.blocks?.[blockSlug];
|
|
451
|
+
return typeof blockPermissions === 'boolean' ? blockPermissions : blockPermissions?.fields;
|
|
452
|
+
};
|
|
439
453
|
//# sourceMappingURL=buildVersionFields.js.map
|