@payloadcms/ui 3.44.0-canary.10 → 3.44.0-canary.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FileSidebar/index.js +29 -74
  3. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  4. package/dist/elements/BulkUpload/FileSidebar/index.scss +4 -5
  5. package/dist/elements/BulkUpload/FormsManager/index.d.ts +1 -0
  6. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  7. package/dist/elements/BulkUpload/FormsManager/index.js +64 -37
  8. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  9. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +0 -1
  10. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -1
  11. package/dist/elements/BulkUpload/FormsManager/reducer.js +0 -1
  12. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -1
  13. package/dist/elements/BulkUpload/index.scss +0 -0
  14. package/dist/elements/EditMany/DrawerContent.d.ts +1 -5
  15. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  16. package/dist/elements/EditMany/DrawerContent.js +1 -5
  17. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  18. package/dist/elements/EditMany/index.d.ts +0 -1
  19. package/dist/elements/EditMany/index.d.ts.map +1 -1
  20. package/dist/elements/EditMany/index.js +18 -32
  21. package/dist/elements/EditMany/index.js.map +1 -1
  22. package/dist/elements/EmailAndUsername/index.d.ts +0 -1
  23. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
  24. package/dist/elements/EmailAndUsername/index.js +30 -64
  25. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  26. package/dist/elements/PublishMany/DrawerContent.d.ts +0 -1
  27. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  28. package/dist/elements/PublishMany/DrawerContent.js +1 -5
  29. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  30. package/dist/elements/PublishMany/index.d.ts +0 -1
  31. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  32. package/dist/elements/PublishMany/index.js +17 -31
  33. package/dist/elements/PublishMany/index.js.map +1 -1
  34. package/dist/elements/ShimmerEffect/index.d.ts +0 -2
  35. package/dist/elements/ShimmerEffect/index.d.ts.map +1 -1
  36. package/dist/elements/ShimmerEffect/index.js +3 -5
  37. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  38. package/dist/elements/Thumbnail/createThumbnail.d.ts.map +1 -1
  39. package/dist/elements/Thumbnail/createThumbnail.js +2 -8
  40. package/dist/elements/Thumbnail/createThumbnail.js.map +1 -1
  41. package/dist/elements/UnpublishMany/DrawerContent.d.ts +0 -1
  42. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  43. package/dist/elements/UnpublishMany/DrawerContent.js +1 -5
  44. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  45. package/dist/elements/UnpublishMany/index.d.ts +0 -1
  46. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  47. package/dist/elements/UnpublishMany/index.js +17 -31
  48. package/dist/elements/UnpublishMany/index.js.map +1 -1
  49. package/dist/exports/client/{CodeEditor-YP63NRLU.js → CodeEditor-Z3ZZJH7C.js} +2 -2
  50. package/dist/exports/client/{chunk-5EP6VERX.js → chunk-CNCOIY3Y.js} +4 -4
  51. package/dist/exports/client/{chunk-5EP6VERX.js.map → chunk-CNCOIY3Y.js.map} +3 -3
  52. package/dist/exports/client/index.d.ts +0 -2
  53. package/dist/exports/client/index.d.ts.map +1 -1
  54. package/dist/exports/client/index.js +16 -16
  55. package/dist/exports/client/index.js.map +4 -4
  56. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  57. package/dist/fields/Checkbox/index.js +0 -9
  58. package/dist/fields/Checkbox/index.js.map +1 -1
  59. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  60. package/dist/forms/Form/fieldReducer.js +0 -5
  61. package/dist/forms/Form/fieldReducer.js.map +1 -1
  62. package/dist/forms/useField/index.d.ts.map +1 -1
  63. package/dist/forms/useField/index.js +1 -2
  64. package/dist/forms/useField/index.js.map +1 -1
  65. package/dist/styles.css +1 -1
  66. package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
  67. package/dist/utilities/getFolderResultsComponentAndData.js +2 -1
  68. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  69. package/dist/views/Edit/Auth/index.d.ts.map +1 -1
  70. package/dist/views/Edit/Auth/index.js +136 -163
  71. package/dist/views/Edit/Auth/index.js.map +1 -1
  72. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  73. package/dist/views/Edit/SetDocumentTitle/index.js +21 -24
  74. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  75. package/dist/views/List/ListSelection/index.d.ts.map +1 -1
  76. package/dist/views/List/ListSelection/index.js +18 -31
  77. package/dist/views/List/ListSelection/index.js.map +1 -1
  78. package/package.json +5 -5
  79. package/dist/elements/EmailAndUsername/index.scss +0 -9
  80. /package/dist/exports/client/{CodeEditor-YP63NRLU.js.map → CodeEditor-Z3ZZJH7C.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderResultsComponentAndData.d.ts","sourceRoot":"","sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,oCAAoC,EACpC,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAWxE,KAAK,sCAAsC,GAAG;IAC5C,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAChC,CAAA;AAED,KAAK,2CAA2C,GAAG;IACjD,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,sBAAsB,CAAC,EAAE,KAAK,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,cAAc,CAClE,oCAAoC,EACpC,OAAO,CAAC,2CAA2C,GAAG,sCAAsC,CAAC,CAsB9F,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,+EAO1C,oCAAoC,KAAG,OAAO,CAAC,sCAAsC,CA6FvF,CAAA"}
1
+ {"version":3,"file":"getFolderResultsComponentAndData.d.ts","sourceRoot":"","sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,oCAAoC,EACpC,cAAc,EAEf,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAQxE,KAAK,sCAAsC,GAAG;IAC5C,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAChC,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC9B,sBAAsB,EAAE,KAAK,CAAC,SAAS,CAAA;IACvC,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;CAChC,CAAA;AAED,KAAK,2CAA2C,GAAG;IACjD,WAAW,CAAC,EAAE,KAAK,CAAA;IACnB,SAAS,CAAC,EAAE,KAAK,CAAA;IACjB,sBAAsB,CAAC,EAAE,KAAK,CAAA;IAC9B,UAAU,CAAC,EAAE,KAAK,CAAA;CACnB,GAAG,CACA;IACE,OAAO,EAAE,MAAM,CAAA;CAChB,GACD,WAAW,CACd,CAAA;AAED,eAAO,MAAM,uCAAuC,EAAE,cAAc,CAClE,oCAAoC,EACpC,OAAO,CAAC,2CAA2C,GAAG,sCAAsC,CAAC,CAsB9F,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,gCAAgC,+EAO1C,oCAAoC,KAAG,OAAO,CAAC,sCAAsC,CA6FvF,CAAA"}
@@ -1,7 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { APIError, formatErrors, getFolderData } from 'payload';
3
3
  import { buildFolderWhereConstraints } from 'payload/shared';
4
- import { FolderFileTable, ItemCardGrid } from '../exports/client/index.js';
4
+ import { FolderFileTable } from '../elements/FolderView/FolderFileTable/index.js';
5
+ import { ItemCardGrid } from '../elements/FolderView/ItemCardGrid/index.js';
5
6
  export const getFolderResultsComponentAndDataHandler = async args => {
6
7
  const {
7
8
  req
@@ -1 +1 @@
1
- {"version":3,"file":"getFolderResultsComponentAndData.js","names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","message","activeCollectionSlugs","browseByFolder","displayAs","folderID","undefined","sort","config","folders","collectionSlug","documentWhere","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","or","collectionConstraints","push","folderData","FolderResultsComponent","_jsxs","subfolders","length","_jsx","_Fragment","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints } from 'payload/shared'\n\nimport {\n FolderFileTable,\n ItemCardGrid,\n // eslint-disable-next-line payload/no-imports-from-exports-dir -- This component is returned via server functions, it must reference the exports dir\n} from '../exports/client/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n return null\n }\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n *\n *\n * Open ended questions:\n * - If we rerender the results section, does the provider update?? I dont think so, if the provider is on the server.\n * Maybe we should move the provider to the client.\n */\nexport const getFolderResultsComponentAndData = async ({\n activeCollectionSlugs,\n browseByFolder,\n displayAs,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where = undefined\n let folderWhere: undefined | Where = undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getFolderResultsComponentAndData.js","names":["APIError","formatErrors","getFolderData","buildFolderWhereConstraints","FolderFileTable","ItemCardGrid","getFolderResultsComponentAndDataHandler","args","req","res","getFolderResultsComponentAndData","err","payload","logger","error","msg","message","activeCollectionSlugs","browseByFolder","displayAs","folderID","undefined","sort","config","folders","collectionSlug","documentWhere","folderWhere","activeCollectionSlug","slug","folderCollectionConstraints","collectionConfig","collections","localeCode","locale","search","query","or","collectionConstraints","push","folderData","FolderResultsComponent","_jsxs","subfolders","length","_jsx","_Fragment","items","title","type","documents","subfolderCount","showRelationCell","breadcrumbs"],"sources":["../../src/utilities/getFolderResultsComponentAndData.tsx"],"sourcesContent":["import type {\n CollectionSlug,\n ErrorResult,\n GetFolderResultsComponentAndDataArgs,\n ServerFunction,\n Where,\n} from 'payload'\nimport type { FolderBreadcrumb, FolderOrDocument } from 'payload/shared'\n\nimport { APIError, formatErrors, getFolderData } from 'payload'\nimport { buildFolderWhereConstraints } from 'payload/shared'\n\nimport { FolderFileTable } from '../elements/FolderView/FolderFileTable/index.js'\nimport { ItemCardGrid } from '../elements/FolderView/ItemCardGrid/index.js'\n\ntype GetFolderResultsComponentAndDataResult = {\n breadcrumbs?: FolderBreadcrumb[]\n documents?: FolderOrDocument[]\n FolderResultsComponent: React.ReactNode\n subfolders?: FolderOrDocument[]\n}\n\ntype GetFolderResultsComponentAndDataErrorResult = {\n breadcrumbs?: never\n documents?: never\n FolderResultsComponent?: never\n subfolders?: never\n} & (\n | {\n message: string\n }\n | ErrorResult\n)\n\nexport const getFolderResultsComponentAndDataHandler: ServerFunction<\n GetFolderResultsComponentAndDataArgs,\n Promise<GetFolderResultsComponentAndDataErrorResult | GetFolderResultsComponentAndDataResult>\n> = async (args) => {\n const { req } = args\n\n try {\n const res = await getFolderResultsComponentAndData(args)\n return res\n } catch (err) {\n req.payload.logger.error({ err, msg: `There was an error building form state` })\n\n if (err.message === 'Could not find field schema for given path') {\n return {\n message: err.message,\n }\n }\n\n if (err.message === 'Unauthorized') {\n return null\n }\n\n return formatErrors(err)\n }\n}\n\n/**\n * This function is responsible for fetching folder data, building the results component\n * and returns the data and component together.\n *\n *\n * Open ended questions:\n * - If we rerender the results section, does the provider update?? I dont think so, if the provider is on the server.\n * Maybe we should move the provider to the client.\n */\nexport const getFolderResultsComponentAndData = async ({\n activeCollectionSlugs,\n browseByFolder,\n displayAs,\n folderID = undefined,\n req,\n sort,\n}: GetFolderResultsComponentAndDataArgs): Promise<GetFolderResultsComponentAndDataResult> => {\n const { payload } = req\n\n if (!payload.config.folders) {\n throw new APIError('Folders are not enabled in the configuration.')\n }\n\n let collectionSlug: CollectionSlug | undefined = undefined\n let documentWhere: undefined | Where = undefined\n let folderWhere: undefined | Where = undefined\n\n // todo(perf): - collect promises and resolve them in parallel\n for (const activeCollectionSlug of activeCollectionSlugs) {\n if (activeCollectionSlug === payload.config.folders.slug) {\n const folderCollectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (folderCollectionConstraints) {\n folderWhere = folderCollectionConstraints\n }\n } else if ((browseByFolder && folderID) || !browseByFolder) {\n if (!browseByFolder) {\n collectionSlug = activeCollectionSlug\n }\n\n if (!documentWhere) {\n documentWhere = {\n or: [],\n }\n }\n\n const collectionConstraints = await buildFolderWhereConstraints({\n collectionConfig: payload.collections[activeCollectionSlug].config,\n folderID,\n localeCode: req?.locale,\n req,\n search: typeof req?.query?.search === 'string' ? req.query.search : undefined,\n sort,\n })\n\n if (collectionConstraints) {\n documentWhere.or.push(collectionConstraints)\n }\n }\n }\n\n const folderData = await getFolderData({\n collectionSlug,\n documentWhere,\n folderID,\n folderWhere,\n req,\n })\n\n let FolderResultsComponent = null\n\n if (displayAs === 'grid') {\n FolderResultsComponent = (\n <div>\n {folderData.subfolders.length ? (\n <>\n <ItemCardGrid items={folderData.subfolders} title={'Folders'} type=\"folder\" />\n </>\n ) : null}\n\n {folderData.documents.length ? (\n <>\n <ItemCardGrid\n items={folderData.documents}\n subfolderCount={folderData.subfolders.length}\n title={'Documents'}\n type=\"file\"\n />\n </>\n ) : null}\n </div>\n )\n } else {\n FolderResultsComponent = <FolderFileTable showRelationCell={browseByFolder} />\n }\n\n return {\n breadcrumbs: folderData.breadcrumbs,\n documents: folderData.documents,\n FolderResultsComponent,\n subfolders: folderData.subfolders,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA8D,MAAM,OAAO,CAAA;AAGlF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAavC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA+QhC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/Auth/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8D,MAAM,OAAO,CAAA;AAGlF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAavC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsNhC,CAAA"}
@@ -2,7 +2,6 @@
2
2
 
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
- import { getFieldPermissions } from 'payload/shared';
6
5
  import React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react';
7
6
  import { toast } from 'sonner';
8
7
  import { Button } from '../../../elements/Button/index.js';
@@ -19,7 +18,7 @@ import { APIKey } from './APIKey.js';
19
18
  import './index.scss';
20
19
  const baseClass = 'auth-fields';
21
20
  export const Auth = props => {
22
- const $ = _c(34);
21
+ const $ = _c(57);
23
22
  const {
24
23
  className,
25
24
  collectionSlug,
@@ -60,63 +59,7 @@ export const Auth = props => {
60
59
  const {
61
60
  api
62
61
  } = t1;
63
- let showPasswordFields = true;
64
- let showUnlock = true;
65
- const hasPasswordFieldOverride = typeof docPermissions.fields === "object" && "password" in docPermissions.fields;
66
- const hasLoginFieldOverride = typeof docPermissions.fields === "object" && ("username" in docPermissions.fields || "email" in docPermissions.fields);
67
- if (hasPasswordFieldOverride) {
68
- const {
69
- permissions: passwordPermissions
70
- } = getFieldPermissions({
71
- field: {
72
- name: "password",
73
- type: "text"
74
- },
75
- operation,
76
- parentName: "",
77
- permissions: docPermissions?.fields
78
- });
79
- if (operation === "create") {
80
- showPasswordFields = typeof passwordPermissions === "object" && passwordPermissions.create;
81
- } else {
82
- showPasswordFields = typeof passwordPermissions === "object" && passwordPermissions.read && passwordPermissions.update;
83
- }
84
- }
85
- if (hasLoginFieldOverride) {
86
- const hasEmailAndUsernameFields = loginWithUsername && (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin);
87
- const {
88
- operation: emailPermission
89
- } = getFieldPermissions({
90
- field: {
91
- name: "email",
92
- type: "text"
93
- },
94
- operation: "read",
95
- parentName: "",
96
- permissions: docPermissions?.fields
97
- });
98
- const {
99
- operation: usernamePermission
100
- } = getFieldPermissions({
101
- field: {
102
- name: "username",
103
- type: "text"
104
- },
105
- operation: "read",
106
- parentName: "",
107
- permissions: docPermissions?.fields
108
- });
109
- if (hasEmailAndUsernameFields) {
110
- showUnlock = usernamePermission || emailPermission;
111
- } else {
112
- if (loginWithUsername && !hasEmailAndUsernameFields) {
113
- showUnlock = usernamePermission;
114
- } else {
115
- showUnlock = emailPermission;
116
- }
117
- }
118
- }
119
- const enableFields = (!disableLocalStrategy || typeof disableLocalStrategy === "object" && disableLocalStrategy.enableFields === true) && (showUnlock || showPasswordFields);
62
+ const enableFields = !disableLocalStrategy || typeof disableLocalStrategy === "object" && disableLocalStrategy.enableFields === true;
120
63
  const disabled = readOnly || isInitializing;
121
64
  const apiKeyPermissions = docPermissions?.fields === true ? true : docPermissions?.fields?.enableAPIKey;
122
65
  const apiKeyReadOnly = readOnly || apiKeyPermissions === true || apiKeyPermissions && typeof apiKeyPermissions === "object" && !apiKeyPermissions?.update;
@@ -134,8 +77,8 @@ export const Auth = props => {
134
77
  const hasPermissionToUnlock = t2;
135
78
  let t3;
136
79
  if ($[0] !== dispatchFields || $[1] !== setValidateBeforeSubmit || $[2] !== t) {
137
- t3 = changingPassword_0 => {
138
- if (changingPassword_0) {
80
+ t3 = showPasswordFields => {
81
+ if (showPasswordFields) {
139
82
  setValidateBeforeSubmit(true);
140
83
  dispatchFields({
141
84
  type: "UPDATE",
@@ -160,7 +103,7 @@ export const Auth = props => {
160
103
  path: "confirm-password"
161
104
  });
162
105
  }
163
- setChangingPassword(changingPassword_0);
106
+ setChangingPassword(showPasswordFields);
164
107
  };
165
108
  $[0] = dispatchFields;
166
109
  $[1] = setValidateBeforeSubmit;
@@ -234,115 +177,145 @@ export const Auth = props => {
234
177
  } else {
235
178
  t7 = $[17];
236
179
  }
237
- let t8;
238
- if ($[18] !== apiKeyReadOnly || $[19] !== canReadApiKey || $[20] !== collectionSlug || $[21] !== disabled || $[22] !== enableAPIKey?.value || $[23] !== enableAPIKeyReadOnly || $[24] !== t || $[25] !== useAPIKey) {
239
- t8 = useAPIKey && _jsx("div", {
240
- className: `${baseClass}__api-key`,
241
- children: canReadApiKey && _jsxs(Fragment, {
242
- children: [_jsx(CheckboxField, {
243
- field: {
244
- name: "enableAPIKey",
245
- admin: {
246
- disabled,
247
- readOnly: enableAPIKeyReadOnly
180
+ const t8 = t7.join(" ");
181
+ let t9;
182
+ if ($[18] !== apiKeyReadOnly || $[19] !== canReadApiKey || $[20] !== changingPassword || $[21] !== collectionSlug || $[22] !== disableLocalStrategy || $[23] !== disabled || $[24] !== docPermissions?.fields || $[25] !== enableAPIKey?.value || $[26] !== enableAPIKeyReadOnly || $[27] !== enableFields || $[28] !== handleChangePassword || $[29] !== hasPermissionToUnlock || $[30] !== isEditing || $[31] !== loginWithUsername || $[32] !== operation || $[33] !== readOnly || $[34] !== requirePassword || $[35] !== t || $[36] !== t8 || $[37] !== unlock || $[38] !== useAPIKey || $[39] !== verify) {
183
+ let t10;
184
+ if ($[41] !== apiKeyReadOnly || $[42] !== canReadApiKey || $[43] !== collectionSlug || $[44] !== disabled || $[45] !== enableAPIKey?.value || $[46] !== enableAPIKeyReadOnly || $[47] !== t || $[48] !== useAPIKey) {
185
+ t10 = useAPIKey && _jsx("div", {
186
+ className: `${baseClass}__api-key`,
187
+ children: canReadApiKey && _jsxs(Fragment, {
188
+ children: [_jsx(CheckboxField, {
189
+ field: {
190
+ name: "enableAPIKey",
191
+ admin: {
192
+ disabled,
193
+ readOnly: enableAPIKeyReadOnly
194
+ },
195
+ label: t("authentication:enableAPIKey")
248
196
  },
249
- label: t("authentication:enableAPIKey")
197
+ path: "enableAPIKey",
198
+ schemaPath: `${collectionSlug}.enableAPIKey`
199
+ }), _jsx(APIKey, {
200
+ enabled: !!enableAPIKey?.value,
201
+ readOnly: apiKeyReadOnly
202
+ })]
203
+ })
204
+ });
205
+ $[41] = apiKeyReadOnly;
206
+ $[42] = canReadApiKey;
207
+ $[43] = collectionSlug;
208
+ $[44] = disabled;
209
+ $[45] = enableAPIKey?.value;
210
+ $[46] = enableAPIKeyReadOnly;
211
+ $[47] = t;
212
+ $[48] = useAPIKey;
213
+ $[49] = t10;
214
+ } else {
215
+ t10 = $[49];
216
+ }
217
+ let t11;
218
+ if ($[50] !== collectionSlug || $[51] !== disabled || $[52] !== isEditing || $[53] !== readOnly || $[54] !== t || $[55] !== verify) {
219
+ t11 = verify && isEditing && _jsx(CheckboxField, {
220
+ field: {
221
+ name: "_verified",
222
+ admin: {
223
+ disabled,
224
+ readOnly
250
225
  },
251
- path: "enableAPIKey",
252
- schemaPath: `${collectionSlug}.enableAPIKey`
253
- }), _jsx(APIKey, {
254
- enabled: !!enableAPIKey?.value,
255
- readOnly: apiKeyReadOnly
226
+ label: t("authentication:verified")
227
+ },
228
+ path: "_verified",
229
+ schemaPath: `${collectionSlug}._verified`
230
+ });
231
+ $[50] = collectionSlug;
232
+ $[51] = disabled;
233
+ $[52] = isEditing;
234
+ $[53] = readOnly;
235
+ $[54] = t;
236
+ $[55] = verify;
237
+ $[56] = t11;
238
+ } else {
239
+ t11 = $[56];
240
+ }
241
+ t9 = _jsxs("div", {
242
+ className: t8,
243
+ children: [enableFields && _jsxs(React.Fragment, {
244
+ children: [_jsx(EmailAndUsernameFields, {
245
+ loginWithUsername,
246
+ operation,
247
+ permissions: docPermissions?.fields,
248
+ readOnly,
249
+ t
250
+ }), (changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && _jsxs("div", {
251
+ className: `${baseClass}__changing-password`,
252
+ children: [_jsx(PasswordField, {
253
+ autoComplete: "new-password",
254
+ field: {
255
+ name: "password",
256
+ label: t("authentication:newPassword"),
257
+ required: true
258
+ },
259
+ indexPath: "",
260
+ parentPath: "",
261
+ parentSchemaPath: "",
262
+ path: "password",
263
+ schemaPath: "password"
264
+ }), _jsx(ConfirmPasswordField, {
265
+ disabled: readOnly
266
+ })]
267
+ }), _jsxs("div", {
268
+ className: `${baseClass}__controls`,
269
+ children: [changingPassword && !requirePassword && _jsx(Button, {
270
+ buttonStyle: "secondary",
271
+ disabled,
272
+ onClick: () => handleChangePassword(false),
273
+ size: "medium",
274
+ children: t("general:cancel")
275
+ }), !changingPassword && !requirePassword && !disableLocalStrategy && _jsx(Button, {
276
+ buttonStyle: "secondary",
277
+ disabled,
278
+ id: "change-password",
279
+ onClick: () => handleChangePassword(true),
280
+ size: "medium",
281
+ children: t("authentication:changePassword")
282
+ }), operation === "update" && hasPermissionToUnlock && _jsx(Button, {
283
+ buttonStyle: "secondary",
284
+ disabled,
285
+ onClick: () => void unlock(),
286
+ size: "medium",
287
+ children: t("authentication:forceUnlock")
288
+ })]
256
289
  })]
257
- })
290
+ }), t10, t11]
258
291
  });
259
292
  $[18] = apiKeyReadOnly;
260
293
  $[19] = canReadApiKey;
261
- $[20] = collectionSlug;
262
- $[21] = disabled;
263
- $[22] = enableAPIKey?.value;
264
- $[23] = enableAPIKeyReadOnly;
265
- $[24] = t;
266
- $[25] = useAPIKey;
267
- $[26] = t8;
268
- } else {
269
- t8 = $[26];
270
- }
271
- let t9;
272
- if ($[27] !== collectionSlug || $[28] !== disabled || $[29] !== isEditing || $[30] !== readOnly || $[31] !== t || $[32] !== verify) {
273
- t9 = verify && isEditing && _jsx(CheckboxField, {
274
- field: {
275
- name: "_verified",
276
- admin: {
277
- disabled,
278
- readOnly
279
- },
280
- label: t("authentication:verified")
281
- },
282
- path: "_verified",
283
- schemaPath: `${collectionSlug}._verified`
284
- });
285
- $[27] = collectionSlug;
286
- $[28] = disabled;
287
- $[29] = isEditing;
288
- $[30] = readOnly;
289
- $[31] = t;
290
- $[32] = verify;
291
- $[33] = t9;
294
+ $[20] = changingPassword;
295
+ $[21] = collectionSlug;
296
+ $[22] = disableLocalStrategy;
297
+ $[23] = disabled;
298
+ $[24] = docPermissions?.fields;
299
+ $[25] = enableAPIKey?.value;
300
+ $[26] = enableAPIKeyReadOnly;
301
+ $[27] = enableFields;
302
+ $[28] = handleChangePassword;
303
+ $[29] = hasPermissionToUnlock;
304
+ $[30] = isEditing;
305
+ $[31] = loginWithUsername;
306
+ $[32] = operation;
307
+ $[33] = readOnly;
308
+ $[34] = requirePassword;
309
+ $[35] = t;
310
+ $[36] = t8;
311
+ $[37] = unlock;
312
+ $[38] = useAPIKey;
313
+ $[39] = verify;
314
+ $[40] = t9;
292
315
  } else {
293
- t9 = $[33];
316
+ t9 = $[40];
294
317
  }
295
- return _jsxs("div", {
296
- className: t7.join(" "),
297
- children: [enableFields && _jsxs(React.Fragment, {
298
- children: [_jsx(EmailAndUsernameFields, {
299
- loginWithUsername,
300
- operation,
301
- permissions: docPermissions?.fields,
302
- readOnly,
303
- t
304
- }), (changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && _jsxs("div", {
305
- className: `${baseClass}__changing-password`,
306
- children: [_jsx(PasswordField, {
307
- autoComplete: "new-password",
308
- field: {
309
- name: "password",
310
- label: t("authentication:newPassword"),
311
- required: true
312
- },
313
- indexPath: "",
314
- parentPath: "",
315
- parentSchemaPath: "",
316
- path: "password",
317
- schemaPath: "password"
318
- }), _jsx(ConfirmPasswordField, {
319
- disabled: readOnly
320
- })]
321
- }), _jsxs("div", {
322
- className: `${baseClass}__controls`,
323
- children: [changingPassword && !requirePassword && _jsx(Button, {
324
- buttonStyle: "secondary",
325
- disabled,
326
- onClick: () => handleChangePassword(false),
327
- size: "medium",
328
- children: t("general:cancel")
329
- }), !changingPassword && !requirePassword && !disableLocalStrategy && showPasswordFields && _jsx(Button, {
330
- buttonStyle: "secondary",
331
- disabled,
332
- id: "change-password",
333
- onClick: () => handleChangePassword(true),
334
- size: "medium",
335
- children: t("authentication:changePassword")
336
- }), operation === "update" && hasPermissionToUnlock && _jsx(Button, {
337
- buttonStyle: "secondary",
338
- disabled: disabled || !showUnlock,
339
- onClick: () => void unlock(),
340
- size: "medium",
341
- children: t("authentication:forceUnlock")
342
- })]
343
- })]
344
- }), t8, t9]
345
- });
318
+ return t9;
346
319
  };
347
320
  function _temp(t0) {
348
321
  const [fields] = t0;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getFieldPermissions","React","Fragment","useCallback","useEffect","useMemo","useState","toast","Button","EmailAndUsernameFields","CheckboxField","ConfirmPasswordField","PasswordField","useFormFields","useFormModified","useAuth","useConfig","useDocumentInfo","useTranslation","APIKey","baseClass","Auth","props","$","className","collectionSlug","disableLocalStrategy","email","loginWithUsername","operation","readOnly","requirePassword","setValidateBeforeSubmit","useAPIKey","username","verify","permissions","changingPassword","setChangingPassword","enableAPIKey","_temp","dispatchFields","_temp2","modified","i18n","t","docPermissions","isEditing","isInitializing","config","t0","routes","t1","serverURL","api","showPasswordFields","showUnlock","hasPasswordFieldOverride","fields","hasLoginFieldOverride","passwordPermissions","field","name","type","parentName","create","read","update","hasEmailAndUsernameFields","requireEmail","allowEmailLogin","emailPermission","usernamePermission","enableFields","disabled","apiKeyPermissions","apiKeyReadOnly","enableAPIKeyReadOnly","canReadApiKey","t2","bb0","collection","collections","Boolean","unlock","undefined","hasPermissionToUnlock","t3","changingPassword_0","errorMessage","path","valid","handleChangePassword","t4","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","t5","t6","t7","filter","t8","value","_jsx","children","_jsxs","admin","label","schemaPath","enabled","t9","join","autoComplete","required","indexPath","parentPath","parentSchemaPath","buttonStyle","onClick","size","id","reducer"],"sources":["../../../../src/views/Edit/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport { getFieldPermissions } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js'\nimport { CheckboxField } from '../../../fields/Checkbox/index.js'\nimport { ConfirmPasswordField } from '../../../fields/ConfirmPassword/index.js'\nimport { PasswordField } from '../../../fields/Password/index.js'\nimport { useFormFields, useFormModified } from '../../../forms/Form/context.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n loginWithUsername,\n operation,\n readOnly,\n requirePassword,\n setValidateBeforeSubmit,\n useAPIKey,\n username,\n verify,\n } = props\n\n const { permissions } = useAuth()\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => (fields && fields?.enableAPIKey) || null)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { docPermissions, isEditing, isInitializing } = useDocumentInfo()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n let showPasswordFields = true\n let showUnlock = true\n const hasPasswordFieldOverride =\n typeof docPermissions.fields === 'object' && 'password' in docPermissions.fields\n const hasLoginFieldOverride =\n typeof docPermissions.fields === 'object' &&\n ('username' in docPermissions.fields || 'email' in docPermissions.fields)\n\n if (hasPasswordFieldOverride) {\n const { permissions: passwordPermissions } = getFieldPermissions({\n field: { name: 'password', type: 'text' },\n operation,\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (operation === 'create') {\n showPasswordFields = typeof passwordPermissions === 'object' && passwordPermissions.create\n } else {\n showPasswordFields =\n typeof passwordPermissions === 'object' &&\n passwordPermissions.read &&\n passwordPermissions.update\n }\n }\n\n if (hasLoginFieldOverride) {\n const hasEmailAndUsernameFields =\n loginWithUsername && (loginWithUsername.requireEmail || loginWithUsername.allowEmailLogin)\n\n const { operation: emailPermission } = getFieldPermissions({\n field: { name: 'email', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n const { operation: usernamePermission } = getFieldPermissions({\n field: { name: 'username', type: 'text' },\n operation: 'read',\n parentName: '',\n permissions: docPermissions?.fields,\n })\n\n if (hasEmailAndUsernameFields) {\n showUnlock = usernamePermission || emailPermission\n } else if (loginWithUsername && !hasEmailAndUsernameFields) {\n showUnlock = usernamePermission\n } else {\n showUnlock = emailPermission\n }\n }\n\n const enableFields =\n (!disableLocalStrategy ||\n (typeof disableLocalStrategy === 'object' && disableLocalStrategy.enableFields === true)) &&\n (showUnlock || showPasswordFields)\n\n const disabled = readOnly || isInitializing\n\n const apiKeyPermissions =\n docPermissions?.fields === true ? true : docPermissions?.fields?.enableAPIKey\n\n const apiKeyReadOnly =\n readOnly ||\n apiKeyPermissions === true ||\n (apiKeyPermissions && typeof apiKeyPermissions === 'object' && !apiKeyPermissions?.update)\n\n const enableAPIKeyReadOnly =\n readOnly || (apiKeyPermissions !== true && !apiKeyPermissions?.update)\n\n const canReadApiKey = apiKeyPermissions === true || apiKeyPermissions?.read\n\n const hasPermissionToUnlock: boolean = useMemo(() => {\n const collection = permissions?.collections?.[collectionSlug]\n\n if (collection) {\n return Boolean('unlock' in collection ? collection.unlock : undefined)\n }\n\n return false\n }, [permissions, collectionSlug])\n\n const handleChangePassword = useCallback(\n (changingPassword: boolean) => {\n if (changingPassword) {\n setValidateBeforeSubmit(true)\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'password',\n valid: false,\n })\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'confirm-password',\n valid: false,\n })\n } else {\n setValidateBeforeSubmit(false)\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(changingPassword)\n },\n [dispatchFields, t, setValidateBeforeSubmit],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body:\n loginWithUsername && username ? JSON.stringify({ username }) : JSON.stringify({ email }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'))\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, username, t, loginWithUsername])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !enableFields && !useAPIKey) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {enableFields && (\n <React.Fragment>\n <EmailAndUsernameFields\n loginWithUsername={loginWithUsername}\n operation={operation}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n t={t}\n />\n {(changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && (\n <div className={`${baseClass}__changing-password`}>\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path=\"password\"\n schemaPath=\"password\"\n />\n <ConfirmPasswordField disabled={readOnly} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => handleChangePassword(false)}\n size=\"medium\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword &&\n !requirePassword &&\n !disableLocalStrategy &&\n showPasswordFields && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"medium\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && hasPermissionToUnlock && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled || !showUnlock}\n onClick={() => void unlock()}\n size=\"medium\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n {canReadApiKey && (\n <Fragment>\n <CheckboxField\n field={{\n name: 'enableAPIKey',\n admin: { disabled, readOnly: enableAPIKeyReadOnly },\n label: t('authentication:enableAPIKey'),\n }}\n path=\"enableAPIKey\"\n schemaPath={`${collectionSlug}.enableAPIKey`}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={apiKeyReadOnly} />\n </Fragment>\n )}\n </div>\n )}\n {verify && isEditing && (\n <CheckboxField\n field={{\n name: '_verified',\n admin: { disabled, readOnly },\n label: t('authentication:verified'),\n }}\n path=\"_verified\"\n schemaPath={`${collectionSlug}._verified`}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","Fragment","useCallback","useEffect","useMemo","useState","toast","Button","EmailAndUsernameFields","CheckboxField","ConfirmPasswordField","PasswordField","useFormFields","useFormModified","useAuth","useConfig","useDocumentInfo","useTranslation","APIKey","baseClass","Auth","props","$","className","collectionSlug","disableLocalStrategy","email","loginWithUsername","operation","readOnly","requirePassword","setValidateBeforeSubmit","useAPIKey","username","verify","permissions","changingPassword","setChangingPassword","enableAPIKey","_temp","dispatchFields","_temp2","modified","i18n","t","docPermissions","isEditing","isInitializing","config","t0","routes","t1","serverURL","api","enableFields","disabled","apiKeyPermissions","fields","apiKeyReadOnly","update","enableAPIKeyReadOnly","canReadApiKey","read","t2","bb0","collection","collections","Boolean","unlock","undefined","hasPermissionToUnlock","t3","showPasswordFields","type","errorMessage","path","valid","handleChangePassword","t4","url","response","fetch","body","JSON","stringify","credentials","headers","language","method","status","success","error","t5","t6","t7","filter","t8","join","t9","value","t10","_jsx","children","_jsxs","field","name","admin","label","schemaPath","enabled","t11","autoComplete","required","indexPath","parentPath","parentSchemaPath","buttonStyle","onClick","size","id","reducer"],"sources":["../../../../src/views/Edit/Auth/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { Fragment, useCallback, useEffect, useMemo, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { Props } from './types.js'\n\nimport { Button } from '../../../elements/Button/index.js'\nimport { EmailAndUsernameFields } from '../../../elements/EmailAndUsername/index.js'\nimport { CheckboxField } from '../../../fields/Checkbox/index.js'\nimport { ConfirmPasswordField } from '../../../fields/ConfirmPassword/index.js'\nimport { PasswordField } from '../../../fields/Password/index.js'\nimport { useFormFields, useFormModified } from '../../../forms/Form/context.js'\nimport { useAuth } from '../../../providers/Auth/index.js'\nimport { useConfig } from '../../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { APIKey } from './APIKey.js'\nimport './index.scss'\n\nconst baseClass = 'auth-fields'\n\nexport const Auth: React.FC<Props> = (props) => {\n const {\n className,\n collectionSlug,\n disableLocalStrategy,\n email,\n loginWithUsername,\n operation,\n readOnly,\n requirePassword,\n setValidateBeforeSubmit,\n useAPIKey,\n username,\n verify,\n } = props\n\n const { permissions } = useAuth()\n const [changingPassword, setChangingPassword] = useState(requirePassword)\n const enableAPIKey = useFormFields(([fields]) => (fields && fields?.enableAPIKey) || null)\n const dispatchFields = useFormFields((reducer) => reducer[1])\n const modified = useFormModified()\n const { i18n, t } = useTranslation()\n const { docPermissions, isEditing, isInitializing } = useDocumentInfo()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const enableFields =\n !disableLocalStrategy ||\n (typeof disableLocalStrategy === 'object' && disableLocalStrategy.enableFields === true)\n\n const disabled = readOnly || isInitializing\n\n const apiKeyPermissions =\n docPermissions?.fields === true ? true : docPermissions?.fields?.enableAPIKey\n\n const apiKeyReadOnly =\n readOnly ||\n apiKeyPermissions === true ||\n (apiKeyPermissions && typeof apiKeyPermissions === 'object' && !apiKeyPermissions?.update)\n\n const enableAPIKeyReadOnly =\n readOnly || (apiKeyPermissions !== true && !apiKeyPermissions?.update)\n\n const canReadApiKey = apiKeyPermissions === true || apiKeyPermissions?.read\n\n const hasPermissionToUnlock: boolean = useMemo(() => {\n const collection = permissions?.collections?.[collectionSlug]\n\n if (collection) {\n return Boolean('unlock' in collection ? collection.unlock : undefined)\n }\n\n return false\n }, [permissions, collectionSlug])\n\n const handleChangePassword = useCallback(\n (showPasswordFields: boolean) => {\n if (showPasswordFields) {\n setValidateBeforeSubmit(true)\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'password',\n valid: false,\n })\n\n dispatchFields({\n type: 'UPDATE',\n errorMessage: t('validation:required'),\n path: 'confirm-password',\n valid: false,\n })\n } else {\n setValidateBeforeSubmit(false)\n dispatchFields({ type: 'REMOVE', path: 'password' })\n dispatchFields({ type: 'REMOVE', path: 'confirm-password' })\n }\n\n setChangingPassword(showPasswordFields)\n },\n [dispatchFields, t, setValidateBeforeSubmit],\n )\n\n const unlock = useCallback(async () => {\n const url = `${serverURL}${api}/${collectionSlug}/unlock`\n const response = await fetch(url, {\n body:\n loginWithUsername && username ? JSON.stringify({ username }) : JSON.stringify({ email }),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n method: 'post',\n })\n\n if (response.status === 200) {\n toast.success(t('authentication:successfullyUnlocked'))\n } else {\n toast.error(t('authentication:failedToUnlock'))\n }\n }, [i18n, serverURL, api, collectionSlug, email, username, t, loginWithUsername])\n\n useEffect(() => {\n if (!modified) {\n setChangingPassword(false)\n }\n }, [modified])\n\n if (disableLocalStrategy && !enableFields && !useAPIKey) {\n return null\n }\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')}>\n {enableFields && (\n <React.Fragment>\n <EmailAndUsernameFields\n loginWithUsername={loginWithUsername}\n operation={operation}\n permissions={docPermissions?.fields}\n readOnly={readOnly}\n t={t}\n />\n {(changingPassword || requirePassword) && (!disableLocalStrategy || !enableFields) && (\n <div className={`${baseClass}__changing-password`}>\n <PasswordField\n autoComplete=\"new-password\"\n field={{\n name: 'password',\n label: t('authentication:newPassword'),\n required: true,\n }}\n indexPath=\"\"\n parentPath=\"\"\n parentSchemaPath=\"\"\n path=\"password\"\n schemaPath=\"password\"\n />\n <ConfirmPasswordField disabled={readOnly} />\n </div>\n )}\n <div className={`${baseClass}__controls`}>\n {changingPassword && !requirePassword && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => handleChangePassword(false)}\n size=\"medium\"\n >\n {t('general:cancel')}\n </Button>\n )}\n {!changingPassword && !requirePassword && !disableLocalStrategy && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n id=\"change-password\"\n onClick={() => handleChangePassword(true)}\n size=\"medium\"\n >\n {t('authentication:changePassword')}\n </Button>\n )}\n {operation === 'update' && hasPermissionToUnlock && (\n <Button\n buttonStyle=\"secondary\"\n disabled={disabled}\n onClick={() => void unlock()}\n size=\"medium\"\n >\n {t('authentication:forceUnlock')}\n </Button>\n )}\n </div>\n </React.Fragment>\n )}\n {useAPIKey && (\n <div className={`${baseClass}__api-key`}>\n {canReadApiKey && (\n <Fragment>\n <CheckboxField\n field={{\n name: 'enableAPIKey',\n admin: { disabled, readOnly: enableAPIKeyReadOnly },\n label: t('authentication:enableAPIKey'),\n }}\n path=\"enableAPIKey\"\n schemaPath={`${collectionSlug}.enableAPIKey`}\n />\n <APIKey enabled={!!enableAPIKey?.value} readOnly={apiKeyReadOnly} />\n </Fragment>\n )}\n </div>\n )}\n {verify && isEditing && (\n <CheckboxField\n field={{\n name: '_verified',\n admin: { disabled, readOnly },\n label: t('authentication:verified'),\n }}\n path=\"_verified\"\n schemaPath={`${collectionSlug}._verified`}\n />\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/SetDocumentTitle/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AASvF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC,CAkCA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/Edit/SetDocumentTitle/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AASvF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE,kBAAkB,CAAA;CAClC,CAuCA,CAAA"}
@@ -7,7 +7,7 @@ import { useDocumentTitle } from '../../../providers/DocumentTitle/index.js';
7
7
  import { useTranslation } from '../../../providers/Translation/index.js';
8
8
  import { formatDocTitle } from '../../../utilities/formatDocTitle/index.js';
9
9
  export const SetDocumentTitle = props => {
10
- const $ = _c(14);
10
+ const $ = _c(13);
11
11
  const {
12
12
  collectionConfig,
13
13
  config,
@@ -35,52 +35,49 @@ export const SetDocumentTitle = props => {
35
35
  setDocumentTitle
36
36
  } = useDocumentTitle();
37
37
  const dateFormatFromConfig = config?.admin?.dateFormat;
38
- const t1 = field?.value || "";
39
- let t2;
40
- if ($[2] !== collectionConfig || $[3] !== dateFormatFromConfig || $[4] !== fallback || $[5] !== globalConfig || $[6] !== i18n || $[7] !== t1 || $[8] !== useAsTitle) {
41
- t2 = formatDocTitle({
38
+ let t1;
39
+ if ($[2] !== collectionConfig || $[3] !== dateFormatFromConfig || $[4] !== fallback || $[5] !== field || $[6] !== globalConfig || $[7] !== i18n) {
40
+ t1 = formatDocTitle({
42
41
  collectionConfig,
43
42
  data: {
44
- id: "",
45
- [useAsTitle]: t1
43
+ id: ""
46
44
  },
47
45
  dateFormat: dateFormatFromConfig,
48
- fallback,
46
+ fallback: typeof field === "string" ? field : typeof field === "number" ? String(field) : field?.value || fallback,
49
47
  globalConfig,
50
48
  i18n
51
49
  });
52
50
  $[2] = collectionConfig;
53
51
  $[3] = dateFormatFromConfig;
54
52
  $[4] = fallback;
55
- $[5] = globalConfig;
56
- $[6] = i18n;
57
- $[7] = t1;
58
- $[8] = useAsTitle;
59
- $[9] = t2;
53
+ $[5] = field;
54
+ $[6] = globalConfig;
55
+ $[7] = i18n;
56
+ $[8] = t1;
60
57
  } else {
61
- t2 = $[9];
58
+ t1 = $[8];
62
59
  }
63
- const title = t2;
60
+ const title = t1;
61
+ let t2;
64
62
  let t3;
65
- let t4;
66
- if ($[10] !== setDocumentTitle || $[11] !== title) {
67
- t3 = () => {
63
+ if ($[9] !== setDocumentTitle || $[10] !== title) {
64
+ t2 = () => {
68
65
  if (!hasInitialized.current) {
69
66
  hasInitialized.current = true;
70
67
  return;
71
68
  }
72
69
  setDocumentTitle(title);
73
70
  };
74
- t4 = [setDocumentTitle, title];
75
- $[10] = setDocumentTitle;
76
- $[11] = title;
71
+ t3 = [setDocumentTitle, title];
72
+ $[9] = setDocumentTitle;
73
+ $[10] = title;
74
+ $[11] = t2;
77
75
  $[12] = t3;
78
- $[13] = t4;
79
76
  } else {
77
+ t2 = $[11];
80
78
  t3 = $[12];
81
- t4 = $[13];
82
79
  }
83
- useEffect(t3, t4);
80
+ useEffect(t2, t3);
84
81
  return null;
85
82
  };
86
83
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useEffect","useRef","useFormFields","useDocumentTitle","useTranslation","formatDocTitle","SetDocumentTitle","props","$","collectionConfig","config","fallback","globalConfig","useAsTitle","admin","t0","t1","fields","field","hasInitialized","i18n","setDocumentTitle","dateFormatFromConfig","dateFormat","value","t2","data","id","title","t3","t4","current"],"sources":["../../../../src/views/Edit/SetDocumentTitle/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport { useEffect, useRef } from 'react'\n\nimport { useFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../../utilities/formatDocTitle/index.js'\n\nexport const SetDocumentTitle: React.FC<{\n collectionConfig?: ClientCollectionConfig\n config?: ClientConfig\n fallback: string\n globalConfig?: ClientGlobalConfig\n}> = (props) => {\n const { collectionConfig, config, fallback, globalConfig } = props\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n const field = useFormFields(([fields]) => (useAsTitle && fields && fields?.[useAsTitle]) || null)\n\n const hasInitialized = useRef(false)\n\n const { i18n } = useTranslation()\n\n const { setDocumentTitle } = useDocumentTitle()\n\n const dateFormatFromConfig = config?.admin?.dateFormat\n\n const title = formatDocTitle({\n collectionConfig,\n data: { id: '', [useAsTitle]: field?.value || '' },\n dateFormat: dateFormatFromConfig,\n fallback,\n globalConfig,\n i18n,\n })\n\n useEffect(() => {\n if (!hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n setDocumentTitle(title)\n }, [setDocumentTitle, title])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAElC,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,gBAAA,GAKRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,gBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC;EAAA,IAA6DL,KAAA;EAE7D,MAAAM,UAAA,GAAmBJ,gBAAA,EAAAK,KAAA,EAAAD,UAAA;EAAyB,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAK,UAAA;IAEhBE,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKH,UAAC,IAAcI,MAAA,IAAUA,MAAA,GAASJ,UAAA,CAAW,QAAK;IAAA;IAAAL,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA5F,MAAAU,KAAA,GAAchB,aAAA,CAAca,EAAgE;EAE5F,MAAAI,cAAA,GAAuBlB,MAAA,MAAO;EAE9B;IAAAmB;EAAA,IAAiBhB,cAAA;EAEjB;IAAAiB;EAAA,IAA6BlB,gBAAA;EAE7B,MAAAmB,oBAAA,GAA6BZ,MAAA,EAAAI,KAAA,EAAAS,UAAA;EAIG,MAAAP,EAAA,GAAAE,KAAA,EAAAM,KAAA,IAAgB;EAAA,IAAAC,EAAA;EAAA,IAAAjB,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAc,oBAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAY,IAAA,IAAAZ,CAAA,QAAAQ,EAAA,IAAAR,CAAA,QAAAK,UAAA;IAFlCY,EAAA,GAAApB,cAAA;MAAAI,gBAAA;MAAAiB,IAAA;QAAAC,EAAA,EAEA;QAAA,CAAKd,UAAA,GAAaG;MAAgB;MAAAO,UAAA,EAClCD,oBAAA;MAAAX,QAAA;MAAAC,YAAA;MAAAQ;IAAA,CAId;IAAAZ,CAAA,MAAAC,gBAAA;IAAAD,CAAA,MAAAc,oBAAA;IAAAd,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAY,IAAA;IAAAZ,CAAA,MAAAQ,EAAA;IAAAR,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAiB,EAAA;EAAA;IAAAA,EAAA,GAAAjB,CAAA;EAAA;EAPA,MAAAoB,KAAA,GAAcH,EAOd;EAAA,IAAAI,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,SAAAa,gBAAA,IAAAb,CAAA,SAAAoB,KAAA;IAEUC,EAAA,GAAAA,CAAA;MAAA,KACHV,cAAA,CAAAY,OAAA;QACHZ,cAAA,CAAAY,OAAA;QAAA;MAAA;MAIFV,gBAAA,CAAiBO,KAAA;IAAA;IAChBE,EAAA,IAACT,gBAAA,EAAkBO,KAAA;IAAMpB,CAAA,OAAAa,gBAAA;IAAAb,CAAA,OAAAoB,KAAA;IAAApB,CAAA,OAAAqB,EAAA;IAAArB,CAAA,OAAAsB,EAAA;EAAA;IAAAD,EAAA,GAAArB,CAAA;IAAAsB,EAAA,GAAAtB,CAAA;EAAA;EAP5BR,SAAA,CAAU6B,EAOV,EAAGC,EAAyB;EAAA;AAAA,CAG9B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useEffect","useRef","useFormFields","useDocumentTitle","useTranslation","formatDocTitle","SetDocumentTitle","props","$","collectionConfig","config","fallback","globalConfig","useAsTitle","admin","t0","t1","fields","field","hasInitialized","i18n","setDocumentTitle","dateFormatFromConfig","dateFormat","data","id","String","value","title","t2","t3","current"],"sources":["../../../../src/views/Edit/SetDocumentTitle/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, ClientConfig, ClientGlobalConfig } from 'payload'\n\nimport { useEffect, useRef } from 'react'\n\nimport { useFormFields } from '../../../forms/Form/context.js'\nimport { useDocumentTitle } from '../../../providers/DocumentTitle/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../../utilities/formatDocTitle/index.js'\n\nexport const SetDocumentTitle: React.FC<{\n collectionConfig?: ClientCollectionConfig\n config?: ClientConfig\n fallback: string\n globalConfig?: ClientGlobalConfig\n}> = (props) => {\n const { collectionConfig, config, fallback, globalConfig } = props\n\n const useAsTitle = collectionConfig?.admin?.useAsTitle\n\n const field = useFormFields(([fields]) => (useAsTitle && fields && fields?.[useAsTitle]) || null)\n\n const hasInitialized = useRef(false)\n\n const { i18n } = useTranslation()\n\n const { setDocumentTitle } = useDocumentTitle()\n\n const dateFormatFromConfig = config?.admin?.dateFormat\n\n const title = formatDocTitle({\n collectionConfig,\n data: { id: '' },\n dateFormat: dateFormatFromConfig,\n fallback:\n typeof field === 'string'\n ? field\n : typeof field === 'number'\n ? String(field)\n : (field?.value as string) || fallback,\n globalConfig,\n i18n,\n })\n\n useEffect(() => {\n if (!hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n setDocumentTitle(title)\n }, [setDocumentTitle, title])\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAElC,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAE/B,OAAO,MAAMC,gBAAA,GAKRC,KAAA;EAAA,MAAAC,CAAA,GAAAT,EAAA;EACH;IAAAU,gBAAA;IAAAC,MAAA;IAAAC,QAAA;IAAAC;EAAA,IAA6DL,KAAA;EAE7D,MAAAM,UAAA,GAAmBJ,gBAAA,EAAAK,KAAA,EAAAD,UAAA;EAAyB,IAAAE,EAAA;EAAA,IAAAP,CAAA,QAAAK,UAAA;IAEhBE,EAAA,GAAAC,EAAA;MAAC,OAAAC,MAAA,IAAAD,EAAQ;MAAA,OAAKH,UAAC,IAAcI,MAAA,IAAUA,MAAA,GAASJ,UAAA,CAAW,QAAK;IAAA;IAAAL,CAAA,MAAAK,UAAA;IAAAL,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAA5F,MAAAU,KAAA,GAAchB,aAAA,CAAca,EAAgE;EAE5F,MAAAI,cAAA,GAAuBlB,MAAA,MAAO;EAE9B;IAAAmB;EAAA,IAAiBhB,cAAA;EAEjB;IAAAiB;EAAA,IAA6BlB,gBAAA;EAE7B,MAAAmB,oBAAA,GAA6BZ,MAAA,EAAAI,KAAA,EAAAS,UAAA;EAAe,IAAAP,EAAA;EAAA,IAAAR,CAAA,QAAAC,gBAAA,IAAAD,CAAA,QAAAc,oBAAA,IAAAd,CAAA,QAAAG,QAAA,IAAAH,CAAA,QAAAU,KAAA,IAAAV,CAAA,QAAAI,YAAA,IAAAJ,CAAA,QAAAY,IAAA;IAE9BJ,EAAA,GAAAX,cAAA;MAAAI,gBAAA;MAAAe,IAAA;QAAAC,EAAA,EAEA;MAAA;MAAAF,UAAA,EACAD,oBAAA;MAAAX,QAAA,EAEV,OAAOO,KAAA,KAAU,WACbA,KAAA,GACA,OAAOA,KAAA,KAAU,WACfQ,MAAA,CAAOR,KAAA,IACPA,KAAC,EAAAS,KAAA,IAA2BhB,QAAA;MAAAC,YAAA;MAAAQ;IAAA,CAGtC;IAAAZ,CAAA,MAAAC,gBAAA;IAAAD,CAAA,MAAAc,oBAAA;IAAAd,CAAA,MAAAG,QAAA;IAAAH,CAAA,MAAAU,KAAA;IAAAV,CAAA,MAAAI,YAAA;IAAAJ,CAAA,MAAAY,IAAA;IAAAZ,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAZA,MAAAoB,KAAA,GAAcZ,EAYd;EAAA,IAAAa,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,QAAAa,gBAAA,IAAAb,CAAA,SAAAoB,KAAA;IAEUC,EAAA,GAAAA,CAAA;MAAA,KACHV,cAAA,CAAAY,OAAA;QACHZ,cAAA,CAAAY,OAAA;QAAA;MAAA;MAIFV,gBAAA,CAAiBO,KAAA;IAAA;IAChBE,EAAA,IAACT,gBAAA,EAAkBO,KAAA;IAAMpB,CAAA,MAAAa,gBAAA;IAAAb,CAAA,OAAAoB,KAAA;IAAApB,CAAA,OAAAqB,EAAA;IAAArB,CAAA,OAAAsB,EAAA;EAAA;IAAAD,EAAA,GAAArB,CAAA;IAAAsB,EAAA,GAAAtB,CAAA;EAAA;EAP5BR,SAAA,CAAU6B,EAOV,EAAGC,EAAyB;EAAA;AAAA,CAG9B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListSelection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAgC,MAAM,OAAO,CAAA;AAUpD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA4DtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/views/List/ListSelection/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAUvC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,CAAC,EAAE,sBAAsB,CAAA;IACzC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAuDtD,CAAA"}