@payloadcms/ui 3.90.2 → 3.91.0-internal.c1569dc

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.
Files changed (76) hide show
  1. package/dist/elements/FolderView/FolderFileTable/index.d.ts.map +1 -1
  2. package/dist/elements/FolderView/FolderFileTable/index.js +12 -2
  3. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  4. package/dist/elements/FolderView/FolderFileTable/index.scss +14 -0
  5. package/dist/elements/Thumbnail/index.d.ts +1 -0
  6. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  7. package/dist/elements/Thumbnail/index.js +2 -0
  8. package/dist/elements/Thumbnail/index.js.map +1 -1
  9. package/dist/exports/client/index.d.ts +2 -1
  10. package/dist/exports/client/index.d.ts.map +1 -1
  11. package/dist/exports/client/index.js +24 -24
  12. package/dist/exports/client/index.js.map +4 -4
  13. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  14. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +12 -4
  15. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  16. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  17. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  18. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  19. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  20. package/dist/providers/Auth/AuthSessionDebug/index.scss +49 -0
  21. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  22. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  23. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  24. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  25. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  26. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  27. package/dist/providers/Auth/authSessionRequests.js +119 -0
  28. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  29. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  30. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  31. package/dist/providers/Auth/index.d.ts +3 -57
  32. package/dist/providers/Auth/index.d.ts.map +1 -1
  33. package/dist/providers/Auth/index.js +290 -135
  34. package/dist/providers/Auth/index.js.map +1 -1
  35. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  36. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  37. package/dist/providers/Auth/sessionActivity.js +49 -0
  38. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  39. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  40. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  41. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  42. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  43. package/dist/providers/Auth/sessionTiming.js +18 -0
  44. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  45. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  46. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  47. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  48. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  49. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  50. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  51. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  52. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  53. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  54. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  55. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  56. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  57. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  58. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  59. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  60. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  61. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  62. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  63. package/dist/providers/Auth/types.d.ts +70 -0
  64. package/dist/providers/Auth/types.d.ts.map +1 -0
  65. package/dist/providers/Auth/types.js +2 -0
  66. package/dist/providers/Auth/types.js.map +1 -0
  67. package/dist/providers/Auth/types.spec.js +8 -0
  68. package/dist/providers/Auth/types.spec.js.map +1 -0
  69. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  70. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  71. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  72. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  73. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  74. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  75. package/dist/styles.css +1 -1
  76. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAGd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CA+6BvF,CAAA"}
1
+ {"version":3,"file":"addFieldStatePromise.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,EACnB,KAAK,EACL,cAAc,EAGd,SAAS,EACT,0BAA0B,EAC1B,cAAc,EAGd,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EAEX,MAAM,SAAS,CAAA;AAchB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAQnD,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACjD;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B;;OAEG;IACH,SAAS,EAAE,IAAI,GAAG,SAAS,CAAA;IAC3B,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,OAAO,CAAA;IACpD;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,EAAE,IAAI,CAAA;IACd,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACzC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB,EAAE,0BAA0B,CAAA;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,eAAe,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,mBAAmB,CAAA;IAChC,iBAAiB,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,iBAAiB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,cAAc,CAAA;IACnB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,UAAU,CAAA;IACnB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,0BAA0B,CAAA;CAClC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,SAAgB,wBAAwB,KAAG,OAAO,CAAC,IAAI,CA07BvF,CAAA"}
@@ -303,6 +303,7 @@ export const addFieldStatePromise = async args => {
303
303
  const rowPath = path + '.' + i;
304
304
  if (block) {
305
305
  row.id = row?.id || new ObjectId().toHexString();
306
+ const previousRow = (previousFormState?.[path]?.rows || []).find(prevRow => prevRow.id === row.id);
306
307
  if (!omitParents && (!filter || filter(args))) {
307
308
  // Handle block `id` field
308
309
  const idKey = rowPath + '.id';
@@ -310,6 +311,9 @@ export const addFieldStatePromise = async args => {
310
311
  initialValue: row.id,
311
312
  value: row.id
312
313
  };
314
+ if (!previousRow) {
315
+ state[idKey].addedByServer = true;
316
+ }
313
317
  // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed
314
318
  if (filterOptionsValidationResult?.invalidBlockSlugs?.length && filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)) {
315
319
  state[idKey].errorMessage = req.t('validation:invalidBlock', {
@@ -332,8 +336,8 @@ export const addFieldStatePromise = async args => {
332
336
  initialValue: row.blockType,
333
337
  value: row.blockType
334
338
  };
335
- if (addedByServer) {
336
- state[fieldKey].addedByServer = addedByServer;
339
+ if (!previousRow) {
340
+ state[fieldKey].addedByServer = true;
337
341
  }
338
342
  if (includeSchema) {
339
343
  state[fieldKey].fieldSchema = block.fields.find(blockField => 'name' in blockField && blockField.name === 'blockType');
@@ -341,6 +345,9 @@ export const addFieldStatePromise = async args => {
341
345
  // Handle `blockName` field
342
346
  const blockNameKey = rowPath + '.blockName';
343
347
  state[blockNameKey] = {};
348
+ if (!previousRow) {
349
+ state[blockNameKey].addedByServer = true;
350
+ }
344
351
  if (row.blockName) {
345
352
  state[blockNameKey].initialValue = row.blockName;
346
353
  state[blockNameKey].value = row.blockName;
@@ -383,8 +390,6 @@ export const addFieldStatePromise = async args => {
383
390
  skipValidation,
384
391
  state
385
392
  }));
386
- // First, check if `previousFormState` has a matching row
387
- const previousRow = (previousFormState?.[path]?.rows || []).find(prevRow => prevRow.id === row.id);
388
393
  const newRow = {
389
394
  id: row.id,
390
395
  blockType: row.blockType,
@@ -393,6 +398,9 @@ export const addFieldStatePromise = async args => {
393
398
  if (previousRow?.lastRenderedPath) {
394
399
  newRow.lastRenderedPath = previousRow.lastRenderedPath;
395
400
  }
401
+ if (!previousRow) {
402
+ newRow.addedByServer = true;
403
+ }
396
404
  acc.rowMetadata.push(newRow);
397
405
  const isCollapsed = isRowCollapsed({
398
406
  collapsedPrefs: preferences?.fields?.[path]?.collapsed,
@@ -1 +1 @@
1
- {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","tabHasName","resolveFilterOptions","isRowCollapsed","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","readOnly","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","isPresentationalWithSubFields","type","name","undefined","value","initialValue","hasPermission","read","access","siblingData","validate","validationResult","jsonError","JSON","parse","e","event","previousValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","rowIndex","rowPath","toHexString","idKey","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","i","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","isNamedTab","shouldContinue","siblingDoc","childPermissions","tabSelect","tabPermissions","tabs","tab","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field | TabAsField\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\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 indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\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 schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\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: FormStateWithoutComponents\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 blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n // Short-circuit hidden fields to prevent recursing and rendering. Two exclusions:\n // - `tab`: visibility is keyed by `field.id` (not `path`); the tab branch owns that write.\n // - presentational containers (row, collapsible, unnamed group): they hold no value, so\n // returning here drops their nested fields' values. They fall through to the\n // `fieldHasSubFields` branch, which recurses to preserve child values without rendering.\n const isPresentationalWithSubFields =\n fieldHasSubFields(field as Field) && !fieldAffectsData(field as Field)\n\n if (passesCondition === false && field.type !== 'tab' && !isPresentationalWithSubFields) {\n if (fieldAffectsData(field) && data?.[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n return\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field) && field.type !== 'tab') {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = 'validate' in field ? field.validate : undefined\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])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\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)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, rowIndex: number) => {\n const rowPath = path + '.' + rowIndex\n\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\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 // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: Awaited<\n ReturnType<typeof validateBlocksFilterOptions>\n > | null = null\n if (field.filterOptions) {\n filterOptionsValidationResult = await validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const rowPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = rowPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (addedByServer) {\n state[fieldKey].addedByServer = addedByServer\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = rowPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\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] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\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 resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\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] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n // Presentational containers are hidden client-side via `withCondition`, which reads\n // `passesCondition` from their own state entry. Must be set here since these fields\n // are excluded from the short-circuit above (which would otherwise carry the flag).\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n mockRSCs,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tab') {\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: { ...field, type: 'tab' },\n select,\n selectMode,\n siblingDoc: data?.[field.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n // Tab visibility on the client is keyed by `field.id`, not `path` (like all other fields).\n if (field?.id) {\n state[field.id] = {\n passesCondition,\n }\n\n // Flag newly added tab entries so the client accepts them during merge.\n // Otherwise, tabs revealed after a hidden ancestor becomes visible would never make it into client form state.\n if (!renderAllFields && !previousFormState?.[field.id]) {\n state[field.id].addedByServer = true\n }\n }\n\n if (!passesCondition) {\n return\n }\n\n let childPermissions: SanitizedFieldsPermissions\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[field.name]\n childPermissions = tabPermissions === true ? true : tabPermissions?.fields\n }\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[field.name] || {} : data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"addFieldStatePromise.js","names":["ObjectIdImport","getBlockSelect","stripUnselectedFields","validateBlocksFilterOptions","deepCopyObjectSimple","fieldAffectsData","fieldHasSubFields","fieldIsHiddenOrDisabled","fieldIsID","fieldIsLocalized","tabHasName","resolveFilterOptions","isRowCollapsed","iterateFields","ObjectId","default","addFieldStatePromise","args","id","addErrorPathToParent","addErrorPathToParentArg","anyParentLocalized","blockData","clientFieldSchemaMap","collectionSlug","data","field","fieldSchemaMap","filter","forceFullValue","fullData","includeSchema","indexPath","mockRSCs","omitParents","operation","parentPath","parentPermissions","parentSchemaPath","passesCondition","path","preferences","previousFormState","readOnly","renderAllFields","renderFieldFn","req","schemaPath","select","selectMode","skipConditionChecks","skipValidation","state","console","warn","fieldPermissions","fieldState","lastRenderedPath","addedByServer","fieldSchema","isPresentationalWithSubFields","type","name","undefined","value","initialValue","hasPermission","read","access","siblingData","validate","validationResult","jsonError","JSON","parse","e","event","previousValue","err","payload","logger","error","msg","errorPath","errorPaths","includes","push","valid","errorMessage","arrayValue","Array","isArray","arraySelect","promises","rows","reduce","acc","row","rowIndex","rowPath","toHexString","idKey","fields","find","localized","parentIndexPath","parentPassesCondition","permissions","previousRow","prevRow","newRow","isLoading","isCollapsed","collapsedPrefs","collapsed","Promise","all","length","disableFormData","blocksValue","filterOptionsValidationResult","filterOptions","blocksFilterOptions","allowedBlockSlugs","rowMetadata","i","blockTypeToMatch","blockType","block","blocks","blockReferences","slug","Error","blockSelect","blockSelectMode","invalidBlockSlugs","t","blockField","fieldKey","blockNameKey","blockName","groupSelect","relationTo","relation","query","user","hasMany","relationshipValue","map","relationship","selectFilterOptions","options","isNamedTab","shouldContinue","siblingDoc","childPermissions","tabSelect","tabPermissions","tabs","tab","fieldConfig","get","endsWith","formState","previousFieldState"],"sources":["../../../src/forms/fieldSchemasToFormState/addFieldStatePromise.ts"],"sourcesContent":["import type {\n BuildFormStateArgs,\n ClientFieldSchemaMap,\n Data,\n DocumentPreferences,\n Field,\n FieldSchemaMap,\n FieldState,\n FlattenedBlock,\n FormState,\n FormStateWithoutComponents,\n PayloadRequest,\n Row,\n SanitizedFieldPermissions,\n SanitizedFieldsPermissions,\n SelectMode,\n SelectType,\n TabAsField,\n Validate,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { getBlockSelect, stripUnselectedFields, validateBlocksFilterOptions } from 'payload'\nimport {\n deepCopyObjectSimple,\n fieldAffectsData,\n fieldHasSubFields,\n fieldIsHiddenOrDisabled,\n fieldIsID,\n fieldIsLocalized,\n tabHasName,\n} from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { resolveFilterOptions } from '../../utilities/resolveFilterOptions.js'\nimport { isRowCollapsed } from './isRowCollapsed.js'\nimport { iterateFields } from './iterateFields.js'\n\nconst ObjectId = 'default' in ObjectIdImport ? ObjectIdImport.default : ObjectIdImport\n\nexport type AddFieldStatePromiseArgs = {\n addErrorPathToParent: (fieldPath: string) => void\n /**\n * if all parents are localized, then the field is localized\n */\n anyParentLocalized?: boolean\n /**\n * Data of the nearest parent block, or undefined\n */\n blockData: Data | undefined\n clientFieldSchemaMap?: ClientFieldSchemaMap\n collectionSlug?: string\n data: Data\n field: Field | TabAsField\n fieldIndex: number\n fieldSchemaMap: FieldSchemaMap\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 indexPath: string\n mockRSCs?: BuildFormStateArgs['mockRSCs']\n /**\n * Whether to omit parent fields in the state. @default false\n */\n omitParents?: boolean\n operation: 'create' | 'update'\n parentIndexPath: string\n parentPath: string\n parentPermissions: SanitizedFieldsPermissions\n parentSchemaPath: string\n passesCondition: boolean\n path: string\n preferences: DocumentPreferences\n previousFormState: FormState\n readOnly?: boolean\n renderAllFields: boolean\n renderFieldFn: RenderFieldMethod\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 schemaPath: string\n select?: SelectType\n selectMode?: SelectMode\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: FormStateWithoutComponents\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 blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n field,\n fieldSchemaMap,\n filter,\n forceFullValue = false,\n fullData,\n includeSchema = false,\n indexPath,\n mockRSCs,\n omitParents = false,\n operation,\n parentPath,\n parentPermissions,\n parentSchemaPath,\n passesCondition,\n path,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n schemaPath,\n select,\n selectMode,\n skipConditionChecks = false,\n skipValidation = false,\n state,\n } = args\n\n if (!args.clientFieldSchemaMap && args.renderFieldFn) {\n // eslint-disable-next-line no-console\n console.warn(\n 'clientFieldSchemaMap is not passed to addFieldStatePromise - this will reduce performance',\n )\n }\n\n let fieldPermissions: SanitizedFieldPermissions = true\n\n const fieldState: FieldState = {}\n\n const lastRenderedPath = previousFormState?.[path]?.lastRenderedPath\n\n // Append only if true to avoid sending '$undefined' through the network\n if (lastRenderedPath) {\n fieldState.lastRenderedPath = lastRenderedPath\n }\n\n // If we're rendering all fields, no need to flag this as added by server\n const addedByServer = !renderAllFields && !previousFormState?.[path]\n\n // Append only if true to avoid sending '$undefined' through the network\n if (addedByServer) {\n fieldState.addedByServer = true\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (passesCondition === false) {\n fieldState.passesCondition = false\n }\n\n // Append only if true to avoid sending '$undefined' through the network\n if (includeSchema) {\n fieldState.fieldSchema = field\n }\n\n // Short-circuit hidden fields to prevent recursing and rendering. Two exclusions:\n // - `tab`: visibility is keyed by `field.id` (not `path`); the tab branch owns that write.\n // - presentational containers (row, collapsible, unnamed group): they hold no value, so\n // returning here drops their nested fields' values. They fall through to the\n // `fieldHasSubFields` branch, which recurses to preserve child values without rendering.\n const isPresentationalWithSubFields =\n fieldHasSubFields(field as Field) && !fieldAffectsData(field as Field)\n\n if (passesCondition === false && field.type !== 'tab' && !isPresentationalWithSubFields) {\n if (fieldAffectsData(field) && data?.[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n return\n }\n\n if (fieldAffectsData(field) && !fieldIsHiddenOrDisabled(field) && field.type !== 'tab') {\n fieldPermissions =\n parentPermissions === true\n ? parentPermissions\n : deepCopyObjectSimple(parentPermissions?.[field.name])\n\n let hasPermission: boolean =\n fieldPermissions === true || deepCopyObjectSimple(fieldPermissions?.read)\n\n if (typeof field?.access?.read === 'function') {\n hasPermission = await field.access.read({\n id,\n blockData,\n data: fullData,\n req,\n siblingData: data,\n })\n } else {\n hasPermission = true\n }\n\n if (!hasPermission) {\n return\n }\n\n const validate: Validate = 'validate' in field ? field.validate : undefined\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])\n } catch (e) {\n jsonError = e\n }\n }\n\n try {\n validationResult = await validate(data?.[field.name], {\n ...field,\n id,\n blockData,\n collectionSlug,\n data: fullData,\n event: 'onChange',\n // @AlessioGr added `jsonError` in https://github.com/payloadcms/payload/commit/c7ea62a39473408c3ea912c4fbf73e11be4b538d\n // @ts-expect-error-next-line\n jsonError,\n operation,\n preferences,\n previousValue: previousFormState?.[path]?.initialValue,\n req,\n siblingData: data,\n })\n } catch (err) {\n validationResult = `Error validating field at path: ${path}`\n\n req.payload.logger.error({\n err,\n msg: validationResult,\n })\n }\n }\n\n /**\n * This function adds the error **path** to the current field and all its parents. If a field is invalid, all its parents are also invalid.\n * It does not add the error **message** to the current field, as that shouldn't apply to all parents.\n * This is done separately below.\n */\n const addErrorPathToParent = (errorPath: string) => {\n if (typeof addErrorPathToParentArg === 'function') {\n addErrorPathToParentArg(errorPath)\n }\n\n if (!fieldState.errorPaths) {\n fieldState.errorPaths = []\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)\n }\n\n switch (field.type) {\n case 'array': {\n const arrayValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n const arraySelect = select?.[field.name]\n\n const { promises, rows } = arrayValue.reduce(\n (acc, row, rowIndex: number) => {\n const rowPath = path + '.' + rowIndex\n\n row.id = row?.id || new ObjectId().toHexString()\n\n if (!omitParents && (!filter || filter(args))) {\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = field.fields.find((field) => fieldIsID(field))\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath,\n permissions:\n fieldPermissions === true ? fieldPermissions : fieldPermissions?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof arraySelect === 'object' ? arraySelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n if (!acc.rows) {\n acc.rows = []\n }\n\n // First, check if `previousFormState` has a matching row\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n const newRow: Row = {\n id: row.id,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n // add addedByServer flag\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n newRow.collapsed = true\n }\n\n acc.rows.push(newRow)\n\n return acc\n },\n {\n promises: [],\n rows: [],\n },\n )\n\n // Wait for all promises and update fields with the results\n await Promise.all(promises)\n\n if (rows) {\n fieldState.rows = rows\n }\n\n // Add values to field state\n if (data[field.name] !== null) {\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 // Add field to state\n if (!omitParents && (!filter || filter(args))) {\n state[path] = fieldState\n }\n\n break\n }\n\n case 'blocks': {\n const blocksValue = Array.isArray(data[field.name]) ? data[field.name] : []\n\n // Handle blocks filterOptions\n let filterOptionsValidationResult: Awaited<\n ReturnType<typeof validateBlocksFilterOptions>\n > | null = null\n if (field.filterOptions) {\n filterOptionsValidationResult = await validateBlocksFilterOptions({\n id,\n data: fullData,\n filterOptions: field.filterOptions,\n req,\n siblingData: data,\n value: data[field.name],\n })\n\n fieldState.blocksFilterOptions = filterOptionsValidationResult.allowedBlockSlugs\n }\n\n const { promises, rowMetadata } = blocksValue.reduce(\n (acc, row, i: number) => {\n const blockTypeToMatch: string = row.blockType\n\n const block =\n req.payload.blocks[blockTypeToMatch] ??\n ((field.blockReferences ?? field.blocks).find(\n (blockType) => typeof blockType !== 'string' && blockType.slug === blockTypeToMatch,\n ) as FlattenedBlock | undefined)\n\n if (!block) {\n throw new Error(\n `Block with type \"${row.blockType}\" was found in block data, but no block with that type is defined in the config for field with schema path ${schemaPath}.`,\n )\n }\n\n const { blockSelect, blockSelectMode } = getBlockSelect({\n block,\n select: select?.[field.name],\n selectMode,\n })\n\n const rowPath = path + '.' + i\n\n if (block) {\n row.id = row?.id || new ObjectId().toHexString()\n\n const previousRow: Row = (previousFormState?.[path]?.rows || []).find(\n (prevRow) => prevRow.id === row.id,\n )\n\n if (!omitParents && (!filter || filter(args))) {\n // Handle block `id` field\n const idKey = rowPath + '.id'\n\n state[idKey] = {\n initialValue: row.id,\n value: row.id,\n }\n\n if (!previousRow) {\n state[idKey].addedByServer = true\n }\n\n // If the blocks field fails filterOptions validation, add error paths to the individual blocks that are no longer allowed\n if (\n filterOptionsValidationResult?.invalidBlockSlugs?.length &&\n filterOptionsValidationResult.invalidBlockSlugs.includes(row.blockType)\n ) {\n state[idKey].errorMessage = req.t('validation:invalidBlock', {\n block: row.blockType,\n })\n state[idKey].valid = false\n addErrorPathToParent(idKey)\n\n // If the error is due to block filterOptions, we want the blocks field (fieldState) to include all the filterOptions-related\n // error paths for each sub-block, not for the validation result of the block itself. Otherwise, say there are 2 invalid blocks,\n // the blocks field will have 3 instead of 2 error paths - one for itself, and one for each invalid block.\n // Instead, we want only the 2 error paths for the individual, invalid blocks.\n fieldState.errorPaths = fieldState.errorPaths.filter(\n (errorPath) => errorPath !== path,\n )\n }\n\n if (includeSchema) {\n state[idKey].fieldSchema = includeSchema\n ? block.fields.find((blockField) => fieldIsID(blockField))\n : undefined\n }\n\n // Handle `blockType` field\n const fieldKey = rowPath + '.blockType'\n\n state[fieldKey] = {\n initialValue: row.blockType,\n value: row.blockType,\n }\n\n if (!previousRow) {\n state[fieldKey].addedByServer = true\n }\n\n if (includeSchema) {\n state[fieldKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockType',\n )\n }\n\n // Handle `blockName` field\n const blockNameKey = rowPath + '.blockName'\n\n state[blockNameKey] = {}\n\n if (!previousRow) {\n state[blockNameKey].addedByServer = true\n }\n\n if (row.blockName) {\n state[blockNameKey].initialValue = row.blockName\n state[blockNameKey].value = row.blockName\n }\n\n if (includeSchema) {\n state[blockNameKey].fieldSchema = block.fields.find(\n (blockField) => 'name' in blockField && blockField.name === 'blockName',\n )\n }\n }\n\n acc.promises.push(\n iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData: row,\n clientFieldSchemaMap,\n collectionSlug,\n data: row,\n fields: block.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: rowPath,\n parentSchemaPath: schemaPath + '.' + block.slug,\n permissions:\n fieldPermissions === true\n ? fieldPermissions\n : parentPermissions?.[field.name]?.blocks?.[block.slug] === true\n ? true\n : parentPermissions?.[field.name]?.blocks?.[block.slug]?.fields || {},\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof blockSelect === 'object' ? blockSelect : undefined,\n selectMode: blockSelectMode,\n skipConditionChecks,\n skipValidation,\n state,\n }),\n )\n\n const newRow: Row = {\n id: row.id,\n blockType: row.blockType,\n isLoading: false,\n }\n\n if (previousRow?.lastRenderedPath) {\n newRow.lastRenderedPath = previousRow.lastRenderedPath\n }\n\n if (!previousRow) {\n newRow.addedByServer = true\n }\n\n acc.rowMetadata.push(newRow)\n\n const isCollapsed = isRowCollapsed({\n collapsedPrefs: preferences?.fields?.[path]?.collapsed,\n field,\n previousRow,\n row,\n })\n\n if (isCollapsed) {\n acc.rowMetadata[acc.rowMetadata.length - 1].collapsed = true\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] = fieldState\n }\n\n break\n }\n\n case 'group': {\n if (!filter || filter(args)) {\n fieldState.disableFormData = true\n state[path] = fieldState\n }\n\n const groupSelect = select?.[field.name]\n\n await iterateFields({\n id,\n addErrorPathToParent,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: data?.[field.name] || {},\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: '',\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions:\n typeof fieldPermissions === 'boolean' ? fieldPermissions : fieldPermissions?.fields,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: typeof groupSelect === 'object' ? groupSelect : undefined,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n\n break\n }\n\n case 'relationship':\n case 'upload': {\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 resolveFilterOptions(field.filterOptions, {\n id,\n blockData,\n data: fullData,\n relationTo: field.relationTo,\n req,\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] = fieldState\n }\n\n break\n }\n\n case 'select': {\n if (typeof field.filterOptions === 'function') {\n fieldState.selectFilterOptions = field.filterOptions({\n data: fullData,\n options: field.options,\n req,\n siblingData: data,\n })\n }\n\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n\n default: {\n if (data[field.name] !== undefined) {\n fieldState.value = data[field.name]\n fieldState.initialValue = data[field.name]\n }\n\n // Add field to state\n if (!filter || filter(args)) {\n state[path] = fieldState\n }\n\n break\n }\n }\n } else if (fieldHasSubFields(field) && !fieldAffectsData(field)) {\n // Handle field types that do not use names (row, collapsible, unnamed group etc)\n\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n\n // Presentational containers are hidden client-side via `withCondition`, which reads\n // `passesCondition` from their own state entry. Must be set here since these fields\n // are excluded from the short-circuit above (which would otherwise carry the flag).\n if (passesCondition === false) {\n state[path].passesCondition = false\n }\n }\n\n await iterateFields({\n id,\n mockRSCs,\n select,\n selectMode,\n // passthrough parent functionality\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions, // TODO: Verify this is correct\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tab') {\n const isNamedTab = tabHasName(field)\n\n if (isNamedTab) {\n const shouldContinue = stripUnselectedFields({\n field: { ...field, type: 'tab' },\n select,\n selectMode,\n siblingDoc: data?.[field.name] || {},\n })\n\n if (!shouldContinue) {\n return\n }\n }\n\n // Tab visibility on the client is keyed by `field.id`, not `path` (like all other fields).\n if (field?.id) {\n state[field.id] = {\n passesCondition,\n }\n\n // Flag newly added tab entries so the client accepts them during merge.\n // Otherwise, tabs revealed after a hidden ancestor becomes visible would never make it into client form state.\n if (!renderAllFields && !previousFormState?.[field.id]) {\n state[field.id].addedByServer = true\n }\n }\n\n if (!passesCondition) {\n return\n }\n\n let childPermissions: SanitizedFieldsPermissions\n let tabSelect: SelectType | undefined\n\n if (isNamedTab) {\n if (parentPermissions === true) {\n childPermissions = true\n } else {\n const tabPermissions = parentPermissions?.[field.name]\n childPermissions = tabPermissions === true ? true : tabPermissions?.fields\n }\n\n if (typeof select?.[field.name] === 'object') {\n tabSelect = select?.[field.name] as SelectType\n }\n } else {\n childPermissions = parentPermissions\n tabSelect = select\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: field.localized || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data: isNamedTab ? data?.[field.name] || {} : data,\n fields: field.fields,\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n mockRSCs,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: childPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select: tabSelect,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'tabs') {\n if (!filter || filter(args)) {\n state[path] = {\n disableFormData: true,\n }\n }\n\n return iterateFields({\n id,\n addErrorPathToParent: addErrorPathToParentArg,\n anyParentLocalized: fieldIsLocalized(field) || anyParentLocalized,\n blockData,\n clientFieldSchemaMap,\n collectionSlug,\n data,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n fieldSchemaMap,\n filter,\n forceFullValue,\n fullData,\n includeSchema,\n omitParents,\n operation,\n parentIndexPath: indexPath,\n parentPassesCondition: passesCondition,\n parentPath: path,\n parentSchemaPath: schemaPath,\n permissions: parentPermissions,\n preferences,\n previousFormState,\n readOnly,\n renderAllFields,\n renderFieldFn,\n req,\n select,\n selectMode,\n skipConditionChecks,\n skipValidation,\n state,\n })\n } else if (field.type === 'ui') {\n if (!filter || filter(args)) {\n state[path] = fieldState\n state[path].disableFormData = true\n }\n }\n\n if (renderFieldFn && !fieldIsHiddenOrDisabled(field)) {\n const fieldConfig = fieldSchemaMap.get(schemaPath)\n\n if (!fieldConfig && !mockRSCs) {\n if (schemaPath.endsWith('.blockType')) {\n return\n } else {\n throw new Error(`Field config not found for ${schemaPath}`)\n }\n }\n\n if (!state[path]) {\n // Some fields (ie `Tab`) do not live in form state\n // therefore we cannot attach customComponents to them\n return\n }\n\n if (addedByServer) {\n state[path].addedByServer = addedByServer\n }\n\n renderFieldFn({\n id,\n clientFieldSchemaMap,\n collectionSlug,\n data: fullData,\n fieldConfig: fieldConfig as Field,\n fieldSchemaMap,\n fieldState: state[path],\n formState: state,\n indexPath,\n lastRenderedPath,\n mockRSCs,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: fieldPermissions,\n preferences,\n previousFieldState: previousFormState?.[path],\n readOnly,\n renderAllFields,\n req,\n schemaPath,\n siblingData: data,\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ type Props = {
4
+ children?: React.ReactNode;
5
+ };
6
+ /**
7
+ * Displays the current auth session's expiration, refresh, and activity lifecycle.
8
+ *
9
+ * Register this component as an admin provider to render it on every admin page.
10
+ */
11
+ export declare const AuthSessionDebug: React.FC<Props>;
12
+ export {};
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/providers/Auth/AuthSessionDebug/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AASzB,OAAO,cAAc,CAAA;AAErB,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAkD5C,CAAA"}
@@ -0,0 +1,93 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
+ import React from 'react';
6
+ import { useAuth } from '../index.js';
7
+ import { formatCountdown, getActivityStatus, getActivityWindowStatus, getRefreshWindowStatus } from './utilities.js';
8
+ import './index.scss';
9
+ /**
10
+ * Displays the current auth session's expiration, refresh, and activity lifecycle.
11
+ *
12
+ * Register this component as an admin provider to render it on every admin page.
13
+ */
14
+ export const AuthSessionDebug = t0 => {
15
+ const $ = _c(7);
16
+ const {
17
+ children
18
+ } = t0;
19
+ const {
20
+ authSession
21
+ } = useAuth();
22
+ const [nowMs, setNowMs] = React.useState();
23
+ let t1;
24
+ let t2;
25
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
26
+ t1 = () => {
27
+ const updateCountdown = () => setNowMs(Date.now());
28
+ updateCountdown();
29
+ const interval = window.setInterval(updateCountdown, 1000);
30
+ return () => window.clearInterval(interval);
31
+ };
32
+ t2 = [];
33
+ $[0] = t1;
34
+ $[1] = t2;
35
+ } else {
36
+ t1 = $[0];
37
+ t2 = $[1];
38
+ }
39
+ React.useEffect(t1, t2);
40
+ const expiresInMs = Math.max(0, (authSession?.expiresAt ?? 0) - (nowMs ?? 0));
41
+ let t3;
42
+ if ($[2] !== authSession || $[3] !== children || $[4] !== expiresInMs || $[5] !== nowMs) {
43
+ const activityStatus = authSession && nowMs !== undefined ? getActivityStatus({
44
+ authSession,
45
+ nowMs
46
+ }) : "waiting";
47
+ const activityWindowStatus = authSession && nowMs !== undefined ? getActivityWindowStatus({
48
+ activityStatus,
49
+ authSession,
50
+ nowMs
51
+ }) : "";
52
+ const refreshWindowStatus = authSession && nowMs !== undefined ? getRefreshWindowStatus({
53
+ authSession,
54
+ nowMs
55
+ }) : "";
56
+ t3 = _jsxs(_Fragment, {
57
+ children: [children, authSession && nowMs !== undefined ? _jsxs("aside", {
58
+ "aria-label": "Auth session countdown",
59
+ className: "auth-session-debug",
60
+ "data-auth-session-debug": true,
61
+ "data-auth-session-expires-at": authSession.expiresAt,
62
+ children: [_jsx("strong", {
63
+ children: "Auth session"
64
+ }), _jsxs("span", {
65
+ children: ["Access expires in: ", formatCountdown(expiresInMs)]
66
+ }), _jsxs("span", {
67
+ children: ["Refresh window: ", _jsx("span", {
68
+ "data-auth-session-refresh-window": true,
69
+ children: refreshWindowStatus
70
+ })]
71
+ }), _jsxs("span", {
72
+ className: `auth-session-debug__activity auth-session-debug__activity--${activityStatus}`,
73
+ children: [_jsx("span", {
74
+ "aria-hidden": true,
75
+ className: "auth-session-debug__activity-indicator"
76
+ }), "Activity window: ", _jsx("span", {
77
+ "data-auth-session-activity": true,
78
+ children: activityWindowStatus
79
+ })]
80
+ })]
81
+ }) : null]
82
+ });
83
+ $[2] = authSession;
84
+ $[3] = children;
85
+ $[4] = expiresInMs;
86
+ $[5] = nowMs;
87
+ $[6] = t3;
88
+ } else {
89
+ t3 = $[6];
90
+ }
91
+ return t3;
92
+ };
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useAuth","formatCountdown","getActivityStatus","getActivityWindowStatus","getRefreshWindowStatus","AuthSessionDebug","t0","$","children","authSession","nowMs","setNowMs","useState","t1","t2","Symbol","for","updateCountdown","Date","now","interval","window","setInterval","clearInterval","useEffect","expiresInMs","Math","max","expiresAt","t3","activityStatus","undefined","activityWindowStatus","refreshWindowStatus","_jsxs","_Fragment","className","_jsx"],"sources":["../../../../src/providers/Auth/AuthSessionDebug/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useAuth } from '../index.js'\nimport {\n formatCountdown,\n getActivityStatus,\n getActivityWindowStatus,\n getRefreshWindowStatus,\n} from './utilities.js'\nimport './index.scss'\n\ntype Props = {\n children?: React.ReactNode\n}\n\n/**\n * Displays the current auth session's expiration, refresh, and activity lifecycle.\n *\n * Register this component as an admin provider to render it on every admin page.\n */\nexport const AuthSessionDebug: React.FC<Props> = ({ children }) => {\n const { authSession } = useAuth()\n const [nowMs, setNowMs] = React.useState<number>()\n\n React.useEffect(() => {\n const updateCountdown = () => setNowMs(Date.now())\n\n updateCountdown()\n\n const interval = window.setInterval(updateCountdown, 1000)\n\n return () => window.clearInterval(interval)\n }, [])\n\n const expiresInMs = Math.max(0, (authSession?.expiresAt ?? 0) - (nowMs ?? 0))\n const activityStatus =\n authSession && nowMs !== undefined ? getActivityStatus({ authSession, nowMs }) : 'waiting'\n const activityWindowStatus =\n authSession && nowMs !== undefined\n ? getActivityWindowStatus({ activityStatus, authSession, nowMs })\n : ''\n const refreshWindowStatus =\n authSession && nowMs !== undefined ? getRefreshWindowStatus({ authSession, nowMs }) : ''\n\n return (\n <>\n {children}\n\n {authSession && nowMs !== undefined ? (\n <aside\n aria-label=\"Auth session countdown\"\n className=\"auth-session-debug\"\n data-auth-session-debug\n data-auth-session-expires-at={authSession.expiresAt}\n >\n <strong>Auth session</strong>\n <span>Access expires in: {formatCountdown(expiresInMs)}</span>\n <span>\n Refresh window: <span data-auth-session-refresh-window>{refreshWindowStatus}</span>\n </span>\n <span\n className={`auth-session-debug__activity auth-session-debug__activity--${activityStatus}`}\n >\n <span aria-hidden className=\"auth-session-debug__activity-indicator\" />\n Activity window: <span data-auth-session-activity>{activityWindowStatus}</span>\n </span>\n </aside>\n ) : null}\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,OAAO,QAAQ;AACxB,SACEC,eAAe,EACfC,iBAAiB,EACjBC,uBAAuB,EACvBC,sBAAsB,QACjB;AACP,OAAO;AAMP;;;;;AAKA,OAAO,MAAMC,gBAAA,GAAoCC,EAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EAAC;IAAAU;EAAA,IAAAF,EAAY;EAC5D;IAAAG;EAAA,IAAwBT,OAAA;EACxB,OAAAU,KAAA,EAAAC,QAAA,IAA0BZ,KAAA,CAAAa,QAAA,CAAc;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAP,CAAA,QAAAQ,MAAA,CAAAC,GAAA;IAExBH,EAAA,GAAAA,CAAA;MACd,MAAAI,eAAA,GAAAA,CAAA,KAA8BN,QAAA,CAASO,IAAA,CAAAC,GAAA,CAAQ;MAE/CF,eAAA;MAEA,MAAAG,QAAA,GAAiBC,MAAA,CAAAC,WAAA,CAAmBL,eAAA,MAAiB;MAAA,aAExCI,MAAA,CAAAE,aAAA,CAAqBH,QAAA;IAAA;IACjCN,EAAA;IAAEP,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAD,EAAA,GAAAN,CAAA;IAAAO,EAAA,GAAAP,CAAA;EAAA;EARLR,KAAA,CAAAyB,SAAA,CAAgBX,EAQhB,EAAGC,EAAE;EAEL,MAAAW,WAAA,GAAoBC,IAAA,CAAAC,GAAA,IAAY,CAAClB,WAAA,EAAAmB,SAAA,KAA0B,KAAMlB,KAAA,KAAS;EAAA,IAAAmB,EAAA;EAAA,IAAAtB,CAAA,QAAAE,WAAA,IAAAF,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAkB,WAAA,IAAAlB,CAAA,QAAAG,KAAA;IAC1E,MAAAoB,cAAA,GACErB,WAAA,IAAeC,KAAA,KAAAqB,SAAU,GAAY7B,iBAAA;MAAAO,WAAA;MAAAC;IAAA,CAAuC,IAAK;IACnF,MAAAsB,oBAAA,GACEvB,WAAA,IAAeC,KAAA,KAAAqB,SAAU,GACrB5B,uBAAA;MAAA2B,cAAA;MAAArB,WAAA;MAAAC;IAAA,CAA6D,IAC7D;IACN,MAAAuB,mBAAA,GACExB,WAAA,IAAeC,KAAA,KAAAqB,SAAU,GAAY3B,sBAAA;MAAAK,WAAA;MAAAC;IAAA,CAA4C,IAAK;IAGtFmB,EAAA,GAAAK,KAAA,CAAAC,SAAA;MAAA3B,QAAA,GACGA,QAAA,EAEAC,WAAA,IAAeC,KAAA,KAAAqB,SAAU,GACxBG,KAAA,CAAC;QAAA,cACY;QAAAE,SAAA,EACD;QAAA;QAAA,gCAEoB3B,WAAA,CAAAmB,SAAA;QAAApB,QAAA,GAE9B6B,IAAA,CAAC;UAAA7B,QAAA,EAAO;QAAA,C,GACR0B,KAAA,CAAC;UAAA1B,QAAA,GAAK,uBAAoBP,eAAA,CAAgBwB,WAAA;QAAA,C,GAC1CS,KAAA,CAAC;UAAA1B,QAAA,GAAK,oBACY6B,IAAA,CAAC;YAAA;YAAA7B,QAAA,EAAuCyB;UAAA,C;YAE1DC,KAAA,CAAC;UAAAE,SAAA,EACY,8DAA8DN,cAAA,EAAgB;UAAAtB,QAAA,GAEzF6B,IAAA,CAAC;YAAA;YAAAD,SAAA,EAA2B;UAAA,C,GAA2C,qBACtDC,IAAA,CAAC;YAAA;YAAA7B,QAAA,EAAiCwB;UAAA,C;;eAGrD;IAAA,C;;;;;;;;;SAtBNH,E;CAyBJ","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ @layer payload-default {
2
+ .auth-session-debug {
3
+ background: rgba(20, 20, 24, 0.92);
4
+ border: 1px solid rgba(255, 255, 255, 0.2);
5
+ border-radius: 8px;
6
+ bottom: 16px;
7
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3);
8
+ color: #fff;
9
+ display: grid;
10
+ font-family: monospace;
11
+ font-size: 13px;
12
+ gap: 6px;
13
+ line-height: 1.4;
14
+ padding: 12px 14px;
15
+ pointer-events: none;
16
+ position: fixed;
17
+ right: 16px;
18
+ z-index: 1000;
19
+ }
20
+
21
+ .auth-session-debug__activity {
22
+ align-items: center;
23
+ display: flex;
24
+ gap: 8px;
25
+ }
26
+
27
+ .auth-session-debug__activity-indicator {
28
+ border-radius: 50%;
29
+ height: 8px;
30
+ width: 8px;
31
+ }
32
+
33
+ .auth-session-debug__activity--waiting .auth-session-debug__activity-indicator {
34
+ background: #a1a1aa;
35
+ }
36
+
37
+ .auth-session-debug__activity--tracking .auth-session-debug__activity-indicator {
38
+ background: #f59e0b;
39
+ }
40
+
41
+ .auth-session-debug__activity--will-refresh .auth-session-debug__activity-indicator {
42
+ background: #22c55e;
43
+ }
44
+
45
+ .auth-session-debug__activity--closed .auth-session-debug__activity-indicator {
46
+ background: #ef4444;
47
+ }
48
+ }
49
+
@@ -0,0 +1,21 @@
1
+ import type { AuthSession } from '../types.js';
2
+ export type ActivityStatus = 'closed' | 'tracking' | 'waiting' | 'will-refresh';
3
+ type GetActivityStatusArgs = {
4
+ authSession: AuthSession;
5
+ nowMs: number;
6
+ };
7
+ type GetActivityWindowStatusArgs = {
8
+ activityStatus: ActivityStatus;
9
+ authSession: AuthSession;
10
+ nowMs: number;
11
+ };
12
+ type GetRefreshWindowStatusArgs = {
13
+ authSession: AuthSession;
14
+ nowMs: number;
15
+ };
16
+ export declare const formatCountdown: (durationMs: number) => string;
17
+ export declare const getActivityStatus: ({ authSession, nowMs, }: GetActivityStatusArgs) => ActivityStatus;
18
+ export declare const getActivityWindowStatus: ({ activityStatus, authSession, nowMs, }: GetActivityWindowStatusArgs) => string;
19
+ export declare const getRefreshWindowStatus: ({ authSession, nowMs, }: GetRefreshWindowStatusArgs) => string;
20
+ export {};
21
+ //# sourceMappingURL=utilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../../../src/providers/Auth/AuthSessionDebug/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAA;AAE/E,KAAK,qBAAqB,GAAG;IAC3B,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,2BAA2B,GAAG;IACjC,cAAc,EAAE,cAAc,CAAA;IAC9B,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,eAAe,eAAgB,MAAM,KAAG,MAMpD,CAAA;AAED,eAAO,MAAM,iBAAiB,4BAG3B,qBAAqB,KAAG,cAc1B,CAAA;AAED,eAAO,MAAM,uBAAuB,4CAIjC,2BAA2B,KAAG,MAkBhC,CAAA;AAED,eAAO,MAAM,sBAAsB,4BAGhC,0BAA0B,KAAG,MAU/B,CAAA"}
@@ -0,0 +1,53 @@
1
+ export const formatCountdown = durationMs => {
2
+ const totalSeconds = Math.max(0, Math.ceil(durationMs / 1000));
3
+ const minutes = Math.floor(totalSeconds / 60);
4
+ const seconds = totalSeconds % 60;
5
+ return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;
6
+ };
7
+ export const getActivityStatus = ({
8
+ authSession,
9
+ nowMs
10
+ }) => {
11
+ if (nowMs >= authSession.reminderStartsAt) {
12
+ return 'closed';
13
+ }
14
+ if (authSession.activityRecorded) {
15
+ return 'will-refresh';
16
+ }
17
+ if (nowMs >= authSession.activityTrackingStartsAt) {
18
+ return 'tracking';
19
+ }
20
+ return 'waiting';
21
+ };
22
+ export const getActivityWindowStatus = ({
23
+ activityStatus,
24
+ authSession,
25
+ nowMs
26
+ }) => {
27
+ if (activityStatus === 'closed') {
28
+ return 'Closed · no refresh';
29
+ }
30
+ if (activityStatus === 'will-refresh') {
31
+ if (nowMs < authSession.refreshStartsAt) {
32
+ return `Recorded · refresh in ${formatCountdown(authSession.refreshStartsAt - nowMs)}`;
33
+ }
34
+ return 'Recorded · refreshing';
35
+ }
36
+ if (activityStatus === 'tracking') {
37
+ return `Open · closes in ${formatCountdown(authSession.reminderStartsAt - nowMs)}`;
38
+ }
39
+ return `Opens in ${formatCountdown(authSession.activityTrackingStartsAt - nowMs)}`;
40
+ };
41
+ export const getRefreshWindowStatus = ({
42
+ authSession,
43
+ nowMs
44
+ }) => {
45
+ if (nowMs >= authSession.reminderStartsAt) {
46
+ return 'Closed';
47
+ }
48
+ if (nowMs >= authSession.refreshStartsAt) {
49
+ return 'Open';
50
+ }
51
+ return `Opens in ${formatCountdown(authSession.refreshStartsAt - nowMs)}`;
52
+ };
53
+ //# sourceMappingURL=utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utilities.js","names":["formatCountdown","durationMs","totalSeconds","Math","max","ceil","minutes","floor","seconds","String","padStart","getActivityStatus","authSession","nowMs","reminderStartsAt","activityRecorded","activityTrackingStartsAt","getActivityWindowStatus","activityStatus","refreshStartsAt","getRefreshWindowStatus"],"sources":["../../../../src/providers/Auth/AuthSessionDebug/utilities.ts"],"sourcesContent":["import type { AuthSession } from '../types.js'\n\nexport type ActivityStatus = 'closed' | 'tracking' | 'waiting' | 'will-refresh'\n\ntype GetActivityStatusArgs = {\n authSession: AuthSession\n nowMs: number\n}\n\ntype GetActivityWindowStatusArgs = {\n activityStatus: ActivityStatus\n authSession: AuthSession\n nowMs: number\n}\n\ntype GetRefreshWindowStatusArgs = {\n authSession: AuthSession\n nowMs: number\n}\n\nexport const formatCountdown = (durationMs: number): string => {\n const totalSeconds = Math.max(0, Math.ceil(durationMs / 1000))\n const minutes = Math.floor(totalSeconds / 60)\n const seconds = totalSeconds % 60\n\n return `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`\n}\n\nexport const getActivityStatus = ({\n authSession,\n nowMs,\n}: GetActivityStatusArgs): ActivityStatus => {\n if (nowMs >= authSession.reminderStartsAt) {\n return 'closed'\n }\n\n if (authSession.activityRecorded) {\n return 'will-refresh'\n }\n\n if (nowMs >= authSession.activityTrackingStartsAt) {\n return 'tracking'\n }\n\n return 'waiting'\n}\n\nexport const getActivityWindowStatus = ({\n activityStatus,\n authSession,\n nowMs,\n}: GetActivityWindowStatusArgs): string => {\n if (activityStatus === 'closed') {\n return 'Closed · no refresh'\n }\n\n if (activityStatus === 'will-refresh') {\n if (nowMs < authSession.refreshStartsAt) {\n return `Recorded · refresh in ${formatCountdown(authSession.refreshStartsAt - nowMs)}`\n }\n\n return 'Recorded · refreshing'\n }\n\n if (activityStatus === 'tracking') {\n return `Open · closes in ${formatCountdown(authSession.reminderStartsAt - nowMs)}`\n }\n\n return `Opens in ${formatCountdown(authSession.activityTrackingStartsAt - nowMs)}`\n}\n\nexport const getRefreshWindowStatus = ({\n authSession,\n nowMs,\n}: GetRefreshWindowStatusArgs): string => {\n if (nowMs >= authSession.reminderStartsAt) {\n return 'Closed'\n }\n\n if (nowMs >= authSession.refreshStartsAt) {\n return 'Open'\n }\n\n return `Opens in ${formatCountdown(authSession.refreshStartsAt - nowMs)}`\n}\n"],"mappings":"AAoBA,OAAO,MAAMA,eAAA,GAAmBC,UAAA;EAC9B,MAAMC,YAAA,GAAeC,IAAA,CAAKC,GAAG,CAAC,GAAGD,IAAA,CAAKE,IAAI,CAACJ,UAAA,GAAa;EACxD,MAAMK,OAAA,GAAUH,IAAA,CAAKI,KAAK,CAACL,YAAA,GAAe;EAC1C,MAAMM,OAAA,GAAUN,YAAA,GAAe;EAE/B,OAAO,GAAGO,MAAA,CAAOH,OAAA,EAASI,QAAQ,CAAC,GAAG,QAAQD,MAAA,CAAOD,OAAA,EAASE,QAAQ,CAAC,GAAG,MAAM;AAClF;AAEA,OAAO,MAAMC,iBAAA,GAAoBA,CAAC;EAChCC,WAAW;EACXC;AAAK,CACiB;EACtB,IAAIA,KAAA,IAASD,WAAA,CAAYE,gBAAgB,EAAE;IACzC,OAAO;EACT;EAEA,IAAIF,WAAA,CAAYG,gBAAgB,EAAE;IAChC,OAAO;EACT;EAEA,IAAIF,KAAA,IAASD,WAAA,CAAYI,wBAAwB,EAAE;IACjD,OAAO;EACT;EAEA,OAAO;AACT;AAEA,OAAO,MAAMC,uBAAA,GAA0BA,CAAC;EACtCC,cAAc;EACdN,WAAW;EACXC;AAAK,CACuB;EAC5B,IAAIK,cAAA,KAAmB,UAAU;IAC/B,OAAO;EACT;EAEA,IAAIA,cAAA,KAAmB,gBAAgB;IACrC,IAAIL,KAAA,GAAQD,WAAA,CAAYO,eAAe,EAAE;MACvC,OAAO,yBAAyBnB,eAAA,CAAgBY,WAAA,CAAYO,eAAe,GAAGN,KAAA,GAAQ;IACxF;IAEA,OAAO;EACT;EAEA,IAAIK,cAAA,KAAmB,YAAY;IACjC,OAAO,oBAAoBlB,eAAA,CAAgBY,WAAA,CAAYE,gBAAgB,GAAGD,KAAA,GAAQ;EACpF;EAEA,OAAO,YAAYb,eAAA,CAAgBY,WAAA,CAAYI,wBAAwB,GAAGH,KAAA,GAAQ;AACpF;AAEA,OAAO,MAAMO,sBAAA,GAAyBA,CAAC;EACrCR,WAAW;EACXC;AAAK,CACsB;EAC3B,IAAIA,KAAA,IAASD,WAAA,CAAYE,gBAAgB,EAAE;IACzC,OAAO;EACT;EAEA,IAAID,KAAA,IAASD,WAAA,CAAYO,eAAe,EAAE;IACxC,OAAO;EACT;EAEA,OAAO,YAAYnB,eAAA,CAAgBY,WAAA,CAAYO,eAAe,GAAGN,KAAA,GAAQ;AAC3E","ignoreList":[]}