@payloadcms/ui 3.0.0-beta.37 → 3.0.0-beta.39
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/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +2 -0
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +3 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +14 -8
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/ReactSelect/Input/index.d.ts +5 -0
- package/dist/elements/ReactSelect/Input/index.d.ts.map +1 -0
- package/dist/elements/ReactSelect/Input/index.js +17 -0
- package/dist/elements/ReactSelect/Input/index.js.map +1 -0
- package/dist/elements/ReactSelect/MultiValue/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/MultiValue/index.js +7 -5
- package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
- package/dist/elements/ReactSelect/index.d.ts.map +1 -1
- package/dist/elements/ReactSelect/index.js +17 -1
- package/dist/elements/ReactSelect/index.js.map +1 -1
- package/dist/elements/RenderTitle/index.d.ts.map +1 -1
- package/dist/elements/RenderTitle/index.js +12 -7
- package/dist/elements/RenderTitle/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +104 -72
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +3 -3
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +49 -49
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +6 -6
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +6 -6
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +6 -6
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +5 -5
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +5 -2
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/DateTime/index.js +5 -5
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js +4 -4
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +5 -3
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +7 -7
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js +7 -7
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +6 -4
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +5 -5
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/findOptionsByValue.js +1 -1
- package/dist/fields/Relationship/findOptionsByValue.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +2 -4
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +5 -5
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +5 -5
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +3 -3
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +3 -3
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/FieldPropsProvider/index.d.ts +1 -0
- package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
- package/dist/forms/FieldPropsProvider/index.js.map +1 -1
- package/dist/forms/Form/context.d.ts +3 -1
- package/dist/forms/Form/context.d.ts.map +1 -1
- package/dist/forms/Form/context.js +3 -1
- package/dist/forms/Form/context.js.map +1 -1
- package/dist/forms/Form/getSiblingData.d.ts.map +1 -1
- package/dist/forms/Form/getSiblingData.js +1 -0
- package/dist/forms/Form/getSiblingData.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +28 -11
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/initContextState.d.ts.map +1 -1
- package/dist/forms/Form/initContextState.js +1 -0
- package/dist/forms/Form/initContextState.js.map +1 -1
- package/dist/forms/Form/types.d.ts +2 -0
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/forms/RenderFields/index.js +6 -2
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +8 -1
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/Submit/index.d.ts.map +1 -1
- package/dist/forms/Submit/index.js +3 -2
- package/dist/forms/Submit/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +5 -3
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js +4 -3
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +5 -3
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js +4 -3
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +5 -3
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +21 -15
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/index.js +3 -2
- package/dist/forms/buildStateFromSchema/index.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +5 -2
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/forms/useField/types.d.ts +1 -0
- package/dist/forms/useField/types.d.ts.map +1 -1
- package/dist/forms/useField/types.js.map +1 -1
- package/dist/icons/Plus/index.d.ts.map +1 -1
- package/dist/icons/Plus/index.js +1 -0
- package/dist/icons/Plus/index.js.map +1 -1
- package/dist/icons/Plus/index.scss +0 -3
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js +1 -0
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +67 -53
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/DocumentInfo/types.d.ts +4 -0
- package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/types.js.map +1 -1
- package/dist/providers/Root/index.d.ts +1 -2
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/dist/providers/Translation/index.d.ts +1 -5
- package/dist/providers/Translation/index.d.ts.map +1 -1
- package/dist/providers/Translation/index.js.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.d.ts +8 -0
- package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/index.js +29 -0
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts +14 -0
- package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js +75 -0
- package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/types.d.ts +3 -0
- package/dist/utilities/buildFieldSchemaMap/types.d.ts.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/types.js +3 -0
- package/dist/utilities/buildFieldSchemaMap/types.js.map +1 -0
- package/dist/utilities/buildFormState.d.ts +7 -0
- package/dist/utilities/buildFormState.d.ts.map +1 -0
- package/dist/utilities/buildFormState.js +162 -0
- package/dist/utilities/buildFormState.js.map +1 -0
- package/dist/utilities/getFormState.d.ts +1 -0
- package/dist/utilities/getFormState.d.ts.map +1 -1
- package/dist/utilities/getFormState.js +5 -2
- package/dist/utilities/getFormState.js.map +1 -1
- package/dist/utilities/reduceFieldsToValues.d.ts.map +1 -1
- package/dist/utilities/reduceFieldsToValues.js +1 -0
- package/dist/utilities/reduceFieldsToValues.js.map +1 -1
- package/package.json +5 -5
|
@@ -27,18 +27,18 @@ const DateTimeField = (props)=>{
|
|
|
27
27
|
required
|
|
28
28
|
]);
|
|
29
29
|
const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
|
|
30
|
-
const { path, setValue, showError, value } = useField({
|
|
30
|
+
const { formInitializing, formProcessing, path, setValue, showError, value } = useField({
|
|
31
31
|
path: pathFromContext || pathFromProps || name,
|
|
32
32
|
validate: memoizedValidate
|
|
33
33
|
});
|
|
34
|
-
const
|
|
34
|
+
const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
|
|
35
35
|
return /*#__PURE__*/ _jsxs("div", {
|
|
36
36
|
className: [
|
|
37
37
|
fieldBaseClass,
|
|
38
38
|
baseClass,
|
|
39
39
|
className,
|
|
40
40
|
showError && `${baseClass}--has-error`,
|
|
41
|
-
|
|
41
|
+
disabled && 'read-only'
|
|
42
42
|
].filter(Boolean).join(' '),
|
|
43
43
|
style: {
|
|
44
44
|
...style,
|
|
@@ -64,10 +64,10 @@ const DateTimeField = (props)=>{
|
|
|
64
64
|
/*#__PURE__*/ _jsx(DatePickerField, {
|
|
65
65
|
...datePickerProps,
|
|
66
66
|
onChange: (incomingDate)=>{
|
|
67
|
-
if (!
|
|
67
|
+
if (!disabled) setValue(incomingDate?.toISOString() || null);
|
|
68
68
|
},
|
|
69
69
|
placeholder: getTranslation(placeholder, i18n),
|
|
70
|
-
readOnly:
|
|
70
|
+
readOnly: disabled,
|
|
71
71
|
value: value
|
|
72
72
|
}),
|
|
73
73
|
AfterInput
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/DateTime/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport { DatePickerField } from '../../elements/DatePicker/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'date-time-field'\n\nimport type { DateField } from 'payload/types'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\n\nexport type DateFieldProps = FormFieldBase & {\n date?: DateField['admin']['date']\n name?: string\n path?: string\n placeholder?: DateField['admin']['placeholder'] | string\n width?: string\n}\n\nconst DateTimeField: React.FC<DateFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n date: datePickerProps,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { path, setValue, showError, value } = useField<Date>({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/DateTime/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport { DatePickerField } from '../../elements/DatePicker/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'date-time-field'\n\nimport type { DateField } from 'payload/types'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\n\nexport type DateFieldProps = FormFieldBase & {\n date?: DateField['admin']['date']\n name?: string\n path?: string\n placeholder?: DateField['admin']['placeholder'] | string\n width?: string\n}\n\nconst DateTimeField: React.FC<DateFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n date: datePickerProps,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField<Date>({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && `${baseClass}--has-error`,\n disabled && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`} id={`field-${path.replace(/\\./g, '__')}`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {BeforeInput}\n <DatePickerField\n {...datePickerProps}\n onChange={(incomingDate) => {\n if (!disabled) setValue(incomingDate?.toISOString() || null)\n }}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={disabled}\n value={value}\n />\n {AfterInput}\n </div>\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n\nexport const DateTime = withCondition(DateTimeField)\n"],"names":["getTranslation","React","useCallback","DatePickerField","FieldLabel","useField","useTranslation","fieldBaseClass","baseClass","FieldDescription","FieldError","useFieldProps","withCondition","DateTimeField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","date","datePickerProps","descriptionProps","errorProps","label","labelProps","path","pathFromProps","placeholder","readOnly","readOnlyFromProps","required","style","validate","width","i18n","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","setValue","showError","disabled","div","filter","Boolean","join","id","replace","onChange","incomingDate","toISOString","undefined","DateTime"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,iDAAiD,GACjD;;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAE1C,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AAGnD,MAAMC,YAAY;AAMlB,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,aAAa,QAAQ,qCAAoC;AAUlE,MAAMC,gBAA0C,CAACC;IAC/C,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,MAAMC,eAAe,EACrBC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,WAAW,EACXC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGtB;IAEJ,MAAM,EAAEuB,IAAI,EAAE,GAAG/B;IAEjB,MAAMgC,mBAAmCpC,YACvC,CAACqC,OAAOC;QACN,IAAI,OAAOL,aAAa,YAAY;YAClC,OAAOA,SAASI,OAAO;gBAAE,GAAGC,OAAO;gBAAEP;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEL,MAAMa,eAAe,EAAEV,UAAUW,mBAAmB,EAAE,GAAG/B;IAEjE,MAAM,EAAEgC,gBAAgB,EAAEC,cAAc,EAAEhB,IAAI,EAAEiB,QAAQ,EAAEC,SAAS,EAAEP,KAAK,EAAE,GAAGlC,SAAe;QAC5FuB,MAAMa,mBAAmBZ,iBAAiBd;QAC1CoB,UAAUG;IACZ;IAEA,MAAMS,WAAWf,qBAAqBU,uBAAuBE,kBAAkBD;IAE/E,qBACE,MAACK;QACC3B,WAAW;YACTd;YACAC;YACAa;YACAyB,aAAa,CAAC,EAAEtC,UAAU,WAAW,CAAC;YACtCuC,YAAY;SACb,CACEE,MAAM,CAACC,SACPC,IAAI,CAAC;QACRjB,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAAChC;gBACCgB,aAAaA;gBACbM,OAAOA;gBACPO,UAAUA;gBACT,GAAIN,cAAc,CAAC,CAAC;;0BAEvB,MAACqB;gBAAI3B,WAAW,CAAC,EAAEd,eAAe,MAAM,CAAC;gBAAE6C,IAAI,CAAC,MAAM,EAAExB,KAAKyB,OAAO,CAAC,OAAO,MAAM,CAAC;;kCACjF,KAAC3C;wBAAWS,aAAaA;wBAAaS,MAAMA;wBAAO,GAAIH,cAAc,CAAC,CAAC;;oBACtER;kCACD,KAACd;wBACE,GAAGoB,eAAe;wBACnB+B,UAAU,CAACC;4BACT,IAAI,CAACR,UAAUF,SAASU,cAAcC,iBAAiB;wBACzD;wBACA1B,aAAa9B,eAAe8B,aAAaO;wBACzCN,UAAUgB;wBACVR,OAAOA;;oBAERvB;;;YAEFE,sBAAsBuC,YACrBvC,kCAEA,KAACT;gBAAkB,GAAIe,oBAAoB,CAAC,CAAC;;;;AAIrD;AAEA,OAAO,MAAMkC,WAAW9C,cAAcC,eAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Email/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAGjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAUvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAA;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Email/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAGjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAUvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAA;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAqFD,eAAO,MAAM,KAAK,2BAA4B,CAAA"}
|
|
@@ -25,18 +25,18 @@ const EmailField = (props)=>{
|
|
|
25
25
|
required
|
|
26
26
|
]);
|
|
27
27
|
const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
|
|
28
|
-
const
|
|
29
|
-
const { path, setValue, showError, value } = useField({
|
|
28
|
+
const { formInitializing, formProcessing, path, setValue, showError, value } = useField({
|
|
30
29
|
path: pathFromContext || pathFromProps || name,
|
|
31
30
|
validate: memoizedValidate
|
|
32
31
|
});
|
|
32
|
+
const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
|
|
33
33
|
return /*#__PURE__*/ _jsxs("div", {
|
|
34
34
|
className: [
|
|
35
35
|
fieldBaseClass,
|
|
36
36
|
'email',
|
|
37
37
|
className,
|
|
38
38
|
showError && 'error',
|
|
39
|
-
|
|
39
|
+
disabled && 'read-only'
|
|
40
40
|
].filter(Boolean).join(' '),
|
|
41
41
|
style: {
|
|
42
42
|
...style,
|
|
@@ -60,7 +60,7 @@ const EmailField = (props)=>{
|
|
|
60
60
|
BeforeInput,
|
|
61
61
|
/*#__PURE__*/ _jsx("input", {
|
|
62
62
|
autoComplete: autoComplete,
|
|
63
|
-
disabled:
|
|
63
|
+
disabled: disabled,
|
|
64
64
|
id: `field-${path.replace(/\./g, '__')}`,
|
|
65
65
|
name: path,
|
|
66
66
|
onChange: setValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Email/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\nimport type { EmailField as EmailFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type EmailFieldProps = FormFieldBase & {\n autoComplete?: string\n name?: string\n path?: string\n placeholder?: EmailFieldType['admin']['placeholder']\n width?: string\n}\n\nconst EmailField: React.FC<EmailFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n autoComplete,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Email/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\nimport type { EmailField as EmailFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type EmailFieldProps = FormFieldBase & {\n autoComplete?: string\n name?: string\n path?: string\n placeholder?: EmailFieldType['admin']['placeholder']\n width?: string\n}\n\nconst EmailField: React.FC<EmailFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n autoComplete,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <div\n className={[fieldBaseClass, 'email', className, showError && 'error', disabled && 'read-only']\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {BeforeInput}\n <input\n autoComplete={autoComplete}\n disabled={disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={setValue}\n placeholder={getTranslation(placeholder, i18n)}\n type=\"email\"\n value={(value as string) || ''}\n />\n {AfterInput}\n </div>\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n\nexport const Email = withCondition(EmailField)\n"],"names":["getTranslation","React","useCallback","FieldDescription","FieldError","FieldLabel","useFieldProps","useField","withCondition","useTranslation","fieldBaseClass","EmailField","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","autoComplete","className","descriptionProps","errorProps","label","labelProps","path","pathFromProps","placeholder","readOnly","readOnlyFromProps","required","style","validate","width","i18n","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","setValue","showError","disabled","div","filter","Boolean","join","input","id","replace","onChange","type","undefined","Email"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAIA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,cAAc,QAAQ,qBAAoB;AAWnD,MAAMC,aAAwC,CAACC;IAC7C,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,WAAW,EACXC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGrB;IAEJ,MAAM,EAAEsB,IAAI,EAAE,GAAGzB;IAEjB,MAAM0B,mBAAmCjC,YACvC,CAACkC,OAAOC;QACN,IAAI,OAAOL,aAAa,YAAY;YAClC,OAAOA,SAASI,OAAO;gBAAE,GAAGC,OAAO;gBAAEP;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEL,MAAMa,eAAe,EAAEV,UAAUW,mBAAmB,EAAE,GAAGjC;IAEjE,MAAM,EAAEkC,gBAAgB,EAAEC,cAAc,EAAEhB,IAAI,EAAEiB,QAAQ,EAAEC,SAAS,EAAEP,KAAK,EAAE,GAAG7B,SAAS;QACtFkB,MAAMa,mBAAmBZ,iBAAiBb;QAC1CmB,UAAUG;IACZ;IAEA,MAAMS,WAAWf,qBAAqBU,uBAAuBE,kBAAkBD;IAE/E,qBACE,MAACK;QACCzB,WAAW;YAACV;YAAgB;YAASU;YAAWuB,aAAa;YAASC,YAAY;SAAY,CAC3FE,MAAM,CAACC,SACPC,IAAI,CAAC;QACRjB,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAAC5B;gBACCa,aAAaA;gBACbK,OAAOA;gBACPO,UAAUA;gBACT,GAAIN,cAAc,CAAC,CAAC;;0BAEvB,MAACqB;gBAAIzB,WAAW,CAAC,EAAEV,eAAe,MAAM,CAAC;;kCACvC,KAACN;wBAAWa,aAAaA;wBAAaQ,MAAMA;wBAAO,GAAIH,cAAc,CAAC,CAAC;;oBACtEP;kCACD,KAACkC;wBACC9B,cAAcA;wBACdyB,UAAUA;wBACVM,IAAI,CAAC,MAAM,EAAEzB,KAAK0B,OAAO,CAAC,OAAO,MAAM,CAAC;wBACxCtC,MAAMY;wBACN2B,UAAUV;wBACVf,aAAa3B,eAAe2B,aAAaO;wBACzCmB,MAAK;wBACLjB,OAAO,AAACA,SAAoB;;oBAE7BtB;;;YAEFE,sBAAsBsC,YACrBtC,kCAEA,KAACb;gBAAkB,GAAIkB,oBAAoB,CAAC,CAAC;;;;AAIrD;AAEA,OAAO,MAAMkC,QAAQ/C,cAAcG,YAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Group/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Group/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGpD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAkBvD,OAAO,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAIvD,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAyFD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;AAElC,eAAO,MAAM,KAAK,2BAA4B,CAAA"}
|
|
@@ -6,7 +6,7 @@ import { useCollapsible } from '../../elements/Collapsible/provider.js';
|
|
|
6
6
|
import { ErrorPill } from '../../elements/ErrorPill/index.js';
|
|
7
7
|
import { FieldDescription } from '../../forms/FieldDescription/index.js';
|
|
8
8
|
import { useFieldProps } from '../../forms/FieldPropsProvider/index.js';
|
|
9
|
-
import { useFormSubmitted } from '../../forms/Form/context.js';
|
|
9
|
+
import { useFormInitializing, useFormProcessing, useFormSubmitted } from '../../forms/Form/context.js';
|
|
10
10
|
import { RenderFields } from '../../forms/RenderFields/index.js';
|
|
11
11
|
import { useField } from '../../forms/useField/index.js';
|
|
12
12
|
import { withCondition } from '../../forms/withCondition/index.js';
|
|
@@ -27,10 +27,12 @@ const GroupField = (props)=>{
|
|
|
27
27
|
const { errorPaths } = useField({
|
|
28
28
|
path
|
|
29
29
|
});
|
|
30
|
+
const formInitializing = useFormInitializing();
|
|
31
|
+
const formProcessing = useFormProcessing();
|
|
30
32
|
const submitted = useFormSubmitted();
|
|
31
33
|
const errorCount = errorPaths.length;
|
|
32
34
|
const fieldHasErrors = submitted && errorCount > 0;
|
|
33
|
-
const
|
|
35
|
+
const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
|
|
34
36
|
const isTopLevel = !(isWithinCollapsible || isWithinGroup || isWithinRow);
|
|
35
37
|
return /*#__PURE__*/ _jsx(Fragment, {
|
|
36
38
|
children: /*#__PURE__*/ _jsx("div", {
|
|
@@ -81,7 +83,7 @@ const GroupField = (props)=>{
|
|
|
81
83
|
margins: "small",
|
|
82
84
|
path: path,
|
|
83
85
|
permissions: permissions?.fields,
|
|
84
|
-
readOnly:
|
|
86
|
+
readOnly: disabled,
|
|
85
87
|
schemaPath: schemaPath
|
|
86
88
|
})
|
|
87
89
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Group/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Group/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { Fragment } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport {\n useFormInitializing,\n useFormProcessing,\n useFormSubmitted,\n} from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useRow } from '../Row/provider.js'\nimport { useTabs } from '../Tabs/provider.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\nimport { GroupProvider, useGroup } from './provider.js'\n\nconst baseClass = 'group-field'\n\nexport type GroupFieldProps = FormFieldBase & {\n fieldMap: FieldMap\n forceRender?: boolean\n hideGutter?: boolean\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nconst GroupField: React.FC<GroupFieldProps> = (props) => {\n const {\n CustomDescription,\n CustomLabel,\n className,\n descriptionProps,\n fieldMap,\n hideGutter,\n label,\n readOnly: readOnlyFromProps,\n style,\n width,\n } = props\n\n const { path, permissions, readOnly: readOnlyFromContext, schemaPath } = useFieldProps()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n const isWithinGroup = useGroup()\n const isWithinRow = useRow()\n const isWithinTab = useTabs()\n const { errorPaths } = useField({ path })\n const formInitializing = useFormInitializing()\n const formProcessing = useFormProcessing()\n const submitted = useFormSubmitted()\n const errorCount = errorPaths.length\n const fieldHasErrors = submitted && errorCount > 0\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const isTopLevel = !(isWithinCollapsible || isWithinGroup || isWithinRow)\n\n return (\n <Fragment>\n <div\n className={[\n fieldBaseClass,\n baseClass,\n isTopLevel && `${baseClass}--top-level`,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n isWithinGroup && `${baseClass}--within-group`,\n isWithinRow && `${baseClass}--within-row`,\n isWithinTab && `${baseClass}--within-tab`,\n !hideGutter && isWithinGroup && `${baseClass}--gutter`,\n fieldHasErrors && `${baseClass}--has-error`,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n style={{\n ...style,\n width,\n }}\n >\n <GroupProvider>\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__header`}>\n {(CustomLabel || CustomDescription || label) && (\n <header>\n {CustomLabel !== undefined ? (\n CustomLabel\n ) : label ? (\n <h3 className={`${baseClass}__title`}>{getTranslation(label, i18n)}</h3>\n ) : null}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </header>\n )}\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n <RenderFields\n fieldMap={fieldMap}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={disabled}\n schemaPath={schemaPath}\n />\n </div>\n </GroupProvider>\n </div>\n </Fragment>\n )\n}\n\nexport { GroupProvider, useGroup }\n\nexport const Group = withCondition(GroupField)\n"],"names":["getTranslation","React","Fragment","useCollapsible","ErrorPill","FieldDescription","useFieldProps","useFormInitializing","useFormProcessing","useFormSubmitted","RenderFields","useField","withCondition","useTranslation","useRow","useTabs","fieldBaseClass","GroupProvider","useGroup","baseClass","GroupField","props","CustomDescription","CustomLabel","className","descriptionProps","fieldMap","hideGutter","label","readOnly","readOnlyFromProps","style","width","path","permissions","readOnlyFromContext","schemaPath","i18n","isWithinCollapsible","isWithinGroup","isWithinRow","isWithinTab","errorPaths","formInitializing","formProcessing","submitted","errorCount","length","fieldHasErrors","disabled","isTopLevel","div","filter","Boolean","join","id","replace","header","undefined","h3","count","withMessage","margins","fields","Group"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/JSON/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAO/D,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAMvD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/JSON/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAO/D,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAMvD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG;IAC3C,aAAa,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAyID,eAAO,MAAM,SAAS,0BAAoC,CAAA"}
|
|
@@ -27,11 +27,11 @@ const JSONFieldComponent = (props)=>{
|
|
|
27
27
|
jsonError
|
|
28
28
|
]);
|
|
29
29
|
const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
|
|
30
|
-
const
|
|
31
|
-
const { initialValue, path, setValue, showError, value } = useField({
|
|
30
|
+
const { formInitializing, formProcessing, initialValue, path, setValue, showError, value } = useField({
|
|
32
31
|
path: pathFromContext || pathFromProps || name,
|
|
33
32
|
validate: memoizedValidate
|
|
34
33
|
});
|
|
34
|
+
const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
|
|
35
35
|
const handleMount = useCallback((editor, monaco)=>{
|
|
36
36
|
if (!jsonSchema) return;
|
|
37
37
|
const existingSchemas = monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas || [];
|
|
@@ -51,7 +51,7 @@ const JSONFieldComponent = (props)=>{
|
|
|
51
51
|
value
|
|
52
52
|
]);
|
|
53
53
|
const handleChange = useCallback((val)=>{
|
|
54
|
-
if (
|
|
54
|
+
if (disabled) return;
|
|
55
55
|
setStringValue(val);
|
|
56
56
|
try {
|
|
57
57
|
setValue(val ? JSON.parse(val) : null);
|
|
@@ -61,12 +61,12 @@ const JSONFieldComponent = (props)=>{
|
|
|
61
61
|
setJsonError(e);
|
|
62
62
|
}
|
|
63
63
|
}, [
|
|
64
|
-
|
|
64
|
+
disabled,
|
|
65
65
|
setValue,
|
|
66
66
|
setStringValue
|
|
67
67
|
]);
|
|
68
68
|
useEffect(()=>{
|
|
69
|
-
if (hasLoadedValue) return;
|
|
69
|
+
if (hasLoadedValue || value === undefined) return;
|
|
70
70
|
setStringValue(value || initialValue ? JSON.stringify(value ? value : initialValue, null, 2) : '');
|
|
71
71
|
setHasLoadedValue(true);
|
|
72
72
|
}, [
|
|
@@ -80,7 +80,7 @@ const JSONFieldComponent = (props)=>{
|
|
|
80
80
|
baseClass,
|
|
81
81
|
className,
|
|
82
82
|
showError && 'error',
|
|
83
|
-
|
|
83
|
+
disabled && 'read-only'
|
|
84
84
|
].filter(Boolean).join(' '),
|
|
85
85
|
style: {
|
|
86
86
|
...style,
|
|
@@ -112,7 +112,7 @@ const JSONFieldComponent = (props)=>{
|
|
|
112
112
|
onChange: handleChange,
|
|
113
113
|
onMount: handleMount,
|
|
114
114
|
options: editorOptions,
|
|
115
|
-
readOnly:
|
|
115
|
+
readOnly: disabled,
|
|
116
116
|
value: stringValue
|
|
117
117
|
}),
|
|
118
118
|
AfterInput
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'json-field'\n\nimport type { JSONField as JSONFieldType } from 'payload/types'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\n\nexport type JSONFieldProps = FormFieldBase & {\n editorOptions?: JSONFieldType['admin']['editorOptions']\n jsonSchema?: Record<string, unknown>\n name?: string\n path?: string\n width?: string\n}\n\nconst JSONFieldComponent: React.FC<JSONFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n editorOptions,\n errorProps,\n jsonSchema,\n label,\n labelProps,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const [stringValue, setStringValue] = useState<string>()\n const [jsonError, setJsonError] = useState<string>()\n const [hasLoadedValue, setHasLoadedValue] = useState(false)\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, jsonError, required })\n },\n [validate, required, jsonError],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload/types'\n\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'json-field'\n\nimport type { JSONField as JSONFieldType } from 'payload/types'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\n\nexport type JSONFieldProps = FormFieldBase & {\n editorOptions?: JSONFieldType['admin']['editorOptions']\n jsonSchema?: Record<string, unknown>\n name?: string\n path?: string\n width?: string\n}\n\nconst JSONFieldComponent: React.FC<JSONFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n editorOptions,\n errorProps,\n jsonSchema,\n label,\n labelProps,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const [stringValue, setStringValue] = useState<string>()\n const [jsonError, setJsonError] = useState<string>()\n const [hasLoadedValue, setHasLoadedValue] = useState(false)\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, jsonError, required })\n },\n [validate, required, jsonError],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, initialValue, path, setValue, showError, value } =\n useField<string>({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const handleMount = useCallback(\n (editor, monaco) => {\n if (!jsonSchema) return\n\n const existingSchemas = monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas || []\n const modelUri = monaco.Uri.parse(jsonSchema.uri)\n\n const model = monaco.editor.createModel(JSON.stringify(value, null, 2), 'json', modelUri)\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n enableSchemaRequest: true,\n schemas: [...existingSchemas, jsonSchema],\n validate: true,\n })\n\n editor.setModel(model)\n },\n [jsonSchema, value],\n )\n\n const handleChange = useCallback(\n (val) => {\n if (disabled) return\n setStringValue(val)\n\n try {\n setValue(val ? JSON.parse(val) : null)\n setJsonError(undefined)\n } catch (e) {\n setValue(val ? val : null)\n setJsonError(e)\n }\n },\n [disabled, setValue, setStringValue],\n )\n\n useEffect(() => {\n if (hasLoadedValue || value === undefined) return\n\n setStringValue(\n value || initialValue ? JSON.stringify(value ? value : initialValue, null, 2) : '',\n )\n\n setHasLoadedValue(true)\n }, [initialValue, value, hasLoadedValue])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n disabled && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {BeforeInput}\n <CodeEditor\n defaultLanguage=\"json\"\n onChange={handleChange}\n onMount={handleMount}\n options={editorOptions}\n readOnly={disabled}\n value={stringValue}\n />\n {AfterInput}\n </div>\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n )\n}\n\nexport const JSONField = withCondition(JSONFieldComponent)\n"],"names":["React","useCallback","useEffect","useState","CodeEditor","FieldLabel","useField","withCondition","fieldBaseClass","baseClass","FieldDescription","FieldError","useFieldProps","JSONFieldComponent","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","editorOptions","errorProps","jsonSchema","label","labelProps","path","pathFromProps","readOnly","readOnlyFromProps","required","style","validate","width","stringValue","setStringValue","jsonError","setJsonError","hasLoadedValue","setHasLoadedValue","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","initialValue","setValue","showError","disabled","handleMount","editor","monaco","existingSchemas","languages","json","jsonDefaults","diagnosticsOptions","schemas","modelUri","Uri","parse","uri","model","createModel","JSON","stringify","setDiagnosticsOptions","enableSchemaRequest","setModel","handleChange","val","undefined","e","div","filter","Boolean","join","defaultLanguage","onChange","onMount","JSONField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,OAAOA,SAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,QAAO;AAE/D,SAASC,UAAU,QAAQ,qCAAoC;AAC/D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,cAAc,QAAQ,qBAAoB;AAGnD,MAAMC,YAAY;AAMlB,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AAUvE,MAAMC,qBAA+C,CAACC;IACpD,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,aAAa,EACbC,UAAU,EACVC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGrB;IAEJ,MAAM,CAACsB,aAAaC,eAAe,GAAGlC;IACtC,MAAM,CAACmC,WAAWC,aAAa,GAAGpC;IAClC,MAAM,CAACqC,gBAAgBC,kBAAkB,GAAGtC,SAAS;IAErD,MAAMuC,mBAAmCzC,YACvC,CAAC0C,OAAOC;QACN,IAAI,OAAOV,aAAa,YACtB,OAAOA,SAASS,OAAO;YAAE,GAAGC,OAAO;YAAEN;YAAWN;QAAS;IAC7D,GACA;QAACE;QAAUF;QAAUM;KAAU;IAGjC,MAAM,EAAEV,MAAMiB,eAAe,EAAEf,UAAUgB,mBAAmB,EAAE,GAAGlC;IAEjE,MAAM,EAAEmC,gBAAgB,EAAEC,cAAc,EAAEC,YAAY,EAAErB,IAAI,EAAEsB,QAAQ,EAAEC,SAAS,EAAER,KAAK,EAAE,GACxFrC,SAAiB;QACfsB,MAAMiB,mBAAmBhB,iBAAiBd;QAC1CmB,UAAUQ;IACZ;IAEF,MAAMU,WAAWrB,qBAAqBe,uBAAuBE,kBAAkBD;IAE/E,MAAMM,cAAcpD,YAClB,CAACqD,QAAQC;QACP,IAAI,CAAC9B,YAAY;QAEjB,MAAM+B,kBAAkBD,OAAOE,SAAS,CAACC,IAAI,CAACC,YAAY,CAACC,kBAAkB,CAACC,OAAO,IAAI,EAAE;QAC3F,MAAMC,WAAWP,OAAOQ,GAAG,CAACC,KAAK,CAACvC,WAAWwC,GAAG;QAEhD,MAAMC,QAAQX,OAAOD,MAAM,CAACa,WAAW,CAACC,KAAKC,SAAS,CAAC1B,OAAO,MAAM,IAAI,QAAQmB;QAChFP,OAAOE,SAAS,CAACC,IAAI,CAACC,YAAY,CAACW,qBAAqB,CAAC;YACvDC,qBAAqB;YACrBV,SAAS;mBAAIL;gBAAiB/B;aAAW;YACzCS,UAAU;QACZ;QAEAoB,OAAOkB,QAAQ,CAACN;IAClB,GACA;QAACzC;QAAYkB;KAAM;IAGrB,MAAM8B,eAAexE,YACnB,CAACyE;QACC,IAAItB,UAAU;QACdf,eAAeqC;QAEf,IAAI;YACFxB,SAASwB,MAAMN,KAAKJ,KAAK,CAACU,OAAO;YACjCnC,aAAaoC;QACf,EAAE,OAAOC,GAAG;YACV1B,SAASwB,MAAMA,MAAM;YACrBnC,aAAaqC;QACf;IACF,GACA;QAACxB;QAAUF;QAAUb;KAAe;IAGtCnC,UAAU;QACR,IAAIsC,kBAAkBG,UAAUgC,WAAW;QAE3CtC,eACEM,SAASM,eAAemB,KAAKC,SAAS,CAAC1B,QAAQA,QAAQM,cAAc,MAAM,KAAK;QAGlFR,kBAAkB;IACpB,GAAG;QAACQ;QAAcN;QAAOH;KAAe;IAExC,qBACE,MAACqC;QACCxD,WAAW;YACTb;YACAC;YACAY;YACA8B,aAAa;YACbC,YAAY;SACb,CACE0B,MAAM,CAACC,SACPC,IAAI,CAAC;QACR/C,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAAC9B;gBACCe,aAAaA;gBACbM,OAAOA;gBACPM,UAAUA;gBACT,GAAIL,cAAc,CAAC,CAAC;;0BAEvB,KAAChB;gBAAWQ,aAAaA;gBAAaS,MAAMA;gBAAO,GAAIJ,cAAc,CAAC,CAAC;;0BACvE,MAACqD;gBAAIxD,WAAW,CAAC,EAAEb,eAAe,MAAM,CAAC;;kCACvC,KAACG;wBAAWQ,aAAaA;wBAAaS,MAAMA;wBAAO,GAAIJ,cAAc,CAAC,CAAC;;oBACtEP;kCACD,KAACb;wBACC6E,iBAAgB;wBAChBC,UAAUT;wBACVU,SAAS9B;wBACTT,SAASrB;wBACTO,UAAUsB;wBACVT,OAAOP;;oBAERpB;;;YAEFE,sBAAsByD,YACrBzD,kCAEA,KAACR;gBAAkB,GAAIY,oBAAoB,CAAC,CAAC;;;;AAIrD;AAEA,OAAO,MAAM8D,YAAY7E,cAAcM,oBAAmB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Number/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAWvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Number/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,eAAe,CAAA;AAInE,OAAO,KAA2C,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAWvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAAG;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAA;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAmMD,eAAO,MAAM,WAAW,4BAAsC,CAAA"}
|
|
@@ -31,11 +31,11 @@ const NumberFieldComponent = (props)=>{
|
|
|
31
31
|
required
|
|
32
32
|
]);
|
|
33
33
|
const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
|
|
34
|
-
const
|
|
35
|
-
const { path, setValue, showError, value } = useField({
|
|
34
|
+
const { formInitializing, formProcessing, path, setValue, showError, value } = useField({
|
|
36
35
|
path: pathFromContext || pathFromProps || name,
|
|
37
36
|
validate: memoizedValidate
|
|
38
37
|
});
|
|
38
|
+
const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
|
|
39
39
|
const handleChange = useCallback((e)=>{
|
|
40
40
|
const val = parseFloat(e.target.value);
|
|
41
41
|
let newVal = val;
|
|
@@ -53,7 +53,7 @@ const NumberFieldComponent = (props)=>{
|
|
|
53
53
|
const [valueToRender, setValueToRender] = useState([]) // Only for hasMany
|
|
54
54
|
;
|
|
55
55
|
const handleHasManyChange = useCallback((selectedOption)=>{
|
|
56
|
-
if (!
|
|
56
|
+
if (!disabled) {
|
|
57
57
|
let newValue;
|
|
58
58
|
if (!selectedOption) {
|
|
59
59
|
newValue = [];
|
|
@@ -67,7 +67,7 @@ const NumberFieldComponent = (props)=>{
|
|
|
67
67
|
setValue(newValue);
|
|
68
68
|
}
|
|
69
69
|
}, [
|
|
70
|
-
|
|
70
|
+
disabled,
|
|
71
71
|
setValue
|
|
72
72
|
]);
|
|
73
73
|
// useEffect update valueToRender:
|
|
@@ -94,7 +94,7 @@ const NumberFieldComponent = (props)=>{
|
|
|
94
94
|
'number',
|
|
95
95
|
className,
|
|
96
96
|
showError && 'error',
|
|
97
|
-
|
|
97
|
+
disabled && 'read-only',
|
|
98
98
|
hasMany && 'has-many'
|
|
99
99
|
].filter(Boolean).join(' '),
|
|
100
100
|
style: {
|
|
@@ -118,7 +118,7 @@ const NumberFieldComponent = (props)=>{
|
|
|
118
118
|
}),
|
|
119
119
|
hasMany ? /*#__PURE__*/ _jsx(ReactSelect, {
|
|
120
120
|
className: `field-${path.replace(/\./g, '__')}`,
|
|
121
|
-
disabled:
|
|
121
|
+
disabled: disabled,
|
|
122
122
|
filterOption: (_, rawInput)=>{
|
|
123
123
|
// eslint-disable-next-line no-restricted-globals
|
|
124
124
|
const isOverHasMany = Array.isArray(value) && value.length >= maxRows;
|
|
@@ -148,7 +148,7 @@ const NumberFieldComponent = (props)=>{
|
|
|
148
148
|
children: [
|
|
149
149
|
BeforeInput,
|
|
150
150
|
/*#__PURE__*/ _jsx("input", {
|
|
151
|
-
disabled:
|
|
151
|
+
disabled: disabled,
|
|
152
152
|
id: `field-${path.replace(/\./g, '__')}`,
|
|
153
153
|
max: max,
|
|
154
154
|
min: min,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Number/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { NumberField as NumberFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isNumber } from 'payload/utilities'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type NumberFieldProps = FormFieldBase & {\n hasMany?: boolean\n max?: number\n maxRows?: number\n min?: number\n name?: string\n onChange?: (e: number) => void\n path?: string\n placeholder?: NumberFieldType['admin']['placeholder']\n step?: number\n width?: string\n}\n\nconst NumberFieldComponent: React.FC<NumberFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n hasMany = false,\n label,\n labelProps,\n max = Infinity,\n maxRows = Infinity,\n min = -Infinity,\n onChange: onChangeFromProps,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n step = 1,\n style,\n validate,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, max, min, required })\n }\n },\n [validate, min, max, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n\n const { path, setValue, showError, value } = useField<number | number[]>({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const handleChange = useCallback(\n (e) => {\n const val = parseFloat(e.target.value)\n let newVal = val\n\n if (Number.isNaN(val)) {\n newVal = undefined\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newVal)\n }\n\n setValue(newVal)\n },\n [onChangeFromProps, setValue],\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) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue],\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 toString: () => `${val}${index}`,\n value: (val as unknown as Record<string, number>)?.value || val,\n }, // You're probably wondering, why the hell is this done that way? Well, 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 }\n }),\n )\n }\n }, [value, hasMany])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'number',\n className,\n showError && 'error',\n readOnly && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly}\n filterOption={(_, rawInput) => {\n // eslint-disable-next-line no-restricted-globals\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n return isNumber(rawInput) && !isOverHasMany\n }}\n isClearable\n isCreatable\n isMulti\n isSortable\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 // numberOnly\n onChange={handleHasManyChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender as Option[]}\n />\n ) : (\n <div>\n {BeforeInput}\n <input\n disabled={readOnly}\n id={`field-${path.replace(/\\./g, '__')}`}\n max={max}\n min={min}\n name={path}\n onChange={handleChange}\n onWheel={(e) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n e.target.blur()\n }}\n placeholder={getTranslation(placeholder, i18n)}\n step={step}\n type=\"number\"\n value={typeof value === 'number' ? value : ''}\n />\n {AfterInput}\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n </div>\n )\n}\n\nexport const NumberField = withCondition(NumberFieldComponent)\n"],"names":["getTranslation","isNumber","React","useCallback","useEffect","useState","ReactSelect","FieldDescription","FieldError","FieldLabel","useFieldProps","useField","withCondition","useTranslation","fieldBaseClass","NumberFieldComponent","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","hasMany","label","labelProps","max","Infinity","maxRows","min","onChange","onChangeFromProps","path","pathFromProps","placeholder","readOnly","readOnlyFromProps","required","step","style","validate","width","i18n","t","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","setValue","showError","handleChange","e","val","parseFloat","target","newVal","Number","isNaN","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","index","id","toString","div","filter","Boolean","join","replace","disabled","filterOption","_","rawInput","isOverHasMany","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","input","onWheel","blur","type","NumberField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Number/index.tsx"],"sourcesContent":["/* eslint-disable react/destructuring-assignment */\n'use client'\nimport type { NumberField as NumberFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isNumber } from 'payload/utilities'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { FieldDescription } from '../../forms/FieldDescription/index.js'\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type NumberFieldProps = FormFieldBase & {\n hasMany?: boolean\n max?: number\n maxRows?: number\n min?: number\n name?: string\n onChange?: (e: number) => void\n path?: string\n placeholder?: NumberFieldType['admin']['placeholder']\n step?: number\n width?: string\n}\n\nconst NumberFieldComponent: React.FC<NumberFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n hasMany = false,\n label,\n labelProps,\n max = Infinity,\n maxRows = Infinity,\n min = -Infinity,\n onChange: onChangeFromProps,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n step = 1,\n style,\n validate,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, max, min, required })\n }\n },\n [validate, min, max, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField<\n number | number[]\n >({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const handleChange = useCallback(\n (e) => {\n const val = parseFloat(e.target.value)\n let newVal = val\n\n if (Number.isNaN(val)) {\n newVal = undefined\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newVal)\n }\n\n setValue(newVal)\n },\n [onChangeFromProps, setValue],\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 (!disabled) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n\n setValue(newValue)\n }\n },\n [disabled, setValue],\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 toString: () => `${val}${index}`,\n value: (val as unknown as Record<string, number>)?.value || val,\n }, // You're probably wondering, why the hell is this done that way? Well, 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 }\n }),\n )\n }\n }, [value, hasMany])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'number',\n className,\n showError && 'error',\n disabled && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={disabled}\n filterOption={(_, rawInput) => {\n // eslint-disable-next-line no-restricted-globals\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n return isNumber(rawInput) && !isOverHasMany\n }}\n isClearable\n isCreatable\n isMulti\n isSortable\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 // numberOnly\n onChange={handleHasManyChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender as Option[]}\n />\n ) : (\n <div>\n {BeforeInput}\n <input\n disabled={disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n max={max}\n min={min}\n name={path}\n onChange={handleChange}\n onWheel={(e) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n e.target.blur()\n }}\n placeholder={getTranslation(placeholder, i18n)}\n step={step}\n type=\"number\"\n value={typeof value === 'number' ? value : ''}\n />\n {AfterInput}\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n </div>\n )\n}\n\nexport const NumberField = withCondition(NumberFieldComponent)\n"],"names":["getTranslation","isNumber","React","useCallback","useEffect","useState","ReactSelect","FieldDescription","FieldError","FieldLabel","useFieldProps","useField","withCondition","useTranslation","fieldBaseClass","NumberFieldComponent","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","hasMany","label","labelProps","max","Infinity","maxRows","min","onChange","onChangeFromProps","path","pathFromProps","placeholder","readOnly","readOnlyFromProps","required","step","style","validate","width","i18n","t","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","setValue","showError","disabled","handleChange","e","val","parseFloat","target","newVal","Number","isNaN","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","index","id","toString","div","filter","Boolean","join","replace","filterOption","_","rawInput","isOverHasMany","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","input","onWheel","blur","type","NumberField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Password/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE1E,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Password/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAkB,WAAW,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE1E,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAOvD,OAAO,cAAc,CAAA;AAErB,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AA0ED,eAAO,MAAM,QAAQ,8BAA+B,CAAA"}
|
|
@@ -7,7 +7,7 @@ import { useField } from '../../forms/useField/index.js';
|
|
|
7
7
|
import { withCondition } from '../../forms/withCondition/index.js';
|
|
8
8
|
import { fieldBaseClass } from '../shared/index.js';
|
|
9
9
|
const PasswordField = (props)=>{
|
|
10
|
-
const { name, CustomError, CustomLabel, autoComplete, className, disabled, errorProps, label, labelProps, path: pathFromProps, required, style, validate, width } = props;
|
|
10
|
+
const { name, CustomError, CustomLabel, autoComplete, className, disabled: disabledFromProps, errorProps, label, labelProps, path: pathFromProps, required, style, validate, width } = props;
|
|
11
11
|
const memoizedValidate = useCallback((value, options)=>{
|
|
12
12
|
if (typeof validate === 'function') {
|
|
13
13
|
return validate(value, {
|
|
@@ -19,16 +19,18 @@ const PasswordField = (props)=>{
|
|
|
19
19
|
validate,
|
|
20
20
|
required
|
|
21
21
|
]);
|
|
22
|
-
const { formProcessing, path, setValue, showError, value } = useField({
|
|
22
|
+
const { formInitializing, formProcessing, path, setValue, showError, value } = useField({
|
|
23
23
|
path: pathFromProps || name,
|
|
24
24
|
validate: memoizedValidate
|
|
25
25
|
});
|
|
26
|
+
const disabled = disabledFromProps || formInitializing || formProcessing;
|
|
26
27
|
return /*#__PURE__*/ _jsxs("div", {
|
|
27
28
|
className: [
|
|
28
29
|
fieldBaseClass,
|
|
29
30
|
'password',
|
|
30
31
|
className,
|
|
31
|
-
showError && 'error'
|
|
32
|
+
showError && 'error',
|
|
33
|
+
disabled && 'read-only'
|
|
32
34
|
].filter(Boolean).join(' '),
|
|
33
35
|
style: {
|
|
34
36
|
...style,
|
|
@@ -51,7 +53,7 @@ const PasswordField = (props)=>{
|
|
|
51
53
|
}),
|
|
52
54
|
/*#__PURE__*/ _jsx("input", {
|
|
53
55
|
autoComplete: autoComplete,
|
|
54
|
-
disabled:
|
|
56
|
+
disabled: disabled,
|
|
55
57
|
id: `field-${path.replace(/\./g, '__')}`,
|
|
56
58
|
name: path,
|
|
57
59
|
onChange: setValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Password/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate, Description, Validate } from 'payload/types'\n\nimport React, { useCallback } from 'react'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type PasswordFieldProps = FormFieldBase & {\n autoComplete?: string\n className?: string\n description?: Description\n disabled?: boolean\n name: string\n path?: string\n required?: boolean\n style?: React.CSSProperties\n validate?: Validate\n width?: string\n}\n\nconst PasswordField: React.FC<PasswordFieldProps> = (props) => {\n const {\n name,\n CustomError,\n CustomLabel,\n autoComplete,\n className,\n disabled,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { formProcessing, path, setValue, showError, value } = useField({\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n return (\n <div\n className={[fieldBaseClass
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Password/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate, Description, Validate } from 'payload/types'\n\nimport React, { useCallback } from 'react'\n\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { FieldError } from '../../forms/FieldError/index.js'\nimport { FieldLabel } from '../../forms/FieldLabel/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nexport type PasswordFieldProps = FormFieldBase & {\n autoComplete?: string\n className?: string\n description?: Description\n disabled?: boolean\n name: string\n path?: string\n required?: boolean\n style?: React.CSSProperties\n validate?: Validate\n width?: string\n}\n\nconst PasswordField: React.FC<PasswordFieldProps> = (props) => {\n const {\n name,\n CustomError,\n CustomLabel,\n autoComplete,\n className,\n disabled: disabledFromProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n required,\n style,\n validate,\n width,\n } = props\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField({\n path: pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const disabled = disabledFromProps || formInitializing || formProcessing\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'password',\n className,\n showError && 'error',\n disabled && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <input\n autoComplete={autoComplete}\n disabled={disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={setValue}\n type=\"password\"\n value={(value as string) || ''}\n />\n </div>\n </div>\n )\n}\n\nexport const Password = withCondition(PasswordField)\n"],"names":["React","useCallback","FieldError","FieldLabel","useField","withCondition","fieldBaseClass","PasswordField","props","name","CustomError","CustomLabel","autoComplete","className","disabled","disabledFromProps","errorProps","label","labelProps","path","pathFromProps","required","style","validate","width","memoizedValidate","value","options","formInitializing","formProcessing","setValue","showError","div","filter","Boolean","join","input","id","replace","onChange","type","Password"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;;AAGA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,cAAc,QAAQ,qBAAoB;AAgBnD,MAAMC,gBAA8C,CAACC;IACnD,MAAM,EACJC,IAAI,EACJC,WAAW,EACXC,WAAW,EACXC,YAAY,EACZC,SAAS,EACTC,UAAUC,iBAAiB,EAC3BC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGhB;IAEJ,MAAMiB,mBAAmCxB,YACvC,CAACyB,OAAOC;QACN,IAAI,OAAOJ,aAAa,YAAY;YAClC,OAAOA,SAASG,OAAO;gBAAE,GAAGC,OAAO;gBAAEN;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEO,gBAAgB,EAAEC,cAAc,EAAEV,IAAI,EAAEW,QAAQ,EAAEC,SAAS,EAAEL,KAAK,EAAE,GAAGtB,SAAS;QACtFe,MAAMC,iBAAiBX;QACvBc,UAAUE;IACZ;IAEA,MAAMX,WAAWC,qBAAqBa,oBAAoBC;IAE1D,qBACE,MAACG;QACCnB,WAAW;YACTP;YACA;YACAO;YACAkB,aAAa;YACbjB,YAAY;SACb,CACEmB,MAAM,CAACC,SACPC,IAAI,CAAC;QACRb,OAAO;YACL,GAAGA,KAAK;YACRE;QACF;;0BAEA,KAACrB;gBACCQ,aAAaA;gBACbM,OAAOA;gBACPI,UAAUA;gBACT,GAAIH,cAAc,CAAC,CAAC;;0BAEvB,MAACc;gBAAInB,WAAW,CAAC,EAAEP,eAAe,MAAM,CAAC;;kCACvC,KAACJ;wBAAWQ,aAAaA;wBAAaS,MAAMA;wBAAO,GAAIH,cAAc,CAAC,CAAC;;kCACvE,KAACoB;wBACCxB,cAAcA;wBACdE,UAAUA;wBACVuB,IAAI,CAAC,MAAM,EAAElB,KAAKmB,OAAO,CAAC,OAAO,MAAM,CAAC;wBACxC7B,MAAMU;wBACNoB,UAAUT;wBACVU,MAAK;wBACLd,OAAO,AAACA,SAAoB;;;;;;AAKtC;AAEA,OAAO,MAAMe,WAAWpC,cAAcE,eAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/RadioGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAsB,MAAM,OAAO,CAAA;AAQ1C,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAMvD,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/RadioGroup/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAsB,MAAM,OAAO,CAAA;AAQ1C,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAMvD,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,MAAM,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,QAAQ,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;AA8HrD,eAAO,MAAM,UAAU,2BAAiC,CAAA"}
|
|
@@ -27,11 +27,11 @@ const RadioGroupField = (props)=>{
|
|
|
27
27
|
required
|
|
28
28
|
]);
|
|
29
29
|
const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
|
|
30
|
-
const
|
|
31
|
-
const { path, setValue, showError, value: valueFromContext } = useField({
|
|
30
|
+
const { formInitializing, formProcessing, path, setValue, showError, value: valueFromContext } = useField({
|
|
32
31
|
path: pathFromContext || pathFromProps || name,
|
|
33
32
|
validate: memoizedValidate
|
|
34
33
|
});
|
|
34
|
+
const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing;
|
|
35
35
|
const value = valueFromContext || valueFromProps;
|
|
36
36
|
return /*#__PURE__*/ _jsxs("div", {
|
|
37
37
|
className: [
|
|
@@ -40,7 +40,7 @@ const RadioGroupField = (props)=>{
|
|
|
40
40
|
className,
|
|
41
41
|
`${baseClass}--layout-${layout}`,
|
|
42
42
|
showError && 'error',
|
|
43
|
-
|
|
43
|
+
disabled && `${baseClass}--read-only`
|
|
44
44
|
].filter(Boolean).join(' '),
|
|
45
45
|
style: {
|
|
46
46
|
...style,
|
|
@@ -81,7 +81,7 @@ const RadioGroupField = (props)=>{
|
|
|
81
81
|
if (typeof onChangeFromProps === 'function') {
|
|
82
82
|
onChangeFromProps(optionValue);
|
|
83
83
|
}
|
|
84
|
-
if (!
|
|
84
|
+
if (!disabled) {
|
|
85
85
|
setValue(optionValue);
|
|
86
86
|
}
|
|
87
87
|
},
|
|
@@ -90,7 +90,7 @@ const RadioGroupField = (props)=>{
|
|
|
90
90
|
value: option
|
|
91
91
|
},
|
|
92
92
|
path: path,
|
|
93
|
-
readOnly:
|
|
93
|
+
readOnly: disabled,
|
|
94
94
|
uuid: uuid
|
|
95
95
|
})
|
|
96
96
|
}, `${path} - ${optionValue}`);
|