@payloadcms/ui 3.0.0-beta.46 → 3.0.0-beta.48

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 (116) hide show
  1. package/dist/elements/DocumentControls/index.d.ts.map +1 -1
  2. package/dist/elements/DocumentControls/index.js +28 -21
  3. package/dist/elements/DocumentControls/index.js.map +1 -1
  4. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
  5. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  6. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  7. package/dist/elements/DuplicateDocument/index.js +2 -2
  8. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  9. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  10. package/dist/elements/ListDrawer/DrawerContent.js +1 -1
  11. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  12. package/dist/elements/ReactSelect/index.d.ts +1 -1
  13. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  14. package/dist/elements/ReactSelect/index.js.map +1 -1
  15. package/dist/elements/ReactSelect/types.d.ts +4 -4
  16. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  17. package/dist/elements/ReactSelect/types.js.map +1 -1
  18. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  19. package/dist/elements/SortComplex/index.js.map +1 -1
  20. package/dist/elements/TableColumns/index.d.ts +0 -2
  21. package/dist/elements/TableColumns/index.d.ts.map +1 -1
  22. package/dist/elements/TableColumns/index.js +83 -85
  23. package/dist/elements/TableColumns/index.js.map +1 -1
  24. package/dist/elements/Thumbnail/index.d.ts.map +1 -1
  25. package/dist/elements/Thumbnail/index.js +2 -2
  26. package/dist/elements/Thumbnail/index.js.map +1 -1
  27. package/dist/elements/Upload/index.d.ts.map +1 -1
  28. package/dist/elements/Upload/index.js +4 -9
  29. package/dist/elements/Upload/index.js.map +1 -1
  30. package/dist/elements/Upload/index.scss +0 -11
  31. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +3 -3
  32. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  33. package/dist/elements/WhereBuilder/Condition/index.d.ts +2 -1
  34. package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
  35. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  36. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  37. package/dist/elements/WhereBuilder/index.js.map +1 -1
  38. package/dist/fields/Array/index.js +2 -2
  39. package/dist/fields/Array/index.js.map +1 -1
  40. package/dist/fields/Blocks/index.js +1 -1
  41. package/dist/fields/Blocks/index.js.map +1 -1
  42. package/dist/fields/Checkbox/index.js +1 -1
  43. package/dist/fields/Checkbox/index.js.map +1 -1
  44. package/dist/fields/Code/index.js +1 -1
  45. package/dist/fields/Code/index.js.map +1 -1
  46. package/dist/fields/Collapsible/index.js +1 -1
  47. package/dist/fields/Collapsible/index.js.map +1 -1
  48. package/dist/fields/DateTime/index.d.ts +1 -1
  49. package/dist/fields/DateTime/index.d.ts.map +1 -1
  50. package/dist/fields/DateTime/index.js +1 -1
  51. package/dist/fields/DateTime/index.js.map +1 -1
  52. package/dist/fields/Email/index.d.ts.map +1 -1
  53. package/dist/fields/Email/index.js +1 -1
  54. package/dist/fields/Email/index.js.map +1 -1
  55. package/dist/fields/JSON/index.d.ts +1 -1
  56. package/dist/fields/JSON/index.d.ts.map +1 -1
  57. package/dist/fields/JSON/index.js +1 -1
  58. package/dist/fields/JSON/index.js.map +1 -1
  59. package/dist/fields/Number/index.js +1 -1
  60. package/dist/fields/Number/index.js.map +1 -1
  61. package/dist/fields/Point/index.js +1 -1
  62. package/dist/fields/Point/index.js.map +1 -1
  63. package/dist/fields/RadioGroup/index.js +1 -1
  64. package/dist/fields/RadioGroup/index.js.map +1 -1
  65. package/dist/fields/Relationship/index.d.ts.map +1 -1
  66. package/dist/fields/Relationship/index.js +18 -10
  67. package/dist/fields/Relationship/index.js.map +1 -1
  68. package/dist/fields/Relationship/types.d.ts +1 -2
  69. package/dist/fields/Relationship/types.d.ts.map +1 -1
  70. package/dist/fields/Relationship/types.js.map +1 -1
  71. package/dist/fields/Select/Input.d.ts +3 -1
  72. package/dist/fields/Select/Input.d.ts.map +1 -1
  73. package/dist/fields/Select/Input.js.map +1 -1
  74. package/dist/fields/Select/index.d.ts +1 -1
  75. package/dist/fields/Select/index.d.ts.map +1 -1
  76. package/dist/fields/Select/index.js +4 -6
  77. package/dist/fields/Select/index.js.map +1 -1
  78. package/dist/fields/Tabs/index.js +1 -1
  79. package/dist/fields/Tabs/index.js.map +1 -1
  80. package/dist/fields/Text/Input.d.ts.map +1 -1
  81. package/dist/fields/Text/Input.js.map +1 -1
  82. package/dist/fields/Text/index.js +1 -1
  83. package/dist/fields/Text/index.js.map +1 -1
  84. package/dist/fields/Text/types.d.ts +9 -4
  85. package/dist/fields/Text/types.d.ts.map +1 -1
  86. package/dist/fields/Text/types.js.map +1 -1
  87. package/dist/fields/Textarea/index.js +1 -1
  88. package/dist/fields/Textarea/index.js.map +1 -1
  89. package/dist/fields/Upload/index.js +1 -1
  90. package/dist/fields/Upload/index.js.map +1 -1
  91. package/dist/forms/FieldError/index.js +1 -1
  92. package/dist/forms/FieldError/index.js.map +1 -1
  93. package/dist/forms/FieldPropsProvider/index.js +4 -4
  94. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  95. package/dist/forms/Form/index.js +1 -1
  96. package/dist/forms/Form/index.js.map +1 -1
  97. package/dist/forms/Form/types.d.ts +2 -3
  98. package/dist/forms/Form/types.d.ts.map +1 -1
  99. package/dist/forms/Form/types.js.map +1 -1
  100. package/dist/forms/withCondition/index.js +1 -1
  101. package/dist/forms/withCondition/index.js.map +1 -1
  102. package/dist/graphics/Account/index.d.ts +0 -1
  103. package/dist/graphics/Account/index.d.ts.map +1 -1
  104. package/dist/graphics/Account/index.js +5 -1
  105. package/dist/graphics/Account/index.js.map +1 -1
  106. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  107. package/dist/providers/ComponentMap/buildComponentMap/fields.js +2 -1
  108. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  109. package/dist/providers/FormQueryParams/index.d.ts.map +1 -1
  110. package/dist/providers/FormQueryParams/index.js +8 -6
  111. package/dist/providers/FormQueryParams/index.js.map +1 -1
  112. package/package.json +4 -4
  113. package/dist/elements/TableColumns/columnReducer.d.ts +0 -24
  114. package/dist/elements/TableColumns/columnReducer.d.ts.map +0 -1
  115. package/dist/elements/TableColumns/columnReducer.js +0 -59
  116. package/dist/elements/TableColumns/columnReducer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAG9D,OAAO,KAAmB,MAAM,OAAO,CAAA;AAgBvC,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAC3D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACxC,CAwMA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAC1E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAG9D,OAAO,KAA8B,MAAM,OAAO,CAAA;AAgBlD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,WAAW,EAAE,oBAAoB,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAC3D,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;CACxC,CAqMA,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { getTranslation } from '@payloadcms/translations';
4
- import React, { Fragment } from 'react';
4
+ import React, { Fragment, useEffect } from 'react';
5
5
  import { useComponentMap } from '../../providers/ComponentMap/index.js';
6
6
  import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useTranslation } from '../../providers/Translation/index.js';
@@ -29,6 +29,29 @@ export const DocumentControls = (props)=>{
29
29
  globalSlug: globalConfig?.slug
30
30
  });
31
31
  const { admin: { dateFormat }, routes: { admin: adminRoute } } = config;
32
+ // Settings these in state to avoid hydration issues if there is a mismatch between the server and client
33
+ const [updatedAt, setUpdatedAt] = React.useState('');
34
+ const [createdAt, setCreatedAt] = React.useState('');
35
+ useEffect(()=>{
36
+ if (data?.updatedAt) {
37
+ setUpdatedAt(formatDate({
38
+ date: data.updatedAt,
39
+ i18n,
40
+ pattern: dateFormat
41
+ }));
42
+ }
43
+ if (data?.createdAt) {
44
+ setCreatedAt(formatDate({
45
+ date: data.createdAt,
46
+ i18n,
47
+ pattern: dateFormat
48
+ }));
49
+ }
50
+ }, [
51
+ data,
52
+ i18n,
53
+ dateFormat
54
+ ]);
32
55
  const hasCreatePermission = permissions && 'create' in permissions && permissions.create?.permission;
33
56
  const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete?.permission;
34
57
  const showDotMenu = Boolean(collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission));
@@ -80,11 +103,7 @@ export const DocumentControls = (props)=>{
80
103
  `${baseClass}__list-item`,
81
104
  `${baseClass}__value-wrap`
82
105
  ].filter(Boolean).join(' '),
83
- title: data?.updatedAt ? formatDate({
84
- date: data?.updatedAt,
85
- i18n,
86
- pattern: dateFormat
87
- }) : '',
106
+ title: data?.updatedAt ? updatedAt : '',
88
107
  children: [
89
108
  /*#__PURE__*/ _jsxs("p", {
90
109
  className: `${baseClass}__label`,
@@ -95,11 +114,7 @@ export const DocumentControls = (props)=>{
95
114
  }),
96
115
  data?.updatedAt && /*#__PURE__*/ _jsx("p", {
97
116
  className: `${baseClass}__value`,
98
- children: formatDate({
99
- date: data?.updatedAt,
100
- i18n,
101
- pattern: dateFormat
102
- })
117
+ children: updatedAt
103
118
  })
104
119
  ]
105
120
  }),
@@ -108,11 +123,7 @@ export const DocumentControls = (props)=>{
108
123
  `${baseClass}__list-item`,
109
124
  `${baseClass}__value-wrap`
110
125
  ].filter(Boolean).join(' '),
111
- title: data?.createdAt ? formatDate({
112
- date: data?.createdAt,
113
- i18n,
114
- pattern: dateFormat
115
- }) : '',
126
+ title: data?.createdAt ? createdAt : '',
116
127
  children: [
117
128
  /*#__PURE__*/ _jsxs("p", {
118
129
  className: `${baseClass}__label`,
@@ -123,11 +134,7 @@ export const DocumentControls = (props)=>{
123
134
  }),
124
135
  data?.createdAt && /*#__PURE__*/ _jsx("p", {
125
136
  className: `${baseClass}__value`,
126
- children: formatDate({
127
- date: data?.createdAt,
128
- i18n,
129
- pattern: dateFormat
130
- })
137
+ children: createdAt
131
138
  })
132
139
  ]
133
140
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type { CollectionPermission, GlobalPermission } from 'payload/auth'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment } from 'react'\n\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n apiURL: string\n data?: any\n disableActions?: boolean\n hasPublishPermission?: boolean\n hasSavePermission?: boolean\n id?: number | string\n isAccountView?: boolean\n isEditing?: boolean\n permissions: CollectionPermission | GlobalPermission | null\n slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const config = useConfig()\n const { getComponentMap } = useComponentMap()\n\n const collectionConfig = config.collections.find((coll) => coll.slug === slug)\n const globalConfig = config.globals.find((global) => global.slug === slug)\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n const hasCreatePermission =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave &&\n !unsavedDraftWithValidations) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={\n data?.updatedAt\n ? formatDate({ date: data?.updatedAt, i18n, pattern: dateFormat })\n : ''\n }\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && (\n <p className={`${baseClass}__value`}>\n {formatDate({ date: data?.updatedAt, i18n, pattern: dateFormat })}\n </p>\n )}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={\n data?.createdAt\n ? formatDate({ date: data?.createdAt, i18n, pattern: dateFormat })\n : ''\n }\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && (\n <p className={`${baseClass}__value`}>\n {formatDate({ date: data?.createdAt, i18n, pattern: dateFormat })}\n </p>\n )}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {componentMap?.isPreviewEnabled && (\n <PreviewButton CustomComponent={componentMap.PreviewButton} />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n unsavedDraftWithValidations ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraftButton CustomComponent={componentMap.SaveDraftButton} />\n )}\n <PublishButton CustomComponent={componentMap.PublishButton} />\n </React.Fragment>\n ) : (\n <SaveButton CustomComponent={componentMap.SaveButton} />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n <PopupList.Button\n href={`${adminRoute}/collections/${collectionConfig?.slug}/create`}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n {!collectionConfig.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"names":["getTranslation","React","Fragment","useComponentMap","useConfig","useTranslation","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","Popup","PopupList","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","getComponentMap","collectionConfig","collections","find","coll","globalConfig","globals","global","componentMap","collectionSlug","globalSlug","admin","dateFormat","routes","adminRoute","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","className","div","ul","li","p","t","label","labels","singular","filter","join","autosave","collection","publishedDocUpdatedAt","createdAt","timestamps","title","updatedAt","date","pattern","isPreviewEnabled","CustomComponent","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type { CollectionPermission, GlobalPermission } from 'payload/auth'\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment, useEffect } from 'react'\n\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n apiURL: string\n data?: any\n disableActions?: boolean\n hasPublishPermission?: boolean\n hasSavePermission?: boolean\n id?: number | string\n isAccountView?: boolean\n isEditing?: boolean\n permissions: CollectionPermission | GlobalPermission | null\n slug: SanitizedCollectionConfig['slug']\n}> = (props) => {\n const {\n id,\n slug,\n data,\n disableActions,\n hasSavePermission,\n isAccountView,\n isEditing,\n permissions,\n } = props\n\n const { i18n } = useTranslation()\n\n const config = useConfig()\n const { getComponentMap } = useComponentMap()\n\n const collectionConfig = config.collections.find((coll) => coll.slug === slug)\n const globalConfig = config.globals.find((global) => global.slug === slug)\n\n const componentMap = getComponentMap({\n collectionSlug: collectionConfig?.slug,\n globalSlug: globalConfig?.slug,\n })\n\n const {\n admin: { dateFormat },\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission =\n permissions && 'create' in permissions && permissions.create?.permission\n\n const hasDeletePermission =\n permissions && 'delete' in permissions && permissions.delete?.permission\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {((collectionConfig?.versions?.drafts &&\n collectionConfig?.versions?.drafts?.autosave &&\n !unsavedDraftWithValidations) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)) &&\n hasSavePermission && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}:&nbsp;</p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}:&nbsp;</p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {componentMap?.isPreviewEnabled && (\n <PreviewButton CustomComponent={componentMap.PreviewButton} />\n )}\n {hasSavePermission && (\n <React.Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <React.Fragment>\n {((collectionConfig?.versions?.drafts &&\n !collectionConfig?.versions?.drafts?.autosave) ||\n unsavedDraftWithValidations ||\n (globalConfig?.versions?.drafts &&\n !globalConfig?.versions?.drafts?.autosave)) && (\n <SaveDraftButton CustomComponent={componentMap.SaveDraftButton} />\n )}\n <PublishButton CustomComponent={componentMap.PublishButton} />\n </React.Fragment>\n ) : (\n <SaveButton CustomComponent={componentMap.SaveButton} />\n )}\n </React.Fragment>\n )}\n </div>\n {showDotMenu && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {hasCreatePermission && (\n <React.Fragment>\n <PopupList.Button\n href={`${adminRoute}/collections/${collectionConfig?.slug}/create`}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n {!collectionConfig.disableDuplicate && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"names":["getTranslation","React","Fragment","useEffect","useComponentMap","useConfig","useTranslation","formatDate","Autosave","DeleteDocument","DuplicateDocument","Gutter","Popup","PopupList","PreviewButton","PublishButton","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","id","slug","data","disableActions","hasSavePermission","isAccountView","isEditing","permissions","i18n","config","getComponentMap","collectionConfig","collections","find","coll","globalConfig","globals","global","componentMap","collectionSlug","globalSlug","admin","dateFormat","routes","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","date","pattern","hasCreatePermission","create","permission","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","className","div","ul","li","p","t","label","labels","singular","filter","join","autosave","collection","publishedDocUpdatedAt","timestamps","title","isPreviewEnabled","CustomComponent","button","horizontalAlign","size","verticalAlign","ButtonGroup","Button","href","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -30,7 +30,7 @@ export const DocumentDrawerContent = ({ id: existingDocID, Header, collectionSlu
30
30
  const { componentMap } = useComponentMap();
31
31
  const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug];
32
32
  const isEditing = Boolean(docID);
33
- const apiURL = docID ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}?locale=${locale.code}` : null;
33
+ const apiURL = docID ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}${locale?.code ? `?locale=${locale.code}` : ''}` : null;
34
34
  const action = `${serverURL}${apiRoute}/${collectionSlug}${isEditing ? `/${docID}` : ''}?${formattedQueryParams}`;
35
35
  useEffect(()=>{
36
36
  setIsOpen(Boolean(modalState[drawerSlug]?.isOpen));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport queryString from 'qs'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js'\nimport { X } from '../../icons/X/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n Header,\n collectionSlug,\n drawerSlug,\n onSave: onSaveFromProps,\n}) => {\n const config = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const { t } = useTranslation()\n const [docID, setDocID] = useState(existingDocID)\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n const { formQueryParams } = useFormQueryParams()\n const formattedQueryParams = queryString.stringify(formQueryParams)\n\n const { componentMap } = useComponentMap()\n\n const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug]\n const isEditing = Boolean(docID)\n const apiURL = docID\n ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}?locale=${locale.code}`\n : null\n const action = `${serverURL}${apiRoute}/${collectionSlug}${\n isEditing ? `/${docID}` : ''\n }?${formattedQueryParams}`\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const onLoadError = React.useCallback(\n (data) => {\n if (isOpen) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n },\n [closeModal, drawerSlug, isOpen, t],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setDocID(args.doc.id)\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return (\n <DocumentInfoProvider\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n <DocumentTitle />\n </Gutter>\n }\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n id={docID}\n isEditing={isEditing}\n onLoadError={onLoadError}\n onSave={onSave}\n >\n {Edit}\n </DocumentInfoProvider>\n )\n}\n\nconst DocumentTitle: React.FC = () => {\n const { id, title } = useDocumentInfo()\n return id && id !== title ? <IDLabel id={id.toString()} /> : null\n}\n"],"names":["useModal","queryString","React","useCallback","useEffect","useState","toast","useRelatedCollections","X","useComponentMap","useConfig","DocumentInfoProvider","useDocumentInfo","useFormQueryParams","useLocale","useTranslation","Gutter","IDLabel","RenderTitle","baseClass","DocumentDrawerContent","id","existingDocID","Header","collectionSlug","drawerSlug","onSave","onSaveFromProps","config","routes","api","apiRoute","serverURL","closeModal","modalState","toggleModal","locale","t","docID","setDocID","isOpen","setIsOpen","collectionConfig","formQueryParams","formattedQueryParams","stringify","componentMap","Edit","isEditing","Boolean","apiURL","code","action","onLoadError","data","error","errors","message","args","doc","BeforeDocument","className","div","h2","element","button","aria-label","onClick","type","DocumentTitle","slug","disableActions","disableLeaveWithoutSaving","title","toString"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/DocumentDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport queryString from 'qs'\nimport React, { useCallback, useEffect, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type { DocumentDrawerProps } from './types.js'\n\nimport { useRelatedCollections } from '../../fields/Relationship/AddNew/useRelatedCollections.js'\nimport { X } from '../../icons/X/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { DocumentInfoProvider, useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useFormQueryParams } from '../../providers/FormQueryParams/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { IDLabel } from '../IDLabel/index.js'\nimport { RenderTitle } from '../RenderTitle/index.js'\nimport { baseClass } from './index.js'\n\nexport const DocumentDrawerContent: React.FC<DocumentDrawerProps> = ({\n id: existingDocID,\n Header,\n collectionSlug,\n drawerSlug,\n onSave: onSaveFromProps,\n}) => {\n const config = useConfig()\n\n const {\n routes: { api: apiRoute },\n serverURL,\n } = config\n\n const { closeModal, modalState, toggleModal } = useModal()\n const locale = useLocale()\n const { t } = useTranslation()\n const [docID, setDocID] = useState(existingDocID)\n const [isOpen, setIsOpen] = useState(false)\n const [collectionConfig] = useRelatedCollections(collectionSlug)\n const { formQueryParams } = useFormQueryParams()\n const formattedQueryParams = queryString.stringify(formQueryParams)\n\n const { componentMap } = useComponentMap()\n\n const { Edit } = componentMap[`${collectionSlug ? 'collections' : 'globals'}`][collectionSlug]\n const isEditing = Boolean(docID)\n const apiURL = docID\n ? `${serverURL}${apiRoute}/${collectionSlug}/${docID}${locale?.code ? `?locale=${locale.code}` : ''}`\n : null\n const action = `${serverURL}${apiRoute}/${collectionSlug}${\n isEditing ? `/${docID}` : ''\n }?${formattedQueryParams}`\n\n useEffect(() => {\n setIsOpen(Boolean(modalState[drawerSlug]?.isOpen))\n }, [modalState, drawerSlug])\n\n const onLoadError = React.useCallback(\n (data) => {\n if (isOpen) {\n closeModal(drawerSlug)\n toast.error(data.errors?.[0].message || t('error:unspecific'))\n }\n },\n [closeModal, drawerSlug, isOpen, t],\n )\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setDocID(args.doc.id)\n if (typeof onSaveFromProps === 'function') {\n void onSaveFromProps({\n ...args,\n collectionConfig,\n })\n }\n },\n [onSaveFromProps, collectionConfig],\n )\n\n return (\n <DocumentInfoProvider\n BeforeDocument={\n <Gutter className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {Header || <RenderTitle element=\"span\" />}\n </h2>\n {/* TODO: the `button` HTML element breaks CSS transitions on the drawer for some reason...\n i.e. changing to a `div` element will fix the animation issue but will break accessibility\n */}\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => toggleModal(drawerSlug)}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n <DocumentTitle />\n </Gutter>\n }\n action={action}\n apiURL={apiURL}\n collectionSlug={collectionConfig.slug}\n disableActions\n disableLeaveWithoutSaving\n id={docID}\n isEditing={isEditing}\n onLoadError={onLoadError}\n onSave={onSave}\n >\n {Edit}\n </DocumentInfoProvider>\n )\n}\n\nconst DocumentTitle: React.FC = () => {\n const { id, title } = useDocumentInfo()\n return id && id !== title ? <IDLabel id={id.toString()} /> : null\n}\n"],"names":["useModal","queryString","React","useCallback","useEffect","useState","toast","useRelatedCollections","X","useComponentMap","useConfig","DocumentInfoProvider","useDocumentInfo","useFormQueryParams","useLocale","useTranslation","Gutter","IDLabel","RenderTitle","baseClass","DocumentDrawerContent","id","existingDocID","Header","collectionSlug","drawerSlug","onSave","onSaveFromProps","config","routes","api","apiRoute","serverURL","closeModal","modalState","toggleModal","locale","t","docID","setDocID","isOpen","setIsOpen","collectionConfig","formQueryParams","formattedQueryParams","stringify","componentMap","Edit","isEditing","Boolean","apiURL","code","action","onLoadError","data","error","errors","message","args","doc","BeforeDocument","className","div","h2","element","button","aria-label","onClick","type","DocumentTitle","slug","disableActions","disableLeaveWithoutSaving","title","toString"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAEA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,OAAOC,iBAAiB,KAAI;AAC5B,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAC/D,SAASC,KAAK,QAAQ,SAAQ;AAI9B,SAASC,qBAAqB,QAAQ,4DAA2D;AACjG,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,oBAAoB,EAAEC,eAAe,QAAQ,wCAAuC;AAC7F,SAASC,kBAAkB,QAAQ,2CAA0C;AAC7E,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,OAAO,QAAQ,sBAAqB;AAC7C,SAASC,WAAW,QAAQ,0BAAyB;AACrD,SAASC,SAAS,QAAQ,aAAY;AAEtC,OAAO,MAAMC,wBAAuD,CAAC,EACnEC,IAAIC,aAAa,EACjBC,MAAM,EACNC,cAAc,EACdC,UAAU,EACVC,QAAQC,eAAe,EACxB;IACC,MAAMC,SAASlB;IAEf,MAAM,EACJmB,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAGJ;IAEJ,MAAM,EAAEK,UAAU,EAAEC,UAAU,EAAEC,WAAW,EAAE,GAAGnC;IAChD,MAAMoC,SAAStB;IACf,MAAM,EAAEuB,CAAC,EAAE,GAAGtB;IACd,MAAM,CAACuB,OAAOC,SAAS,GAAGlC,SAASiB;IACnC,MAAM,CAACkB,QAAQC,UAAU,GAAGpC,SAAS;IACrC,MAAM,CAACqC,iBAAiB,GAAGnC,sBAAsBiB;IACjD,MAAM,EAAEmB,eAAe,EAAE,GAAG9B;IAC5B,MAAM+B,uBAAuB3C,YAAY4C,SAAS,CAACF;IAEnD,MAAM,EAAEG,YAAY,EAAE,GAAGrC;IAEzB,MAAM,EAAEsC,IAAI,EAAE,GAAGD,YAAY,CAAC,CAAC,EAAEtB,iBAAiB,gBAAgB,UAAU,CAAC,CAAC,CAACA,eAAe;IAC9F,MAAMwB,YAAYC,QAAQX;IAC1B,MAAMY,SAASZ,QACX,CAAC,EAAEN,UAAU,EAAED,SAAS,CAAC,EAAEP,eAAe,CAAC,EAAEc,MAAM,EAAEF,QAAQe,OAAO,CAAC,QAAQ,EAAEf,OAAOe,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,GACnG;IACJ,MAAMC,SAAS,CAAC,EAAEpB,UAAU,EAAED,SAAS,CAAC,EAAEP,eAAe,EACvDwB,YAAY,CAAC,CAAC,EAAEV,MAAM,CAAC,GAAG,GAC3B,CAAC,EAAEM,qBAAqB,CAAC;IAE1BxC,UAAU;QACRqC,UAAUQ,QAAQf,UAAU,CAACT,WAAW,EAAEe;IAC5C,GAAG;QAACN;QAAYT;KAAW;IAE3B,MAAM4B,cAAcnD,MAAMC,WAAW,CACnC,CAACmD;QACC,IAAId,QAAQ;YACVP,WAAWR;YACXnB,MAAMiD,KAAK,CAACD,KAAKE,MAAM,EAAE,CAAC,EAAE,CAACC,WAAWpB,EAAE;QAC5C;IACF,GACA;QAACJ;QAAYR;QAAYe;QAAQH;KAAE;IAGrC,MAAMX,SAASvB,YACb,CAACuD;QACCnB,SAASmB,KAAKC,GAAG,CAACtC,EAAE;QACpB,IAAI,OAAOM,oBAAoB,YAAY;YACzC,KAAKA,gBAAgB;gBACnB,GAAG+B,IAAI;gBACPhB;YACF;QACF;IACF,GACA;QAACf;QAAiBe;KAAiB;IAGrC,qBACE,KAAC/B;QACCiD,8BACE,MAAC5C;YAAO6C,WAAW,CAAC,EAAE1C,UAAU,QAAQ,CAAC;;8BACvC,MAAC2C;oBAAID,WAAW,CAAC,EAAE1C,UAAU,gBAAgB,CAAC;;sCAC5C,KAAC4C;4BAAGF,WAAW,CAAC,EAAE1C,UAAU,aAAa,CAAC;sCACvCI,wBAAU,KAACL;gCAAY8C,SAAQ;;;sCAKlC,KAACC;4BACCC,cAAY7B,EAAE;4BACdwB,WAAW,CAAC,EAAE1C,UAAU,cAAc,CAAC;4BACvCgD,SAAS,IAAMhC,YAAYV;4BAC3B2C,MAAK;sCAEL,cAAA,KAAC5D;;;;8BAGL,KAAC6D;;;QAGLjB,QAAQA;QACRF,QAAQA;QACR1B,gBAAgBkB,iBAAiB4B,IAAI;QACrCC,cAAc;QACdC,yBAAyB;QACzBnD,IAAIiB;QACJU,WAAWA;QACXK,aAAaA;QACb3B,QAAQA;kBAEPqB;;AAGP,EAAC;AAED,MAAMsB,gBAA0B;IAC9B,MAAM,EAAEhD,EAAE,EAAEoD,KAAK,EAAE,GAAG7D;IACtB,OAAOS,MAAMA,OAAOoD,sBAAQ,KAACxD;QAAQI,IAAIA,GAAGqD,QAAQ;SAAS;AAC/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAK9D,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsG7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DuplicateDocument/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAK9D,OAAO,KAAgC,MAAM,OAAO,CAAA;AAWpD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,CAAA;IAC9D,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2G7C,CAAA"}
@@ -31,7 +31,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
31
31
  toggleModal(modalSlug);
32
32
  return;
33
33
  }
34
- await requests.post(`${serverURL}${api}/${slug}/${id}/duplicate?locale=${locale.code}`, {
34
+ await requests.post(`${serverURL}${api}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`, {
35
35
  body: JSON.stringify({}),
36
36
  headers: {
37
37
  'Accept-Language': i18n.language,
@@ -45,7 +45,7 @@ export const DuplicateDocument = ({ id, slug, singularLabel })=>{
45
45
  label: getTranslation(singularLabel, i18n)
46
46
  }));
47
47
  setModified(false);
48
- router.push(`${admin}/collections/${slug}/${doc.id}?locale=${locale.code}`);
48
+ router.push(`${admin}/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`);
49
49
  } else {
50
50
  toast.error(errors?.[0].message || message || t('error:unspecific', {
51
51
  label: getTranslation(singularLabel, i18n)
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const {\n routes: { admin },\n } = useConfig()\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(`${serverURL}${api}/${slug}/${id}/duplicate?locale=${locale.code}`, {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n })\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(`${admin}/collections/${slug}/${doc.id}?locale=${locale.code}`)\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n api,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n admin,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </MinimalTemplate>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","MinimalTemplate","requests","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","serverURL","admin","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","error","confirm","Fragment","onClick","className","h1","p","buttonStyle","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAIA,SAASA,KAAK,EAAEC,QAAQ,QAAQ,qBAAoB;AACpD,SAASC,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AACpD,SAASC,KAAK,QAAQ,SAAQ;AAE9B,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,yBAAwB;AACjD,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,SAAS,QAAQ,oBAAmB;AAG7C,MAAMC,YAAY;AAQlB,OAAO,MAAMC,oBAAqC,CAAC,EAAEC,EAAE,EAAEC,IAAI,EAAEC,aAAa,EAAE;IAC5E,MAAMC,SAASnB;IACf,MAAMoB,WAAWd;IACjB,MAAM,EAAEe,WAAW,EAAE,GAAGvB;IACxB,MAAMwB,SAASd;IACf,MAAM,EAAEe,WAAW,EAAE,GAAGlB;IACxB,MAAM,EACJmB,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGnB;IACJ,MAAM,EACJiB,QAAQ,EAAEG,KAAK,EAAE,EAClB,GAAGpB;IACJ,MAAM,CAACqB,YAAYC,cAAc,GAAG1B,SAAkB;IACtD,MAAM,EAAE2B,IAAI,EAAEC,CAAC,EAAE,GAAGtB;IAEpB,MAAMuB,YAAY,CAAC,UAAU,EAAEhB,GAAG,CAAC;IAEnC,MAAMiB,cAAc/B,YAClB,OAAOgC,WAAW,KAAK;QACrBL,cAAc;QAEd,IAAIT,YAAY,CAACc,UAAU;YACzBb,YAAYW;YACZ;QACF;QACA,MAAMrB,SACHwB,IAAI,CAAC,CAAC,EAAET,UAAU,EAAED,IAAI,CAAC,EAAER,KAAK,CAAC,EAAED,GAAG,kBAAkB,EAAEM,OAAOc,IAAI,CAAC,CAAC,EAAE;YACxEC,MAAMC,KAAKC,SAAS,CAAC,CAAC;YACtBC,SAAS;gBACP,mBAAmBV,KAAKW,QAAQ;gBAChC,gBAAgB;gBAChBC,aAAa;YACf;QACF,GACCC,IAAI,CAAC,OAAOC;YACX,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAG,MAAMH,IAAII,IAAI;YAC/C,IAAIJ,IAAIK,MAAM,GAAG,KAAK;gBACpB7C,MAAM8C,OAAO,CACXH,WACEhB,EAAE,kCAAkC;oBAAEoB,OAAOpD,eAAemB,eAAeY;gBAAM;gBAErFP,YAAY;gBACZJ,OAAOiC,IAAI,CAAC,CAAC,EAAEzB,MAAM,aAAa,EAAEV,KAAK,CAAC,EAAE4B,IAAI7B,EAAE,CAAC,QAAQ,EAAEM,OAAOc,IAAI,CAAC,CAAC;YAC5E,OAAO;gBACLhC,MAAMiD,KAAK,CACTP,QAAQ,CAAC,EAAE,CAACC,WACVA,WACAhB,EAAE,oBAAoB;oBAAEoB,OAAOpD,eAAemB,eAAeY;gBAAM;YAEzE;QACF;IACJ,GACA;QACER;QACAF;QACAM;QACAD;QACAR;QACAD;QACAc;QACAT;QACAW;QACAD;QACAb;QACAK;QACAJ;QACAQ;KACD;IAGH,MAAM2B,UAAUpD,YAAY;QAC1B2B,cAAc;QACd,MAAMI,YAAY;IACpB,GAAG;QAACA;KAAY;IAEhB,qBACE,MAAChC,MAAMsD,QAAQ;;0BACb,KAAC1C,UAAUD,MAAM;gBAACI,IAAG;gBAAmBwC,SAAS,IAAMvB,YAAY;0BAChEF,EAAE;;YAEJX,YAAYQ,4BACX,KAAC/B;gBAAM4D,WAAW,CAAC,EAAE3C,UAAU,OAAO,CAAC;gBAAEG,MAAMe;0BAC7C,cAAA,MAACtB;oBAAgB+C,WAAW,CAAC,EAAE3C,UAAU,gBAAgB,CAAC;;sCACxD,KAAC4C;sCAAI3B,EAAE;;sCACP,KAAC4B;sCAAG5B,EAAE;;sCACN,KAACnB;4BACCgD,aAAY;4BACZ5C,IAAG;4BACHwC,SAAS,IAAMnC,YAAYW;4BAC3B6B,MAAK;sCAEJ9B,EAAE;;sCAEL,KAACnB;4BAAOI,IAAG;4BAAoBwC,SAASF;sCACrCvB,EAAE;;;;;;;AAOjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/DuplicateDocument/index.tsx"],"sourcesContent":["'use client'\n\nimport type { SanitizedCollectionConfig } from 'payload/types'\n\nimport { Modal, useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { PopupList } from '../Popup/index.js'\nimport './index.scss'\n\nconst baseClass = 'duplicate'\n\nexport type Props = {\n id: string\n singularLabel: SanitizedCollectionConfig['labels']['singular']\n slug: string\n}\n\nexport const DuplicateDocument: React.FC<Props> = ({ id, slug, singularLabel }) => {\n const router = useRouter()\n const modified = useFormModified()\n const { toggleModal } = useModal()\n const locale = useLocale()\n const { setModified } = useForm()\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const {\n routes: { admin },\n } = useConfig()\n const [hasClicked, setHasClicked] = useState<boolean>(false)\n const { i18n, t } = useTranslation()\n\n const modalSlug = `duplicate-${id}`\n\n const handleClick = useCallback(\n async (override = false) => {\n setHasClicked(true)\n\n if (modified && !override) {\n toggleModal(modalSlug)\n return\n }\n await requests\n .post(\n `${serverURL}${api}/${slug}/${id}/duplicate${locale?.code ? `?locale=${locale.code}` : ''}`,\n {\n body: JSON.stringify({}),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n credentials: 'include',\n },\n },\n )\n .then(async (res) => {\n const { doc, errors, message } = await res.json()\n if (res.status < 400) {\n toast.success(\n message ||\n t('general:successfullyDuplicated', { label: getTranslation(singularLabel, i18n) }),\n )\n setModified(false)\n router.push(\n `${admin}/collections/${slug}/${doc.id}${locale?.code ? `?locale=${locale.code}` : ''}`,\n )\n } else {\n toast.error(\n errors?.[0].message ||\n message ||\n t('error:unspecific', { label: getTranslation(singularLabel, i18n) }),\n )\n }\n })\n },\n [\n locale,\n modified,\n serverURL,\n api,\n slug,\n id,\n i18n,\n toggleModal,\n modalSlug,\n t,\n singularLabel,\n setModified,\n router,\n admin,\n ],\n )\n\n const confirm = useCallback(async () => {\n setHasClicked(false)\n await handleClick(true)\n }, [handleClick])\n\n return (\n <React.Fragment>\n <PopupList.Button id=\"action-duplicate\" onClick={() => handleClick(false)}>\n {t('general:duplicate')}\n </PopupList.Button>\n {modified && hasClicked && (\n <Modal className={`${baseClass}__modal`} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__modal-template`}>\n <h1>{t('general:confirmDuplication')}</h1>\n <p>{t('general:unsavedChangesDuplicate')}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={() => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-duplicate\" onClick={confirm}>\n {t('general:duplicateWithoutSaving')}\n </Button>\n </MinimalTemplate>\n </Modal>\n )}\n </React.Fragment>\n )\n}\n"],"names":["Modal","useModal","getTranslation","useRouter","React","useCallback","useState","toast","useForm","useFormModified","useConfig","useLocale","useTranslation","MinimalTemplate","requests","Button","PopupList","baseClass","DuplicateDocument","id","slug","singularLabel","router","modified","toggleModal","locale","setModified","routes","api","serverURL","admin","hasClicked","setHasClicked","i18n","t","modalSlug","handleClick","override","post","code","body","JSON","stringify","headers","language","credentials","then","res","doc","errors","message","json","status","success","label","push","error","confirm","Fragment","onClick","className","h1","p","buttonStyle","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAoCjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyQvD,CAAA"}
1
+ {"version":3,"file":"DrawerContent.d.ts","sourceRoot":"","sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAuD,MAAM,OAAO,CAAA;AAE3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAoCjD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAyQvD,CAAA"}
@@ -88,7 +88,7 @@ export const ListDrawerContent = ({ collectionSlugs, customHeader, drawerSlug, f
88
88
  collectionSlug: selectedCollectionConfig.slug
89
89
  });
90
90
  useEffect(()=>{
91
- if (selectedOption) {
91
+ if (selectedOption && !Array.isArray(selectedOption)) {
92
92
  setSelectedCollectionConfig(enabledCollectionConfigs.find(({ slug })=>selectedOption.value === slug));
93
93
  }
94
94
  }, [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\nimport type { Where } from 'payload/types'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport usePayloadAPI from '../../hooks/usePayloadAPI.js'\nimport { X } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListInfoProvider } from '../../providers/ListInfo/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { ReactSelect } from '../ReactSelect/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { ViewDescription } from '../ViewDescription/index.js'\nimport { baseClass } from './index.js'\n\nconst hoistQueryParamsToAnd = (where: Where, queryParams: Where) => {\n if ('and' in where) {\n where.and.push(queryParams)\n } else if ('or' in where) {\n where = {\n and: [where, queryParams],\n }\n } else {\n where = {\n and: [where, queryParams],\n }\n }\n\n return where\n}\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n collectionSlugs,\n customHeader,\n drawerSlug,\n filterOptions,\n onSelect,\n selectedCollection,\n}) => {\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { setPreference } = usePreferences()\n const { closeModal, isModalOpen } = useModal()\n const [limit, setLimit] = useState<number>()\n const [sort, setSort] = useState<string>(null)\n const [page, setPage] = useState<number>(1)\n const [where, setWhere] = useState<Where>(null)\n const [search, setSearch] = useState<string>('')\n\n const { componentMap } = useComponentMap()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const enabledCollectionConfigs = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedCollectionConfig, setSelectedCollectionConfig] = useState<ClientCollectionConfig>(\n () => {\n return (\n enabledCollectionConfigs.find(({ slug }) => slug === selectedCollection) ||\n enabledCollectionConfigs?.[0]\n )\n },\n )\n\n const { List } = componentMap.collections?.[selectedCollectionConfig?.slug] || {}\n\n const [selectedOption, setSelectedOption] = useState<{ label: string; value: string }>(() =>\n selectedCollectionConfig\n ? {\n label: getTranslation(selectedCollectionConfig.labels.singular, i18n),\n value: selectedCollectionConfig.slug,\n }\n : undefined,\n )\n\n // const [fields, setFields] = useState<Field[]>(() => formatFields(selectedCollectionConfig))\n\n useEffect(() => {\n // setFields(formatFields(selectedCollectionConfig))\n }, [selectedCollectionConfig])\n\n // allow external control of selected collection, same as the initial state logic above\n useEffect(() => {\n if (selectedCollection) {\n // if passed a selection, find it and check if it's enabled\n const selectedConfig =\n enabledCollectionConfigs.find(({ slug }) => slug === selectedCollection) ||\n enabledCollectionConfigs?.[0]\n setSelectedCollectionConfig(selectedConfig)\n }\n }, [selectedCollection, enabledCollectionConfigs, onSelect, t])\n\n const preferenceKey = `${selectedCollectionConfig.slug}-list`\n\n // this is the 'create new' drawer\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedCollectionConfig.slug,\n })\n\n useEffect(() => {\n if (selectedOption) {\n setSelectedCollectionConfig(\n enabledCollectionConfigs.find(({ slug }) => selectedOption.value === slug),\n )\n }\n }, [selectedOption, enabledCollectionConfigs])\n\n const collectionPermissions = permissions?.collections?.[selectedCollectionConfig?.slug]\n const hasCreatePermission = collectionPermissions?.create?.permission\n\n // If modal is open, get active page of upload gallery\n const isOpen = isModalOpen(drawerSlug)\n const apiURL = isOpen ? `${serverURL}${api}/${selectedCollectionConfig.slug}` : null\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0) // used to force a re-fetch even when apiURL is unchanged\n const [{ data, isError, isLoading: isLoadingList }, { setParams }] = usePayloadAPI(apiURL, {})\n const moreThanOneAvailableCollection = enabledCollectionConfigs.length > 1\n\n useEffect(() => {\n const {\n slug,\n admin: { listSearchableFields, useAsTitle } = {},\n versions,\n } = selectedCollectionConfig\n const params: {\n cacheBust?: number\n draft?: string\n limit?: number\n page?: number\n search?: string\n sort?: string\n where?: unknown\n } = {}\n\n let copyOfWhere = { ...(where || {}) }\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, filterOption)\n }\n\n if (search) {\n const searchAsConditions = (listSearchableFields || [useAsTitle]).map((fieldName) => {\n return {\n [fieldName]: {\n like: search,\n },\n }\n }, [])\n\n if (searchAsConditions.length > 0) {\n const searchFilter: Where = {\n or: [...searchAsConditions],\n }\n\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, searchFilter)\n }\n }\n\n if (page) params.page = page\n if (sort) params.sort = sort\n if (cacheBust) params.cacheBust = cacheBust\n if (copyOfWhere) params.where = copyOfWhere\n if (versions?.drafts) params.draft = 'true'\n\n setParams(params)\n }, [page, sort, where, search, cacheBust, filterOptions, selectedCollectionConfig, t, setParams])\n\n useEffect(() => {\n const newPreferences = {\n limit,\n sort,\n }\n\n void setPreference(preferenceKey, newPreferences, true)\n }, [sort, limit, setPreference, preferenceKey])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedCollectionConfig.slug,\n docID: doc.id,\n })\n }\n dispatchCacheBust()\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedCollectionConfig],\n )\n\n if (!selectedCollectionConfig || isError) {\n return null\n }\n\n if (isLoadingList) {\n return <LoadingOverlay />\n }\n\n return (\n <ListInfoProvider\n Header={\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {!customHeader\n ? getTranslation(selectedCollectionConfig?.labels?.plural, i18n)\n : customHeader}\n </h2>\n {hasCreatePermission && (\n <DocumentDrawerToggler className={`${baseClass}__create-new-button`}>\n <Pill>{t('general:createNew')}</Pill>\n </DocumentDrawerToggler>\n )}\n </div>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => {\n closeModal(drawerSlug)\n }}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n {selectedCollectionConfig?.admin?.description && (\n <div className={`${baseClass}__sub-header`}>\n <ViewDescription description={selectedCollectionConfig.admin.description} />\n </div>\n )}\n {moreThanOneAvailableCollection && (\n <div className={`${baseClass}__select-collection-wrap`}>\n <FieldLabel label={t('upload:selectCollectionToBrowse')} />\n <ReactSelect\n className={`${baseClass}__select-collection`}\n onChange={setSelectedOption} // this is only changing the options which is not rerunning my effect\n options={enabledCollectionConfigs.map((coll) => ({\n label: getTranslation(coll.labels.singular, i18n),\n value: coll.slug,\n }))}\n value={selectedOption}\n />\n </div>\n )}\n </header>\n }\n collectionConfig={selectedCollectionConfig}\n collectionSlug={selectedCollectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n newDocumentURL={null}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || selectedCollectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n handlePageChange={setPage}\n handlePerPageChange={setLimit}\n handleSearchChange={setSearch}\n handleSortChange={setSort}\n handleWhereChange={setWhere}\n modifySearchParams={false}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n cellProps={[\n {\n className: `${baseClass}__first-cell`,\n link: false,\n onClick: ({ collectionSlug: rowColl, rowData }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: rowColl,\n docID: rowData.id as string,\n })\n }\n },\n },\n ]}\n collectionSlug={selectedCollectionConfig.slug}\n preferenceKey={preferenceKey}\n >\n {List}\n <DocumentDrawer onSave={onCreateNew} />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n )\n}\n"],"names":["useModal","getTranslation","React","useCallback","useEffect","useReducer","useState","FieldLabel","usePayloadAPI","X","useAuth","useComponentMap","useConfig","ListInfoProvider","ListQueryProvider","usePreferences","useTranslation","useDocumentDrawer","LoadingOverlay","Pill","ReactSelect","TableColumnsProvider","ViewDescription","baseClass","hoistQueryParamsToAnd","where","queryParams","and","push","ListDrawerContent","collectionSlugs","customHeader","drawerSlug","filterOptions","onSelect","selectedCollection","i18n","t","permissions","setPreference","closeModal","isModalOpen","limit","setLimit","sort","setSort","page","setPage","setWhere","search","setSearch","componentMap","collections","routes","api","serverURL","enabledCollectionConfigs","filter","slug","includes","selectedCollectionConfig","setSelectedCollectionConfig","find","List","selectedOption","setSelectedOption","label","labels","singular","value","undefined","selectedConfig","preferenceKey","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","collectionSlug","collectionPermissions","hasCreatePermission","create","permission","isOpen","apiURL","cacheBust","dispatchCacheBust","state","data","isError","isLoading","isLoadingList","setParams","moreThanOneAvailableCollection","length","admin","listSearchableFields","useAsTitle","versions","params","copyOfWhere","filterOption","searchAsConditions","map","fieldName","like","searchFilter","or","drafts","draft","newPreferences","onCreateNew","doc","docID","id","Header","header","className","div","h2","plural","button","aria-label","onClick","type","description","onChange","options","coll","collectionConfig","newDocumentURL","defaultLimit","pagination","defaultSort","handlePageChange","handlePerPageChange","handleSearchChange","handleSortChange","handleWhereChange","modifySearchParams","cellProps","link","rowColl","rowData","onSave"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAIA,SAASA,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,QAAQ,QAAQ,QAAO;AAI3E,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,OAAOC,mBAAmB,+BAA8B;AACxD,SAASC,CAAC,QAAQ,yBAAwB;AAC1C,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,gBAAgB,QAAQ,oCAAmC;AACpE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,iBAAiB,QAAQ,6BAA4B;AAC9D,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,IAAI,QAAQ,mBAAkB;AACvC,SAASC,WAAW,QAAQ,0BAAyB;AACrD,SAASC,oBAAoB,QAAQ,2BAA0B;AAC/D,SAASC,eAAe,QAAQ,8BAA6B;AAC7D,SAASC,SAAS,QAAQ,aAAY;AAEtC,MAAMC,wBAAwB,CAACC,OAAcC;IAC3C,IAAI,SAASD,OAAO;QAClBA,MAAME,GAAG,CAACC,IAAI,CAACF;IACjB,OAAO,IAAI,QAAQD,OAAO;QACxBA,QAAQ;YACNE,KAAK;gBAACF;gBAAOC;aAAY;QAC3B;IACF,OAAO;QACLD,QAAQ;YACNE,KAAK;gBAACF;gBAAOC;aAAY;QAC3B;IACF;IAEA,OAAOD;AACT;AAEA,OAAO,MAAMI,oBAA+C,CAAC,EAC3DC,eAAe,EACfC,YAAY,EACZC,UAAU,EACVC,aAAa,EACbC,QAAQ,EACRC,kBAAkB,EACnB;IACC,MAAM,EAAEC,IAAI,EAAEC,CAAC,EAAE,GAAGrB;IACpB,MAAM,EAAEsB,WAAW,EAAE,GAAG5B;IACxB,MAAM,EAAE6B,aAAa,EAAE,GAAGxB;IAC1B,MAAM,EAAEyB,UAAU,EAAEC,WAAW,EAAE,GAAGzC;IACpC,MAAM,CAAC0C,OAAOC,SAAS,GAAGrC;IAC1B,MAAM,CAACsC,MAAMC,QAAQ,GAAGvC,SAAiB;IACzC,MAAM,CAACwC,MAAMC,QAAQ,GAAGzC,SAAiB;IACzC,MAAM,CAACmB,OAAOuB,SAAS,GAAG1C,SAAgB;IAC1C,MAAM,CAAC2C,QAAQC,UAAU,GAAG5C,SAAiB;IAE7C,MAAM,EAAE6C,YAAY,EAAE,GAAGxC;IAEzB,MAAM,EACJyC,WAAW,EACXC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAG3C;IAEJ,MAAM4C,2BAA2BJ,YAAYK,MAAM,CAAC,CAAC,EAAEC,IAAI,EAAE;QAC3D,OAAO5B,gBAAgB6B,QAAQ,CAACD;IAClC;IAEA,MAAM,CAACE,0BAA0BC,4BAA4B,GAAGvD,SAC9D;QACE,OACEkD,yBAAyBM,IAAI,CAAC,CAAC,EAAEJ,IAAI,EAAE,GAAKA,SAASvB,uBACrDqB,0BAA0B,CAAC,EAAE;IAEjC;IAGF,MAAM,EAAEO,IAAI,EAAE,GAAGZ,aAAaC,WAAW,EAAE,CAACQ,0BAA0BF,KAAK,IAAI,CAAC;IAEhF,MAAM,CAACM,gBAAgBC,kBAAkB,GAAG3D,SAA2C,IACrFsD,2BACI;YACEM,OAAOjE,eAAe2D,yBAAyBO,MAAM,CAACC,QAAQ,EAAEhC;YAChEiC,OAAOT,yBAAyBF,IAAI;QACtC,IACAY;IAGN,8FAA8F;IAE9FlE,UAAU;IACR,oDAAoD;IACtD,GAAG;QAACwD;KAAyB;IAE7B,uFAAuF;IACvFxD,UAAU;QACR,IAAI+B,oBAAoB;YACtB,2DAA2D;YAC3D,MAAMoC,iBACJf,yBAAyBM,IAAI,CAAC,CAAC,EAAEJ,IAAI,EAAE,GAAKA,SAASvB,uBACrDqB,0BAA0B,CAAC,EAAE;YAC/BK,4BAA4BU;QAC9B;IACF,GAAG;QAACpC;QAAoBqB;QAA0BtB;QAAUG;KAAE;IAE9D,MAAMmC,gBAAgB,CAAC,EAAEZ,yBAAyBF,IAAI,CAAC,KAAK,CAAC;IAE7D,kCAAkC;IAClC,MAAM,CAACe,gBAAgBC,uBAAuB,EAAE1C,YAAY2C,kBAAkB,EAAE,CAAC,GAC/E1D,kBAAkB;QAChB2D,gBAAgBhB,yBAAyBF,IAAI;IAC/C;IAEFtD,UAAU;QACR,IAAI4D,gBAAgB;YAClBH,4BACEL,yBAAyBM,IAAI,CAAC,CAAC,EAAEJ,IAAI,EAAE,GAAKM,eAAeK,KAAK,KAAKX;QAEzE;IACF,GAAG;QAACM;QAAgBR;KAAyB;IAE7C,MAAMqB,wBAAwBvC,aAAac,aAAa,CAACQ,0BAA0BF,KAAK;IACxF,MAAMoB,sBAAsBD,uBAAuBE,QAAQC;IAE3D,sDAAsD;IACtD,MAAMC,SAASxC,YAAYT;IAC3B,MAAMkD,SAASD,SAAS,CAAC,EAAE1B,UAAU,EAAED,IAAI,CAAC,EAAEM,yBAAyBF,IAAI,CAAC,CAAC,GAAG;IAChF,MAAM,CAACyB,WAAWC,kBAAkB,GAAG/E,WAAW,CAACgF,QAAUA,QAAQ,GAAG,GAAG,yDAAyD;;IACpI,MAAM,CAAC,EAAEC,IAAI,EAAEC,OAAO,EAAEC,WAAWC,aAAa,EAAE,EAAE,EAAEC,SAAS,EAAE,CAAC,GAAGlF,cAAc0E,QAAQ,CAAC;IAC5F,MAAMS,iCAAiCnC,yBAAyBoC,MAAM,GAAG;IAEzExF,UAAU;QACR,MAAM,EACJsD,IAAI,EACJmC,OAAO,EAAEC,oBAAoB,EAAEC,UAAU,EAAE,GAAG,CAAC,CAAC,EAChDC,QAAQ,EACT,GAAGpC;QACJ,MAAMqC,SAQF,CAAC;QAEL,IAAIC,cAAc;YAAE,GAAIzE,SAAS,CAAC,CAAC;QAAE;QACrC,MAAM0E,eAAelE,eAAe,CAACyB,KAAK;QAE1C,IAAIzB,iBAAiB,OAAOkE,iBAAiB,WAAW;YACtDD,cAAc1E,sBAAsB0E,aAAaC;QACnD;QAEA,IAAIlD,QAAQ;YACV,MAAMmD,qBAAqB,AAACN,CAAAA,wBAAwB;gBAACC;aAAW,AAAD,EAAGM,GAAG,CAAC,CAACC;gBACrE,OAAO;oBACL,CAACA,UAAU,EAAE;wBACXC,MAAMtD;oBACR;gBACF;YACF,GAAG,EAAE;YAEL,IAAImD,mBAAmBR,MAAM,GAAG,GAAG;gBACjC,MAAMY,eAAsB;oBAC1BC,IAAI;2BAAIL;qBAAmB;gBAC7B;gBAEAF,cAAc1E,sBAAsB0E,aAAaM;YACnD;QACF;QAEA,IAAI1D,MAAMmD,OAAOnD,IAAI,GAAGA;QACxB,IAAIF,MAAMqD,OAAOrD,IAAI,GAAGA;QACxB,IAAIuC,WAAWc,OAAOd,SAAS,GAAGA;QAClC,IAAIe,aAAaD,OAAOxE,KAAK,GAAGyE;QAChC,IAAIF,UAAUU,QAAQT,OAAOU,KAAK,GAAG;QAErCjB,UAAUO;IACZ,GAAG;QAACnD;QAAMF;QAAMnB;QAAOwB;QAAQkC;QAAWlD;QAAe2B;QAA0BvB;QAAGqD;KAAU;IAEhGtF,UAAU;QACR,MAAMwG,iBAAiB;YACrBlE;YACAE;QACF;QAEA,KAAKL,cAAciC,eAAeoC,gBAAgB;IACpD,GAAG;QAAChE;QAAMF;QAAOH;QAAeiC;KAAc;IAE9C,MAAMqC,cAAc1G,YAClB,CAAC,EAAE2G,GAAG,EAAE;QACN,IAAI,OAAO5E,aAAa,YAAY;YAClCA,SAAS;gBACP0C,gBAAgBhB,yBAAyBF,IAAI;gBAC7CqD,OAAOD,IAAIE,EAAE;YACf;QACF;QACA5B;QACA5C,WAAWmC;QACXnC,WAAWR;IACb,GACA;QAACQ;QAAYmC;QAAoB3C;QAAYE;QAAU0B;KAAyB;IAGlF,IAAI,CAACA,4BAA4B2B,SAAS;QACxC,OAAO;IACT;IAEA,IAAIE,eAAe;QACjB,qBAAO,KAACvE;IACV;IAEA,qBACE,KAACL;QACCoG,sBACE,MAACC;YAAOC,WAAW,CAAC,EAAE5F,UAAU,QAAQ,CAAC;;8BACvC,MAAC6F;oBAAID,WAAW,CAAC,EAAE5F,UAAU,aAAa,CAAC;;sCACzC,MAAC6F;4BAAID,WAAW,CAAC,EAAE5F,UAAU,gBAAgB,CAAC;;8CAC5C,KAAC8F;oCAAGF,WAAW,CAAC,EAAE5F,UAAU,aAAa,CAAC;8CACvC,CAACQ,eACE9B,eAAe2D,0BAA0BO,QAAQmD,QAAQlF,QACzDL;;gCAEL+C,qCACC,KAACJ;oCAAsByC,WAAW,CAAC,EAAE5F,UAAU,mBAAmB,CAAC;8CACjE,cAAA,KAACJ;kDAAMkB,EAAE;;;;;sCAIf,KAACkF;4BACCC,cAAYnF,EAAE;4BACd8E,WAAW,CAAC,EAAE5F,UAAU,cAAc,CAAC;4BACvCkG,SAAS;gCACPjF,WAAWR;4BACb;4BACA0F,MAAK;sCAEL,cAAA,KAACjH;;;;gBAGJmD,0BAA0BiC,OAAO8B,6BAChC,KAACP;oBAAID,WAAW,CAAC,EAAE5F,UAAU,YAAY,CAAC;8BACxC,cAAA,KAACD;wBAAgBqG,aAAa/D,yBAAyBiC,KAAK,CAAC8B,WAAW;;;gBAG3EhC,gDACC,MAACyB;oBAAID,WAAW,CAAC,EAAE5F,UAAU,wBAAwB,CAAC;;sCACpD,KAAChB;4BAAW2D,OAAO7B,EAAE;;sCACrB,KAACjB;4BACC+F,WAAW,CAAC,EAAE5F,UAAU,mBAAmB,CAAC;4BAC5CqG,UAAU3D;4BACV4D,SAASrE,yBAAyB6C,GAAG,CAAC,CAACyB,OAAU,CAAA;oCAC/C5D,OAAOjE,eAAe6H,KAAK3D,MAAM,CAACC,QAAQ,EAAEhC;oCAC5CiC,OAAOyD,KAAKpE,IAAI;gCAClB,CAAA;4BACAW,OAAOL;;;;;;QAMjB+D,kBAAkBnE;QAClBgB,gBAAgBhB,yBAAyBF,IAAI;QAC7CoB,qBAAqBA;QACrBkD,gBAAgB;kBAEhB,cAAA,KAAClH;YACCwE,MAAMA;YACN2C,cAAcvF,SAASkB,0BAA0BiC,OAAOqC,YAAYD;YACpEE,aAAavF;YACbwF,kBAAkBrF;YAClBsF,qBAAqB1F;YACrB2F,oBAAoBpF;YACpBqF,kBAAkB1F;YAClB2F,mBAAmBxF;YACnByF,oBAAoB;YACpBjE,eAAeA;sBAEf,cAAA,MAACnD;gBACCqH,WAAW;oBACT;wBACEvB,WAAW,CAAC,EAAE5F,UAAU,YAAY,CAAC;wBACrCoH,MAAM;wBACNlB,SAAS,CAAC,EAAE7C,gBAAgBgE,OAAO,EAAEC,OAAO,EAAE;4BAC5C,IAAI,OAAO3G,aAAa,YAAY;gCAClCA,SAAS;oCACP0C,gBAAgBgE;oCAChB7B,OAAO8B,QAAQ7B,EAAE;gCACnB;4BACF;wBACF;oBACF;iBACD;gBACDpC,gBAAgBhB,yBAAyBF,IAAI;gBAC7Cc,eAAeA;;oBAEdT;kCACD,KAACU;wBAAeqE,QAAQjC;;;;;;AAKlC,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/ListDrawer/DrawerContent.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload/types'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useEffect, useReducer, useState } from 'react'\n\nimport type { ListDrawerProps } from './types.js'\n\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport usePayloadAPI from '../../hooks/usePayloadAPI.js'\nimport { X } from '../../icons/X/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useComponentMap } from '../../providers/ComponentMap/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { ListInfoProvider } from '../../providers/ListInfo/index.js'\nimport { ListQueryProvider } from '../../providers/ListQuery/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useDocumentDrawer } from '../DocumentDrawer/index.js'\nimport { LoadingOverlay } from '../Loading/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { type Option, ReactSelect } from '../ReactSelect/index.js'\nimport { TableColumnsProvider } from '../TableColumns/index.js'\nimport { ViewDescription } from '../ViewDescription/index.js'\nimport { baseClass } from './index.js'\n\nconst hoistQueryParamsToAnd = (where: Where, queryParams: Where) => {\n if ('and' in where) {\n where.and.push(queryParams)\n } else if ('or' in where) {\n where = {\n and: [where, queryParams],\n }\n } else {\n where = {\n and: [where, queryParams],\n }\n }\n\n return where\n}\n\nexport const ListDrawerContent: React.FC<ListDrawerProps> = ({\n collectionSlugs,\n customHeader,\n drawerSlug,\n filterOptions,\n onSelect,\n selectedCollection,\n}) => {\n const { i18n, t } = useTranslation()\n const { permissions } = useAuth()\n const { setPreference } = usePreferences()\n const { closeModal, isModalOpen } = useModal()\n const [limit, setLimit] = useState<number>()\n const [sort, setSort] = useState<string>(null)\n const [page, setPage] = useState<number>(1)\n const [where, setWhere] = useState<Where>(null)\n const [search, setSearch] = useState<string>('')\n\n const { componentMap } = useComponentMap()\n\n const {\n collections,\n routes: { api },\n serverURL,\n } = useConfig()\n\n const enabledCollectionConfigs = collections.filter(({ slug }) => {\n return collectionSlugs.includes(slug)\n })\n\n const [selectedCollectionConfig, setSelectedCollectionConfig] = useState<ClientCollectionConfig>(\n () => {\n return (\n enabledCollectionConfigs.find(({ slug }) => slug === selectedCollection) ||\n enabledCollectionConfigs?.[0]\n )\n },\n )\n\n const { List } = componentMap.collections?.[selectedCollectionConfig?.slug] || {}\n\n const [selectedOption, setSelectedOption] = useState<Option | Option[]>(() =>\n selectedCollectionConfig\n ? {\n label: getTranslation(selectedCollectionConfig.labels.singular, i18n),\n value: selectedCollectionConfig.slug,\n }\n : undefined,\n )\n\n // const [fields, setFields] = useState<Field[]>(() => formatFields(selectedCollectionConfig))\n\n useEffect(() => {\n // setFields(formatFields(selectedCollectionConfig))\n }, [selectedCollectionConfig])\n\n // allow external control of selected collection, same as the initial state logic above\n useEffect(() => {\n if (selectedCollection) {\n // if passed a selection, find it and check if it's enabled\n const selectedConfig =\n enabledCollectionConfigs.find(({ slug }) => slug === selectedCollection) ||\n enabledCollectionConfigs?.[0]\n setSelectedCollectionConfig(selectedConfig)\n }\n }, [selectedCollection, enabledCollectionConfigs, onSelect, t])\n\n const preferenceKey = `${selectedCollectionConfig.slug}-list`\n\n // this is the 'create new' drawer\n const [DocumentDrawer, DocumentDrawerToggler, { drawerSlug: documentDrawerSlug }] =\n useDocumentDrawer({\n collectionSlug: selectedCollectionConfig.slug,\n })\n\n useEffect(() => {\n if (selectedOption && !Array.isArray(selectedOption)) {\n setSelectedCollectionConfig(\n enabledCollectionConfigs.find(({ slug }) => selectedOption.value === slug),\n )\n }\n }, [selectedOption, enabledCollectionConfigs])\n\n const collectionPermissions = permissions?.collections?.[selectedCollectionConfig?.slug]\n const hasCreatePermission = collectionPermissions?.create?.permission\n\n // If modal is open, get active page of upload gallery\n const isOpen = isModalOpen(drawerSlug)\n const apiURL = isOpen ? `${serverURL}${api}/${selectedCollectionConfig.slug}` : null\n const [cacheBust, dispatchCacheBust] = useReducer((state) => state + 1, 0) // used to force a re-fetch even when apiURL is unchanged\n const [{ data, isError, isLoading: isLoadingList }, { setParams }] = usePayloadAPI(apiURL, {})\n const moreThanOneAvailableCollection = enabledCollectionConfigs.length > 1\n\n useEffect(() => {\n const {\n slug,\n admin: { listSearchableFields, useAsTitle } = {},\n versions,\n } = selectedCollectionConfig\n const params: {\n cacheBust?: number\n draft?: string\n limit?: number\n page?: number\n search?: string\n sort?: string\n where?: unknown\n } = {}\n\n let copyOfWhere = { ...(where || {}) }\n const filterOption = filterOptions?.[slug]\n\n if (filterOptions && typeof filterOption !== 'boolean') {\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, filterOption)\n }\n\n if (search) {\n const searchAsConditions = (listSearchableFields || [useAsTitle]).map((fieldName) => {\n return {\n [fieldName]: {\n like: search,\n },\n }\n }, [])\n\n if (searchAsConditions.length > 0) {\n const searchFilter: Where = {\n or: [...searchAsConditions],\n }\n\n copyOfWhere = hoistQueryParamsToAnd(copyOfWhere, searchFilter)\n }\n }\n\n if (page) params.page = page\n if (sort) params.sort = sort\n if (cacheBust) params.cacheBust = cacheBust\n if (copyOfWhere) params.where = copyOfWhere\n if (versions?.drafts) params.draft = 'true'\n\n setParams(params)\n }, [page, sort, where, search, cacheBust, filterOptions, selectedCollectionConfig, t, setParams])\n\n useEffect(() => {\n const newPreferences = {\n limit,\n sort,\n }\n\n void setPreference(preferenceKey, newPreferences, true)\n }, [sort, limit, setPreference, preferenceKey])\n\n const onCreateNew = useCallback(\n ({ doc }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: selectedCollectionConfig.slug,\n docID: doc.id,\n })\n }\n dispatchCacheBust()\n closeModal(documentDrawerSlug)\n closeModal(drawerSlug)\n },\n [closeModal, documentDrawerSlug, drawerSlug, onSelect, selectedCollectionConfig],\n )\n\n if (!selectedCollectionConfig || isError) {\n return null\n }\n\n if (isLoadingList) {\n return <LoadingOverlay />\n }\n\n return (\n <ListInfoProvider\n Header={\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h2 className={`${baseClass}__header-text`}>\n {!customHeader\n ? getTranslation(selectedCollectionConfig?.labels?.plural, i18n)\n : customHeader}\n </h2>\n {hasCreatePermission && (\n <DocumentDrawerToggler className={`${baseClass}__create-new-button`}>\n <Pill>{t('general:createNew')}</Pill>\n </DocumentDrawerToggler>\n )}\n </div>\n <button\n aria-label={t('general:close')}\n className={`${baseClass}__header-close`}\n onClick={() => {\n closeModal(drawerSlug)\n }}\n type=\"button\"\n >\n <X />\n </button>\n </div>\n {selectedCollectionConfig?.admin?.description && (\n <div className={`${baseClass}__sub-header`}>\n <ViewDescription description={selectedCollectionConfig.admin.description} />\n </div>\n )}\n {moreThanOneAvailableCollection && (\n <div className={`${baseClass}__select-collection-wrap`}>\n <FieldLabel label={t('upload:selectCollectionToBrowse')} />\n <ReactSelect\n className={`${baseClass}__select-collection`}\n onChange={setSelectedOption} // this is only changing the options which is not rerunning my effect\n options={enabledCollectionConfigs.map((coll) => ({\n label: getTranslation(coll.labels.singular, i18n),\n value: coll.slug,\n }))}\n value={selectedOption}\n />\n </div>\n )}\n </header>\n }\n collectionConfig={selectedCollectionConfig}\n collectionSlug={selectedCollectionConfig.slug}\n hasCreatePermission={hasCreatePermission}\n newDocumentURL={null}\n >\n <ListQueryProvider\n data={data}\n defaultLimit={limit || selectedCollectionConfig?.admin?.pagination?.defaultLimit}\n defaultSort={sort}\n handlePageChange={setPage}\n handlePerPageChange={setLimit}\n handleSearchChange={setSearch}\n handleSortChange={setSort}\n handleWhereChange={setWhere}\n modifySearchParams={false}\n preferenceKey={preferenceKey}\n >\n <TableColumnsProvider\n cellProps={[\n {\n className: `${baseClass}__first-cell`,\n link: false,\n onClick: ({ collectionSlug: rowColl, rowData }) => {\n if (typeof onSelect === 'function') {\n onSelect({\n collectionSlug: rowColl,\n docID: rowData.id as string,\n })\n }\n },\n },\n ]}\n collectionSlug={selectedCollectionConfig.slug}\n preferenceKey={preferenceKey}\n >\n {List}\n <DocumentDrawer onSave={onCreateNew} />\n </TableColumnsProvider>\n </ListQueryProvider>\n </ListInfoProvider>\n )\n}\n"],"names":["useModal","getTranslation","React","useCallback","useEffect","useReducer","useState","FieldLabel","usePayloadAPI","X","useAuth","useComponentMap","useConfig","ListInfoProvider","ListQueryProvider","usePreferences","useTranslation","useDocumentDrawer","LoadingOverlay","Pill","ReactSelect","TableColumnsProvider","ViewDescription","baseClass","hoistQueryParamsToAnd","where","queryParams","and","push","ListDrawerContent","collectionSlugs","customHeader","drawerSlug","filterOptions","onSelect","selectedCollection","i18n","t","permissions","setPreference","closeModal","isModalOpen","limit","setLimit","sort","setSort","page","setPage","setWhere","search","setSearch","componentMap","collections","routes","api","serverURL","enabledCollectionConfigs","filter","slug","includes","selectedCollectionConfig","setSelectedCollectionConfig","find","List","selectedOption","setSelectedOption","label","labels","singular","value","undefined","selectedConfig","preferenceKey","DocumentDrawer","DocumentDrawerToggler","documentDrawerSlug","collectionSlug","Array","isArray","collectionPermissions","hasCreatePermission","create","permission","isOpen","apiURL","cacheBust","dispatchCacheBust","state","data","isError","isLoading","isLoadingList","setParams","moreThanOneAvailableCollection","length","admin","listSearchableFields","useAsTitle","versions","params","copyOfWhere","filterOption","searchAsConditions","map","fieldName","like","searchFilter","or","drafts","draft","newPreferences","onCreateNew","doc","docID","id","Header","header","className","div","h2","plural","button","aria-label","onClick","type","description","onChange","options","coll","collectionConfig","newDocumentURL","defaultLimit","pagination","defaultSort","handlePageChange","handlePerPageChange","handleSearchChange","handleSortChange","handleWhereChange","modifySearchParams","cellProps","link","rowColl","rowData","onSave"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import type { Props as ReactSelectAdapterProps } from './types.js';
2
+ import type { ReactSelectAdapterProps } from './types.js';
3
3
  export type { Option } from './types.js';
4
4
  import './index.scss';
5
5
  export declare const ReactSelect: React.FC<ReactSelectAdapterProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAK/C,OAAO,KAAK,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcxC,OAAO,cAAc,CAAA;AA+LrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA2B,MAAM,OAAO,CAAA;AAI/C,OAAO,KAAK,EAAU,uBAAuB,EAAE,MAAM,YAAY,CAAA;AACjE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAcxC,OAAO,cAAc,CAAA;AA+LrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { Input } from './Input/index.js'\nimport { MultiValue, generateMultiValueDraggableID } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","MultiValue","generateMultiValueDraggableID","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useId } from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option, ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { DropdownIndicator } from './DropdownIndicator/index.js'\nimport { Input } from './Input/index.js'\nimport { MultiValue, generateMultiValueDraggableID } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n const uuid = useId()\n const [hasMounted, setHasMounted] = React.useState(false)\n\n useEffect(() => {\n setHasMounted(true)\n }, [])\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!hasMounted) {\n return <ShimmerEffect height=\"calc(var(--base) * 2 + 2px)\" />\n }\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator,\n Input,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n instanceId={uuid}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { getOptionValue, onChange, value } = props\n\n let draggableIDs: string[] = []\n if (value) {\n draggableIDs = (Array.isArray(value) ? value : [value]).map((optionValue) => {\n return generateMultiValueDraggableID(optionValue, getOptionValue)\n })\n }\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={draggableIDs}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","useEffect","useId","Select","CreatableSelect","useTranslation","DraggableSortable","ShimmerEffect","ClearIndicator","Control","DropdownIndicator","Input","MultiValue","generateMultiValueDraggableID","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","uuid","hasMounted","setHasMounted","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","height","captureMenuScroll","classNamePrefix","instanceId","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","draggableIDs","Array","isArray","map","optionValue","ids","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -19,16 +19,16 @@ declare module 'react-select/dist/declarations/src' {
19
19
  customProps?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps;
20
20
  }
21
21
  }
22
- export type Option = {
22
+ export type Option<TValue = unknown> = {
23
23
  [key: string]: unknown;
24
24
  id?: string;
25
- value: unknown;
25
+ value: TValue;
26
26
  };
27
27
  export type OptionGroup = {
28
28
  label: string;
29
29
  options: Option[];
30
30
  };
31
- export type Props = {
31
+ export type ReactSelectAdapterProps = {
32
32
  backspaceRemovesValue?: boolean;
33
33
  blurInputOnSelect?: boolean;
34
34
  className?: string;
@@ -57,7 +57,7 @@ export type Props = {
57
57
  inputValue: string;
58
58
  }) => string;
59
59
  numberOnly?: boolean;
60
- onChange?: (value: any) => void;
60
+ onChange?: (value: Option | Option[]) => void;
61
61
  onInputChange?: (val: string) => void;
62
62
  onMenuClose?: () => void;
63
63
  onMenuOpen?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,4BAA4B,EAAE,MAAM,cAAc,CAAA;AAEjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErE,KAAK,iBAAiB,GAAG;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACrD,MAAM,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAA;IACtC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;CAC5C,CAAA;AAKD,OAAO,QAAQ,2CAA2C,CAAC;IACzD,UAAiB,KAAK,CAAC,MAAM,EAAE,OAAO,SAAS,OAAO,EAAE,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC;QACrF,WAAW,CAAC,EAAE,iBAAiB,CAAA;KAChC;CACF;AAKD,OAAO,QAAQ,oCAAoC,CAAC;IAClD,UAAiB,uBAAuB,CACtC,MAAM,EACN,OAAO,SAAS,OAAO,EACvB,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC,CAC/B,SAAQ,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;QAC3C,WAAW,CAAC,EAAE,4BAA4B,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,iBAAiB,CAAA;KACvF;CACF;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;IAEtB,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,KAAK,GAAG;IAClB,qBAAqB,CAAC,EAAE,OAAO,CAAA;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,CAAA;KAC7B,CAAA;IACD,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EACT,CAAC,CACC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACtE,MAAM,EAAE,MAAM,KACX,OAAO,CAAC,GACb,SAAS,CAAA;IACb,cAAc,CAAC,EAAE,4BAA4B,CAC3C,MAAM,EACN,OAAO,EACP,SAAS,CAAC,MAAM,CAAC,CAClB,CAAC,gBAAgB,CAAC,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,qFAAqF;IACrF,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,gEAAgE;IAChE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,gBAAgB,CAAC,EAAE,GAAG,CAAA;IACtB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gBAAgB,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,CAAA;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;IAC/B,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAA;IACjC,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAA;IACjC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC1B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n onSave?: DocumentDrawerProps['onSave']\n setDrawerIsOpen?: (isOpen: boolean) => void\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps\n }\n}\n\nexport type Option = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: unknown\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type Props = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n { data, label, value }: { data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: any) => void // eslint-disable-line @typescript-eslint/no-explicit-any\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"rangeMappings":"","mappings":"AA+CA,WAyCC"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/types.ts"],"sourcesContent":["import type { CommonProps, GroupBase, Props as ReactSelectStateManagerProps } from 'react-select'\n\nimport type { DocumentDrawerProps } from '../DocumentDrawer/types.js'\n\ntype CustomSelectProps = {\n disableKeyDown?: boolean\n disableMouseDown?: boolean\n draggableProps?: any\n droppableRef?: React.RefObject<HTMLDivElement | null>\n onSave?: DocumentDrawerProps['onSave']\n setDrawerIsOpen?: (isOpen: boolean) => void\n}\n\n// augment the types for the `Select` component from `react-select`\n// this is to include the `selectProps` prop at the top-level `Select` component\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src/Select' {\n export interface Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> {\n customProps?: CustomSelectProps\n }\n}\n\n// augment the types for the `CommonPropsAndClassName` from `react-select`\n// this will include the `selectProps` prop to every `react-select` component automatically\n// @ts-expect-error-next-line // TODO Fix this - moduleResolution 16 breaks our declare module\ndeclare module 'react-select/dist/declarations/src' {\n export interface CommonPropsAndClassName<\n Option,\n IsMulti extends boolean,\n Group extends GroupBase<Option>,\n > extends CommonProps<Option, IsMulti, Group> {\n customProps?: ReactSelectStateManagerProps<Option, IsMulti, Group> & CustomSelectProps\n }\n}\n\nexport type Option<TValue = unknown> = {\n [key: string]: unknown\n //* The ID is used to identify the option in the UI. If it doesn't exist and value cannot be transformed into a string, sorting won't work */\n id?: string\n value: TValue\n}\n\nexport type OptionGroup = {\n label: string\n options: Option[]\n}\n\nexport type ReactSelectAdapterProps = {\n backspaceRemovesValue?: boolean\n blurInputOnSelect?: boolean\n className?: string\n components?: {\n [key: string]: React.FC<any>\n }\n customProps?: CustomSelectProps\n disabled?: boolean\n filterOption?:\n | ((\n { data, label, value }: { data: Option; label: string; value: string },\n search: string,\n ) => boolean)\n | undefined\n getOptionValue?: ReactSelectStateManagerProps<\n Option,\n boolean,\n GroupBase<Option>\n >['getOptionValue']\n inputId?: string\n isClearable?: boolean\n /** Allows you to create own values in the UI despite them not being pre-specified */\n isCreatable?: boolean\n isLoading?: boolean\n /** Allows you to specify multiple values instead of just one */\n isMulti?: boolean\n isOptionSelected?: any\n isSearchable?: boolean\n isSortable?: boolean\n noOptionsMessage?: (obj: { inputValue: string }) => string\n numberOnly?: boolean\n onChange?: (value: Option | Option[]) => void // eslint-disable-line @typescript-eslint/no-explicit-any\n onInputChange?: (val: string) => void\n onMenuClose?: () => void\n onMenuOpen?: () => void\n onMenuScrollToBottom?: () => void\n options: Option[] | OptionGroup[]\n placeholder?: string\n showError?: boolean\n value?: Option | Option[]\n}\n"],"names":[],"rangeMappings":"","mappings":"AA+CA,WAyCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortComplex/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAQ9D,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,yBAAyB,CAAA;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAKD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0ElD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SortComplex/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAQ5E,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,yBAAyB,CAAA;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAOD,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0ElD,CAAA"}