@payloadcms/ui 3.0.0-canary.23fcb9e → 3.0.0-canary.294ea5c
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/AddNewRelation/index.d.ts.map +1 -0
- package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.js +98 -82
- package/dist/elements/AddNewRelation/index.js.map +1 -0
- package/dist/elements/AddNewRelation/index.scss +42 -0
- package/dist/elements/AddNewRelation/types.d.ts +11 -0
- package/dist/elements/AddNewRelation/types.d.ts.map +1 -0
- package/dist/elements/AddNewRelation/types.js.map +1 -0
- package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -0
- package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.js +1 -1
- package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -0
- package/dist/elements/AppHeader/index.js +41 -80
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/Autosave/index.js +148 -231
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Button/index.js +86 -218
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Collapsible/index.js +44 -62
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/Collapsible/index.scss +15 -28
- package/dist/elements/CopyToClipboard/index.js +20 -54
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +1 -1
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/Dropzone/index.js +59 -119
- package/dist/elements/Dropzone/index.js.map +1 -1
- package/dist/elements/EditMany/index.js +124 -230
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.js +133 -206
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +20 -0
- package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -0
- package/dist/elements/FileDetails/DraggableFileDetails/index.js +116 -0
- package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -0
- package/dist/elements/FileDetails/DraggableFileDetails/index.scss +33 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +17 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.js +71 -0
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -0
- package/dist/elements/FileDetails/{index.scss → StaticFileDetails/index.scss} +1 -1
- package/dist/elements/FileDetails/index.d.ts +19 -4
- package/dist/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/index.js +11 -62
- package/dist/elements/FileDetails/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +91 -192
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/ListDrawer/DrawerContent.js +42 -31
- package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/ListDrawer/index.d.ts.map +1 -1
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListDrawer/types.d.ts +4 -1
- package/dist/elements/ListDrawer/types.d.ts.map +1 -1
- package/dist/elements/ListDrawer/types.js.map +1 -1
- package/dist/elements/Nav/context.js +47 -83
- package/dist/elements/Nav/context.js.map +1 -1
- package/dist/elements/SaveButton/index.js +30 -81
- package/dist/elements/SaveButton/index.js.map +1 -1
- package/dist/elements/SaveDraftButton/index.js +54 -116
- package/dist/elements/SaveDraftButton/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.js +21 -77
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SelectMany/index.d.ts +6 -0
- package/dist/elements/SelectMany/index.d.ts.map +1 -0
- package/dist/elements/SelectMany/index.js +29 -0
- package/dist/elements/SelectMany/index.js.map +1 -0
- package/dist/elements/Upload/index.js +130 -280
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-C4FLUUO7.js → CodeEditor-MTP455NO.js} +2 -2
- package/dist/exports/client/chunk-NJHSEGFB.js +14 -0
- package/dist/exports/client/{chunk-UGBVRIVY.js.map → chunk-NJHSEGFB.js.map} +2 -2
- package/dist/exports/client/index.d.ts +1 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +13 -13
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +319 -507
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.d.ts +4 -0
- package/dist/fields/Upload/HasMany/index.d.ts.map +1 -0
- package/dist/fields/Upload/HasMany/index.js +238 -0
- package/dist/fields/Upload/HasMany/index.js.map +1 -0
- package/dist/fields/Upload/HasMany/index.scss +71 -0
- package/dist/fields/Upload/{Input.d.ts → HasOne/Input.d.ts} +1 -1
- package/dist/fields/Upload/HasOne/Input.d.ts.map +1 -0
- package/dist/fields/Upload/{Input.js → HasOne/Input.js} +12 -12
- package/dist/fields/Upload/HasOne/Input.js.map +1 -0
- package/dist/fields/Upload/HasOne/index.d.ts +12 -0
- package/dist/fields/Upload/HasOne/index.d.ts.map +1 -0
- package/dist/fields/Upload/HasOne/index.js +131 -0
- package/dist/fields/Upload/HasOne/index.js.map +1 -0
- package/dist/fields/Upload/{index.scss → HasOne/index.scss} +1 -1
- package/dist/fields/Upload/index.d.ts +4 -4
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +84 -98
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/Submit/index.js +12 -28
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -27
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/hooks/useDelay.js +15 -48
- package/dist/hooks/useDelay.js.map +1 -1
- package/dist/hooks/useDelayedRender.js +32 -71
- package/dist/hooks/useDelayedRender.js.map +1 -1
- package/dist/hooks/useIntersect.js +14 -20
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
- package/dist/providers/Config/createClientConfig/collections.js +8 -6
- package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
- package/dist/providers/ListInfo/index.d.ts +6 -0
- package/dist/providers/ListInfo/index.d.ts.map +1 -1
- package/dist/providers/ListInfo/index.js.map +1 -1
- package/dist/providers/Preferences/index.js +1 -3
- package/dist/providers/Preferences/index.js.map +1 -1
- package/dist/providers/Selection/index.d.ts +5 -3
- package/dist/providers/Selection/index.d.ts.map +1 -1
- package/dist/providers/Selection/index.js +102 -190
- package/dist/providers/Selection/index.js.map +1 -1
- package/dist/scss/app.scss +6 -6
- package/dist/scss/type.scss +4 -4
- package/dist/styles.css +1 -1
- package/package.json +8 -8
- package/dist/exports/client/chunk-UGBVRIVY.js +0 -14
- package/dist/fields/Relationship/AddNew/index.d.ts.map +0 -1
- package/dist/fields/Relationship/AddNew/index.js.map +0 -1
- package/dist/fields/Relationship/AddNew/index.scss +0 -28
- package/dist/fields/Relationship/AddNew/types.d.ts +0 -12
- package/dist/fields/Relationship/AddNew/types.d.ts.map +0 -1
- package/dist/fields/Relationship/AddNew/types.js.map +0 -1
- package/dist/fields/Relationship/AddNew/useRelatedCollections.d.ts.map +0 -1
- package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +0 -1
- package/dist/fields/Upload/Input.d.ts.map +0 -1
- package/dist/fields/Upload/Input.js.map +0 -1
- /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.d.ts +0 -0
- /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/types.js +0 -0
- /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.d.ts +0 -0
- /package/dist/exports/client/{CodeEditor-C4FLUUO7.js.map → CodeEditor-MTP455NO.js.map} +0 -0
|
@@ -256,6 +256,7 @@ export const addFieldStatePromise = async args => {
|
|
|
256
256
|
});
|
|
257
257
|
break;
|
|
258
258
|
}
|
|
259
|
+
case 'upload':
|
|
259
260
|
case 'relationship':
|
|
260
261
|
{
|
|
261
262
|
if (field.filterOptions) {
|
|
@@ -317,33 +318,6 @@ export const addFieldStatePromise = async args => {
|
|
|
317
318
|
}
|
|
318
319
|
break;
|
|
319
320
|
}
|
|
320
|
-
case 'upload':
|
|
321
|
-
{
|
|
322
|
-
if (field.filterOptions) {
|
|
323
|
-
if (typeof field.filterOptions === 'object') {
|
|
324
|
-
fieldState.filterOptions = {
|
|
325
|
-
[field.relationTo]: field.filterOptions
|
|
326
|
-
};
|
|
327
|
-
}
|
|
328
|
-
if (typeof field.filterOptions === 'function') {
|
|
329
|
-
const query = await getFilterOptionsQuery(field.filterOptions, {
|
|
330
|
-
id,
|
|
331
|
-
data: fullData,
|
|
332
|
-
relationTo: field.relationTo,
|
|
333
|
-
siblingData: data,
|
|
334
|
-
user: req.user
|
|
335
|
-
});
|
|
336
|
-
fieldState.filterOptions = query;
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
const relationshipValue = data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name] ? data[field.name].id : data[field.name];
|
|
340
|
-
fieldState.value = relationshipValue;
|
|
341
|
-
fieldState.initialValue = relationshipValue;
|
|
342
|
-
if (!filter || filter(args)) {
|
|
343
|
-
state[`${path}${field.name}`] = fieldState;
|
|
344
|
-
}
|
|
345
|
-
break;
|
|
346
|
-
}
|
|
347
321
|
default:
|
|
348
322
|
{
|
|
349
323
|
fieldState.value = data[field.name];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","fieldAffectsData","fieldHasSubFields","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","collectionSlug","data","field","fieldIndex","filter","forceFullValue","fullData","includeSchema","omitParents","operation","passesCondition","path","preferences","req","skipConditionChecks","skipValidation","state","validate","fieldState","errorPaths","fieldSchema","undefined","initialValue","valid","value","validationResult","jsonError","type","name","JSON","parse","e","siblingData","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rowMetadata","reduce","acc","row","i","rowPath","toHexString","fields","find","localized","parentPassesCondition","collapsedRowIDs","collapsed","admin","initCollapsed","Promise","all","length","disableFormData","rows","blocksValue","block","blocks","blockType","slug","blockField","blockName","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","isNamedTab"],"sources":["../../../src/forms/buildStateFromSchema/addFieldStatePromise.ts"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field,\n FilterOptionsResult,\n FormField,\n FormState,\n PayloadRequest,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { fieldAffectsData, fieldHasSubFields, tabHasName } from 'payload/shared'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (path: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n passesCondition: boolean\n path: string\n\n preferences: DocumentPreferences\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormState\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n collectionSlug,\n data,\n field,\n fieldIndex,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (fieldAffectsData(field)) {\n const validate = field.validate\n\n const fieldState: FormField = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n collectionSlug,\n data: fullData,\n operation,\n req,\n siblingData: data,\n // @ts-expect-error-next-line\n jsonError,\n preferences,\n })\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(`${path}${field.name}`)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = arrayValue.reduce(\n (acc, row, i) => {\n const rowPath = `${path}${field.name}.${i}.`\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => 'name' in field && field.name === 'id')\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n const rowPath = `${path}${field.name}.${i}.`\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'id',\n )\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[`${rowPath}blockType`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[`${rowPath}blockName`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: block.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[`${path}${field.name}`] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: data?.[field.name] || {},\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: `${path}${field.name}.`,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'upload': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n data,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab) => {\n const isNamedTab = tabHasName(tab)\n\n return iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: isNamedTab ? `${path}${tab.name}.` : path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","fieldAffectsData","fieldHasSubFields","tabHasName","getFilterOptionsQuery","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","collectionSlug","data","field","fieldIndex","filter","forceFullValue","fullData","includeSchema","omitParents","operation","passesCondition","path","preferences","req","skipConditionChecks","skipValidation","state","validate","fieldState","errorPaths","fieldSchema","undefined","initialValue","valid","value","validationResult","jsonError","type","name","JSON","parse","e","siblingData","errorPath","includes","push","errorMessage","arrayValue","Array","isArray","promises","rowMetadata","reduce","acc","row","i","rowPath","toHexString","fields","find","localized","parentPassesCondition","collapsedRowIDs","collapsed","admin","initCollapsed","Promise","all","length","disableFormData","rows","blocksValue","block","blocks","blockType","slug","blockField","blockName","filterOptions","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","tabs","tab","isNamedTab"],"sources":["../../../src/forms/buildStateFromSchema/addFieldStatePromise.ts"],"sourcesContent":["import type {\n Data,\n DocumentPreferences,\n Field,\n FilterOptionsResult,\n FormField,\n FormState,\n PayloadRequest,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { fieldAffectsData, fieldHasSubFields, tabHasName } from 'payload/shared'\n\nimport { getFilterOptionsQuery } from './getFilterOptionsQuery.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (path: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n collectionSlug?: string\n data: Data\n field: Field\n fieldIndex: number\n /**\n * You can use this to filter down to only `localized` fields that require translation (type: text, textarea, etc.). Another plugin might want to look for only `point` type fields to do some GIS function. With the filter function you can go in like a surgeon.\n */\n filter?: (args: AddFieldStatePromiseArgs) => boolean\n /**\n * Force the value of fields like arrays or blocks to be the full value instead of the length @default false\n */\n forceFullValue?: boolean\n fullData: Data\n id: number | string\n /**\n * Whether the field schema should be included in the state\n */\n includeSchema?: boolean\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n passesCondition: boolean\n path: string\n\n preferences: DocumentPreferences\n /**\n * Req is used for validation and defaultValue calculation. If you don't need validation,\n * just create your own req and pass in the locale and the user\n */\n req: PayloadRequest\n /**\n * Whether to skip checking the field's condition. @default false\n */\n skipConditionChecks?: boolean\n /**\n * Whether to skip validating the field. @default false\n */\n skipValidation?: boolean\n state: FormState\n}\n\n/**\n * Flattens the fields schema and fields data.\n * The output is the field path (e.g. array.0.name) mapped to a FormField object.\n */\nexport const addFieldStatePromise = async (args: AddFieldStatePromiseArgs): Promise<void> => {\n const {\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized = false,\n collectionSlug,\n data,\n field,\n fieldIndex,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n omitParents = false,\n operation,\n passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (fieldAffectsData(field)) {\n const validate = field.validate\n\n const fieldState: FormField = {\n errorPaths: [],\n fieldSchema: includeSchema ? field : undefined,\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n\n let validationResult: string | true = true\n\n if (typeof validate === 'function' && !skipValidation && passesCondition) {\n let jsonError\n\n if (field.type === 'json' && typeof data[field.name] === 'string') {\n try {\n JSON.parse(data[field.name] as string)\n } catch (e) {\n jsonError = e\n }\n }\n\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n collectionSlug,\n data: fullData,\n operation,\n req,\n siblingData: data,\n // @ts-expect-error-next-line\n jsonError,\n preferences,\n })\n }\n\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths.includes(errorPath)) {\n fieldState.errorPaths.push(errorPath)\n fieldState.valid = false\n }\n }\n\n if (typeof validationResult === 'string') {\n fieldState.errorMessage = validationResult\n fieldState.valid = false\n addErrorPathToParent(`${path}${field.name}`)\n } else {\n fieldState.valid = true\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = arrayValue.reduce(\n (acc, row, i) => {\n const rowPath = `${path}${field.name}.${i}.`\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? field.fields.find((field) => 'name' in field && field.name === 'id')\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? arrayValue : arrayValue.length\n fieldState.initialValue = forceFullValue ? arrayValue : arrayValue.length\n\n if (arrayValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i) => {\n const block = field.blocks.find((blockType) => blockType.slug === row.blockType)\n const rowPath = `${path}${field.name}.${i}.`\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n state[`${rowPath}id`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'id',\n )\n : undefined,\n initialValue: row.id,\n valid: true,\n value: row.id,\n }\n\n state[`${rowPath}blockType`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n : undefined,\n initialValue: row.blockType,\n valid: true,\n value: row.blockType,\n }\n\n state[`${rowPath}blockName`] = {\n fieldSchema: includeSchema\n ? block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n : undefined,\n initialValue: row.blockName,\n valid: true,\n value: row.blockName,\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: row,\n fields: block.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: rowPath,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const collapsedRowIDs = preferences?.fields?.[`${path}${field.name}`]?.collapsed\n\n acc.rowMetadata.push({\n id: row.id,\n blockType: row.blockType,\n collapsed:\n collapsedRowIDs === undefined\n ? field.admin.initCollapsed\n : collapsedRowIDs.includes(row.id),\n })\n }\n\n return acc\n },\n {\n promises: [],\n rowMetadata: [],\n },\n )\n\n await Promise.all(promises)\n\n // Add values to field state\n if (data[field.name] === null) {\n fieldState.value = null\n fieldState.initialValue = null\n } else {\n fieldState.value = forceFullValue ? blocksValue : blocksValue.length\n fieldState.initialValue = forceFullValue ? blocksValue : blocksValue.length\n\n if (blocksValue.length > 0) {\n fieldState.disableFormData = true\n }\n }\n\n fieldState.rows = rowMetadata\n\n // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[`${path}${field.name}`] = fieldState\n }\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n data: data?.[field.name] || {},\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: `${path}${field.name}.`,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n case 'upload':\n case 'relationship': {\n if (field.filterOptions) {\n if (typeof field.filterOptions === 'object') {\n if (typeof field.relationTo === 'string') {\n fieldState.filterOptions = {\n [field.relationTo]: field.filterOptions,\n }\n } else {\n fieldState.filterOptions = field.relationTo.reduce((acc, relation) => {\n acc[relation] = field.filterOptions\n return acc\n }, {})\n }\n }\n\n if (typeof field.filterOptions === 'function') {\n const query = await getFilterOptionsQuery(field.filterOptions, {\n id,\n data: fullData,\n relationTo: field.relationTo,\n siblingData: data,\n user: req.user,\n })\n\n fieldState.filterOptions = query\n }\n }\n\n if (field.hasMany) {\n const relationshipValue = Array.isArray(data[field.name])\n ? data[field.name].map((relationship) => {\n if (Array.isArray(field.relationTo)) {\n return {\n relationTo: relationship.relationTo,\n value:\n relationship.value && typeof relationship.value === 'object'\n ? relationship.value?.id\n : relationship.value,\n }\n }\n if (typeof relationship === 'object' && relationship !== null) {\n return relationship.id\n }\n return relationship\n })\n : undefined\n\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n } else if (Array.isArray(field.relationTo)) {\n if (\n data[field.name] &&\n typeof data[field.name] === 'object' &&\n 'relationTo' in data[field.name] &&\n 'value' in data[field.name]\n ) {\n const value =\n typeof data[field.name]?.value === 'object' &&\n data[field.name]?.value &&\n 'id' in data[field.name].value\n ? data[field.name].value.id\n : data[field.name].value\n const relationshipValue = {\n relationTo: data[field.name]?.relationTo,\n value,\n }\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n } else {\n const relationshipValue =\n data[field.name] && typeof data[field.name] === 'object' && 'id' in data[field.name]\n ? data[field.name].id\n : data[field.name]\n fieldState.value = relationshipValue\n fieldState.initialValue = relationshipValue\n }\n\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n\n default: {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n\n // Add field to state\n if (!filter || filter(args)) {\n state[`${path}${field.name}`] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field)) {\n // Handle field types that do not use names (row, etc)\n\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n\n await iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n data,\n fields: field.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n const promises = field.tabs.map((tab) => {\n const isNamedTab = tabHasName(tab)\n\n return iterateFields({\n id,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: tab.localized || anyParentLocalized,\n data: isNamedTab ? data?.[tab.name] || {} : data,\n fields: tab.fields,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentPassesCondition: passesCondition,\n path: isNamedTab ? `${path}${tab.name}.` : path,\n preferences,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n })\n\n await Promise.all(promises)\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[`${path}_index-${fieldIndex}`] = {\n disableFormData: true,\n errorPaths: [],\n initialValue: undefined,\n passesCondition,\n valid: true,\n value: undefined,\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/dist/hooks/useDelay.js
CHANGED
|
@@ -1,57 +1,24 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import * as React from 'react';
|
|
5
|
-
export const useDelay = (delay,
|
|
6
|
-
const $ = _c(9);
|
|
7
|
-
const triggerOnMount = t0 === undefined ? false : t0;
|
|
4
|
+
export const useDelay = (delay, triggerOnMount = false) => {
|
|
8
5
|
const [hasDelayed, setHasDelayed] = React.useState(false);
|
|
9
6
|
const triggerTimeoutRef = React.useRef(undefined);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
const triggerDelay = React.useCallback(() => {
|
|
8
|
+
setHasDelayed(false);
|
|
9
|
+
clearTimeout(triggerTimeoutRef.current);
|
|
10
|
+
triggerTimeoutRef.current = setTimeout(() => {
|
|
11
|
+
setHasDelayed(true);
|
|
12
|
+
}, delay);
|
|
13
|
+
return () => {
|
|
14
14
|
clearTimeout(triggerTimeoutRef.current);
|
|
15
|
-
triggerTimeoutRef.current = setTimeout(() => {
|
|
16
|
-
setHasDelayed(true);
|
|
17
|
-
}, delay);
|
|
18
|
-
return () => {
|
|
19
|
-
clearTimeout(triggerTimeoutRef.current);
|
|
20
|
-
};
|
|
21
15
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
let t3;
|
|
30
|
-
if ($[2] !== triggerOnMount || $[3] !== triggerDelay) {
|
|
31
|
-
t2 = () => {
|
|
32
|
-
if (triggerOnMount) {
|
|
33
|
-
triggerDelay();
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
t3 = [triggerDelay, triggerOnMount];
|
|
37
|
-
$[2] = triggerOnMount;
|
|
38
|
-
$[3] = triggerDelay;
|
|
39
|
-
$[4] = t2;
|
|
40
|
-
$[5] = t3;
|
|
41
|
-
} else {
|
|
42
|
-
t2 = $[4];
|
|
43
|
-
t3 = $[5];
|
|
44
|
-
}
|
|
45
|
-
React.useEffect(t2, t3);
|
|
46
|
-
let t4;
|
|
47
|
-
if ($[6] !== hasDelayed || $[7] !== triggerDelay) {
|
|
48
|
-
t4 = [hasDelayed, triggerDelay];
|
|
49
|
-
$[6] = hasDelayed;
|
|
50
|
-
$[7] = triggerDelay;
|
|
51
|
-
$[8] = t4;
|
|
52
|
-
} else {
|
|
53
|
-
t4 = $[8];
|
|
54
|
-
}
|
|
55
|
-
return t4;
|
|
16
|
+
}, [delay]);
|
|
17
|
+
React.useEffect(() => {
|
|
18
|
+
if (triggerOnMount) {
|
|
19
|
+
triggerDelay();
|
|
20
|
+
}
|
|
21
|
+
}, [triggerDelay, triggerOnMount]);
|
|
22
|
+
return [hasDelayed, triggerDelay];
|
|
56
23
|
};
|
|
57
24
|
//# sourceMappingURL=useDelay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDelay.js","names":["
|
|
1
|
+
{"version":3,"file":"useDelay.js","names":["React","useDelay","delay","triggerOnMount","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","undefined","triggerDelay","useCallback","clearTimeout","current","setTimeout","useEffect"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AACA,YAAYA,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAACC,KAAA,EAAeC,cAAA,GAAiB,KAAK;EAC5D,MAAM,CAACC,UAAA,EAAYC,aAAA,CAAc,GAAGL,KAAA,CAAMM,QAAQ,CAAC;EACnD,MAAMC,iBAAA,GAAoBP,KAAA,CAAMQ,MAAM,CAAiBC,SAAA;EAEvD,MAAMC,YAAA,GAAeV,KAAA,CAAMW,WAAW,CAAC;IACrCN,aAAA,CAAc;IACdO,YAAA,CAAaL,iBAAA,CAAkBM,OAAO;IACtCN,iBAAA,CAAkBM,OAAO,GAAGC,UAAA,CAAW;MACrCT,aAAA,CAAc;IAChB,GAAGH,KAAA;IAEH,OAAO;MACLU,YAAA,CAAaL,iBAAA,CAAkBM,OAAO;IACxC;EACF,GAAG,CAACX,KAAA,CAAM;EAEVF,KAAA,CAAMe,SAAS,CAAC;IACd,IAAIZ,cAAA,EAAgB;MAClBO,YAAA;IACF;EACF,GAAG,CAACA,YAAA,EAAcP,cAAA,CAAe;EAEjC,OAAO,CAACC,UAAA,EAAYM,YAAA,CAAa;AACnC","ignoreList":[]}
|
|
@@ -1,83 +1,44 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import * as React from 'react';
|
|
5
4
|
import { useDelay } from './useDelay.js';
|
|
6
|
-
export const useDelayedRender =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
show
|
|
14
|
-
} = t0;
|
|
5
|
+
export const useDelayedRender = ({
|
|
6
|
+
delayBeforeShow,
|
|
7
|
+
inTimeout,
|
|
8
|
+
minShowTime,
|
|
9
|
+
outTimeout,
|
|
10
|
+
show
|
|
11
|
+
}) => {
|
|
15
12
|
const totalMountTime = inTimeout + minShowTime + outTimeout;
|
|
16
13
|
const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow);
|
|
17
14
|
const [isMounted, setIsMounted] = React.useState(false);
|
|
18
15
|
const [isUnmounting, setIsUnmounting] = React.useState(false);
|
|
19
16
|
const onMountTimestampRef = React.useRef(0);
|
|
20
17
|
const unmountTimeoutRef = React.useRef(undefined);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
if (shouldUnmount) {
|
|
47
|
-
const totalTimeMounted = Date.now() - onMountTimestampRef.current;
|
|
48
|
-
const remainingTime = totalMountTime - totalTimeMounted;
|
|
49
|
-
clearTimeout(unmountTimeoutRef.current);
|
|
50
|
-
unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime));
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
t3 = [isMounted, show, unmount, totalMountTime, hasDelayed];
|
|
55
|
-
$[2] = hasDelayed;
|
|
56
|
-
$[3] = isMounted;
|
|
57
|
-
$[4] = show;
|
|
58
|
-
$[5] = totalMountTime;
|
|
59
|
-
$[6] = unmount;
|
|
60
|
-
$[7] = t2;
|
|
61
|
-
$[8] = t3;
|
|
62
|
-
} else {
|
|
63
|
-
t2 = $[7];
|
|
64
|
-
t3 = $[8];
|
|
65
|
-
}
|
|
66
|
-
React.useEffect(t2, t3);
|
|
67
|
-
let t4;
|
|
68
|
-
if ($[9] !== isMounted || $[10] !== isUnmounting || $[11] !== triggerDelay) {
|
|
69
|
-
t4 = {
|
|
70
|
-
isMounted,
|
|
71
|
-
isUnmounting,
|
|
72
|
-
triggerDelayedRender: triggerDelay
|
|
73
|
-
};
|
|
74
|
-
$[9] = isMounted;
|
|
75
|
-
$[10] = isUnmounting;
|
|
76
|
-
$[11] = triggerDelay;
|
|
77
|
-
$[12] = t4;
|
|
78
|
-
} else {
|
|
79
|
-
t4 = $[12];
|
|
80
|
-
}
|
|
81
|
-
return t4;
|
|
18
|
+
const unmount = React.useCallback(() => {
|
|
19
|
+
setIsUnmounting(true);
|
|
20
|
+
unmountTimeoutRef.current = setTimeout(() => {
|
|
21
|
+
setIsMounted(false);
|
|
22
|
+
setIsUnmounting(false);
|
|
23
|
+
}, outTimeout);
|
|
24
|
+
}, [setIsUnmounting, outTimeout]);
|
|
25
|
+
React.useEffect(() => {
|
|
26
|
+
const shouldMount = hasDelayed && !isMounted && show;
|
|
27
|
+
const shouldUnmount = isMounted && !show;
|
|
28
|
+
if (shouldMount) {
|
|
29
|
+
onMountTimestampRef.current = Date.now();
|
|
30
|
+
setIsMounted(true);
|
|
31
|
+
} else if (shouldUnmount) {
|
|
32
|
+
const totalTimeMounted = Date.now() - onMountTimestampRef.current;
|
|
33
|
+
const remainingTime = totalMountTime - totalTimeMounted;
|
|
34
|
+
clearTimeout(unmountTimeoutRef.current);
|
|
35
|
+
unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime));
|
|
36
|
+
}
|
|
37
|
+
}, [isMounted, show, unmount, totalMountTime, hasDelayed]);
|
|
38
|
+
return {
|
|
39
|
+
isMounted,
|
|
40
|
+
isUnmounting,
|
|
41
|
+
triggerDelayedRender: triggerDelay
|
|
42
|
+
};
|
|
82
43
|
};
|
|
83
44
|
//# sourceMappingURL=useDelayedRender.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDelayedRender.js","names":["
|
|
1
|
+
{"version":3,"file":"useDelayedRender.js","names":["React","useDelay","useDelayedRender","delayBeforeShow","inTimeout","minShowTime","outTimeout","show","totalMountTime","hasDelayed","triggerDelay","isMounted","setIsMounted","useState","isUnmounting","setIsUnmounting","onMountTimestampRef","useRef","unmountTimeoutRef","undefined","unmount","useCallback","current","setTimeout","useEffect","shouldMount","shouldUnmount","Date","now","totalTimeMounted","remainingTime","clearTimeout","Math","max","triggerDelayedRender"],"sources":["../../src/hooks/useDelayedRender.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\nimport { useDelay } from './useDelay.js'\n\ntype DelayedRenderProps = {\n /** Time in ms to wait before \"mounting\" the component. */\n delayBeforeShow: number\n /** Time in ms for the \"enter\" phase of the transition, after delay completes. */\n inTimeout: number\n /** Min time in ms for the \"entered\" phase of the transition. */\n minShowTime: number\n /** Time in ms for the exit phase of the transition. */\n outTimeout: number\n /** `true` starts the mount process.\n * `false` starts the unmount process.\n * */\n show: boolean\n}\ntype useDelayedRenderT = (props: DelayedRenderProps) => {\n /** `true` if the component has mounted after the timeout. */\n isMounted: boolean\n /** `true` if the component is unmounting. */\n isUnmounting: boolean\n /** Call this function to trigger the timeout delay before rendering. */\n triggerDelayedRender: () => void\n}\nexport const useDelayedRender: useDelayedRenderT = ({\n delayBeforeShow,\n inTimeout,\n minShowTime,\n outTimeout,\n show,\n}) => {\n const totalMountTime = inTimeout + minShowTime + outTimeout\n const [hasDelayed, triggerDelay] = useDelay(delayBeforeShow)\n const [isMounted, setIsMounted] = React.useState(false)\n const [isUnmounting, setIsUnmounting] = React.useState(false)\n const onMountTimestampRef = React.useRef(0)\n const unmountTimeoutRef: React.RefObject<NodeJS.Timeout | undefined> = React.useRef(undefined)\n\n const unmount = React.useCallback(() => {\n setIsUnmounting(true)\n unmountTimeoutRef.current = setTimeout(() => {\n setIsMounted(false)\n setIsUnmounting(false)\n }, outTimeout)\n }, [setIsUnmounting, outTimeout])\n\n React.useEffect(() => {\n const shouldMount = hasDelayed && !isMounted && show\n const shouldUnmount = isMounted && !show\n\n if (shouldMount) {\n onMountTimestampRef.current = Date.now()\n setIsMounted(true)\n } else if (shouldUnmount) {\n const totalTimeMounted = Date.now() - onMountTimestampRef.current\n const remainingTime = totalMountTime - totalTimeMounted\n clearTimeout(unmountTimeoutRef.current)\n unmountTimeoutRef.current = setTimeout(unmount, Math.max(0, remainingTime))\n }\n }, [isMounted, show, unmount, totalMountTime, hasDelayed])\n\n return {\n isMounted,\n isUnmounting,\n triggerDelayedRender: triggerDelay,\n }\n}\n"],"mappings":"AAAA;;AACA,YAAYA,KAAA,MAAW;AAEvB,SAASC,QAAQ,QAAQ;AAwBzB,OAAO,MAAMC,gBAAA,GAAsCA,CAAC;EAClDC,eAAe;EACfC,SAAS;EACTC,WAAW;EACXC,UAAU;EACVC;AAAI,CACL;EACC,MAAMC,cAAA,GAAiBJ,SAAA,GAAYC,WAAA,GAAcC,UAAA;EACjD,MAAM,CAACG,UAAA,EAAYC,YAAA,CAAa,GAAGT,QAAA,CAASE,eAAA;EAC5C,MAAM,CAACQ,SAAA,EAAWC,YAAA,CAAa,GAAGZ,KAAA,CAAMa,QAAQ,CAAC;EACjD,MAAM,CAACC,YAAA,EAAcC,eAAA,CAAgB,GAAGf,KAAA,CAAMa,QAAQ,CAAC;EACvD,MAAMG,mBAAA,GAAsBhB,KAAA,CAAMiB,MAAM,CAAC;EACzC,MAAMC,iBAAA,GAAiElB,KAAA,CAAMiB,MAAM,CAACE,SAAA;EAEpF,MAAMC,OAAA,GAAUpB,KAAA,CAAMqB,WAAW,CAAC;IAChCN,eAAA,CAAgB;IAChBG,iBAAA,CAAkBI,OAAO,GAAGC,UAAA,CAAW;MACrCX,YAAA,CAAa;MACbG,eAAA,CAAgB;IAClB,GAAGT,UAAA;EACL,GAAG,CAACS,eAAA,EAAiBT,UAAA,CAAW;EAEhCN,KAAA,CAAMwB,SAAS,CAAC;IACd,MAAMC,WAAA,GAAchB,UAAA,IAAc,CAACE,SAAA,IAAaJ,IAAA;IAChD,MAAMmB,aAAA,GAAgBf,SAAA,IAAa,CAACJ,IAAA;IAEpC,IAAIkB,WAAA,EAAa;MACfT,mBAAA,CAAoBM,OAAO,GAAGK,IAAA,CAAKC,GAAG;MACtChB,YAAA,CAAa;IACf,OAAO,IAAIc,aAAA,EAAe;MACxB,MAAMG,gBAAA,GAAmBF,IAAA,CAAKC,GAAG,KAAKZ,mBAAA,CAAoBM,OAAO;MACjE,MAAMQ,aAAA,GAAgBtB,cAAA,GAAiBqB,gBAAA;MACvCE,YAAA,CAAab,iBAAA,CAAkBI,OAAO;MACtCJ,iBAAA,CAAkBI,OAAO,GAAGC,UAAA,CAAWH,OAAA,EAASY,IAAA,CAAKC,GAAG,CAAC,GAAGH,aAAA;IAC9D;EACF,GAAG,CAACnB,SAAA,EAAWJ,IAAA,EAAMa,OAAA,EAASZ,cAAA,EAAgBC,UAAA,CAAW;EAEzD,OAAO;IACLE,SAAA;IACAG,YAAA;IACAoB,oBAAA,EAAsBxB;EACxB;AACF","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef, useState } from 'react';
|
|
5
5
|
export const useIntersect = (t0, disable) => {
|
|
6
|
-
const $ = _c(
|
|
6
|
+
const $ = _c(14);
|
|
7
7
|
let t1;
|
|
8
8
|
if ($[0] !== t0) {
|
|
9
9
|
t1 = t0 === undefined ? {} : t0;
|
|
@@ -42,7 +42,8 @@ export const useIntersect = (t0, disable) => {
|
|
|
42
42
|
}
|
|
43
43
|
const observer = useRef(t5);
|
|
44
44
|
let t6;
|
|
45
|
-
|
|
45
|
+
let t7;
|
|
46
|
+
if ($[7] !== disable || $[8] !== node) {
|
|
46
47
|
t6 = () => {
|
|
47
48
|
if (disable) {
|
|
48
49
|
return;
|
|
@@ -56,31 +57,24 @@ export const useIntersect = (t0, disable) => {
|
|
|
56
57
|
}
|
|
57
58
|
return () => currentObserver.disconnect();
|
|
58
59
|
};
|
|
59
|
-
$[7] = disable;
|
|
60
|
-
$[8] = observer;
|
|
61
|
-
$[9] = node;
|
|
62
|
-
$[10] = t6;
|
|
63
|
-
} else {
|
|
64
|
-
t6 = $[10];
|
|
65
|
-
}
|
|
66
|
-
let t7;
|
|
67
|
-
if ($[11] !== node || $[12] !== disable) {
|
|
68
60
|
t7 = [node, disable];
|
|
69
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[
|
|
61
|
+
$[7] = disable;
|
|
62
|
+
$[8] = node;
|
|
63
|
+
$[9] = t6;
|
|
64
|
+
$[10] = t7;
|
|
72
65
|
} else {
|
|
73
|
-
|
|
66
|
+
t6 = $[9];
|
|
67
|
+
t7 = $[10];
|
|
74
68
|
}
|
|
75
69
|
useEffect(t6, t7);
|
|
76
70
|
let t8;
|
|
77
|
-
if ($[
|
|
71
|
+
if ($[11] !== entry || $[12] !== node) {
|
|
78
72
|
t8 = [setNode, entry, node];
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
73
|
+
$[11] = entry;
|
|
74
|
+
$[12] = node;
|
|
75
|
+
$[13] = t8;
|
|
82
76
|
} else {
|
|
83
|
-
t8 = $[
|
|
77
|
+
t8 = $[13];
|
|
84
78
|
}
|
|
85
79
|
return t8;
|
|
86
80
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","current","currentObserver","disconnect","observe","
|
|
1
|
+
{"version":3,"file":"useIntersect.js","names":["c","_c","useEffect","useRef","useState","useIntersect","t0","disable","$","t1","undefined","root","t2","rootMargin","t3","threshold","t4","entry","updateEntry","node","setNode","t5","window","IntersectionObserver","t6","ent","observer","t7","current","currentObserver","disconnect","observe","t8"],"sources":["../../src/hooks/useIntersect.ts"],"sourcesContent":["'use client'\n\nimport type React from 'react'\n\nimport { useEffect, useRef, useState } from 'react'\n\ntype Intersect = [\n setNode: React.Dispatch<HTMLElement>,\n entry: IntersectionObserverEntry,\n node: HTMLElement,\n]\n\nexport const useIntersect = (\n { root = null, rootMargin = '0px', threshold = 0 } = {},\n disable?: boolean,\n): Intersect => {\n const [entry, updateEntry] = useState<IntersectionObserverEntry>()\n const [node, setNode] = useState(null)\n\n const observer = useRef(\n typeof window !== 'undefined' && 'IntersectionObserver' in window && !disable\n ? new window.IntersectionObserver(([ent]) => updateEntry(ent), {\n root,\n rootMargin,\n threshold,\n })\n : null,\n )\n\n useEffect(() => {\n if (disable) {\n return\n }\n const { current: currentObserver } = observer\n currentObserver.disconnect()\n\n if (node) currentObserver.observe(node)\n\n return () => currentObserver.disconnect()\n }, [node, disable])\n\n return [setNode, entry, node]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAQ5C,OAAO,MAAMC,YAAA,GAAeA,CAAAC,EAAA,EAAAC,OAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAF,EAAA;IAC1BG,EAAA,GAAAH,EAAuD,KAAAI,SAAA,QAAvDJ,EAAuD;IAAAE,CAAA,MAAAF,EAAA;IAAAE,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAvD;IAAAG,IAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC;EAAA,IAAAP,EAAuD;EAArD,MAAAE,IAAA,GAAAC,EAAW,KAAAF,SAAA,UAAXE,EAAW;EAAE,MAAAC,UAAA,GAAAC,EAAkB,KAAAJ,SAAA,GAAL,KAAK,GAAlBI,EAAkB;EAAE,MAAAC,SAAA,GAAAC,EAAa,KAAAN,SAAA,OAAbM,EAAa;EAGhD,OAAAC,KAAA,EAAAC,WAAA,IAA6Bd,QAAA;EAC7B,OAAAe,IAAA,EAAAC,OAAA,IAAwBhB,QAAA,KAAS;EAAA,IAAAiB,EAAA;EAAA,IAAAb,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAK,UAAA,IAAAL,CAAA,QAAAO,SAAA;IAG/BM,EAAA,UAAAC,MAAA,KAAkB,eAAe,0BAAAA,MAA0B,KAAWf,OAAA,OAAAe,MAAA,CAAAC,oBAAA,CAAAC,EAAA;MACjC,OAAAC,GAAA,IAAAD,EAAK;MAAA,OAAKN,WAAA,CAAYO,GAAA;IAAA;MAAAd,IAAA;MAAAE,UAAA;MAAAE;IAAA,SAKvD;IAAAP,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,SAAA;IAAAP,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EAPN,MAAAkB,QAAA,GAAiBvB,MAAA,CACfkB,EAMI;EAAA,IAAAG,EAAA;EAAA,IAAAG,EAAA;EAAA,IAAAnB,CAAA,QAAAD,OAAA,IAAAC,CAAA,QAAAW,IAAA;IAGIK,EAAA,GAAAA,CAAA;MAAA,IACJjB,OAAA;QAAA;MAAA;MAGJ;QAAAqB,OAAA,EAAAC;MAAA,IAAqCH,QAAA;MACrCG,eAAA,CAAAC,UAAA,CAA0B;MAAA,IAEtBX,IAAA;QAAMU,eAAA,CAAAE,OAAA,CAAwBZ,IAAA;MAAA;MAAA,aAErBU,eAAA,CAAAC,UAAA,CAA0B;IAAA;IACtCH,EAAA,IAACR,IAAA,EAAMZ,OAAA;IAAQC,CAAA,MAAAD,OAAA;IAAAC,CAAA,MAAAW,IAAA;IAAAX,CAAA,MAAAgB,EAAA;IAAAhB,CAAA,OAAAmB,EAAA;EAAA;IAAAH,EAAA,GAAAhB,CAAA;IAAAmB,EAAA,GAAAnB,CAAA;EAAA;EAVlBN,SAAA,CAAUsB,EAUV,EAAGG,EAAe;EAAA,IAAAK,EAAA;EAAA,IAAAxB,CAAA,SAAAS,KAAA,IAAAT,CAAA,SAAAW,IAAA;IAEXa,EAAA,IAACZ,OAAA,EAASH,KAAA,EAAOE,IAAA;IAAKX,CAAA,OAAAS,KAAA;IAAAT,CAAA,OAAAW,IAAA;IAAAX,CAAA,OAAAwB,EAAA;EAAA;IAAAA,EAAA,GAAAxB,CAAA;EAAA;EAAA,OAAtBwB,EAAsB;AAAA,CAC/B","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/Config/createClientConfig/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,SAAS,EAET,OAAO,EACP,yBAAyB,
|
|
1
|
+
{"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../../src/providers/Config/createClientConfig/collections.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,qBAAqB,EAErB,aAAa,EACb,SAAS,EAET,OAAO,EACP,yBAAyB,EAI1B,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AA8B9B,eAAO,MAAM,4BAA4B,yHAStC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,UAAU,EAAE,yBAAyB,CAAA;IACrC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAkTH,CAAA;AAED,eAAO,MAAM,6BAA6B,2HASvC;IACD,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,CAAA;IACxC,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAAC,CAAA;IACzC,iBAAiB,EAAE,sBAAsB,EAAE,CAAA;IAC3C,WAAW,EAAE,yBAAyB,EAAE,CAAA;IACxC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,EAAE,OAAO,CAAA;CACjB,KAAG,sBAAsB,EAiBzB,CAAA"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { deepCopyObjectSimple } from 'payload';
|
|
2
2
|
import { createClientFields } from './fields.js';
|
|
3
|
+
const serverOnlyCollectionProperties = ['hooks', 'access', 'endpoints', 'custom'];
|
|
4
|
+
const serverOnlyUploadProperties = ['adminThumbnail', 'externalFileHeaderFilter', 'handlers', 'modifyResponseHeaders', 'withMetadata'];
|
|
5
|
+
const serverOnlyCollectionAdminProperties = ['hidden', 'preview'];
|
|
3
6
|
export const createClientCollectionConfig = ({
|
|
4
7
|
DefaultEditView,
|
|
5
8
|
DefaultListView,
|
|
@@ -18,17 +21,17 @@ export const createClientCollectionConfig = ({
|
|
|
18
21
|
importMap,
|
|
19
22
|
payload
|
|
20
23
|
});
|
|
21
|
-
const serverOnlyCollectionProperties = ['hooks', 'access', 'endpoints', 'custom'];
|
|
22
24
|
serverOnlyCollectionProperties.forEach(key => {
|
|
23
25
|
if (key in clientCollection) {
|
|
24
26
|
delete clientCollection[key];
|
|
25
27
|
}
|
|
26
28
|
});
|
|
27
29
|
if ('upload' in clientCollection && typeof clientCollection.upload === 'object') {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
serverOnlyUploadProperties.forEach(key => {
|
|
31
|
+
if (key in clientCollection.upload) {
|
|
32
|
+
delete clientCollection.upload[key];
|
|
33
|
+
}
|
|
34
|
+
});
|
|
32
35
|
if ('imageSizes' in clientCollection.upload && clientCollection.upload.imageSizes.length) {
|
|
33
36
|
clientCollection.upload.imageSizes = clientCollection.upload.imageSizes.map(size => {
|
|
34
37
|
const sanitizedSize = {
|
|
@@ -53,7 +56,6 @@ export const createClientCollectionConfig = ({
|
|
|
53
56
|
}
|
|
54
57
|
});
|
|
55
58
|
}
|
|
56
|
-
const serverOnlyCollectionAdminProperties = ['hidden', 'preview'];
|
|
57
59
|
serverOnlyCollectionAdminProperties.forEach(key => {
|
|
58
60
|
if (key in clientCollection.admin) {
|
|
59
61
|
delete clientCollection.admin[key];
|