@payloadcms/ui 3.41.0-internal.c079756 → 3.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +2 -1
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts +1 -0
- package/dist/elements/DocumentDrawer/DrawerHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +30 -19
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.scss +16 -8
- package/dist/elements/DrawerActionHeader/index.d.ts +2 -1
- package/dist/elements/DrawerActionHeader/index.d.ts.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +41 -30
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.scss +2 -2
- package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +3 -0
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.d.ts +6 -5
- package/dist/elements/FolderView/Cell/index.client.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.client.js +6 -3
- package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.d.ts.map +1 -1
- package/dist/elements/FolderView/Cell/index.server.js +4 -0
- package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
- package/dist/elements/FolderView/CollectionTypePill/index.d.ts.map +1 -1
- package/dist/elements/FolderView/CollectionTypePill/index.js +20 -18
- package/dist/elements/FolderView/CollectionTypePill/index.js.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.d.ts.map +1 -1
- package/dist/elements/FolderView/CurrentFolderActions/index.js +20 -14
- package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts +9 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.d.ts.map +1 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +36 -0
- package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts +2 -0
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.d.ts.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +120 -101
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.scss +1 -1
- package/dist/elements/FolderView/Field/index.server.d.ts.map +1 -1
- package/dist/elements/FolderView/Field/index.server.js +4 -0
- package/dist/elements/FolderView/Field/index.server.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts +19 -16
- package/dist/elements/FolderView/MoveDocToFolder/index.d.ts.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +52 -41
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/ListFolderPills/index.d.ts +4 -3
- package/dist/elements/ListFolderPills/index.d.ts.map +1 -1
- package/dist/elements/ListFolderPills/index.js +5 -1
- package/dist/elements/ListFolderPills/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.d.ts.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +75 -55
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/Upload/index.scss +2 -3
- package/dist/elements/WhereBuilder/reduceFields.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/reduceFields.js +1 -28
- package/dist/elements/WhereBuilder/reduceFields.js.map +1 -1
- package/dist/exports/client/{CodeEditor-7N7BMHRP.js → CodeEditor-Z3ZZJH7C.js} +2 -2
- package/dist/exports/client/chunk-CNCOIY3Y.js +26 -0
- package/dist/exports/client/{chunk-QPA2ZA5J.js.map → chunk-CNCOIY3Y.js.map} +3 -3
- package/dist/exports/client/index.d.ts +0 -1
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +22 -22
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +1 -1
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js +4 -3
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +55 -52
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +4 -0
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +4 -1
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +12 -6
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/Folders/index.d.ts +10 -2
- package/dist/providers/Folders/index.d.ts.map +1 -1
- package/dist/providers/Folders/index.js +7 -5
- package/dist/providers/Folders/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.d.ts +3 -3
- package/dist/utilities/formatDocTitle/formatDateTitle.d.ts.map +1 -1
- package/dist/utilities/formatDocTitle/formatDateTitle.js.map +1 -1
- package/dist/views/BrowseByFolder/index.d.ts.map +1 -1
- package/dist/views/BrowseByFolder/index.js +4 -3
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/ListSelection/index.js +36 -37
- package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/index.js +7 -4
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/index.d.ts.map +1 -1
- package/dist/views/Edit/index.js +5 -3
- package/dist/views/Edit/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +2 -1
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/package.json +4 -4
- package/dist/elements/FolderView/Drawers/DrawerHeader/index.d.ts +0 -10
- package/dist/elements/FolderView/Drawers/DrawerHeader/index.d.ts.map +0 -1
- package/dist/elements/FolderView/Drawers/DrawerHeader/index.js +0 -55
- package/dist/elements/FolderView/Drawers/DrawerHeader/index.js.map +0 -1
- package/dist/elements/FolderView/Drawers/DrawerHeader/index.scss +0 -30
- package/dist/elements/FolderView/Drawers/NewFolder/index.d.ts +0 -9
- package/dist/elements/FolderView/Drawers/NewFolder/index.d.ts.map +0 -1
- package/dist/elements/FolderView/Drawers/NewFolder/index.js +0 -157
- package/dist/elements/FolderView/Drawers/NewFolder/index.js.map +0 -1
- package/dist/elements/FolderView/Drawers/RenameFolder/index.d.ts +0 -13
- package/dist/elements/FolderView/Drawers/RenameFolder/index.d.ts.map +0 -1
- package/dist/elements/FolderView/Drawers/RenameFolder/index.js +0 -140
- package/dist/elements/FolderView/Drawers/RenameFolder/index.js.map +0 -1
- package/dist/exports/client/chunk-QPA2ZA5J.js +0 -26
- /package/dist/exports/client/{CodeEditor-7N7BMHRP.js.map → CodeEditor-Z3ZZJH7C.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","TextInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","hasMany","inputRef","Label","label","localized","maxRows","onChange","onKeyDown","path","placeholder","readOnly","required","rtl","showError","style","value","valueToRender","i18n","t","editableProps","_temp2","t0","t1","t2","t3","filter","Boolean","t4","join","t5","_jsxs","children","_jsx","CustomComponent","Fallback","replace","components","DropdownIndicator","customProps","disabled","filterOption","Array","isArray","length","isClearable","isCreatable","isMulti","isSortable","menuIsOpen","noOptionsMessage","isOverHasMany","max","options","id","name","ref","type","_temp","event","currentTarget","contentEditable","data","className_0","selectProps","editableClassName","onBlur","onClick","event_0","classList","add","focus","event_1","key","remove","innerText","replaceAll","action","option","newValues","v","removedValue","preventDefault","stopPropagation"],"sources":["../../../src/fields/Text/Input.tsx"],"sourcesContent":["'use client'\nimport type { ChangeEvent } from 'react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n hasMany,\n inputRef,\n Label,\n label,\n localized,\n maxRows,\n onChange,\n onKeyDown,\n path,\n placeholder,\n readOnly,\n required,\n rtl,\n showError,\n style,\n value,\n valueToRender,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editableProps: ReactSelectAdapterProps['customProps']['editableProps'] = (\n data,\n className,\n selectProps,\n ) => {\n const editableClassName = `${className}--editable`\n\n return {\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'false'\n },\n onClick: (event: React.MouseEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'true'\n event.currentTarget.classList.add(editableClassName)\n event.currentTarget.focus()\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === 'Tab' || event.key === 'Escape') {\n event.currentTarget.contentEditable = 'false'\n event.currentTarget.classList.remove(editableClassName)\n data.value.value = event.currentTarget.innerText\n data.label = event.currentTarget.innerText\n\n if (data.value.value.replaceAll('\\n', '')) {\n selectProps.onChange(selectProps.value, {\n action: 'create-option',\n option: data,\n })\n } else {\n if (Array.isArray(selectProps.value)) {\n const newValues = selectProps.value.filter((v) => v.id !== data.id)\n selectProps.onChange(newValues, {\n action: 'pop-value',\n removedValue: data,\n })\n }\n }\n\n event.preventDefault()\n }\n event.stopPropagation()\n },\n }\n }\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n components={{ DropdownIndicator: null }}\n customProps={{\n editableProps,\n }}\n disabled={readOnly}\n // prevent adding additional options if maxRows is reached\n filterOption={() =>\n !maxRows ? true : !(Array.isArray(value) && maxRows && value.length >= maxRows)\n }\n isClearable={false}\n isCreatable\n isMulti\n isSortable\n menuIsOpen={false}\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n onChange={onChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender}\n />\n ) : (\n <input\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange as (e: ChangeEvent<HTMLInputElement>) => void}\n onKeyDown={onKeyDown}\n placeholder={getTranslation(placeholder, i18n)}\n ref={inputRef}\n type=\"text\"\n value={value || ''}\n />\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Input.js","names":["c","_c","getTranslation","React","ReactSelect","RenderCustomComponent","FieldDescription","FieldError","FieldLabel","useTranslation","fieldBaseClass","TextInput","props","$","AfterInput","BeforeInput","className","Description","description","Error","hasMany","htmlAttributes","inputRef","Label","label","localized","maxRows","onChange","onKeyDown","path","placeholder","placeholderFromProps","readOnly","required","rtl","showError","style","value","valueToRender","i18n","t","editableProps","_temp2","t0","t1","t2","t3","t4","filter","Boolean","_jsxs","join","children","_jsx","CustomComponent","Fallback","replace","components","DropdownIndicator","customProps","disabled","filterOption","Array","isArray","length","isClearable","isCreatable","isMulti","isSortable","menuIsOpen","noOptionsMessage","isOverHasMany","max","options","id","name","ref","type","_temp","event","currentTarget","contentEditable","data","className_0","selectProps","editableClassName","onBlur","onClick","event_0","classList","add","focus","event_1","key","remove","innerText","replaceAll","action","option","newValues","v","removedValue","preventDefault","stopPropagation"],"sources":["../../../src/fields/Text/Input.tsx"],"sourcesContent":["'use client'\nimport type { ChangeEvent } from 'react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport const TextInput: React.FC<TextInputProps> = (props) => {\n const {\n AfterInput,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n hasMany,\n htmlAttributes,\n inputRef,\n Label,\n label,\n localized,\n maxRows,\n onChange,\n onKeyDown,\n path,\n placeholder: placeholderFromProps,\n readOnly,\n required,\n rtl,\n showError,\n style,\n value,\n valueToRender,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editableProps: ReactSelectAdapterProps['customProps']['editableProps'] = (\n data,\n className,\n selectProps,\n ) => {\n const editableClassName = `${className}--editable`\n\n return {\n onBlur: (event: React.FocusEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'false'\n },\n onClick: (event: React.MouseEvent<HTMLDivElement>) => {\n event.currentTarget.contentEditable = 'true'\n event.currentTarget.classList.add(editableClassName)\n event.currentTarget.focus()\n },\n onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Enter' || event.key === 'Tab' || event.key === 'Escape') {\n event.currentTarget.contentEditable = 'false'\n event.currentTarget.classList.remove(editableClassName)\n data.value.value = event.currentTarget.innerText\n data.label = event.currentTarget.innerText\n\n if (data.value.value.replaceAll('\\n', '')) {\n selectProps.onChange(selectProps.value, {\n action: 'create-option',\n option: data,\n })\n } else {\n if (Array.isArray(selectProps.value)) {\n const newValues = selectProps.value.filter((v) => v.id !== data.id)\n selectProps.onChange(newValues, {\n action: 'pop-value',\n removedValue: data,\n })\n }\n }\n\n event.preventDefault()\n }\n event.stopPropagation()\n },\n }\n }\n\n const placeholder = getTranslation(placeholderFromProps, i18n)\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'text',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n components={{ DropdownIndicator: null }}\n customProps={{\n editableProps,\n }}\n disabled={readOnly}\n // prevent adding additional options if maxRows is reached\n filterOption={() =>\n !maxRows ? true : !(Array.isArray(value) && maxRows && value.length >= maxRows)\n }\n isClearable={false}\n isCreatable\n isMulti\n isSortable\n menuIsOpen={false}\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n onChange={onChange}\n options={[]}\n placeholder={placeholder}\n showError={showError}\n value={valueToRender}\n />\n ) : (\n <input\n data-rtl={rtl}\n disabled={readOnly}\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={onChange as (e: ChangeEvent<HTMLInputElement>) => void}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n ref={inputRef}\n type=\"text\"\n value={value || ''}\n {...(htmlAttributes ?? {})}\n />\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAyIpC,eAAO,MAAM,SAAS;wBApIlB,MAAI,SACJ;yBAA4C,MAAO,oBAAoB;;;;;+EAmIjB,CAAA"}
|
|
@@ -16,6 +16,7 @@ const TextFieldComponent = props => {
|
|
|
16
16
|
field,
|
|
17
17
|
field: {
|
|
18
18
|
admin: {
|
|
19
|
+
autoComplete,
|
|
19
20
|
className,
|
|
20
21
|
description,
|
|
21
22
|
placeholder,
|
|
@@ -114,6 +115,9 @@ const TextFieldComponent = props => {
|
|
|
114
115
|
description: description,
|
|
115
116
|
Error: Error,
|
|
116
117
|
hasMany: hasMany,
|
|
118
|
+
htmlAttributes: {
|
|
119
|
+
autoComplete: autoComplete || undefined
|
|
120
|
+
},
|
|
117
121
|
inputRef: inputRef,
|
|
118
122
|
Label: Label,
|
|
119
123
|
label: label,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","useField","withCondition","useConfig","useLocale","mergeFieldStyles","isFieldRTL","TextInput","TextFieldComponent","props","field","admin","className","description","placeholder","rtl","hasMany","label","localized","maxLength","maxRows","minLength","minRows","required","inputRef","path","pathFromProps","readOnly","validate","locale","config","localization","localizationConfig","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","toString","styles","_jsx","onChange","e","target","style","TextField"],"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClientComponent } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextInput, TextInputProps }\n\nconst TextFieldComponent: TextFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rtl } = {},\n hasMany,\n label,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n required,\n },\n inputRef,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const locale = useLocale()\n\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, minLength, maxLength, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!(readOnly || disabled)) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue, disabled],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n inputRef={inputRef}\n Label={Label}\n label={label}\n localized={localized}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={styles}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n />\n )\n}\n\nexport const TextField = withCondition(TextFieldComponent)\n"],"mappings":"AAAA;;;AAGA,OAAOA,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAKjE,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP,SAASA,SAAS;AAElB,MAAMC,kBAAA,GAAgDC,KAAA;EACpD,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,WAAW;QAAEC;MAAG,CAAE,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","useField","withCondition","useConfig","useLocale","mergeFieldStyles","isFieldRTL","TextInput","TextFieldComponent","props","field","admin","autoComplete","className","description","placeholder","rtl","hasMany","label","localized","maxLength","maxRows","minLength","minRows","required","inputRef","path","pathFromProps","readOnly","validate","locale","config","localization","localizationConfig","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","toString","styles","_jsx","htmlAttributes","onChange","e","target","style","TextField"],"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClientComponent } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextInput, TextInputProps }\n\nconst TextFieldComponent: TextFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { autoComplete, className, description, placeholder, rtl } = {},\n hasMany,\n label,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n required,\n },\n inputRef,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const locale = useLocale()\n\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, minLength, maxLength, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!(readOnly || disabled)) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue, disabled],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n htmlAttributes={{\n autoComplete: autoComplete || undefined,\n }}\n inputRef={inputRef}\n Label={Label}\n label={label}\n localized={localized}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={styles}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n />\n )\n}\n\nexport const TextField = withCondition(TextFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StaticDescription, StaticLabel } from 'payload';
|
|
2
|
-
import type { ChangeEvent } from 'react';
|
|
2
|
+
import type { ChangeEvent, JSX } from 'react';
|
|
3
3
|
import type React from 'react';
|
|
4
4
|
import type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js';
|
|
5
5
|
export type SharedTextFieldProps = {
|
|
@@ -16,6 +16,9 @@ export type TextInputProps = {
|
|
|
16
16
|
readonly Description?: React.ReactNode;
|
|
17
17
|
readonly description?: StaticDescription;
|
|
18
18
|
readonly Error?: React.ReactNode;
|
|
19
|
+
readonly htmlAttributes?: {
|
|
20
|
+
autoComplete?: JSX.IntrinsicElements['input']['autoComplete'];
|
|
21
|
+
};
|
|
19
22
|
readonly inputRef?: React.RefObject<HTMLInputElement>;
|
|
20
23
|
readonly Label?: React.ReactNode;
|
|
21
24
|
readonly label?: StaticLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAA;AAE1F,MAAM,MAAM,oBAAoB,GAC5B;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAA;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAA;CAC/D,GACD;IACE,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,CAAC,UAAU,CAAC,CAAA;CACxD,CAAA;AAEL,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACrC,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IACtC,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAA;IACxC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE;QACxB,YAAY,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,CAAA;KAC9D,CAAA;IACD,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAA;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IACjE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;CAClC,GAAG,oBAAoB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Text/types.ts"],"sourcesContent":["import type { StaticDescription, StaticLabel } from 'payload'\nimport type { ChangeEvent } from 'react'\nimport type React from 'react'\n\nimport type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nexport type SharedTextFieldProps =\n | {\n readonly hasMany?: false\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void\n }\n | {\n readonly hasMany?: true\n readonly onChange?: ReactSelectAdapterProps['onChange']\n }\n\nexport type TextInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly inputRef?: React.RefObject<HTMLInputElement>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly maxRows?: number\n readonly minRows?: number\n readonly onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n readonly path: string\n readonly placeholder?: Record<string, string> | string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly rtl?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly valueToRender?: Option[]\n} & SharedTextFieldProps\n"],"mappings":"AAgBA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../../src/fields/Text/types.ts"],"sourcesContent":["import type { StaticDescription, StaticLabel } from 'payload'\nimport type { ChangeEvent, JSX } from 'react'\nimport type React from 'react'\n\nimport type { Option, ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\n\nexport type SharedTextFieldProps =\n | {\n readonly hasMany?: false\n readonly onChange?: (e: ChangeEvent<HTMLInputElement>) => void\n }\n | {\n readonly hasMany?: true\n readonly onChange?: ReactSelectAdapterProps['onChange']\n }\n\nexport type TextInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly htmlAttributes?: {\n autoComplete?: JSX.IntrinsicElements['input']['autoComplete']\n }\n readonly inputRef?: React.RefObject<HTMLInputElement>\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly localized?: boolean\n readonly maxRows?: number\n readonly minRows?: number\n readonly onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>\n readonly path: string\n readonly placeholder?: Record<string, string> | string\n readonly readOnly?: boolean\n readonly required?: boolean\n readonly rtl?: boolean\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: string\n readonly valueToRender?: Option[]\n} & SharedTextFieldProps\n"],"mappings":"AAgBA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Config/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAgF,MAAM,OAAO,CAAA;AAEpG,KAAK,iBAAiB,GAAG;IAGvB,CAAC,IAAI,EAAE;QAAE,cAAc,EAAE,EAAE,GAAG,cAAc,CAAC;QAAC,UAAU,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,sBAAsB,CAAA;IAI3F,CAAC,IAAI,EAAE;QAAE,cAAc,CAAC,EAAE,KAAK,CAAC;QAAC,UAAU,EAAE,EAAE,GAAG,UAAU,CAAA;KAAE,GAAG,kBAAkB,CAAA;IAGnF,CAAC,IAAI,EAAE;QACL,cAAc,CAAC,EAAE,EAAE,GAAG,cAAc,CAAA;QACpC,UAAU,CAAC,EAAE,EAAE,GAAG,UAAU,CAAA;KAC7B,GAAG,sBAAsB,GAAG,kBAAkB,GAAG,IAAI,CAAA;CACvD,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,YAAY,CAAA;IACpB;;;;OAIG;IACH,eAAe,EAAE,iBAAiB,CAAA;IAClC,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,CAAA;CAC1C,CAAA;AAsBD,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,uBAAuB,CAAA;CACxD,CA8CA,CAAA;AAED,eAAO,MAAM,SAAS,QAAO,mBAA6C,CAAA"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
'use client';
|
|
3
3
|
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import React, { createContext, use, useCallback, useEffect, useMemo, useState } from 'react';
|
|
5
|
+
import React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
6
6
|
const RootConfigContext = /*#__PURE__*/createContext(undefined);
|
|
7
7
|
function sanitizeClientConfig(unSanitizedConfig) {
|
|
8
8
|
if (!unSanitizedConfig?.blocks?.length || unSanitizedConfig.blocksMap) {
|
|
@@ -24,9 +24,14 @@ export const ConfigProvider = ({
|
|
|
24
24
|
config: configFromProps
|
|
25
25
|
}) => {
|
|
26
26
|
const [config, setConfig] = useState(() => sanitizeClientConfig(configFromProps));
|
|
27
|
+
const isFirstRenderRef = useRef(true);
|
|
27
28
|
// Need to update local config state if config from props changes, for HMR.
|
|
28
29
|
// That way, config changes will be updated in the UI immediately without needing a refresh.
|
|
29
30
|
useEffect(() => {
|
|
31
|
+
if (isFirstRenderRef.current) {
|
|
32
|
+
isFirstRenderRef.current = false;
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
30
35
|
setConfig(sanitizeClientConfig(configFromProps));
|
|
31
36
|
}, [configFromProps]);
|
|
32
37
|
// Build lookup maps for collections and globals so we can do O(1) lookups by slug
|
|
@@ -56,12 +61,13 @@ export const ConfigProvider = ({
|
|
|
56
61
|
}
|
|
57
62
|
return null;
|
|
58
63
|
}, [collectionsBySlug_0, globalsBySlug_0]);
|
|
64
|
+
const value = useMemo(() => ({
|
|
65
|
+
config,
|
|
66
|
+
getEntityConfig,
|
|
67
|
+
setConfig
|
|
68
|
+
}), [config, getEntityConfig]);
|
|
59
69
|
return /*#__PURE__*/_jsx(RootConfigContext, {
|
|
60
|
-
value:
|
|
61
|
-
config,
|
|
62
|
-
getEntityConfig,
|
|
63
|
-
setConfig
|
|
64
|
-
},
|
|
70
|
+
value: value,
|
|
65
71
|
children: children
|
|
66
72
|
});
|
|
67
73
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","createContext","use","useCallback","useEffect","useMemo","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","createContext","use","useCallback","useEffect","useMemo","useRef","useState","RootConfigContext","undefined","sanitizeClientConfig","unSanitizedConfig","blocks","length","blocksMap","sanitizedConfig","block","slug","ConfigProvider","children","config","configFromProps","setConfig","isFirstRenderRef","current","collectionsBySlug","globalsBySlug","collection","collections","global","globals","getEntityConfig","args","collectionSlug","globalSlug","value","_jsx","useConfig"],"sources":["../../../src/providers/Config/index.tsx"],"sourcesContent":["/* eslint-disable perfectionist/sort-object-types */ // Need to disable this rule because the order of the overloads is important\n'use client'\nimport type {\n ClientCollectionConfig,\n ClientConfig,\n ClientGlobalConfig,\n CollectionSlug,\n GlobalSlug,\n UnsanitizedClientConfig,\n} from 'payload'\n\nimport React, { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react'\n\ntype GetEntityConfigFn = {\n // Overload #1: collectionSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug: {} | CollectionSlug; globalSlug?: never }): ClientCollectionConfig\n\n // Overload #2: globalSlug only\n // @todo remove \"{} |\" in 4.0, which would be a breaking change\n (args: { collectionSlug?: never; globalSlug: {} | GlobalSlug }): ClientGlobalConfig\n\n // Overload #3: both/none (fall back to union | null)\n (args: {\n collectionSlug?: {} | CollectionSlug\n globalSlug?: {} | GlobalSlug\n }): ClientCollectionConfig | ClientGlobalConfig | null\n}\n\nexport type ClientConfigContext = {\n config: ClientConfig\n /**\n * Get a collection or global config by its slug. This is preferred over\n * using `config.collections.find` or `config.globals.find`, because\n * getEntityConfig uses a lookup map for O(1) lookups.\n */\n getEntityConfig: GetEntityConfigFn\n setConfig: (config: ClientConfig) => void\n}\n\nconst RootConfigContext = createContext<ClientConfigContext | undefined>(undefined)\n\nfunction sanitizeClientConfig(\n unSanitizedConfig: ClientConfig | UnsanitizedClientConfig,\n): ClientConfig {\n if (!unSanitizedConfig?.blocks?.length || (unSanitizedConfig as ClientConfig).blocksMap) {\n ;(unSanitizedConfig as ClientConfig).blocksMap = {}\n return unSanitizedConfig as ClientConfig\n }\n const sanitizedConfig: ClientConfig = { ...unSanitizedConfig } as ClientConfig\n\n sanitizedConfig.blocksMap = {}\n\n for (const block of unSanitizedConfig.blocks) {\n sanitizedConfig.blocksMap[block.slug] = block\n }\n\n return sanitizedConfig\n}\n\nexport const ConfigProvider: React.FC<{\n readonly children: React.ReactNode\n readonly config: ClientConfig | UnsanitizedClientConfig\n}> = ({ children, config: configFromProps }) => {\n const [config, setConfig] = useState<ClientConfig>(() => sanitizeClientConfig(configFromProps))\n\n const isFirstRenderRef = useRef(true)\n\n // Need to update local config state if config from props changes, for HMR.\n // That way, config changes will be updated in the UI immediately without needing a refresh.\n useEffect(() => {\n if (isFirstRenderRef.current) {\n isFirstRenderRef.current = false\n return\n }\n setConfig(sanitizeClientConfig(configFromProps))\n }, [configFromProps])\n\n // Build lookup maps for collections and globals so we can do O(1) lookups by slug\n const { collectionsBySlug, globalsBySlug } = useMemo(() => {\n const collectionsBySlug: Record<string, ClientCollectionConfig> = {}\n const globalsBySlug: Record<string, ClientGlobalConfig> = {}\n\n for (const collection of config.collections) {\n collectionsBySlug[collection.slug] = collection\n }\n for (const global of config.globals) {\n globalsBySlug[global.slug] = global\n }\n\n return { collectionsBySlug, globalsBySlug }\n }, [config])\n\n const getEntityConfig = useCallback<GetEntityConfigFn>(\n (args) => {\n if ('collectionSlug' in args) {\n return collectionsBySlug[args.collectionSlug] ?? null\n }\n if ('globalSlug' in args) {\n return globalsBySlug[args.globalSlug] ?? null\n }\n return null as any\n },\n [collectionsBySlug, globalsBySlug],\n )\n\n const value = useMemo(() => ({ config, getEntityConfig, setConfig }), [config, getEntityConfig])\n\n return <RootConfigContext value={value}>{children}</RootConfigContext>\n}\n\nexport const useConfig = (): ClientConfigContext => use(RootConfigContext)\n"],"mappings":"AAAA,sDAAsD;AACtD;;;AAUA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,EAAEC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AA6B7F,MAAMC,iBAAA,gBAAoBP,aAAA,CAA+CQ,SAAA;AAEzE,SAASC,qBACPC,iBAAyD;EAEzD,IAAI,CAACA,iBAAA,EAAmBC,MAAA,EAAQC,MAAA,IAAUF,iBAAC,CAAmCG,SAAS,EAAE;;IACrFH,iBAAA,CAAmCG,SAAS,GAAG,CAAC;IAClD,OAAOH,iBAAA;EACT;EACA,MAAMI,eAAA,GAAgC;IAAE,GAAGJ;EAAkB;EAE7DI,eAAA,CAAgBD,SAAS,GAAG,CAAC;EAE7B,KAAK,MAAME,KAAA,IAASL,iBAAA,CAAkBC,MAAM,EAAE;IAC5CG,eAAA,CAAgBD,SAAS,CAACE,KAAA,CAAMC,IAAI,CAAC,GAAGD,KAAA;EAC1C;EAEA,OAAOD,eAAA;AACT;AAEA,OAAO,MAAMG,cAAA,GAGRA,CAAC;EAAEC,QAAQ;EAAEC,MAAA,EAAQC;AAAe,CAAE;EACzC,MAAM,CAACD,MAAA,EAAQE,SAAA,CAAU,GAAGf,QAAA,CAAuB,MAAMG,oBAAA,CAAqBW,eAAA;EAE9E,MAAME,gBAAA,GAAmBjB,MAAA,CAAO;EAEhC;EACA;EACAF,SAAA,CAAU;IACR,IAAImB,gBAAA,CAAiBC,OAAO,EAAE;MAC5BD,gBAAA,CAAiBC,OAAO,GAAG;MAC3B;IACF;IACAF,SAAA,CAAUZ,oBAAA,CAAqBW,eAAA;EACjC,GAAG,CAACA,eAAA,CAAgB;EAEpB;EACA,MAAM;IAAEI,iBAAiB,EAAjBA,mBAAiB;IAAEC,aAAa,EAAbA;EAAa,CAAE,GAAGrB,OAAA,CAAQ;IACnD,MAAMoB,iBAAA,GAA4D,CAAC;IACnE,MAAMC,aAAA,GAAoD,CAAC;IAE3D,KAAK,MAAMC,UAAA,IAAcP,MAAA,CAAOQ,WAAW,EAAE;MAC3CH,iBAAiB,CAACE,UAAA,CAAWV,IAAI,CAAC,GAAGU,UAAA;IACvC;IACA,KAAK,MAAME,MAAA,IAAUT,MAAA,CAAOU,OAAO,EAAE;MACnCJ,aAAa,CAACG,MAAA,CAAOZ,IAAI,CAAC,GAAGY,MAAA;IAC/B;IAEA,OAAO;MAAEJ,iBAAA;MAAmBC;IAAc;EAC5C,GAAG,CAACN,MAAA,CAAO;EAEX,MAAMW,eAAA,GAAkB5B,WAAA,CACrB6B,IAAA;IACC,IAAI,oBAAoBA,IAAA,EAAM;MAC5B,OAAOP,mBAAiB,CAACO,IAAA,CAAKC,cAAc,CAAC,IAAI;IACnD;IACA,IAAI,gBAAgBD,IAAA,EAAM;MACxB,OAAON,eAAa,CAACM,IAAA,CAAKE,UAAU,CAAC,IAAI;IAC3C;IACA,OAAO;EACT,GACA,CAACT,mBAAA,EAAmBC,eAAA,CAAc;EAGpC,MAAMS,KAAA,GAAQ9B,OAAA,CAAQ,OAAO;IAAEe,MAAA;IAAQW,eAAA;IAAiBT;EAAU,IAAI,CAACF,MAAA,EAAQW,eAAA,CAAgB;EAE/F,oBAAOK,IAAA,CAAC5B,iBAAA;IAAkB2B,KAAA,EAAOA,KAAA;cAAQhB;;AAC3C;AAEA,OAAO,MAAMkB,SAAA,GAAYA,CAAA,KAA2BnC,GAAA,CAAIM,iBAAA","ignoreList":[]}
|
|
@@ -23,6 +23,10 @@ export type FolderContextValue = {
|
|
|
23
23
|
focusedRowIndex: number;
|
|
24
24
|
folderCollectionConfig: ClientCollectionConfig;
|
|
25
25
|
folderCollectionSlug: string;
|
|
26
|
+
/**
|
|
27
|
+
* Folder enabled collection slugs that can be populated within the provider
|
|
28
|
+
*/
|
|
29
|
+
readonly folderCollectionSlugs?: CollectionSlug[];
|
|
26
30
|
folderFieldName: string;
|
|
27
31
|
folderID?: number | string;
|
|
28
32
|
getSelectedItems?: () => FolderOrDocument[];
|
|
@@ -89,9 +93,13 @@ export type FolderProviderProps = {
|
|
|
89
93
|
*/
|
|
90
94
|
readonly filteredCollectionSlugs?: CollectionSlug[];
|
|
91
95
|
/**
|
|
92
|
-
* Folder enabled collection slugs
|
|
96
|
+
* Folder enabled collection slugs that can be populated within the provider
|
|
93
97
|
*/
|
|
94
98
|
readonly folderCollectionSlugs: CollectionSlug[];
|
|
99
|
+
/**
|
|
100
|
+
* The name of the field that contains the folder relation
|
|
101
|
+
*/
|
|
102
|
+
readonly folderFieldName: string;
|
|
95
103
|
/**
|
|
96
104
|
* The ID of the current folder
|
|
97
105
|
*/
|
|
@@ -113,7 +121,7 @@ export type FolderProviderProps = {
|
|
|
113
121
|
*/
|
|
114
122
|
readonly subfolders: FolderOrDocument[];
|
|
115
123
|
};
|
|
116
|
-
export declare function FolderProvider({ allowMultiSelection, breadcrumbs: _breadcrumbsFromProps, children, collectionSlug, documents: allDocumentsFromProps, filteredCollectionSlugs, folderCollectionSlugs, folderID: _folderIDFromProps, search: _searchFromProps, sort, subfolders: subfoldersFromProps, }: FolderProviderProps): React.JSX.Element;
|
|
124
|
+
export declare function FolderProvider({ allowMultiSelection, breadcrumbs: _breadcrumbsFromProps, children, collectionSlug, documents: allDocumentsFromProps, filteredCollectionSlugs, folderCollectionSlugs, folderFieldName, folderID: _folderIDFromProps, search: _searchFromProps, sort, subfolders: subfoldersFromProps, }: FolderProviderProps): React.JSX.Element;
|
|
117
125
|
export declare function useFolder(): FolderContextValue;
|
|
118
126
|
export {};
|
|
119
127
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Folders/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/Folders/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ const Context = /*#__PURE__*/React.createContext({
|
|
|
21
21
|
focusedRowIndex: -1,
|
|
22
22
|
folderCollectionConfig: null,
|
|
23
23
|
folderCollectionSlug: '',
|
|
24
|
+
folderCollectionSlugs: [],
|
|
24
25
|
folderFieldName: 'folder',
|
|
25
26
|
folderID: undefined,
|
|
26
27
|
getSelectedItems: () => [],
|
|
@@ -66,6 +67,7 @@ export function FolderProvider({
|
|
|
66
67
|
documents: allDocumentsFromProps = [],
|
|
67
68
|
filteredCollectionSlugs,
|
|
68
69
|
folderCollectionSlugs = [],
|
|
70
|
+
folderFieldName,
|
|
69
71
|
folderID: _folderIDFromProps = undefined,
|
|
70
72
|
search: _searchFromProps,
|
|
71
73
|
sort,
|
|
@@ -76,7 +78,6 @@ export function FolderProvider({
|
|
|
76
78
|
config,
|
|
77
79
|
getEntityConfig
|
|
78
80
|
} = useConfig();
|
|
79
|
-
const folderFieldName = config.folders.fieldName;
|
|
80
81
|
const {
|
|
81
82
|
routes,
|
|
82
83
|
serverURL
|
|
@@ -89,7 +90,7 @@ export function FolderProvider({
|
|
|
89
90
|
const {
|
|
90
91
|
startRouteTransition
|
|
91
92
|
} = useRouteTransition();
|
|
92
|
-
const [folderCollectionConfig] = React.useState(() => config.collections.find(collection => collection.slug === config.folders.slug));
|
|
93
|
+
const [folderCollectionConfig] = React.useState(() => config.collections.find(collection => config.folders && collection.slug === config.folders.slug));
|
|
93
94
|
const folderCollectionSlug = folderCollectionConfig.slug;
|
|
94
95
|
const [isDragging, setIsDragging] = React.useState(false);
|
|
95
96
|
const [selectedIndexes, setSelectedIndexes] = React.useState(() => new Set());
|
|
@@ -640,7 +641,7 @@ export function FolderProvider({
|
|
|
640
641
|
setSubfolders(sortedSubfolders_1);
|
|
641
642
|
setAllSubfolders(sortedAllSubfolders);
|
|
642
643
|
}
|
|
643
|
-
}, [activeFolderID, documents, separateItems, sortItems, subfolders]);
|
|
644
|
+
}, [activeFolderID, documents, separateItems, sortItems, subfolders, parentFolderContext]);
|
|
644
645
|
/**
|
|
645
646
|
* Used to move items to a different folder.
|
|
646
647
|
*
|
|
@@ -724,7 +725,7 @@ export function FolderProvider({
|
|
|
724
725
|
docs
|
|
725
726
|
} = json;
|
|
726
727
|
const formattedItems = docs.map(doc => formatFolderOrDocumentItem({
|
|
727
|
-
folderFieldName
|
|
728
|
+
folderFieldName,
|
|
728
729
|
isUpload: Boolean(collectionConfig.upload),
|
|
729
730
|
relationTo: collectionSlug_1,
|
|
730
731
|
useAsTitle: collectionConfig.admin.useAsTitle,
|
|
@@ -780,7 +781,7 @@ export function FolderProvider({
|
|
|
780
781
|
}
|
|
781
782
|
}
|
|
782
783
|
clearSelections();
|
|
783
|
-
}, [folderCollectionSlug, activeFolderID, clearSelections, serverURL, routes.api, t, getFolderData, getEntityConfig, sortItems, documents, subfolders, drawerDepth, router]);
|
|
784
|
+
}, [folderCollectionSlug, activeFolderID, clearSelections, serverURL, routes.api, folderFieldName, t, getFolderData, getEntityConfig, sortItems, documents, subfolders, drawerDepth, router]);
|
|
784
785
|
/**
|
|
785
786
|
* Used to rename a folder in the current state.
|
|
786
787
|
*
|
|
@@ -839,6 +840,7 @@ export function FolderProvider({
|
|
|
839
840
|
focusedRowIndex,
|
|
840
841
|
folderCollectionConfig,
|
|
841
842
|
folderCollectionSlug,
|
|
843
|
+
folderCollectionSlugs,
|
|
842
844
|
folderFieldName,
|
|
843
845
|
folderID: activeFolderID,
|
|
844
846
|
getSelectedItems,
|