@strapi/content-type-builder 5.48.1 → 5.49.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/admin/components/AIChat/components/Messages/Message.js +5 -1
- package/dist/admin/components/AIChat/components/Messages/Message.js.map +1 -1
- package/dist/admin/components/AIChat/components/SimpleMenu.js +3 -2
- package/dist/admin/components/AIChat/components/SimpleMenu.js.map +1 -1
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js +7 -2
- package/dist/admin/components/AIChat/hooks/useCodeUpload.js.map +1 -1
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js +11 -5
- package/dist/admin/components/AIChat/lib/transforms/schemas/toCTB.js.map +1 -1
- package/dist/admin/components/AllowedTypesSelect.js +5 -1
- package/dist/admin/components/AllowedTypesSelect.js.map +1 -1
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js +3 -2
- package/dist/admin/components/AttributeOptions/EmptyAttributes.js.map +1 -1
- package/dist/admin/components/AttributeRow.js +10 -5
- package/dist/admin/components/AttributeRow.js.map +1 -1
- package/dist/admin/components/AutoReloadOverlayBlocker.js +3 -2
- package/dist/admin/components/AutoReloadOverlayBlocker.js.map +1 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js +5 -1
- package/dist/admin/components/ComponentCard/ComponentCard.js.map +1 -1
- package/dist/admin/components/ComponentList.js +5 -1
- package/dist/admin/components/ComponentList.js.map +1 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js +5 -1
- package/dist/admin/components/ContentTypeBuilderNav/useContentTypeBuilderMenu.js.map +1 -1
- package/dist/admin/components/DataManager/DataManagerProvider.js +12 -6
- package/dist/admin/components/DataManager/DataManagerProvider.js.map +1 -1
- package/dist/admin/components/DataManager/reducer.js +7 -2
- package/dist/admin/components/DataManager/reducer.js.map +1 -1
- package/dist/admin/components/DataManager/utils/cleanData.js +10 -4
- package/dist/admin/components/DataManager/utils/cleanData.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js +5 -1
- package/dist/admin/components/DataManager/utils/retrieveComponentsThatHaveComponents.js.map +1 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js +5 -1
- package/dist/admin/components/DataManager/utils/retrieveSpecificInfoFromComponents.js.map +1 -1
- package/dist/admin/components/FormModal/FormModal.js +30 -22
- package/dist/admin/components/FormModal/FormModal.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/ConditionForm.js +3 -2
- package/dist/admin/components/FormModal/attributes/ConditionForm.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/types.js +7 -3
- package/dist/admin/components/FormModal/attributes/types.js.map +1 -1
- package/dist/admin/components/FormModal/attributes/validation/common.js +8 -4
- package/dist/admin/components/FormModal/attributes/validation/common.js.map +1 -1
- package/dist/admin/components/FormModal/component/createComponentSchema.js +3 -2
- package/dist/admin/components/FormModal/component/createComponentSchema.js.map +1 -1
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js +3 -2
- package/dist/admin/components/FormModal/contentType/createContentTypeSchema.js.map +1 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js +5 -1
- package/dist/admin/components/FormModal/forms/utils/createCollectionName.js.map +1 -1
- package/dist/admin/components/FormModal/reducer.js +32 -26
- package/dist/admin/components/FormModal/reducer.js.map +1 -1
- package/dist/admin/components/FormModalHeader.js +6 -2
- package/dist/admin/components/FormModalHeader.js.map +1 -1
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js +3 -2
- package/dist/admin/components/FormModalNavigation/FormModalNavigationContext.js.map +1 -1
- package/dist/admin/components/FormModalSubHeader.js +6 -2
- package/dist/admin/components/FormModalSubHeader.js.map +1 -1
- package/dist/admin/components/GenericInputs.js +9 -4
- package/dist/admin/components/GenericInputs.js.map +1 -1
- package/dist/admin/components/IconPicker/constants.js +4 -3
- package/dist/admin/components/IconPicker/constants.js.map +1 -1
- package/dist/admin/components/PluralName.js +5 -1
- package/dist/admin/components/PluralName.js.map +1 -1
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js +13 -7
- package/dist/admin/components/Relation/RelationNaturePicker/RelationNaturePicker.js.map +1 -1
- package/dist/admin/components/TabForm.js +7 -3
- package/dist/admin/components/TabForm.js.map +1 -1
- package/dist/admin/pages/ListView/ListView.js +5 -1
- package/dist/admin/pages/ListView/ListView.js.map +1 -1
- package/dist/admin/utils/formAPI.js +11 -6
- package/dist/admin/utils/formAPI.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.js.map +1 -1
- package/dist/admin/utils/getMaxDepth.mjs.map +1 -1
- package/dist/admin/utils/nameToSlug.js +5 -1
- package/dist/admin/utils/nameToSlug.js.map +1 -1
- package/dist/admin/utils/toRegressedEnumValue.js +5 -1
- package/dist/admin/utils/toRegressedEnumValue.js.map +1 -1
- package/dist/server/controllers/components.js +6 -2
- package/dist/server/controllers/components.js.map +1 -1
- package/dist/server/controllers/content-types.js +8 -4
- package/dist/server/controllers/content-types.js.map +1 -1
- package/dist/server/controllers/validation/common.js +5 -1
- package/dist/server/controllers/validation/common.js.map +1 -1
- package/dist/server/controllers/validation/component.js +9 -5
- package/dist/server/controllers/validation/component.js.map +1 -1
- package/dist/server/controllers/validation/data-transform.js +6 -2
- package/dist/server/controllers/validation/data-transform.js.map +1 -1
- package/dist/server/controllers/validation/model-schema.js +6 -2
- package/dist/server/controllers/validation/model-schema.js.map +1 -1
- package/dist/server/controllers/validation/types.js +8 -4
- package/dist/server/controllers/validation/types.js.map +1 -1
- package/dist/server/routes/content-api.js +3 -2
- package/dist/server/routes/content-api.js.map +1 -1
- package/dist/server/services/api-handler.js +4 -3
- package/dist/server/services/api-handler.js.map +1 -1
- package/dist/server/services/api-handler.mjs.map +1 -1
- package/dist/server/services/components.js.map +1 -1
- package/dist/server/services/components.mjs.map +1 -1
- package/dist/server/services/content-types.js +8 -4
- package/dist/server/services/content-types.js.map +1 -1
- package/dist/server/services/schema-builder/component-builder.js +11 -5
- package/dist/server/services/schema-builder/component-builder.js.map +1 -1
- package/dist/server/services/schema-builder/content-type-builder.js +13 -8
- package/dist/server/services/schema-builder/content-type-builder.js.map +1 -1
- package/dist/server/services/schema-builder/index.js +5 -1
- package/dist/server/services/schema-builder/index.js.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.js +35 -29
- package/dist/server/services/schema-builder/schema-handler.js.map +1 -1
- package/dist/server/services/schema-builder/schema-handler.mjs.map +1 -1
- package/dist/server/services/schema.js +5 -1
- package/dist/server/services/schema.js.map +1 -1
- package/dist/server/src/services/components.d.ts +3 -26
- package/dist/server/src/services/components.d.ts.map +1 -1
- package/dist/server/src/services/schema-builder/schema-handler.d.ts +1 -0
- package/dist/server/src/services/schema-builder/schema-handler.d.ts.map +1 -1
- package/dist/server/utils/attributes.js +12 -7
- package/dist/server/utils/attributes.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericInputs.js","sources":["../../../admin/src/components/GenericInputs.tsx"],"sourcesContent":["/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ninterface CustomInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n value?: Schema.Attribute.Value<TAttribute>;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: Schema.Attribute.Value<TAttribute>;\n isNullable?: boolean;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n onDelete,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable,\n autoFocus,\n attribute,\n attributeName,\n conditionFields,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs ? customInputs[type] : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n const valueWithEmptyStringFallback = value ?? '';\n\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n onDelete={onDelete}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n autoFocus={autoFocus}\n attributeName={attributeName}\n conditionFields={conditionFields}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={value}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : defaultValue || false}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={value}\n autoFocus={autoFocus}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={value}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && !['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n"],"names":["GenericInput","autoComplete","customInputs","description","disabled","intlLabel","labelAction","error","name","onChange","onDelete","options","placeholder","required","step","type","value","defaultValue","isNullable","autoFocus","attribute","attributeName","conditionFields","rest","formatMessage","useIntl","getFieldHintValue","key","hint","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","React","useState","CustomInput","undefined","valueWithEmptyStringFallback","getErrorMessage","id","defaultMessage","values","errorMessage","_jsx","label","formattedPlaceholder","getComponent","JSONInput","json","length","target","minHeight","maxHeight","Toggle","checked","offLabel","onLabel","e","Checkbox","onCheckedChange","Boolean","dateValue","parseDateValue","DateTimePicker","clearLabel","date","formattedDate","toISOString","onClear","DatePicker","formatISO","representation","NumberInput","onValueChange","TextInput","endAction","button","aria-label","onClick","prev","style","border","padding","background","Eye","fill","EyeStriked","SingleSelect","map","metadatas","hidden","SingleSelectOption","Textarea","event","formattedValue","handleTimeChange","TimePicker","time","handleTimeChangeEvent","_jsxs","Field","Root","Label","action","Error","Hint","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","message","divider","br","includes","maxValue","Math","parsedMin","Number","parsedMinLength","isNaN","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","isEqual"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GenericInputs.js","sources":["../../../admin/src/components/GenericInputs.tsx"],"sourcesContent":["/**\n * TODO: we should be using the FormRenderer from the admin to do this,\n * but the CTB has no tests or types, so we can't refactor it safely.\n * So we're just adding this to the tech debt.\n */\n\nimport * as React from 'react';\n\nimport {\n Checkbox,\n DatePicker,\n DateTimePicker,\n Field,\n JSONInput,\n NumberInput,\n SingleSelect,\n SingleSelectOption,\n Textarea,\n TextInput,\n TimePicker,\n Toggle,\n} from '@strapi/design-system';\nimport { Eye, EyeStriked } from '@strapi/icons';\nimport formatISO from 'date-fns/formatISO';\nimport isEqual from 'lodash/isEqual';\nimport { type MessageDescriptor, type PrimitiveType, useIntl } from 'react-intl';\n\nimport { parseDateValue } from '../utils/parseDateValue';\nimport { handleTimeChange, handleTimeChangeEvent } from '../utils/timeFormat';\n\nimport type { Schema } from '@strapi/types';\n\ninterface TranslationMessage extends MessageDescriptor {\n values?: Record<string, PrimitiveType>;\n}\n\ninterface InputOption {\n metadatas: {\n intlLabel: TranslationMessage;\n disabled: boolean;\n hidden: boolean;\n };\n key: string;\n value: string;\n}\n\ninterface CustomInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string;\n hint?: string | React.JSX.Element | (string | React.JSX.Element)[];\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n value?: Schema.Attribute.Value<TAttribute>;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\ninterface GenericInputProps<\n TAttribute extends Schema.Attribute.AnyAttribute = Schema.Attribute.AnyAttribute,\n> {\n attribute?: TAttribute;\n autoComplete?: string;\n customInputs?: Record<string, React.ComponentType<CustomInputProps<TAttribute>>>;\n description?: TranslationMessage;\n disabled?: boolean;\n error?: string | TranslationMessage;\n intlLabel: TranslationMessage;\n labelAction?: React.ReactNode;\n name: string;\n onChange: (\n payload: {\n target: {\n name: string;\n value: Schema.Attribute.Value<TAttribute>;\n type?: string;\n };\n },\n shouldSetInitialValue?: boolean\n ) => void;\n onDelete?: () => void;\n options?: InputOption[];\n placeholder?: TranslationMessage;\n required?: boolean;\n step?: number;\n type: string;\n // TODO: The value depends on the input type, too complicated to handle all cases here\n value?: Schema.Attribute.Value<TAttribute>;\n isNullable?: boolean;\n autoFocus?: boolean;\n attributeName?: string;\n conditionFields?: Record<string, boolean>;\n}\n\nconst GenericInput = ({\n autoComplete,\n customInputs,\n description,\n disabled,\n intlLabel,\n labelAction,\n error,\n name,\n onChange,\n onDelete,\n options = [],\n placeholder,\n required,\n step,\n type,\n value: defaultValue,\n isNullable,\n autoFocus,\n attribute,\n attributeName,\n conditionFields,\n ...rest\n}: GenericInputProps) => {\n const { formatMessage } = useIntl();\n\n // TODO: Workaround to get the field hint values if they exist on the type\n const getFieldHintValue = (\n attribute?: Schema.Attribute.AnyAttribute,\n key?: keyof FieldSchema\n ) => {\n if (!attribute) return;\n\n if (key === 'minLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'maxLength' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'max' && key in attribute) {\n return attribute[key];\n }\n\n if (key === 'min' && key in attribute) {\n return attribute[key];\n }\n };\n\n const { hint } = useFieldHint({\n description,\n fieldSchema: {\n minLength: getFieldHintValue(attribute, 'minLength'),\n maxLength: getFieldHintValue(attribute, 'maxLength'),\n max: getFieldHintValue(attribute, 'max'),\n min: getFieldHintValue(attribute, 'min'),\n },\n type: attribute?.type || type,\n });\n\n const [showPassword, setShowPassword] = React.useState(false);\n\n const CustomInput = customInputs ? customInputs[type] : null;\n\n // the API always returns null, which throws an error in React,\n // therefore we cast this case to undefined\n const value = defaultValue ?? undefined;\n\n /*\n TODO: ideally we should pass in `defaultValue` and `value` for\n inputs, in order to make them controlled components. This variable\n acts as a fallback for now, to prevent React errors in devopment mode\n\n See: https://github.com/strapi/strapi/pull/12861\n */\n const valueWithEmptyStringFallback = value ?? '';\n\n function getErrorMessage(error: string | TranslationMessage | undefined) {\n if (!error) {\n return null;\n }\n\n if (typeof error === 'string') {\n return formatMessage({ id: error, defaultMessage: error });\n }\n\n const values = {\n ...error.values,\n };\n\n return formatMessage(\n {\n id: error.id,\n defaultMessage: error?.defaultMessage ?? error.id,\n },\n values\n );\n }\n\n const errorMessage = getErrorMessage(error) ?? undefined;\n\n if (CustomInput) {\n return (\n <CustomInput\n {...rest}\n attribute={attribute}\n description={description}\n hint={hint}\n disabled={disabled}\n intlLabel={intlLabel}\n labelAction={labelAction}\n error={errorMessage || ''}\n name={name}\n onChange={onChange}\n onDelete={onDelete}\n options={options}\n required={required}\n placeholder={placeholder}\n type={type}\n value={value}\n autoFocus={autoFocus}\n attributeName={attributeName}\n conditionFields={conditionFields}\n />\n );\n }\n\n const label = intlLabel.id\n ? formatMessage(\n { id: intlLabel.id, defaultMessage: intlLabel.defaultMessage },\n { ...intlLabel.values }\n )\n : name;\n\n const formattedPlaceholder = placeholder\n ? formatMessage(\n { id: placeholder.id, defaultMessage: placeholder.defaultMessage },\n { ...placeholder.values }\n )\n : '';\n\n const getComponent = () => {\n switch (type) {\n case 'json': {\n return (\n <JSONInput\n value={value}\n disabled={disabled}\n onChange={(json) => {\n // Default to null when the field is not required and there is no input value\n const value =\n attribute && 'required' in attribute && !attribute?.required && !json.length\n ? null\n : json;\n onChange({ target: { name, value } }, false);\n }}\n minHeight=\"25.2rem\"\n maxHeight=\"50.4rem\"\n />\n );\n }\n case 'bool': {\n return (\n <Toggle\n checked={defaultValue === null ? null : defaultValue || false}\n disabled={disabled}\n offLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.off-label',\n defaultMessage: 'False',\n })}\n onLabel={formatMessage({\n id: 'app.components.ToggleCheckbox.on-label',\n defaultMessage: 'True',\n })}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.checked } });\n }}\n />\n );\n }\n case 'checkbox': {\n return (\n <Checkbox\n disabled={disabled}\n onCheckedChange={(value) => {\n onChange({ target: { name, value } });\n }}\n checked={Boolean(value)}\n >\n {label}\n </Checkbox>\n );\n }\n case 'datetime': {\n const dateValue = parseDateValue(value);\n return (\n <DateTimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n // check if date is not null or undefined\n const formattedDate = date ? date.toISOString() : null;\n\n onChange({ target: { name, value: formattedDate, type } });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'date': {\n const dateValue = parseDateValue(value);\n return (\n <DatePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(date) => {\n onChange({\n target: {\n name,\n value: date ? formatISO(date, { representation: 'date' }) : null,\n type,\n },\n });\n }}\n onClear={() => onChange({ target: { name, value: null, type } })}\n placeholder={formattedPlaceholder}\n value={dateValue}\n />\n );\n }\n case 'number': {\n return (\n <NumberInput\n disabled={disabled}\n onValueChange={(value) => {\n onChange({ target: { name, value, type } });\n }}\n placeholder={formattedPlaceholder}\n step={step}\n value={value}\n autoFocus={autoFocus}\n />\n );\n }\n case 'email': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"email\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'timestamp':\n case 'text':\n case 'string': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type=\"text\"\n value={valueWithEmptyStringFallback}\n autoFocus={autoFocus}\n />\n );\n }\n case 'password': {\n return (\n <TextInput\n autoComplete={autoComplete}\n disabled={disabled}\n endAction={\n <button\n aria-label={formatMessage({\n id: 'Auth.form.password.show-password',\n defaultMessage: 'Show password',\n })}\n onClick={() => {\n setShowPassword((prev) => !prev);\n }}\n style={{\n border: 'none',\n padding: 0,\n background: 'transparent',\n }}\n type=\"button\"\n >\n {showPassword ? <Eye fill=\"neutral500\" /> : <EyeStriked fill=\"neutral500\" />}\n </button>\n }\n onChange={(e) => {\n onChange({ target: { name, value: e.target.value, type } });\n }}\n placeholder={formattedPlaceholder}\n type={showPassword ? 'text' : 'password'}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'select': {\n return (\n <SingleSelect\n disabled={disabled}\n onChange={(value) => {\n onChange({ target: { name, value, type: 'select' } });\n }}\n placeholder={formattedPlaceholder}\n value={value}\n >\n {options.map(({ metadatas: { intlLabel, disabled, hidden }, key, value }) => {\n return (\n <SingleSelectOption key={key} value={value} disabled={disabled} hidden={hidden}>\n {formatMessage(intlLabel)}\n </SingleSelectOption>\n );\n })}\n </SingleSelect>\n );\n }\n case 'textarea': {\n return (\n <Textarea\n disabled={disabled}\n onChange={(event) => onChange({ target: { name, value: event.target.value, type } })}\n placeholder={formattedPlaceholder}\n value={valueWithEmptyStringFallback}\n />\n );\n }\n case 'time': {\n const formattedValue = handleTimeChange({ value, onChange, name, type });\n\n return (\n <TimePicker\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n disabled={disabled}\n onChange={(time) => handleTimeChangeEvent(onChange, name, type, time)}\n onClear={() => handleTimeChangeEvent(onChange, name, type, undefined)}\n value={formattedValue}\n />\n );\n }\n default: {\n /**\n * If there's no component for the given type, we return a disabled text input\n * showing a \"Not supported\" title to illustrate the issue.\n */\n return <TextInput disabled placeholder=\"Not supported\" type=\"text\" value=\"\" />;\n }\n }\n };\n\n return (\n <Field.Root error={errorMessage} name={name} hint={hint} required={required}>\n {type !== 'checkbox' ? <Field.Label action={labelAction}>{label}</Field.Label> : null}\n {getComponent()}\n <Field.Error />\n <Field.Hint />\n </Field.Root>\n );\n};\n\ntype FieldSchema = {\n minLength?: number | string;\n maxLength?: number | string;\n max?: number | string;\n min?: number | string;\n};\ninterface UseFieldHintProps {\n description?: MessageDescriptor & { values?: Record<string, PrimitiveType> };\n fieldSchema?: FieldSchema;\n type?: string;\n}\n\n/**\n * @description\n * A hook for generating the hint for a field\n */\nconst useFieldHint = ({ description, fieldSchema, type }: UseFieldHintProps) => {\n const { formatMessage } = useIntl();\n\n const buildDescription = () =>\n description?.id\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n\n const buildHint = () => {\n const { maximum, minimum } = getMinMax(fieldSchema);\n const units = getFieldUnits({\n type,\n minimum,\n maximum,\n });\n\n const minIsNumber = typeof minimum === 'number';\n const maxIsNumber = typeof maximum === 'number';\n const hasMinAndMax = maxIsNumber && minIsNumber;\n const hasMinOrMax = maxIsNumber || minIsNumber;\n\n if (!description?.id && !hasMinOrMax) {\n return '';\n }\n\n return formatMessage(\n {\n id: 'content-manager.form.Input.hint.text',\n defaultMessage:\n '{min, select, undefined {} other {min. {min}}}{divider}{max, select, undefined {} other {max. {max}}}{unit}{br}{description}',\n },\n {\n min: minimum,\n max: maximum,\n description: buildDescription(),\n unit: units?.message && hasMinOrMax ? formatMessage(units.message, units.values) : null,\n divider: hasMinAndMax\n ? formatMessage({\n id: 'content-manager.form.Input.hint.minMaxDivider',\n defaultMessage: ' / ',\n })\n : null,\n br: hasMinOrMax ? <br /> : null,\n }\n );\n };\n\n return { hint: buildHint() };\n};\n\nconst getFieldUnits = ({\n type,\n minimum,\n maximum,\n}: {\n type?: string;\n minimum?: number;\n maximum?: number;\n}) => {\n if (type && !['string', 'uid', 'richtext', 'email', 'password', 'text'].includes(type)) {\n return {};\n }\n const maxValue = Math.max(minimum || 0, maximum || 0);\n\n return {\n message: {\n id: 'content-manager.form.Input.hint.character.unit',\n defaultMessage: '{maxValue, plural, one { character} other { characters}}',\n },\n values: {\n maxValue,\n },\n };\n};\n\nconst getMinMax = (fieldSchema?: FieldSchema) => {\n if (!fieldSchema) {\n return { maximum: undefined, minimum: undefined };\n }\n\n const { minLength, maxLength, max, min } = fieldSchema;\n\n let minimum;\n let maximum;\n\n const parsedMin = Number(min);\n const parsedMinLength = Number(minLength);\n\n if (!Number.isNaN(parsedMin)) {\n minimum = parsedMin;\n } else if (!Number.isNaN(parsedMinLength)) {\n minimum = parsedMinLength;\n }\n\n const parsedMax = Number(max);\n const parsedMaxLength = Number(maxLength);\n\n if (!Number.isNaN(parsedMax)) {\n maximum = parsedMax;\n } else if (!Number.isNaN(parsedMaxLength)) {\n maximum = parsedMaxLength;\n }\n\n return { maximum, minimum };\n};\n\n/**\n * we've memoized this component because we use a context to store all the data in our form in the content-manager.\n * This then causes _every_ component to re-render because there are no selects incurring performance issues\n * in content-types as the content-type gets more complicated.\n */\nconst MemoizedGenericInput = React.memo(GenericInput, isEqual);\n\nexport type { GenericInputProps, CustomInputProps };\nexport { MemoizedGenericInput as GenericInput };\n"],"names":["GenericInput","autoComplete","customInputs","description","disabled","intlLabel","labelAction","error","name","onChange","onDelete","options","placeholder","required","step","type","value","defaultValue","isNullable","autoFocus","attribute","attributeName","conditionFields","rest","formatMessage","useIntl","getFieldHintValue","key","hint","useFieldHint","fieldSchema","minLength","maxLength","max","min","showPassword","setShowPassword","React","useState","CustomInput","undefined","valueWithEmptyStringFallback","getErrorMessage","id","defaultMessage","values","errorMessage","_jsx","label","formattedPlaceholder","getComponent","JSONInput","json","length","target","minHeight","maxHeight","Toggle","checked","offLabel","onLabel","e","Checkbox","onCheckedChange","Boolean","dateValue","parseDateValue","DateTimePicker","clearLabel","date","formattedDate","toISOString","onClear","DatePicker","formatISO","representation","NumberInput","onValueChange","TextInput","endAction","button","aria-label","onClick","prev","style","border","padding","background","Eye","fill","EyeStriked","SingleSelect","map","metadatas","hidden","SingleSelectOption","Textarea","event","formattedValue","handleTimeChange","TimePicker","time","handleTimeChangeEvent","_jsxs","Field","Root","Label","action","Error","Hint","buildDescription","buildHint","maximum","minimum","getMinMax","units","getFieldUnits","minIsNumber","maxIsNumber","hasMinAndMax","hasMinOrMax","unit","message","divider","br","includes","maxValue","Math","parsedMin","Number","parsedMinLength","isNaN","parsedMax","parsedMaxLength","MemoizedGenericInput","memo","isEqual"],"mappings":"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"}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
var Icons = require('@strapi/icons');
|
|
4
4
|
var Symbols = require('@strapi/icons/symbols');
|
|
5
5
|
|
|
6
|
-
function
|
|
6
|
+
function _interopNamespace(e) {
|
|
7
|
+
if (e && e.__esModule) return e;
|
|
7
8
|
var n = Object.create(null);
|
|
8
9
|
if (e) {
|
|
9
10
|
Object.keys(e).forEach(function (k) {
|
|
@@ -20,8 +21,8 @@ function _interopNamespaceDefault(e) {
|
|
|
20
21
|
return Object.freeze(n);
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
var Icons__namespace = /*#__PURE__*/
|
|
24
|
-
var Symbols__namespace = /*#__PURE__*/
|
|
24
|
+
var Icons__namespace = /*#__PURE__*/_interopNamespace(Icons);
|
|
25
|
+
var Symbols__namespace = /*#__PURE__*/_interopNamespace(Symbols);
|
|
25
26
|
|
|
26
27
|
const COMPONENT_ICONS = {
|
|
27
28
|
alien: Icons__namespace.Alien,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sources":["../../../../admin/src/components/IconPicker/constants.ts"],"sourcesContent":["import * as Icons from '@strapi/icons';\nimport * as Symbols from '@strapi/icons/symbols';\n\nexport type Icon = (typeof Icons)[keyof typeof Icons] | (typeof Symbols)[keyof typeof Symbols];\n\nconst COMPONENT_ICONS: Record<string, Icon> = {\n alien: Icons.Alien,\n apps: Icons.GridNine,\n archive: Icons.Archive,\n arrowDown: Icons.ArrowDown,\n arrowLeft: Icons.ArrowLeft,\n arrowRight: Icons.ArrowRight,\n arrowUp: Icons.ArrowUp,\n attachment: Icons.Paperclip,\n bell: Icons.Bell,\n bold: Icons.Bold,\n book: Icons.Book,\n briefcase: Icons.Briefcase,\n brush: Icons.PaintBrush,\n bulletList: Icons.BulletList,\n calendar: Icons.Calendar,\n car: Icons.Car,\n cast: Icons.Cast,\n chartBubble: Icons.ChartBubble,\n chartCircle: Icons.ChartCircle,\n chartPie: Icons.ChartPie,\n check: Icons.Check,\n clock: Icons.Clock,\n cloud: Icons.Cloud,\n code: Icons.Code,\n cog: Icons.Cog,\n collapse: Icons.Collapse,\n command: Icons.Command,\n connector: Icons.Faders,\n crop: Icons.Crop,\n crown: Icons.Crown,\n cup: Icons.Coffee,\n cursor: Icons.Cursor,\n dashboard: Icons.SquaresFour,\n database: Icons.Database,\n discuss: Icons.Discuss,\n doctor: Icons.Stethoscope,\n earth: Icons.Earth,\n emotionHappy: Icons.EmotionHappy,\n emotionUnhappy: Icons.EmotionUnhappy,\n envelop: Icons.Mail,\n exit: Icons.SignOut,\n expand: Icons.Expand,\n eye: Icons.Eye,\n feather: Icons.Feather,\n file: Icons.File,\n fileError: Icons.FileError,\n filePdf: Icons.FilePdf,\n fileXls: Icons.FileXls,\n fileZip: Icons.FileZip,\n fileCsv: Icons.FileCsv,\n filter: Icons.Filter,\n folder: Icons.Folder,\n gate: Icons.CastleTurret,\n gift: Icons.Gift,\n globe: Icons.Globe,\n grid: Icons.GridFour,\n handHeart: Icons.HandHeart,\n hashtag: Icons.Hashtag,\n headphone: Icons.Headphones,\n heart: Icons.Heart,\n house: Icons.House,\n information: Icons.Information,\n italic: Icons.Italic,\n key: Icons.Key,\n landscape: Icons.Images,\n layer: Icons.ListPlus,\n layout: Icons.Layout,\n lightbulb: Icons.Lightbulb,\n link: Icons.Link,\n lock: Icons.Lock,\n magic: Icons.Magic,\n manyToMany: Icons.ManyToMany,\n manyToOne: Icons.ManyToOne,\n manyWays: Icons.ManyWays,\n medium: Symbols.Medium,\n message: Icons.Message,\n microphone: Icons.Microphone,\n monitor: Icons.Monitor,\n moon: Icons.Moon,\n music: Icons.MusicNotes,\n oneToMany: Icons.OneToMany,\n oneToOne: Icons.OneToOne,\n oneWay: Icons.OneWay,\n paint: Icons.PaintBrush,\n paintBrush: Icons.PaintBrush,\n paperPlane: Icons.PaperPlane,\n pencil: Icons.Pencil,\n phone: Icons.Phone,\n picture: Icons.Image,\n pin: Icons.Pin,\n pinMap: Icons.PinMap,\n plane: Icons.Plane,\n play: Icons.Play,\n plus: Icons.Plus,\n priceTag: Icons.PriceTag,\n puzzle: Icons.PuzzlePiece,\n question: Icons.Question,\n quote: Icons.Quotes,\n refresh: Icons.ArrowClockwise,\n restaurant: Icons.Restaurant,\n rocket: Icons.Rocket,\n rotate: Icons.ArrowsCounterClockwise,\n scissors: Icons.Scissors,\n search: Icons.Search,\n seed: Icons.Plant,\n server: Icons.Server,\n shield: Icons.Shield,\n shirt: Icons.Shirt,\n shoppingCart: Icons.ShoppingCart,\n slideshow: Icons.PresentationChart,\n stack: Icons.Stack,\n star: Icons.Star,\n store: Icons.Store,\n strikeThrough: Icons.StrikeThrough,\n sun: Icons.Sun,\n television: Icons.Television,\n thumbDown: Icons.ThumbDown,\n thumbUp: Icons.ThumbUp,\n train: Icons.Train,\n twitter: Symbols.X,\n typhoon: Icons.Typhoon,\n underline: Icons.Underline,\n user: Icons.User,\n volumeMute: Icons.VolumeMute,\n volumeUp: Icons.VolumeUp,\n walk: Icons.Walk,\n wheelchair: Icons.Wheelchair,\n write: Icons.Feather,\n};\n\nexport { COMPONENT_ICONS };\n"],"names":["COMPONENT_ICONS","alien","Icons","Alien","apps","GridNine","archive","Archive","arrowDown","ArrowDown","arrowLeft","ArrowLeft","arrowRight","ArrowRight","arrowUp","ArrowUp","attachment","Paperclip","bell","Bell","bold","Bold","book","Book","briefcase","Briefcase","brush","PaintBrush","bulletList","BulletList","calendar","Calendar","car","Car","cast","Cast","chartBubble","ChartBubble","chartCircle","ChartCircle","chartPie","ChartPie","check","Check","clock","Clock","cloud","Cloud","code","Code","cog","Cog","collapse","Collapse","command","Command","connector","Faders","crop","Crop","crown","Crown","cup","Coffee","cursor","Cursor","dashboard","SquaresFour","database","Database","discuss","Discuss","doctor","Stethoscope","earth","Earth","emotionHappy","EmotionHappy","emotionUnhappy","EmotionUnhappy","envelop","Mail","exit","SignOut","expand","Expand","eye","Eye","feather","Feather","file","File","fileError","FileError","filePdf","FilePdf","fileXls","FileXls","fileZip","FileZip","fileCsv","FileCsv","filter","Filter","folder","Folder","gate","CastleTurret","gift","Gift","globe","Globe","grid","GridFour","handHeart","HandHeart","hashtag","Hashtag","headphone","Headphones","heart","Heart","house","House","information","Information","italic","Italic","key","Key","landscape","Images","layer","ListPlus","layout","Layout","lightbulb","Lightbulb","link","Link","lock","Lock","magic","Magic","manyToMany","ManyToMany","manyToOne","ManyToOne","manyWays","ManyWays","medium","Symbols","Medium","message","Message","microphone","Microphone","monitor","Monitor","moon","Moon","music","MusicNotes","oneToMany","OneToMany","oneToOne","OneToOne","oneWay","OneWay","paint","paintBrush","paperPlane","PaperPlane","pencil","Pencil","phone","Phone","picture","Image","pin","Pin","pinMap","PinMap","plane","Plane","play","Play","plus","Plus","priceTag","PriceTag","puzzle","PuzzlePiece","question","Question","quote","Quotes","refresh","ArrowClockwise","restaurant","Restaurant","rocket","Rocket","rotate","ArrowsCounterClockwise","scissors","Scissors","search","Search","seed","Plant","server","Server","shield","Shield","shirt","Shirt","shoppingCart","ShoppingCart","slideshow","PresentationChart","stack","Stack","star","Star","store","Store","strikeThrough","StrikeThrough","sun","Sun","television","Television","thumbDown","ThumbDown","thumbUp","ThumbUp","train","Train","twitter","X","typhoon","Typhoon","underline","Underline","user","User","volumeMute","VolumeMute","volumeUp","VolumeUp","walk","Walk","wheelchair","Wheelchair","write"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../admin/src/components/IconPicker/constants.ts"],"sourcesContent":["import * as Icons from '@strapi/icons';\nimport * as Symbols from '@strapi/icons/symbols';\n\nexport type Icon = (typeof Icons)[keyof typeof Icons] | (typeof Symbols)[keyof typeof Symbols];\n\nconst COMPONENT_ICONS: Record<string, Icon> = {\n alien: Icons.Alien,\n apps: Icons.GridNine,\n archive: Icons.Archive,\n arrowDown: Icons.ArrowDown,\n arrowLeft: Icons.ArrowLeft,\n arrowRight: Icons.ArrowRight,\n arrowUp: Icons.ArrowUp,\n attachment: Icons.Paperclip,\n bell: Icons.Bell,\n bold: Icons.Bold,\n book: Icons.Book,\n briefcase: Icons.Briefcase,\n brush: Icons.PaintBrush,\n bulletList: Icons.BulletList,\n calendar: Icons.Calendar,\n car: Icons.Car,\n cast: Icons.Cast,\n chartBubble: Icons.ChartBubble,\n chartCircle: Icons.ChartCircle,\n chartPie: Icons.ChartPie,\n check: Icons.Check,\n clock: Icons.Clock,\n cloud: Icons.Cloud,\n code: Icons.Code,\n cog: Icons.Cog,\n collapse: Icons.Collapse,\n command: Icons.Command,\n connector: Icons.Faders,\n crop: Icons.Crop,\n crown: Icons.Crown,\n cup: Icons.Coffee,\n cursor: Icons.Cursor,\n dashboard: Icons.SquaresFour,\n database: Icons.Database,\n discuss: Icons.Discuss,\n doctor: Icons.Stethoscope,\n earth: Icons.Earth,\n emotionHappy: Icons.EmotionHappy,\n emotionUnhappy: Icons.EmotionUnhappy,\n envelop: Icons.Mail,\n exit: Icons.SignOut,\n expand: Icons.Expand,\n eye: Icons.Eye,\n feather: Icons.Feather,\n file: Icons.File,\n fileError: Icons.FileError,\n filePdf: Icons.FilePdf,\n fileXls: Icons.FileXls,\n fileZip: Icons.FileZip,\n fileCsv: Icons.FileCsv,\n filter: Icons.Filter,\n folder: Icons.Folder,\n gate: Icons.CastleTurret,\n gift: Icons.Gift,\n globe: Icons.Globe,\n grid: Icons.GridFour,\n handHeart: Icons.HandHeart,\n hashtag: Icons.Hashtag,\n headphone: Icons.Headphones,\n heart: Icons.Heart,\n house: Icons.House,\n information: Icons.Information,\n italic: Icons.Italic,\n key: Icons.Key,\n landscape: Icons.Images,\n layer: Icons.ListPlus,\n layout: Icons.Layout,\n lightbulb: Icons.Lightbulb,\n link: Icons.Link,\n lock: Icons.Lock,\n magic: Icons.Magic,\n manyToMany: Icons.ManyToMany,\n manyToOne: Icons.ManyToOne,\n manyWays: Icons.ManyWays,\n medium: Symbols.Medium,\n message: Icons.Message,\n microphone: Icons.Microphone,\n monitor: Icons.Monitor,\n moon: Icons.Moon,\n music: Icons.MusicNotes,\n oneToMany: Icons.OneToMany,\n oneToOne: Icons.OneToOne,\n oneWay: Icons.OneWay,\n paint: Icons.PaintBrush,\n paintBrush: Icons.PaintBrush,\n paperPlane: Icons.PaperPlane,\n pencil: Icons.Pencil,\n phone: Icons.Phone,\n picture: Icons.Image,\n pin: Icons.Pin,\n pinMap: Icons.PinMap,\n plane: Icons.Plane,\n play: Icons.Play,\n plus: Icons.Plus,\n priceTag: Icons.PriceTag,\n puzzle: Icons.PuzzlePiece,\n question: Icons.Question,\n quote: Icons.Quotes,\n refresh: Icons.ArrowClockwise,\n restaurant: Icons.Restaurant,\n rocket: Icons.Rocket,\n rotate: Icons.ArrowsCounterClockwise,\n scissors: Icons.Scissors,\n search: Icons.Search,\n seed: Icons.Plant,\n server: Icons.Server,\n shield: Icons.Shield,\n shirt: Icons.Shirt,\n shoppingCart: Icons.ShoppingCart,\n slideshow: Icons.PresentationChart,\n stack: Icons.Stack,\n star: Icons.Star,\n store: Icons.Store,\n strikeThrough: Icons.StrikeThrough,\n sun: Icons.Sun,\n television: Icons.Television,\n thumbDown: Icons.ThumbDown,\n thumbUp: Icons.ThumbUp,\n train: Icons.Train,\n twitter: Symbols.X,\n typhoon: Icons.Typhoon,\n underline: Icons.Underline,\n user: Icons.User,\n volumeMute: Icons.VolumeMute,\n volumeUp: Icons.VolumeUp,\n walk: Icons.Walk,\n wheelchair: Icons.Wheelchair,\n write: Icons.Feather,\n};\n\nexport { COMPONENT_ICONS };\n"],"names":["COMPONENT_ICONS","alien","Icons","Alien","apps","GridNine","archive","Archive","arrowDown","ArrowDown","arrowLeft","ArrowLeft","arrowRight","ArrowRight","arrowUp","ArrowUp","attachment","Paperclip","bell","Bell","bold","Bold","book","Book","briefcase","Briefcase","brush","PaintBrush","bulletList","BulletList","calendar","Calendar","car","Car","cast","Cast","chartBubble","ChartBubble","chartCircle","ChartCircle","chartPie","ChartPie","check","Check","clock","Clock","cloud","Cloud","code","Code","cog","Cog","collapse","Collapse","command","Command","connector","Faders","crop","Crop","crown","Crown","cup","Coffee","cursor","Cursor","dashboard","SquaresFour","database","Database","discuss","Discuss","doctor","Stethoscope","earth","Earth","emotionHappy","EmotionHappy","emotionUnhappy","EmotionUnhappy","envelop","Mail","exit","SignOut","expand","Expand","eye","Eye","feather","Feather","file","File","fileError","FileError","filePdf","FilePdf","fileXls","FileXls","fileZip","FileZip","fileCsv","FileCsv","filter","Filter","folder","Folder","gate","CastleTurret","gift","Gift","globe","Globe","grid","GridFour","handHeart","HandHeart","hashtag","Hashtag","headphone","Headphones","heart","Heart","house","House","information","Information","italic","Italic","key","Key","landscape","Images","layer","ListPlus","layout","Layout","lightbulb","Lightbulb","link","Link","lock","Lock","magic","Magic","manyToMany","ManyToMany","manyToOne","ManyToOne","manyWays","ManyWays","medium","Symbols","Medium","message","Message","microphone","Microphone","monitor","Monitor","moon","Moon","music","MusicNotes","oneToMany","OneToMany","oneToOne","OneToOne","oneWay","OneWay","paint","paintBrush","paperPlane","PaperPlane","pencil","Pencil","phone","Phone","picture","Image","pin","Pin","pinMap","PinMap","plane","Plane","play","Play","plus","Plus","priceTag","PriceTag","puzzle","PuzzlePiece","question","Question","quote","Quotes","refresh","ArrowClockwise","restaurant","Restaurant","rocket","Rocket","rotate","ArrowsCounterClockwise","scissors","Scissors","search","Search","seed","Plant","server","Server","shield","Shield","shirt","Shirt","shoppingCart","ShoppingCart","slideshow","PresentationChart","stack","Stack","star","Star","store","Store","strikeThrough","StrikeThrough","sun","Sun","television","Television","thumbDown","ThumbDown","thumbUp","ThumbUp","train","Train","twitter","X","typhoon","Typhoon","underline","Underline","user","User","volumeMute","VolumeMute","volumeUp","VolumeUp","walk","Walk","wheelchair","Wheelchair","write"],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@ var pluralize = require('pluralize');
|
|
|
7
7
|
var reactIntl = require('react-intl');
|
|
8
8
|
var nameToSlug = require('../utils/nameToSlug.js');
|
|
9
9
|
|
|
10
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var pluralize__default = /*#__PURE__*/_interopDefault(pluralize);
|
|
13
|
+
|
|
10
14
|
const PluralName = ({ description, error, intlLabel, modifiedData, name, onChange, value })=>{
|
|
11
15
|
const { formatMessage } = reactIntl.useIntl();
|
|
12
16
|
const onChangeRef = React.useRef(onChange);
|
|
@@ -18,7 +22,7 @@ const PluralName = ({ description, error, intlLabel, modifiedData, name, onChang
|
|
|
18
22
|
const baseValue = nameToSlug.nameToSlug(displayName);
|
|
19
23
|
let newValue = baseValue;
|
|
20
24
|
try {
|
|
21
|
-
newValue =
|
|
25
|
+
newValue = pluralize__default.default(baseValue, 2);
|
|
22
26
|
} catch (err) {
|
|
23
27
|
// If pluralize fails, use the base value
|
|
24
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluralName.js","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n const previousDisplayName = useRef(displayName);\n const previousValue = useRef(value);\n\n useEffect(() => {\n if (displayName && displayName !== previousDisplayName.current) {\n const baseValue = nameToSlug(displayName);\n let newValue = baseValue;\n\n try {\n newValue = pluralize(baseValue, 2);\n } catch (err) {\n // If pluralize fails, use the base value\n }\n\n onChangeRef.current({ target: { name, value: newValue } });\n previousValue.current = newValue;\n previousDisplayName.current = displayName;\n } else if (!displayName) {\n onChangeRef.current({ target: { name, value: '' } });\n previousValue.current = '';\n previousDisplayName.current = '';\n }\n }, [displayName, name, value]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PluralName.js","sources":["../../../admin/src/components/PluralName.tsx"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nimport { Field, TextInput } from '@strapi/design-system';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\n\nimport { nameToSlug } from '../utils/nameToSlug';\n\nimport type { IntlLabel } from '../types';\n\ninterface Description {\n id: string;\n defaultMessage: string;\n values?: Record<string, any>;\n}\n\ninterface PluralNameProps {\n description?: Description;\n error?: string;\n intlLabel: IntlLabel;\n modifiedData: Record<string, any>;\n name: string;\n onChange: (value: { target: { name: string; value: string } }) => void;\n value?: string;\n}\n\nexport const PluralName = ({\n description,\n error,\n intlLabel,\n modifiedData,\n name,\n onChange,\n value,\n}: PluralNameProps) => {\n const { formatMessage } = useIntl();\n const onChangeRef = useRef(onChange);\n const displayName = modifiedData?.displayName || '';\n const previousDisplayName = useRef(displayName);\n const previousValue = useRef(value);\n\n useEffect(() => {\n if (displayName && displayName !== previousDisplayName.current) {\n const baseValue = nameToSlug(displayName);\n let newValue = baseValue;\n\n try {\n newValue = pluralize(baseValue, 2);\n } catch (err) {\n // If pluralize fails, use the base value\n }\n\n onChangeRef.current({ target: { name, value: newValue } });\n previousValue.current = newValue;\n previousDisplayName.current = displayName;\n } else if (!displayName) {\n onChangeRef.current({ target: { name, value: '' } });\n previousValue.current = '';\n previousDisplayName.current = '';\n }\n }, [displayName, name, value]);\n\n const errorMessage = error ? formatMessage({ id: error, defaultMessage: error }) : '';\n const hint = description\n ? formatMessage(\n { id: description.id, defaultMessage: description.defaultMessage },\n { ...description.values }\n )\n : '';\n const label = formatMessage(intlLabel);\n\n return (\n <Field.Root error={errorMessage} hint={hint} name={name}>\n <Field.Label>{label}</Field.Label>\n <TextInput onChange={onChange} value={value || ''} type=\"text\" />\n <Field.Error />\n </Field.Root>\n );\n};\n"],"names":["PluralName","description","error","intlLabel","modifiedData","name","onChange","value","formatMessage","useIntl","onChangeRef","useRef","displayName","previousDisplayName","previousValue","useEffect","current","baseValue","nameToSlug","newValue","pluralize","err","target","errorMessage","id","defaultMessage","hint","values","label","_jsxs","Field","Root","_jsx","Label","TextInput","type","Error"],"mappings":";;;;;;;;;;;;;MA0BaA,UAAAA,GAAa,CAAC,EACzBC,WAAW,EACXC,KAAK,EACLC,SAAS,EACTC,YAAY,EACZC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACW,GAAA;IAChB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,cAAcC,YAAAA,CAAOL,QAAAA,CAAAA;IAC3B,MAAMM,WAAAA,GAAcR,cAAcQ,WAAAA,IAAe,EAAA;AACjD,IAAA,MAAMC,sBAAsBF,YAAAA,CAAOC,WAAAA,CAAAA;AACnC,IAAA,MAAME,gBAAgBH,YAAAA,CAAOJ,KAAAA,CAAAA;IAE7BQ,eAAAA,CAAU,IAAA;AACR,QAAA,IAAIH,WAAAA,IAAeA,WAAAA,KAAgBC,mBAAAA,CAAoBG,OAAO,EAAE;AAC9D,YAAA,MAAMC,YAAYC,qBAAAA,CAAWN,WAAAA,CAAAA;AAC7B,YAAA,IAAIO,QAAAA,GAAWF,SAAAA;YAEf,IAAI;AACFE,gBAAAA,QAAAA,GAAWC,2BAAUH,SAAAA,EAAW,CAAA,CAAA;AAClC,YAAA,CAAA,CAAE,OAAOI,GAAAA,EAAK;;AAEd,YAAA;AAEAX,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAOY;AAAS;AAAE,aAAA,CAAA;AACxDL,YAAAA,aAAAA,CAAcE,OAAO,GAAGG,QAAAA;AACxBN,YAAAA,mBAAAA,CAAoBG,OAAO,GAAGJ,WAAAA;QAChC,CAAA,MAAO,IAAI,CAACA,WAAAA,EAAa;AACvBF,YAAAA,WAAAA,CAAYM,OAAO,CAAC;gBAAEM,MAAAA,EAAQ;AAAEjB,oBAAAA,IAAAA;oBAAME,KAAAA,EAAO;AAAG;AAAE,aAAA,CAAA;AAClDO,YAAAA,aAAAA,CAAcE,OAAO,GAAG,EAAA;AACxBH,YAAAA,mBAAAA,CAAoBG,OAAO,GAAG,EAAA;AAChC,QAAA;IACF,CAAA,EAAG;AAACJ,QAAAA,WAAAA;AAAaP,QAAAA,IAAAA;AAAME,QAAAA;AAAM,KAAA,CAAA;IAE7B,MAAMgB,YAAAA,GAAerB,QAAQM,aAAAA,CAAc;QAAEgB,EAAAA,EAAItB,KAAAA;QAAOuB,cAAAA,EAAgBvB;KAAM,CAAA,GAAK,EAAA;IACnF,MAAMwB,IAAAA,GAAOzB,cACTO,aAAAA,CACE;AAAEgB,QAAAA,EAAAA,EAAIvB,YAAYuB,EAAE;AAAEC,QAAAA,cAAAA,EAAgBxB,YAAYwB;KAAe,EACjE;AAAE,QAAA,GAAGxB,YAAY0B;KAAO,CAAA,GAE1B,EAAA;AACJ,IAAA,MAAMC,QAAQpB,aAAAA,CAAcL,SAAAA,CAAAA;IAE5B,qBACE0B,eAAA,CAACC,mBAAMC,IAAI,EAAA;QAAC7B,KAAAA,EAAOqB,YAAAA;QAAcG,IAAAA,EAAMA,IAAAA;QAAMrB,IAAAA,EAAMA,IAAAA;;AACjD,0BAAA2B,cAAA,CAACF,mBAAMG,KAAK,EAAA;AAAEL,gBAAAA,QAAAA,EAAAA;;0BACdI,cAAA,CAACE,sBAAAA,EAAAA;gBAAU5B,QAAAA,EAAUA,QAAAA;AAAUC,gBAAAA,KAAAA,EAAOA,KAAAA,IAAS,EAAA;gBAAI4B,IAAAA,EAAK;;AACxD,0BAAAH,cAAA,CAACF,mBAAMM,KAAK,EAAA,EAAA;;;AAGlB;;;;"}
|
|
@@ -13,6 +13,12 @@ var useDataManager = require('../../DataManager/useDataManager.js');
|
|
|
13
13
|
var reducer = require('../../FormModal/reducer.js');
|
|
14
14
|
var Components = require('./Components.js');
|
|
15
15
|
|
|
16
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
17
|
+
|
|
18
|
+
var get__default = /*#__PURE__*/_interopDefault(get);
|
|
19
|
+
var truncate__default = /*#__PURE__*/_interopDefault(truncate);
|
|
20
|
+
var pluralize__default = /*#__PURE__*/_interopDefault(pluralize);
|
|
21
|
+
|
|
16
22
|
const relations = {
|
|
17
23
|
oneWay: Icons.OneWay,
|
|
18
24
|
oneToOne: Icons.OneToOne,
|
|
@@ -37,25 +43,25 @@ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWith
|
|
|
37
43
|
const dispatch = reactRedux.useDispatch();
|
|
38
44
|
const { formatMessage } = reactIntl.useIntl();
|
|
39
45
|
const { contentTypes } = useDataManager.useDataManager();
|
|
40
|
-
const dataType = naturePickerType === 'component' ? 'component' :
|
|
46
|
+
const dataType = naturePickerType === 'component' ? 'component' : get__default.default(contentTypes, [
|
|
41
47
|
targetUid,
|
|
42
48
|
'kind'
|
|
43
49
|
], '');
|
|
44
50
|
const relationsType = dataType === 'collectionType' ? ctRelations : componentRelations;
|
|
45
51
|
const areDisplayedNamesInverted = relationType === 'manyToOne';
|
|
46
|
-
const targetLabel =
|
|
52
|
+
const targetLabel = get__default.default(contentTypes, [
|
|
47
53
|
target,
|
|
48
54
|
'info',
|
|
49
55
|
'displayName'
|
|
50
56
|
], 'unknown');
|
|
51
57
|
const leftTarget = areDisplayedNamesInverted ? targetLabel : oneThatIsCreatingARelationWithAnother;
|
|
52
58
|
const rightTarget = areDisplayedNamesInverted ? oneThatIsCreatingARelationWithAnother : targetLabel;
|
|
53
|
-
const leftDisplayedValue =
|
|
54
|
-
const restrictedRelations =
|
|
59
|
+
const leftDisplayedValue = pluralize__default.default(leftTarget, relationType === 'manyToMany' ? 2 : 1);
|
|
60
|
+
const restrictedRelations = get__default.default(contentTypes, [
|
|
55
61
|
target,
|
|
56
62
|
'restrictRelationsTo'
|
|
57
63
|
], null);
|
|
58
|
-
const rightDisplayedValue =
|
|
64
|
+
const rightDisplayedValue = pluralize__default.default(rightTarget, [
|
|
59
65
|
'manyToMany',
|
|
60
66
|
'oneToMany',
|
|
61
67
|
'manyToOne',
|
|
@@ -117,7 +123,7 @@ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWith
|
|
|
117
123
|
children: [
|
|
118
124
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Typography, {
|
|
119
125
|
children: [
|
|
120
|
-
|
|
126
|
+
truncate__default.default(leftDisplayedValue, {
|
|
121
127
|
length: 24
|
|
122
128
|
}),
|
|
123
129
|
" "
|
|
@@ -133,7 +139,7 @@ const RelationNaturePicker = ({ naturePickerType, oneThatIsCreatingARelationWith
|
|
|
133
139
|
]
|
|
134
140
|
}),
|
|
135
141
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
136
|
-
children:
|
|
142
|
+
children: truncate__default.default(rightDisplayedValue, {
|
|
137
143
|
length: 24
|
|
138
144
|
})
|
|
139
145
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationNaturePicker.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport {\n ManyToMany,\n ManyToOne,\n ManyWays as ManyWay,\n OneToMany,\n OneToOne,\n OneWay,\n} from '@strapi/icons';\nimport get from 'lodash/get';\nimport truncate from 'lodash/truncate';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { useDataManager } from '../../DataManager/useDataManager';\nimport { actions } from '../../FormModal/reducer';\n\nimport { IconWrapper, InfosWrapper, Wrapper } from './Components';\n\nconst relations = {\n oneWay: OneWay,\n oneToOne: OneToOne,\n oneToMany: OneToMany,\n manyToOne: ManyToOne,\n manyToMany: ManyToMany,\n manyWay: ManyWay,\n};\n\ntype RelationType = keyof typeof relations;\n\ninterface RelationNaturePickerProps {\n naturePickerType: string;\n oneThatIsCreatingARelationWithAnother: string;\n relationType: string;\n target: string;\n targetUid: string;\n}\n\nconst ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\nconst componentRelations = ['oneWay', 'manyWay'];\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n targetUid,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes } = useDataManager();\n\n const dataType =\n naturePickerType === 'component' ? 'component' : get(contentTypes, [targetUid, 'kind'], '');\n\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'info', 'displayName'], 'unknown');\n const leftTarget = areDisplayedNamesInverted\n ? targetLabel\n : oneThatIsCreatingARelationWithAnother;\n const rightTarget = areDisplayedNamesInverted\n ? oneThatIsCreatingARelationWithAnother\n : targetLabel;\n const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);\n const restrictedRelations = get(contentTypes, [target, 'restrictRelationsTo'], null);\n\n const rightDisplayedValue = pluralize(\n rightTarget,\n ['manyToMany', 'oneToMany', 'manyToOne', 'manyWay'].includes(relationType) ? 2 : 1\n );\n\n if (!relationType) {\n return null;\n }\n\n return (\n <Flex style={{ flex: 1 }}>\n <Wrapper>\n <Flex paddingLeft={9} paddingRight={9} paddingTop={1} justifyContent=\"center\">\n <KeyboardNavigable tagName=\"button\">\n <Flex gap={3}>\n {relationsType.map((relation) => {\n const Asset = relations[relation];\n const isEnabled =\n restrictedRelations === null || restrictedRelations.includes(relation);\n\n return (\n <IconWrapper\n tag=\"button\"\n $isSelected={relationType === relation}\n disabled={!isEnabled}\n key={relation}\n onClick={() => {\n if (isEnabled) {\n dispatch(\n actions.onChangeRelationType({\n target: {\n oneThatIsCreatingARelationWithAnother,\n value: relation,\n },\n })\n );\n }\n }}\n padding={2}\n type=\"button\"\n aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\n </IconWrapper>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n </Flex>\n </Wrapper>\n <InfosWrapper justifyContent=\"center\">\n <Typography>{truncate(leftDisplayedValue, { length: 24 })} </Typography>\n <Typography textColor=\"primary600\">\n {formatMessage({ id: getTrad(`relation.${relationType}`) })} \n </Typography>\n <Typography>{truncate(rightDisplayedValue, { length: 24 })}</Typography>\n </InfosWrapper>\n </Flex>\n );\n};\n"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","ctRelations","componentRelations","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","targetUid","dispatch","useDispatch","formatMessage","useIntl","contentTypes","useDataManager","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":"
|
|
1
|
+
{"version":3,"file":"RelationNaturePicker.js","sources":["../../../../../admin/src/components/Relation/RelationNaturePicker/RelationNaturePicker.tsx"],"sourcesContent":["import { Flex, KeyboardNavigable, Typography } from '@strapi/design-system';\nimport {\n ManyToMany,\n ManyToOne,\n ManyWays as ManyWay,\n OneToMany,\n OneToOne,\n OneWay,\n} from '@strapi/icons';\nimport get from 'lodash/get';\nimport truncate from 'lodash/truncate';\nimport pluralize from 'pluralize';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\n\nimport { getTrad } from '../../../utils/getTrad';\nimport { useDataManager } from '../../DataManager/useDataManager';\nimport { actions } from '../../FormModal/reducer';\n\nimport { IconWrapper, InfosWrapper, Wrapper } from './Components';\n\nconst relations = {\n oneWay: OneWay,\n oneToOne: OneToOne,\n oneToMany: OneToMany,\n manyToOne: ManyToOne,\n manyToMany: ManyToMany,\n manyWay: ManyWay,\n};\n\ntype RelationType = keyof typeof relations;\n\ninterface RelationNaturePickerProps {\n naturePickerType: string;\n oneThatIsCreatingARelationWithAnother: string;\n relationType: string;\n target: string;\n targetUid: string;\n}\n\nconst ctRelations = ['oneWay', 'oneToOne', 'oneToMany', 'manyToOne', 'manyToMany', 'manyWay'];\nconst componentRelations = ['oneWay', 'manyWay'];\n\nexport const RelationNaturePicker = ({\n naturePickerType,\n oneThatIsCreatingARelationWithAnother,\n relationType,\n target,\n targetUid,\n}: RelationNaturePickerProps) => {\n const dispatch = useDispatch();\n const { formatMessage } = useIntl();\n\n const { contentTypes } = useDataManager();\n\n const dataType =\n naturePickerType === 'component' ? 'component' : get(contentTypes, [targetUid, 'kind'], '');\n\n const relationsType = (\n dataType === 'collectionType' ? ctRelations : componentRelations\n ) as RelationType[];\n\n const areDisplayedNamesInverted = relationType === 'manyToOne';\n const targetLabel = get(contentTypes, [target, 'info', 'displayName'], 'unknown');\n const leftTarget = areDisplayedNamesInverted\n ? targetLabel\n : oneThatIsCreatingARelationWithAnother;\n const rightTarget = areDisplayedNamesInverted\n ? oneThatIsCreatingARelationWithAnother\n : targetLabel;\n const leftDisplayedValue = pluralize(leftTarget, relationType === 'manyToMany' ? 2 : 1);\n const restrictedRelations = get(contentTypes, [target, 'restrictRelationsTo'], null);\n\n const rightDisplayedValue = pluralize(\n rightTarget,\n ['manyToMany', 'oneToMany', 'manyToOne', 'manyWay'].includes(relationType) ? 2 : 1\n );\n\n if (!relationType) {\n return null;\n }\n\n return (\n <Flex style={{ flex: 1 }}>\n <Wrapper>\n <Flex paddingLeft={9} paddingRight={9} paddingTop={1} justifyContent=\"center\">\n <KeyboardNavigable tagName=\"button\">\n <Flex gap={3}>\n {relationsType.map((relation) => {\n const Asset = relations[relation];\n const isEnabled =\n restrictedRelations === null || restrictedRelations.includes(relation);\n\n return (\n <IconWrapper\n tag=\"button\"\n $isSelected={relationType === relation}\n disabled={!isEnabled}\n key={relation}\n onClick={() => {\n if (isEnabled) {\n dispatch(\n actions.onChangeRelationType({\n target: {\n oneThatIsCreatingARelationWithAnother,\n value: relation,\n },\n })\n );\n }\n }}\n padding={2}\n type=\"button\"\n aria-label={formatMessage({ id: getTrad(`relation.${relation}`) })}\n aria-pressed={relationType === relation}\n data-relation-type={relation}\n >\n <Asset key={relation} aria-hidden=\"true\" />\n </IconWrapper>\n );\n })}\n </Flex>\n </KeyboardNavigable>\n </Flex>\n </Wrapper>\n <InfosWrapper justifyContent=\"center\">\n <Typography>{truncate(leftDisplayedValue, { length: 24 })} </Typography>\n <Typography textColor=\"primary600\">\n {formatMessage({ id: getTrad(`relation.${relationType}`) })} \n </Typography>\n <Typography>{truncate(rightDisplayedValue, { length: 24 })}</Typography>\n </InfosWrapper>\n </Flex>\n );\n};\n"],"names":["relations","oneWay","OneWay","oneToOne","OneToOne","oneToMany","OneToMany","manyToOne","ManyToOne","manyToMany","ManyToMany","manyWay","ManyWay","ctRelations","componentRelations","RelationNaturePicker","naturePickerType","oneThatIsCreatingARelationWithAnother","relationType","target","targetUid","dispatch","useDispatch","formatMessage","useIntl","contentTypes","useDataManager","dataType","get","relationsType","areDisplayedNamesInverted","targetLabel","leftTarget","rightTarget","leftDisplayedValue","pluralize","restrictedRelations","rightDisplayedValue","includes","_jsxs","Flex","style","flex","_jsx","Wrapper","paddingLeft","paddingRight","paddingTop","justifyContent","KeyboardNavigable","tagName","gap","map","relation","Asset","isEnabled","IconWrapper","tag","$isSelected","disabled","onClick","actions","onChangeRelationType","value","padding","type","aria-label","id","getTrad","aria-pressed","data-relation-type","aria-hidden","InfosWrapper","Typography","truncate","length","textColor"],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@ var reactIntl = require('react-intl');
|
|
|
7
7
|
var conditions = require('../utils/conditions.js');
|
|
8
8
|
var GenericInputs = require('./GenericInputs.js');
|
|
9
9
|
|
|
10
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
|
|
12
|
+
var get__default = /*#__PURE__*/_interopDefault(get);
|
|
13
|
+
|
|
10
14
|
/* eslint-disable react/no-array-index-key */ const TabForm = ({ form, formErrors, genericInputProps, modifiedData, onChange })=>{
|
|
11
15
|
const { formatMessage } = reactIntl.useIntl();
|
|
12
16
|
return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
@@ -36,7 +40,7 @@ var GenericInputs = require('./GenericInputs.js');
|
|
|
36
40
|
const key = `${sectionIndex}.${i}`;
|
|
37
41
|
/**
|
|
38
42
|
* Use undefined as the default value because not every input wants a string e.g. Date pickers
|
|
39
|
-
*/ const value =
|
|
43
|
+
*/ const value = get__default.default(modifiedData, input.name, undefined);
|
|
40
44
|
// When extending the yup schema of an existing field (like in https://github.com/strapi/strapi/blob/293ff3b8f9559236609d123a2774e3be05ce8274/packages/strapi-plugin-i18n/admin/src/index.js#L52)
|
|
41
45
|
// and triggering a yup validation error in the UI (missing a required field for example)
|
|
42
46
|
// We got an object that looks like: formErrors = { "pluginOptions.i18n.localized": {...} }
|
|
@@ -46,7 +50,7 @@ var GenericInputs = require('./GenericInputs.js');
|
|
|
46
50
|
// NOTE: this is a hack
|
|
47
51
|
const pluginOptionError = Object.keys(formErrors).find((key)=>key === input.name);
|
|
48
52
|
// Retrieve the error for a specific input
|
|
49
|
-
const errorId = pluginOptionError ? formErrors[pluginOptionError].id :
|
|
53
|
+
const errorId = pluginOptionError ? formErrors[pluginOptionError].id : get__default.default(formErrors, [
|
|
50
54
|
...input.name.split('.')// The filter here is used when creating a component
|
|
51
55
|
// in the component step 1 modal
|
|
52
56
|
// Since the component info is stored in the
|
|
@@ -66,7 +70,7 @@ var GenericInputs = require('./GenericInputs.js');
|
|
|
66
70
|
}
|
|
67
71
|
// Special handling for 'condition-form'
|
|
68
72
|
if (input.type === 'condition-form') {
|
|
69
|
-
const currentCondition =
|
|
73
|
+
const currentCondition = get__default.default(modifiedData, input.name);
|
|
70
74
|
// Get all attributes from the content type schema
|
|
71
75
|
const contentTypeAttributes = genericInputProps.contentTypeSchema?.attributes || [];
|
|
72
76
|
if (!genericInputProps.contentTypeSchema) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabForm.js","sources":["../../../admin/src/components/TabForm.tsx"],"sourcesContent":["import { Box, Grid, Typography, Button, Tooltip } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { formatCondition, getAvailableConditionFields } from '../utils/conditions';\n\nimport { GenericInput } from './GenericInputs';\n\ninterface TabFormProps {\n form: Array<Record<string, any>>;\n formErrors: Record<string, any>;\n genericInputProps: Record<string, any>;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n}\n\n/* eslint-disable react/no-array-index-key */\nexport const TabForm = ({\n form,\n formErrors,\n genericInputProps,\n modifiedData,\n onChange,\n}: TabFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n {form.map((section, sectionIndex) => {\n // Don't display an empty section\n if (section.items.length === 0) {\n return null;\n }\n return (\n <Box key={sectionIndex}>\n {section.sectionTitle && (\n <Box paddingBottom={4}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage(section.sectionTitle)}\n </Typography>\n </Box>\n )}\n {section.intlLabel && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(section.intlLabel)}\n </Typography>\n )}\n\n <Grid.Root gap={4}>\n {section.items.map((input: any, i: number) => {\n const key = `${sectionIndex}.${i}`;\n\n /**\n * Use undefined as the default value because not every input wants a string e.g. Date pickers\n */\n const value = get(modifiedData, input.name, undefined);\n\n // When extending the yup schema of an existing field (like in https://github.com/strapi/strapi/blob/293ff3b8f9559236609d123a2774e3be05ce8274/packages/strapi-plugin-i18n/admin/src/index.js#L52)\n // and triggering a yup validation error in the UI (missing a required field for example)\n // We got an object that looks like: formErrors = { \"pluginOptions.i18n.localized\": {...} }\n // In order to deal with this error, we can't rely on lodash.get to resolve this key\n // - lodash will try to access {pluginOptions: {i18n: {localized: true}}})\n // - and we just want to access { \"pluginOptions.i18n.localized\": {...} }\n // NOTE: this is a hack\n const pluginOptionError = Object.keys(formErrors).find((key) => key === input.name);\n\n // Retrieve the error for a specific input\n const errorId = pluginOptionError\n ? formErrors[pluginOptionError].id\n : get(\n formErrors,\n [\n ...input.name\n .split('.')\n // The filter here is used when creating a component\n // in the component step 1 modal\n // Since the component info is stored in the\n // componentToCreate object we can access the error\n // By removing the key\n .filter((key: string) => key !== 'componentToCreate'),\n 'id',\n ],\n null\n );\n\n if (input.type === 'pushRight') {\n return (\n <Grid.Item\n col={input.size || 6}\n xs={12}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <div />\n </Grid.Item>\n );\n }\n\n // Special handling for 'condition-form'\n if (input.type === 'condition-form') {\n const currentCondition = get(modifiedData, input.name);\n\n // Get all attributes from the content type schema\n const contentTypeAttributes =\n genericInputProps.contentTypeSchema?.attributes || [];\n\n if (!genericInputProps.contentTypeSchema) {\n console.warn('contentTypeSchema is undefined, skipping condition form');\n return null;\n }\n\n // Filter for boolean and enumeration fields only, excluding the current field\n const availableFields = getAvailableConditionFields(\n contentTypeAttributes,\n modifiedData.name\n );\n\n const noFieldsMessage = formatMessage({\n id: 'form.attribute.condition.no-fields',\n defaultMessage:\n 'No boolean or enumeration fields available to set conditions on.',\n });\n\n return (\n <Grid.Item\n col={input.size || 12}\n xs={12}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {!currentCondition || Object.keys(currentCondition).length === 0 ? (\n <Box>\n {currentCondition && Object.keys(currentCondition).length > 0 && (\n <Typography variant=\"sigma\" textColor=\"neutral800\" marginBottom={2}>\n {formatCondition(\n currentCondition,\n availableFields,\n genericInputProps.attributeName || modifiedData.name\n )}\n </Typography>\n )}\n <Tooltip label={noFieldsMessage}>\n <Button\n marginTop={\n currentCondition && Object.keys(currentCondition).length > 0 ? 0 : 4\n }\n fullWidth={true}\n variant=\"secondary\"\n onClick={() => {\n onChange({\n target: {\n name: input.name,\n value: { visible: { '==': [{ var: '' }, ''] } },\n },\n });\n }}\n startIcon={<span aria-hidden>+</span>}\n disabled={availableFields.length === 0}\n >\n {formatMessage({\n id: 'form.attribute.condition.apply',\n defaultMessage: 'Apply condition',\n })}\n </Button>\n </Tooltip>\n </Box>\n ) : (\n <GenericInput\n {...input}\n {...genericInputProps}\n error={errorId}\n onChange={onChange}\n value={value}\n autoFocus={i === 0}\n attributeName={modifiedData.name}\n conditionFields={availableFields}\n onDelete={() => {\n onChange({\n target: {\n name: input.name,\n },\n });\n }}\n />\n )}\n </Grid.Item>\n );\n }\n\n // Default rendering for all other input types\n return (\n <Grid.Item\n col={input.size || 6}\n xs={12}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <GenericInput\n {...input}\n {...genericInputProps}\n error={errorId}\n onChange={onChange}\n value={value}\n autoFocus={i === 0}\n />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </>\n );\n};\n"],"names":["TabForm","form","formErrors","genericInputProps","modifiedData","onChange","formatMessage","useIntl","_jsx","_Fragment","map","section","sectionIndex","items","length","_jsxs","Box","sectionTitle","paddingBottom","Typography","variant","tag","intlLabel","textColor","Grid","Root","gap","input","i","key","value","get","name","undefined","pluginOptionError","Object","keys","find","errorId","id","split","filter","type","Item","col","size","xs","direction","alignItems","div","currentCondition","contentTypeAttributes","contentTypeSchema","attributes","console","warn","availableFields","getAvailableConditionFields","noFieldsMessage","defaultMessage","marginBottom","formatCondition","attributeName","Tooltip","label","Button","marginTop","fullWidth","onClick","target","visible","var","startIcon","span","aria-hidden","disabled","GenericInput","error","autoFocus","conditionFields","onDelete"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabForm.js","sources":["../../../admin/src/components/TabForm.tsx"],"sourcesContent":["import { Box, Grid, Typography, Button, Tooltip } from '@strapi/design-system';\nimport get from 'lodash/get';\nimport { useIntl } from 'react-intl';\n\nimport { formatCondition, getAvailableConditionFields } from '../utils/conditions';\n\nimport { GenericInput } from './GenericInputs';\n\ninterface TabFormProps {\n form: Array<Record<string, any>>;\n formErrors: Record<string, any>;\n genericInputProps: Record<string, any>;\n modifiedData: Record<string, any>;\n onChange: (value: any) => void;\n}\n\n/* eslint-disable react/no-array-index-key */\nexport const TabForm = ({\n form,\n formErrors,\n genericInputProps,\n modifiedData,\n onChange,\n}: TabFormProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <>\n {form.map((section, sectionIndex) => {\n // Don't display an empty section\n if (section.items.length === 0) {\n return null;\n }\n return (\n <Box key={sectionIndex}>\n {section.sectionTitle && (\n <Box paddingBottom={4}>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage(section.sectionTitle)}\n </Typography>\n </Box>\n )}\n {section.intlLabel && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(section.intlLabel)}\n </Typography>\n )}\n\n <Grid.Root gap={4}>\n {section.items.map((input: any, i: number) => {\n const key = `${sectionIndex}.${i}`;\n\n /**\n * Use undefined as the default value because not every input wants a string e.g. Date pickers\n */\n const value = get(modifiedData, input.name, undefined);\n\n // When extending the yup schema of an existing field (like in https://github.com/strapi/strapi/blob/293ff3b8f9559236609d123a2774e3be05ce8274/packages/strapi-plugin-i18n/admin/src/index.js#L52)\n // and triggering a yup validation error in the UI (missing a required field for example)\n // We got an object that looks like: formErrors = { \"pluginOptions.i18n.localized\": {...} }\n // In order to deal with this error, we can't rely on lodash.get to resolve this key\n // - lodash will try to access {pluginOptions: {i18n: {localized: true}}})\n // - and we just want to access { \"pluginOptions.i18n.localized\": {...} }\n // NOTE: this is a hack\n const pluginOptionError = Object.keys(formErrors).find((key) => key === input.name);\n\n // Retrieve the error for a specific input\n const errorId = pluginOptionError\n ? formErrors[pluginOptionError].id\n : get(\n formErrors,\n [\n ...input.name\n .split('.')\n // The filter here is used when creating a component\n // in the component step 1 modal\n // Since the component info is stored in the\n // componentToCreate object we can access the error\n // By removing the key\n .filter((key: string) => key !== 'componentToCreate'),\n 'id',\n ],\n null\n );\n\n if (input.type === 'pushRight') {\n return (\n <Grid.Item\n col={input.size || 6}\n xs={12}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <div />\n </Grid.Item>\n );\n }\n\n // Special handling for 'condition-form'\n if (input.type === 'condition-form') {\n const currentCondition = get(modifiedData, input.name);\n\n // Get all attributes from the content type schema\n const contentTypeAttributes =\n genericInputProps.contentTypeSchema?.attributes || [];\n\n if (!genericInputProps.contentTypeSchema) {\n console.warn('contentTypeSchema is undefined, skipping condition form');\n return null;\n }\n\n // Filter for boolean and enumeration fields only, excluding the current field\n const availableFields = getAvailableConditionFields(\n contentTypeAttributes,\n modifiedData.name\n );\n\n const noFieldsMessage = formatMessage({\n id: 'form.attribute.condition.no-fields',\n defaultMessage:\n 'No boolean or enumeration fields available to set conditions on.',\n });\n\n return (\n <Grid.Item\n col={input.size || 12}\n xs={12}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n {!currentCondition || Object.keys(currentCondition).length === 0 ? (\n <Box>\n {currentCondition && Object.keys(currentCondition).length > 0 && (\n <Typography variant=\"sigma\" textColor=\"neutral800\" marginBottom={2}>\n {formatCondition(\n currentCondition,\n availableFields,\n genericInputProps.attributeName || modifiedData.name\n )}\n </Typography>\n )}\n <Tooltip label={noFieldsMessage}>\n <Button\n marginTop={\n currentCondition && Object.keys(currentCondition).length > 0 ? 0 : 4\n }\n fullWidth={true}\n variant=\"secondary\"\n onClick={() => {\n onChange({\n target: {\n name: input.name,\n value: { visible: { '==': [{ var: '' }, ''] } },\n },\n });\n }}\n startIcon={<span aria-hidden>+</span>}\n disabled={availableFields.length === 0}\n >\n {formatMessage({\n id: 'form.attribute.condition.apply',\n defaultMessage: 'Apply condition',\n })}\n </Button>\n </Tooltip>\n </Box>\n ) : (\n <GenericInput\n {...input}\n {...genericInputProps}\n error={errorId}\n onChange={onChange}\n value={value}\n autoFocus={i === 0}\n attributeName={modifiedData.name}\n conditionFields={availableFields}\n onDelete={() => {\n onChange({\n target: {\n name: input.name,\n },\n });\n }}\n />\n )}\n </Grid.Item>\n );\n }\n\n // Default rendering for all other input types\n return (\n <Grid.Item\n col={input.size || 6}\n xs={12}\n key={input.name || key}\n direction=\"column\"\n alignItems=\"stretch\"\n >\n <GenericInput\n {...input}\n {...genericInputProps}\n error={errorId}\n onChange={onChange}\n value={value}\n autoFocus={i === 0}\n />\n </Grid.Item>\n );\n })}\n </Grid.Root>\n </Box>\n );\n })}\n </>\n );\n};\n"],"names":["TabForm","form","formErrors","genericInputProps","modifiedData","onChange","formatMessage","useIntl","_jsx","_Fragment","map","section","sectionIndex","items","length","_jsxs","Box","sectionTitle","paddingBottom","Typography","variant","tag","intlLabel","textColor","Grid","Root","gap","input","i","key","value","get","name","undefined","pluginOptionError","Object","keys","find","errorId","id","split","filter","type","Item","col","size","xs","direction","alignItems","div","currentCondition","contentTypeAttributes","contentTypeSchema","attributes","console","warn","availableFields","getAvailableConditionFields","noFieldsMessage","defaultMessage","marginBottom","formatCondition","attributeName","Tooltip","label","Button","marginTop","fullWidth","onClick","target","visible","var","startIcon","span","aria-hidden","disabled","GenericInput","error","autoFocus","conditionFields","onDelete"],"mappings":"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"}
|
|
@@ -17,6 +17,10 @@ var List = require('../../components/List.js');
|
|
|
17
17
|
var getTrad = require('../../utils/getTrad.js');
|
|
18
18
|
var LinkToCMSettingsView = require('./LinkToCMSettingsView.js');
|
|
19
19
|
|
|
20
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
|
+
|
|
22
|
+
var upperFirst__default = /*#__PURE__*/_interopDefault(upperFirst);
|
|
23
|
+
|
|
20
24
|
const LayoutsHeaderCustom = styledComponents.styled(strapiAdmin.Layouts.Header)`
|
|
21
25
|
overflow: hidden;
|
|
22
26
|
text-overflow: ellipsis;
|
|
@@ -153,7 +157,7 @@ const ListView = ()=>{
|
|
|
153
157
|
/*#__PURE__*/ jsxRuntime.jsx(LayoutsHeaderCustom, {
|
|
154
158
|
id: "title",
|
|
155
159
|
primaryAction: primaryAction,
|
|
156
|
-
title:
|
|
160
|
+
title: upperFirst__default.default(label)
|
|
157
161
|
}),
|
|
158
162
|
/*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Layouts.Content, {
|
|
159
163
|
children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|