@webiny/app-headless-cms 5.41.2-beta.0 → 5.41.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/admin/components/ContentEntryForm/ContentEntryFormProvider.js +1 -0
  2. package/admin/components/ContentEntryForm/ContentEntryFormProvider.js.map +1 -1
  3. package/admin/components/ContentEntryForm/useBind.js +7 -3
  4. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  5. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +2 -4
  6. package/admin/plugins/fieldRenderers/DynamicSection.js +49 -45
  7. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  8. package/admin/plugins/fieldRenderers/dateTime/Input.js +1 -1
  9. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  10. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +6 -9
  11. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
  12. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +2 -2
  13. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -1
  14. package/admin/plugins/fieldRenderers/longText/longTexts.js +1 -2
  15. package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
  16. package/admin/plugins/fieldRenderers/number/numberInputs.js +1 -2
  17. package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
  18. package/admin/plugins/fieldRenderers/object/multipleObjects.js +2 -13
  19. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
  20. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js +49 -42
  21. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
  22. package/admin/plugins/fieldRenderers/richText/richTextInputs.js +2 -3
  23. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  24. package/admin/plugins/fieldRenderers/text/textInputs.js +1 -2
  25. package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
  26. package/package.json +28 -28
@@ -96,6 +96,7 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
96
96
  onSubmit: onFormSubmit,
97
97
  data: entry,
98
98
  ref: ref,
99
+ validateOnFirstSubmit: true,
99
100
  invalidFields: invalidFields,
100
101
  onInvalid: function onInvalid(invalidFields) {
101
102
  setInvalidFields(formValidationToMap(invalidFields));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appAdmin","_appHeadlessCmsCommon","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread4","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","persistEntry","onAfterCreate","setSaveEntry","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","id","_await$persistEntry","createNewRevision","meta","locked","error","code","errors","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form, FormAPI, FormOnSubmit, FormValidation, FormInvalidFields } from \"@webiny/form\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { CreateEntryResponse, UpdateEntryRevisionResponse } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n createNewRevision?: boolean;\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormInvalidFields;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\nexport interface PersistEntry {\n (entry: Partial<CmsContentEntry>, options?: SaveEntryOptions): Promise<\n CreateEntryResponse | UpdateEntryRevisionResponse\n >;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n persistEntry: PersistEntry;\n confirmNavigationIfDirty: boolean;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n children: React.ReactNode;\n}\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation): FormInvalidFields => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message || \"Value is invalid.\" }),\n {} as FormInvalidFields\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n persistEntry,\n onAfterCreate,\n setSaveEntry,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState<FormInvalidFields>({});\n const { showSnackbar } = useSnackbar();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry(\n { id: data.id, ...gqlData },\n {\n skipValidators: saveOptionsRef.current.skipValidators,\n createNewRevision: data.meta?.locked\n }\n );\n\n if (error) {\n if (error.code === \"VALIDATION_FAILED\") {\n const errors: InvalidFieldError[] = error.data || [];\n\n setInvalidFields(\n errors.reduce((acc, item) => ({ ...acc, [item.fieldId]: item.error }), {})\n );\n }\n showSnackbar(error.message);\n\n return;\n }\n\n showSnackbar(\"Entry saved successfully!\");\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n data={entry}\n ref={ref}\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appAdmin","_appHeadlessCmsCommon","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread4","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","persistEntry","onAfterCreate","setSaveEntry","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","id","_await$persistEntry","createNewRevision","meta","locked","error","code","errors","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","validateOnFirstSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form, FormAPI, FormOnSubmit, FormValidation, FormInvalidFields } from \"@webiny/form\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { CreateEntryResponse, UpdateEntryRevisionResponse } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n createNewRevision?: boolean;\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormInvalidFields;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\nexport interface PersistEntry {\n (entry: Partial<CmsContentEntry>, options?: SaveEntryOptions): Promise<\n CreateEntryResponse | UpdateEntryRevisionResponse\n >;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n persistEntry: PersistEntry;\n confirmNavigationIfDirty: boolean;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n children: React.ReactNode;\n}\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation): FormInvalidFields => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message || \"Value is invalid.\" }),\n {} as FormInvalidFields\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n persistEntry,\n onAfterCreate,\n setSaveEntry,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState<FormInvalidFields>({});\n const { showSnackbar } = useSnackbar();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry(\n { id: data.id, ...gqlData },\n {\n skipValidators: saveOptionsRef.current.skipValidators,\n createNewRevision: data.meta?.locked\n }\n );\n\n if (error) {\n if (error.code === \"VALIDATION_FAILED\") {\n const errors: InvalidFieldError[] = error.data || [];\n\n setInvalidFields(\n errors.reduce((acc, item) => ({ ...acc, [item.fieldId]: item.error }), {})\n );\n }\n showSnackbar(error.message);\n\n return;\n }\n\n showSnackbar(\"Entry saved successfully!\");\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n data={entry}\n ref={ref}\n validateOnFirstSubmit\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -38,15 +38,19 @@ function useBind(_ref) {
38
38
  var listValidators = (0, _createValidators.createValidators)(field, field.listValidation || emptyValidators);
39
39
  var isMultipleValues = index === -1 && field.multipleValues;
40
40
  var inputValidators = isMultipleValues ? listValidators : validators;
41
+
42
+ // We only use default values for single-value fields.
43
+ var defaultValueFromSettings = !isMultipleValues ? field.settings?.defaultValue : null;
41
44
  memoizedBindComponents.current[componentId] = function UseBind(params) {
42
45
  var childName = params.name,
43
46
  childValidators = params.validators,
44
47
  children = params.children,
45
- defaultValue = params.defaultValue;
48
+ _params$defaultValue = params.defaultValue,
49
+ defaultValue = _params$defaultValue === void 0 ? defaultValueFromSettings : _params$defaultValue;
46
50
  return /*#__PURE__*/_react.default.createElement(Bind, {
47
51
  name: childName || name,
48
52
  validators: childValidators || inputValidators,
49
- defaultValue: !isMultipleValues ? defaultValue : null
53
+ defaultValue: defaultValue ?? null
50
54
  }, function (bind) {
51
55
  // Multiple-values functions below.
52
56
  var props = (0, _objectSpread2.default)({}, bind);
@@ -68,7 +72,7 @@ function useBind(_ref) {
68
72
  }
69
73
  var value = bind.value;
70
74
  value = [].concat((0, _toConsumableArray2.default)(value.slice(0, index)), (0, _toConsumableArray2.default)(value.slice(index + 1)));
71
- bind.onChange(value);
75
+ bind.onChange(value.length === 0 ? null : value);
72
76
 
73
77
  // To make sure the field is still valid, we must trigger validation.
74
78
  form.validateInput(field.fieldId);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_form","_createValidators","createFieldCacheKey","field","id","fieldId","JSON","stringify","validation","listValidation","join","emptyValidators","useBind","_ref","Bind","memoizedBindComponents","useRef","cacheKey","form","useForm","useCallback","index","arguments","length","undefined","parentName","name","filter","v","componentId","concat","current","validators","createValidators","listValidators","isMultipleValues","multipleValues","inputValidators","UseBind","params","childName","childValidators","children","defaultValue","default","createElement","bind","props","_objectSpread2","appendValue","newValue","currentValue","value","newIndex","onChange","_toConsumableArray2","slice","prependValue","appendValues","newValues","removeValue","validateInput","moveValueUp","splice","moveValueDown","element","cloneElement","displayName"],"sources":["useBind.tsx"],"sourcesContent":["import React, { useRef, useCallback, cloneElement } from \"react\";\nimport { Validator } from \"@webiny/validation/types\";\nimport { useForm } from \"@webiny/form\";\nimport { createValidators } from \"~/utils/createValidators\";\nimport { BindComponent, CmsModelField } from \"~/types\";\n\ninterface UseBindProps {\n field: CmsModelField;\n Bind: BindComponent;\n}\n\ninterface UseBindParams {\n name?: string;\n validators?: Validator | Validator[];\n children?: any;\n defaultValue?: any;\n}\n\nconst createFieldCacheKey = (field: CmsModelField) => {\n return [\n field.id,\n field.fieldId,\n JSON.stringify(field.validation),\n JSON.stringify(field.listValidation)\n ].join(\";\");\n};\n\nexport interface GetBindCallable {\n (index?: number): BindComponent;\n}\n\nconst emptyValidators: Validator[] = [];\n\nexport function useBind({ Bind, field }: UseBindProps) {\n const memoizedBindComponents = useRef<Record<string, BindComponent>>({});\n const cacheKey = createFieldCacheKey(field);\n const form = useForm();\n\n return useCallback(\n (index = -1) => {\n const { parentName } = Bind;\n\n // If there's a parent name assigned to the given Bind component, we need to include it in the new field \"name\".\n // This allows us to have nested fields (like \"object\" field with nested properties)\n const name = [parentName, field.fieldId, index >= 0 ? index : undefined]\n .filter(v => v !== undefined)\n .join(\".\");\n\n const componentId = `${name};${cacheKey}`;\n\n if (memoizedBindComponents.current[componentId]) {\n return memoizedBindComponents.current[componentId];\n }\n\n const validators = createValidators(field, field.validation || emptyValidators);\n const listValidators = createValidators(field, field.listValidation || emptyValidators);\n const isMultipleValues = index === -1 && field.multipleValues;\n const inputValidators = isMultipleValues ? listValidators : validators;\n\n memoizedBindComponents.current[componentId] = function UseBind(params: UseBindParams) {\n const {\n name: childName,\n validators: childValidators,\n children,\n defaultValue\n } = params;\n\n return (\n <Bind\n name={childName || name}\n validators={childValidators || inputValidators}\n defaultValue={!isMultipleValues ? defaultValue : null}\n >\n {bind => {\n // Multiple-values functions below.\n const props = { ...bind };\n if (field.multipleValues && index === -1) {\n props.appendValue = (newValue: any, index?: number) => {\n const currentValue = bind.value || [];\n const newIndex = index ?? currentValue.length;\n\n bind.onChange([\n ...currentValue.slice(0, newIndex),\n newValue,\n ...currentValue.slice(newIndex)\n ]);\n };\n props.prependValue = (newValue: any) => {\n bind.onChange([newValue, ...(bind.value || [])]);\n };\n props.appendValues = (newValues: any[]) => {\n bind.onChange([...(bind.value || []), ...newValues]);\n };\n\n props.removeValue = (index: number) => {\n if (index < 0) {\n return;\n }\n let value = bind.value;\n value = [...value.slice(0, index), ...value.slice(index + 1)];\n\n bind.onChange(value);\n\n // To make sure the field is still valid, we must trigger validation.\n form.validateInput(field.fieldId);\n };\n\n props.moveValueUp = (index: number) => {\n if (index <= 0) {\n return;\n }\n\n const value = [...bind.value];\n value.splice(index, 1);\n value.splice(index - 1, 0, bind.value[index]);\n\n bind.onChange(value);\n };\n\n props.moveValueDown = (index: number) => {\n if (index >= bind.value.length) {\n return;\n }\n\n const value = [...bind.value];\n value.splice(index, 1);\n value.splice(index + 1, 0, bind.value[index]);\n\n bind.onChange(value);\n };\n }\n\n const element =\n typeof children === \"function\"\n ? children(props)\n : cloneElement(children, props);\n\n return element;\n }}\n </Bind>\n );\n } as BindComponent;\n\n // We need to keep track of current field name, to support nested fields.\n memoizedBindComponents.current[componentId].parentName = name;\n memoizedBindComponents.current[componentId].displayName = `Bind<${name}>`;\n\n return memoizedBindComponents.current[componentId];\n },\n [field.fieldId, cacheKey]\n );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_form","_createValidators","createFieldCacheKey","field","id","fieldId","JSON","stringify","validation","listValidation","join","emptyValidators","useBind","_ref","Bind","memoizedBindComponents","useRef","cacheKey","form","useForm","useCallback","index","arguments","length","undefined","parentName","name","filter","v","componentId","concat","current","validators","createValidators","listValidators","isMultipleValues","multipleValues","inputValidators","defaultValueFromSettings","settings","defaultValue","UseBind","params","childName","childValidators","children","_params$defaultValue","default","createElement","bind","props","_objectSpread2","appendValue","newValue","currentValue","value","newIndex","onChange","_toConsumableArray2","slice","prependValue","appendValues","newValues","removeValue","validateInput","moveValueUp","splice","moveValueDown","element","cloneElement","displayName"],"sources":["useBind.tsx"],"sourcesContent":["import React, { useRef, useCallback, cloneElement } from \"react\";\nimport { Validator } from \"@webiny/validation/types\";\nimport { useForm } from \"@webiny/form\";\nimport { createValidators } from \"~/utils/createValidators\";\nimport { BindComponent, CmsModelField } from \"~/types\";\n\ninterface UseBindProps {\n field: CmsModelField;\n Bind: BindComponent;\n}\n\ninterface UseBindParams {\n name?: string;\n validators?: Validator | Validator[];\n children?: any;\n defaultValue?: any;\n}\n\nconst createFieldCacheKey = (field: CmsModelField) => {\n return [\n field.id,\n field.fieldId,\n JSON.stringify(field.validation),\n JSON.stringify(field.listValidation)\n ].join(\";\");\n};\n\nexport interface GetBindCallable {\n (index?: number): BindComponent;\n}\n\nconst emptyValidators: Validator[] = [];\n\nexport function useBind({ Bind, field }: UseBindProps) {\n const memoizedBindComponents = useRef<Record<string, BindComponent>>({});\n const cacheKey = createFieldCacheKey(field);\n const form = useForm();\n\n return useCallback(\n (index = -1) => {\n const { parentName } = Bind;\n\n // If there's a parent name assigned to the given Bind component, we need to include it in the new field \"name\".\n // This allows us to have nested fields (like \"object\" field with nested properties)\n const name = [parentName, field.fieldId, index >= 0 ? index : undefined]\n .filter(v => v !== undefined)\n .join(\".\");\n\n const componentId = `${name};${cacheKey}`;\n\n if (memoizedBindComponents.current[componentId]) {\n return memoizedBindComponents.current[componentId];\n }\n\n const validators = createValidators(field, field.validation || emptyValidators);\n const listValidators = createValidators(field, field.listValidation || emptyValidators);\n const isMultipleValues = index === -1 && field.multipleValues;\n const inputValidators = isMultipleValues ? listValidators : validators;\n\n // We only use default values for single-value fields.\n const defaultValueFromSettings = !isMultipleValues\n ? field.settings?.defaultValue\n : null;\n\n memoizedBindComponents.current[componentId] = function UseBind(params: UseBindParams) {\n const {\n name: childName,\n validators: childValidators,\n children,\n defaultValue = defaultValueFromSettings\n } = params;\n\n return (\n <Bind\n name={childName || name}\n validators={childValidators || inputValidators}\n defaultValue={defaultValue ?? null}\n >\n {bind => {\n // Multiple-values functions below.\n const props = { ...bind };\n if (field.multipleValues && index === -1) {\n props.appendValue = (newValue: any, index?: number) => {\n const currentValue = bind.value || [];\n const newIndex = index ?? currentValue.length;\n\n bind.onChange([\n ...currentValue.slice(0, newIndex),\n newValue,\n ...currentValue.slice(newIndex)\n ]);\n };\n props.prependValue = (newValue: any) => {\n bind.onChange([newValue, ...(bind.value || [])]);\n };\n props.appendValues = (newValues: any[]) => {\n bind.onChange([...(bind.value || []), ...newValues]);\n };\n\n props.removeValue = (index: number) => {\n if (index < 0) {\n return;\n }\n let value = bind.value;\n value = [...value.slice(0, index), ...value.slice(index + 1)];\n\n bind.onChange(value.length === 0 ? null : value);\n\n // To make sure the field is still valid, we must trigger validation.\n form.validateInput(field.fieldId);\n };\n\n props.moveValueUp = (index: number) => {\n if (index <= 0) {\n return;\n }\n\n const value = [...bind.value];\n value.splice(index, 1);\n value.splice(index - 1, 0, bind.value[index]);\n\n bind.onChange(value);\n };\n\n props.moveValueDown = (index: number) => {\n if (index >= bind.value.length) {\n return;\n }\n\n const value = [...bind.value];\n value.splice(index, 1);\n value.splice(index + 1, 0, bind.value[index]);\n\n bind.onChange(value);\n };\n }\n\n const element =\n typeof children === \"function\"\n ? children(props)\n : cloneElement(children, props);\n\n return element;\n }}\n </Bind>\n );\n } as BindComponent;\n\n // We need to keep track of current field name, to support nested fields.\n memoizedBindComponents.current[componentId].parentName = name;\n memoizedBindComponents.current[componentId].displayName = `Bind<${name}>`;\n\n return memoizedBindComponents.current[componentId];\n },\n [field.fieldId, cacheKey]\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
- import { BindComponent, BindComponentRenderProp, CmsModelField } from "../../../types";
3
2
  import { GetBindCallable } from "../../components/ContentEntryForm/useBind";
3
+ import { BindComponent, BindComponentRenderProp, CmsModelField } from "../../../types";
4
4
  export interface DynamicSectionPropsChildrenParams {
5
5
  Bind: BindComponent;
6
6
  field: CmsModelField;
@@ -14,11 +14,9 @@ export interface DynamicSectionProps {
14
14
  field: CmsModelField;
15
15
  getBind: GetBindCallable;
16
16
  showLabel?: boolean;
17
- Label: React.ComponentType<any>;
18
17
  children: (params: DynamicSectionPropsChildrenParams) => JSX.Element;
19
18
  emptyValue?: any;
20
- renderTitle?: (value: any[]) => React.ReactElement;
21
19
  gridClassName?: string;
22
20
  }
23
- declare const DynamicSection: ({ field, getBind, Label, children, showLabel, emptyValue, renderTitle, gridClassName }: DynamicSectionProps) => React.JSX.Element;
21
+ declare const DynamicSection: ({ field, getBind, children, showLabel, emptyValue, gridClassName }: DynamicSectionProps) => React.JSX.Element;
24
22
  export default DynamicSection;
@@ -6,39 +6,60 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _base = _interopRequireDefault(require("@emotion/styled/base"));
9
10
  var _react = _interopRequireDefault(require("react"));
10
11
  var _classnames = _interopRequireDefault(require("classnames"));
11
12
  var _emotion = require("emotion");
12
13
  var _i18n = require("@webiny/app/i18n");
13
14
  var _Grid = require("@webiny/ui/Grid");
15
+ var _Typography = require("@webiny/ui/Typography");
14
16
  var _Button = require("@webiny/ui/Button");
15
17
  var _FormElementMessage = require("@webiny/ui/FormElementMessage");
16
18
  var _add18px = require("@webiny/app-admin/assets/icons/add-18px.svg");
17
19
  var _hooks = require("../../hooks");
18
20
  var _ModelFieldProvider = require("../../components/ModelFieldProvider");
19
21
  var _templateObject, _templateObject2;
22
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
20
23
  var t = _i18n.i18n.ns("app-headless-cms/admin/fields/text");
21
24
  var style = {
22
- gridContainer: (0, _emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n padding: 0 !important;\n "]))),
23
- addButton: (0, _emotion.css)({
24
- width: "100%",
25
- borderTop: "1px solid var(--mdc-theme-background)",
26
- paddingTop: 8
27
- })
25
+ gridContainer: (0, _emotion.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n padding: 0 !important;\n "])))
28
26
  };
29
- var DynamicSection = function DynamicSection(_ref) {
30
- var field = _ref.field,
31
- getBind = _ref.getBind,
32
- Label = _ref.Label,
33
- children = _ref.children,
34
- _ref$showLabel = _ref.showLabel,
35
- showLabel = _ref$showLabel === void 0 ? true : _ref$showLabel,
36
- _ref$emptyValue = _ref.emptyValue,
37
- emptyValue = _ref$emptyValue === void 0 ? "" : _ref$emptyValue,
38
- renderTitle = _ref.renderTitle,
39
- gridClassName = _ref.gridClassName;
27
+ var FieldLabel = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV === "production" ? {
28
+ target: "e1i6yu8a1"
29
+ } : {
30
+ target: "e1i6yu8a1",
31
+ label: "FieldLabel"
32
+ })(process.env.NODE_ENV === "production" ? {
33
+ name: "1ua069u",
34
+ styles: "font-size:24px;font-weight:normal;border-bottom:1px solid var(--mdc-theme-background);margin-bottom:20px;padding-bottom:5px"
35
+ } : {
36
+ name: "1ua069u",
37
+ styles: "font-size:24px;font-weight:normal;border-bottom:1px solid var(--mdc-theme-background);margin-bottom:20px;padding-bottom:5px",
38
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR5bmFtaWNTZWN0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQzZCIiwiZmlsZSI6IkR5bmFtaWNTZWN0aW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc1NldCBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcImVtb3Rpb25cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gXCJAd2ViaW55L2FwcC9pMThuXCI7XG5pbXBvcnQgeyBDZWxsLCBHcmlkIH0gZnJvbSBcIkB3ZWJpbnkvdWkvR3JpZFwiO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gXCJAd2ViaW55L3VpL1R5cG9ncmFwaHlcIjtcbmltcG9ydCB7IEJ1dHRvbkRlZmF1bHQsIEJ1dHRvbkljb24gfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcbmltcG9ydCB7IEZvcm1FbGVtZW50TWVzc2FnZSB9IGZyb20gXCJAd2ViaW55L3VpL0Zvcm1FbGVtZW50TWVzc2FnZVwiO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgQWRkSWNvbiB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pbi9hc3NldHMvaWNvbnMvYWRkLTE4cHguc3ZnXCI7XG5pbXBvcnQgeyBHZXRCaW5kQ2FsbGFibGUgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vdXNlQmluZFwiO1xuaW1wb3J0IHsgUGFyZW50RmllbGRQcm92aWRlciB9IGZyb20gXCJ+L2FkbWluL2hvb2tzXCI7XG5pbXBvcnQgeyBQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL01vZGVsRmllbGRQcm92aWRlclwiO1xuaW1wb3J0IHsgQmluZENvbXBvbmVudCwgQmluZENvbXBvbmVudFJlbmRlclByb3AsIENtc01vZGVsRmllbGQgfSBmcm9tIFwifi90eXBlc1wiO1xuXG5jb25zdCB0ID0gaTE4bi5ucyhcImFwcC1oZWFkbGVzcy1jbXMvYWRtaW4vZmllbGRzL3RleHRcIik7XG5cbmNvbnN0IHN0eWxlID0ge1xuICAgIGdyaWRDb250YWluZXI6IGNzc2BcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGBcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1NlY3Rpb25Qcm9wc0NoaWxkcmVuUGFyYW1zIHtcbiAgICBCaW5kOiBCaW5kQ29tcG9uZW50O1xuICAgIGZpZWxkOiBDbXNNb2RlbEZpZWxkO1xuICAgIGJpbmQ6IHtcbiAgICAgICAgaW5kZXg6IEJpbmRDb21wb25lbnRSZW5kZXJQcm9wO1xuICAgICAgICBmaWVsZDogQmluZENvbXBvbmVudFJlbmRlclByb3A7XG4gICAgfTtcbiAgICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNTZWN0aW9uUHJvcHMge1xuICAgIGZpZWxkOiBDbXNNb2RlbEZpZWxkO1xuICAgIGdldEJpbmQ6IEdldEJpbmRDYWxsYWJsZTtcbiAgICBzaG93TGFiZWw/OiBib29sZWFuO1xuICAgIGNoaWxkcmVuOiAocGFyYW1zOiBEeW5hbWljU2VjdGlvblByb3BzQ2hpbGRyZW5QYXJhbXMpID0+IEpTWC5FbGVtZW50O1xuICAgIGVtcHR5VmFsdWU/OiBhbnk7XG4gICAgZ3JpZENsYXNzTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgRmllbGRMYWJlbCA9IHN0eWxlZC5kaXZgXG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1kYy10aGVtZS1iYWNrZ3JvdW5kKTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG5gO1xuXG5jb25zdCBBZGRCdXR0b25DZWxsID0gc3R5bGVkKENlbGwpPHsgaXRlbXM6IG51bWJlciB9PmBcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogJHsoeyBpdGVtcyB9KSA9PiAoaXRlbXMgPiAwID8gXCI4cHhcIiA6IFwiMFwiKX07XG4gICAgYm9yZGVyLXRvcDogJHsoeyBpdGVtcyB9KSA9PiAoaXRlbXMgPiAwID8gXCIxcHggc29saWQgdmFyKC0tbWRjLXRoZW1lLWJhY2tncm91bmQpXCIgOiBcIm5vbmVcIil9O1xuYDtcblxuY29uc3QgRHluYW1pY1NlY3Rpb24gPSAoe1xuICAgIGZpZWxkLFxuICAgIGdldEJpbmQsXG4gICAgY2hpbGRyZW4sXG4gICAgc2hvd0xhYmVsID0gdHJ1ZSxcbiAgICBlbXB0eVZhbHVlID0gXCJcIixcbiAgICBncmlkQ2xhc3NOYW1lXG59OiBEeW5hbWljU2VjdGlvblByb3BzKSA9PiB7XG4gICAgY29uc3QgQmluZCA9IGdldEJpbmQoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIC8qIEZpcnN0IHdlIG1vdW50IHRoZSB0b3AgbGV2ZWwgZmllbGQsIGZvciBleGFtcGxlOiBcIml0ZW1zXCIgKi9cbiAgICAgICAgPEJpbmQ+XG4gICAgICAgICAgICB7YmluZEZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBcInZhbHVlXCIgLT4gYW4gYXJyYXkgb2YgaXRlbXNcbiAgICAgICAgICAgICAgICAgKiBcImFwcGVuZFZhbHVlXCIgLT4gYSBjYWxsYmFjayB0byBhZGQgYSBuZXcgdmFsdWUgdG8gdGhlIHRvcCBsZXZlbCBcIml0ZW1zXCIgYXJyYXlcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCB7IHZhbHVlLCBhcHBlbmRWYWx1ZSB9ID0gYmluZEZpZWxkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYmluZEZpZWxkVmFsdWU6IHN0cmluZ1tdID0gdmFsdWUgfHwgW107XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8UGFyZW50RmllbGRQcm92aWRlciB2YWx1ZT17dmFsdWV9IHBhdGg9e0JpbmQucGFyZW50TmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd0xhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB1c2U9e1wiaGVhZGxpbmU1XCJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Ake2ZpZWxkLmxhYmVsfSAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRGaWVsZFZhbHVlLmxlbmd0aCA/IGAoJHtiaW5kRmllbGRWYWx1ZS5sZW5ndGh9KWAgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmllbGQuaGVscFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1FbGVtZW50TWVzc2FnZT57ZmllbGQuaGVscFRleHR9PC9Gb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9e2NsYXNzU2V0KGdyaWRDbGFzc05hbWUsIHN0eWxlLmdyaWRDb250YWluZXIpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmluZEZpZWxkVmFsdWUubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCaW5kRmllbGQgPSBnZXRCaW5kKGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfSBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmluZEZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmluZFByb3BzID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIgaW5kZXg9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5kOiBCaW5kRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogYmluZFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGJpbmRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9QYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kRmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmluZEZpZWxkLnZhbGlkYXRpb24uaXNWYWxpZCA9PT0gZmFsc2UgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUVsZW1lbnRNZXNzYWdlIGVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtiaW5kRmllbGQudmFsaWRhdGlvbi5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBZGRCdXR0b25DZWxsIHNwYW49ezEyfSBpdGVtcz17YmluZEZpZWxkVmFsdWUubGVuZ3RofT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkRlZmF1bHQgb25DbGljaz17KCkgPT4gYXBwZW5kVmFsdWUoZW1wdHlWYWx1ZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkljb24gaWNvbj17PEFkZEljb24gLz59IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGBBZGQgdmFsdWVgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbkRlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BZGRCdXR0b25DZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L1BhcmVudEZpZWxkUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgIDwvQmluZD5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRHluYW1pY1NlY3Rpb247XG4iXX0= */",
39
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
40
+ });
41
+ var AddButtonCell = /*#__PURE__*/(0, _base.default)(_Grid.Cell, process.env.NODE_ENV === "production" ? {
42
+ target: "e1i6yu8a0"
43
+ } : {
44
+ target: "e1i6yu8a0",
45
+ label: "AddButtonCell"
46
+ })("width:100%;padding-top:", function (_ref) {
47
+ var items = _ref.items;
48
+ return items > 0 ? "8px" : "0";
49
+ }, ";border-top:", function (_ref2) {
50
+ var items = _ref2.items;
51
+ return items > 0 ? "1px solid var(--mdc-theme-background)" : "none";
52
+ }, ";" + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkR5bmFtaWNTZWN0aW9uLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrRHFEIiwiZmlsZSI6IkR5bmFtaWNTZWN0aW9uLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc1NldCBmcm9tIFwiY2xhc3NuYW1lc1wiO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSBcImVtb3Rpb25cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gXCJAd2ViaW55L2FwcC9pMThuXCI7XG5pbXBvcnQgeyBDZWxsLCBHcmlkIH0gZnJvbSBcIkB3ZWJpbnkvdWkvR3JpZFwiO1xuaW1wb3J0IHsgVHlwb2dyYXBoeSB9IGZyb20gXCJAd2ViaW55L3VpL1R5cG9ncmFwaHlcIjtcbmltcG9ydCB7IEJ1dHRvbkRlZmF1bHQsIEJ1dHRvbkljb24gfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcbmltcG9ydCB7IEZvcm1FbGVtZW50TWVzc2FnZSB9IGZyb20gXCJAd2ViaW55L3VpL0Zvcm1FbGVtZW50TWVzc2FnZVwiO1xuaW1wb3J0IHsgUmVhY3RDb21wb25lbnQgYXMgQWRkSWNvbiB9IGZyb20gXCJAd2ViaW55L2FwcC1hZG1pbi9hc3NldHMvaWNvbnMvYWRkLTE4cHguc3ZnXCI7XG5pbXBvcnQgeyBHZXRCaW5kQ2FsbGFibGUgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL0NvbnRlbnRFbnRyeUZvcm0vdXNlQmluZFwiO1xuaW1wb3J0IHsgUGFyZW50RmllbGRQcm92aWRlciB9IGZyb20gXCJ+L2FkbWluL2hvb2tzXCI7XG5pbXBvcnQgeyBQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIgfSBmcm9tIFwifi9hZG1pbi9jb21wb25lbnRzL01vZGVsRmllbGRQcm92aWRlclwiO1xuaW1wb3J0IHsgQmluZENvbXBvbmVudCwgQmluZENvbXBvbmVudFJlbmRlclByb3AsIENtc01vZGVsRmllbGQgfSBmcm9tIFwifi90eXBlc1wiO1xuXG5jb25zdCB0ID0gaTE4bi5ucyhcImFwcC1oZWFkbGVzcy1jbXMvYWRtaW4vZmllbGRzL3RleHRcIik7XG5cbmNvbnN0IHN0eWxlID0ge1xuICAgIGdyaWRDb250YWluZXI6IGNzc2BcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGBcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY1NlY3Rpb25Qcm9wc0NoaWxkcmVuUGFyYW1zIHtcbiAgICBCaW5kOiBCaW5kQ29tcG9uZW50O1xuICAgIGZpZWxkOiBDbXNNb2RlbEZpZWxkO1xuICAgIGJpbmQ6IHtcbiAgICAgICAgaW5kZXg6IEJpbmRDb21wb25lbnRSZW5kZXJQcm9wO1xuICAgICAgICBmaWVsZDogQmluZENvbXBvbmVudFJlbmRlclByb3A7XG4gICAgfTtcbiAgICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIER5bmFtaWNTZWN0aW9uUHJvcHMge1xuICAgIGZpZWxkOiBDbXNNb2RlbEZpZWxkO1xuICAgIGdldEJpbmQ6IEdldEJpbmRDYWxsYWJsZTtcbiAgICBzaG93TGFiZWw/OiBib29sZWFuO1xuICAgIGNoaWxkcmVuOiAocGFyYW1zOiBEeW5hbWljU2VjdGlvblByb3BzQ2hpbGRyZW5QYXJhbXMpID0+IEpTWC5FbGVtZW50O1xuICAgIGVtcHR5VmFsdWU/OiBhbnk7XG4gICAgZ3JpZENsYXNzTmFtZT86IHN0cmluZztcbn1cblxuY29uc3QgRmllbGRMYWJlbCA9IHN0eWxlZC5kaXZgXG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHZhcigtLW1kYy10aGVtZS1iYWNrZ3JvdW5kKTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmctYm90dG9tOiA1cHg7XG5gO1xuXG5jb25zdCBBZGRCdXR0b25DZWxsID0gc3R5bGVkKENlbGwpPHsgaXRlbXM6IG51bWJlciB9PmBcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXRvcDogJHsoeyBpdGVtcyB9KSA9PiAoaXRlbXMgPiAwID8gXCI4cHhcIiA6IFwiMFwiKX07XG4gICAgYm9yZGVyLXRvcDogJHsoeyBpdGVtcyB9KSA9PiAoaXRlbXMgPiAwID8gXCIxcHggc29saWQgdmFyKC0tbWRjLXRoZW1lLWJhY2tncm91bmQpXCIgOiBcIm5vbmVcIil9O1xuYDtcblxuY29uc3QgRHluYW1pY1NlY3Rpb24gPSAoe1xuICAgIGZpZWxkLFxuICAgIGdldEJpbmQsXG4gICAgY2hpbGRyZW4sXG4gICAgc2hvd0xhYmVsID0gdHJ1ZSxcbiAgICBlbXB0eVZhbHVlID0gXCJcIixcbiAgICBncmlkQ2xhc3NOYW1lXG59OiBEeW5hbWljU2VjdGlvblByb3BzKSA9PiB7XG4gICAgY29uc3QgQmluZCA9IGdldEJpbmQoKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIC8qIEZpcnN0IHdlIG1vdW50IHRoZSB0b3AgbGV2ZWwgZmllbGQsIGZvciBleGFtcGxlOiBcIml0ZW1zXCIgKi9cbiAgICAgICAgPEJpbmQ+XG4gICAgICAgICAgICB7YmluZEZpZWxkID0+IHtcbiAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgKiBcInZhbHVlXCIgLT4gYW4gYXJyYXkgb2YgaXRlbXNcbiAgICAgICAgICAgICAgICAgKiBcImFwcGVuZFZhbHVlXCIgLT4gYSBjYWxsYmFjayB0byBhZGQgYSBuZXcgdmFsdWUgdG8gdGhlIHRvcCBsZXZlbCBcIml0ZW1zXCIgYXJyYXlcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBjb25zdCB7IHZhbHVlLCBhcHBlbmRWYWx1ZSB9ID0gYmluZEZpZWxkO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgYmluZEZpZWxkVmFsdWU6IHN0cmluZ1tdID0gdmFsdWUgfHwgW107XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8UGFyZW50RmllbGRQcm92aWRlciB2YWx1ZT17dmFsdWV9IHBhdGg9e0JpbmQucGFyZW50TmFtZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7c2hvd0xhYmVsID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWVsZExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeSB1c2U9e1wiaGVhZGxpbmU1XCJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2Ake2ZpZWxkLmxhYmVsfSAke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRGaWVsZFZhbHVlLmxlbmd0aCA/IGAoJHtiaW5kRmllbGRWYWx1ZS5sZW5ndGh9KWAgOiBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ZmllbGQuaGVscFRleHQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1FbGVtZW50TWVzc2FnZT57ZmllbGQuaGVscFRleHR9PC9Gb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWVsZExhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgICAgICAgICA8R3JpZCBjbGFzc05hbWU9e2NsYXNzU2V0KGdyaWRDbGFzc05hbWUsIHN0eWxlLmdyaWRDb250YWluZXIpfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmluZEZpZWxkVmFsdWUubWFwKChfLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBCaW5kRmllbGQgPSBnZXRCaW5kKGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDZWxsIHNwYW49ezEyfSBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QmluZEZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmluZFByb3BzID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXIgaW5kZXg9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW4oe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5kOiBCaW5kRmllbGQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogYmluZFByb3BzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGJpbmRGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9QYXJlbnRWYWx1ZUluZGV4UHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CaW5kRmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0NlbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7YmluZEZpZWxkLnZhbGlkYXRpb24uaXNWYWxpZCA9PT0gZmFsc2UgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2VsbCBzcGFuPXsxMn0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybUVsZW1lbnRNZXNzYWdlIGVycm9yPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtiaW5kRmllbGQudmFsaWRhdGlvbi5tZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQ2VsbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBZGRCdXR0b25DZWxsIHNwYW49ezEyfSBpdGVtcz17YmluZEZpZWxkVmFsdWUubGVuZ3RofT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkRlZmF1bHQgb25DbGljaz17KCkgPT4gYXBwZW5kVmFsdWUoZW1wdHlWYWx1ZSl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbkljb24gaWNvbj17PEFkZEljb24gLz59IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGBBZGQgdmFsdWVgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbkRlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BZGRCdXR0b25DZWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9HcmlkPlxuICAgICAgICAgICAgICAgICAgICA8L1BhcmVudEZpZWxkUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgIDwvQmluZD5cbiAgICApO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgRHluYW1pY1NlY3Rpb247XG4iXX0= */"));
53
+ var DynamicSection = function DynamicSection(_ref3) {
54
+ var field = _ref3.field,
55
+ getBind = _ref3.getBind,
56
+ children = _ref3.children,
57
+ _ref3$showLabel = _ref3.showLabel,
58
+ showLabel = _ref3$showLabel === void 0 ? true : _ref3$showLabel,
59
+ _ref3$emptyValue = _ref3.emptyValue,
60
+ emptyValue = _ref3$emptyValue === void 0 ? "" : _ref3$emptyValue,
61
+ gridClassName = _ref3.gridClassName;
40
62
  var Bind = getBind();
41
- var FirstFieldBind = getBind(0);
42
63
  return (
43
64
  /*#__PURE__*/
44
65
  /* First we mount the top level field, for example: "items" */
@@ -53,34 +74,18 @@ var DynamicSection = function DynamicSection(_ref) {
53
74
  return /*#__PURE__*/_react.default.createElement(_hooks.ParentFieldProvider, {
54
75
  value: value,
55
76
  path: Bind.parentName
56
- }, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
77
+ }, showLabel ? /*#__PURE__*/_react.default.createElement(FieldLabel, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
78
+ use: "headline5"
79
+ }, "".concat(field.label, " ").concat(bindFieldValue.length ? "(".concat(bindFieldValue.length, ")") : "")), field.helpText && /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, null, field.helpText)) : null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, {
57
80
  className: (0, _classnames.default)(gridClassName, style.gridContainer)
58
- }, typeof renderTitle === "function" && renderTitle(bindFieldValue), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
59
- span: 12
60
- }, showLabel && field.label && /*#__PURE__*/_react.default.createElement(Label, null, field.label), /*#__PURE__*/_react.default.createElement(FirstFieldBind, null, function (bindProps) {
61
- return /*#__PURE__*/_react.default.createElement(_ModelFieldProvider.ParentValueIndexProvider, {
62
- index: 0
63
- }, children({
64
- Bind: FirstFieldBind,
65
- field: field,
66
- // "index" contains Bind props for this particular item in the array
67
- // "field" contains Bind props for the main (parent) field.
68
- bind: {
69
- index: bindProps,
70
- field: bindField
71
- },
72
- index: 0 // Binds to "items.0" in the <Form>.
73
- }));
74
- })), bindFieldValue.slice(1).map(function (_, index) {
75
- /* We simply increase index, and as you type, the appropriate indexes in the parent array will be updated. */
76
- var realIndex = index + 1;
77
- var BindField = getBind(realIndex);
81
+ }, bindFieldValue.map(function (_, index) {
82
+ var BindField = getBind(index);
78
83
  return /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
79
84
  span: 12,
80
- key: realIndex
85
+ key: index
81
86
  }, /*#__PURE__*/_react.default.createElement(BindField, null, function (bindProps) {
82
87
  return /*#__PURE__*/_react.default.createElement(_ModelFieldProvider.ParentValueIndexProvider, {
83
- index: realIndex
88
+ index: index
84
89
  }, children({
85
90
  Bind: BindField,
86
91
  field: field,
@@ -88,18 +93,17 @@ var DynamicSection = function DynamicSection(_ref) {
88
93
  index: bindProps,
89
94
  field: bindField
90
95
  },
91
- index: realIndex
96
+ index: index
92
97
  }));
93
98
  }));
94
99
  }), bindField.validation.isValid === false && /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
95
100
  span: 12
96
101
  }, /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, {
97
102
  error: true
98
- }, bindField.validation.message)), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
103
+ }, bindField.validation.message)), /*#__PURE__*/_react.default.createElement(AddButtonCell, {
99
104
  span: 12,
100
- className: style.addButton
105
+ items: bindFieldValue.length
101
106
  }, /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
102
- disabled: bindFieldValue[0] === undefined,
103
107
  onClick: function onClick() {
104
108
  return appendValue(emptyValue);
105
109
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_classnames","_emotion","_i18n","_Grid","_Button","_FormElementMessage","_add18px","_hooks","_ModelFieldProvider","_templateObject","_templateObject2","t","i18n","ns","style","gridContainer","css","_taggedTemplateLiteral2","default","addButton","width","borderTop","paddingTop","DynamicSection","_ref","field","getBind","Label","children","_ref$showLabel","showLabel","_ref$emptyValue","emptyValue","renderTitle","gridClassName","Bind","FirstFieldBind","createElement","bindField","value","appendValue","bindFieldValue","ParentFieldProvider","path","parentName","Grid","className","classSet","Cell","span","label","bindProps","ParentValueIndexProvider","index","bind","slice","map","_","realIndex","BindField","key","validation","isValid","FormElementMessage","error","message","ButtonDefault","disabled","undefined","onClick","ButtonIcon","icon","ReactComponent","_default","exports"],"sources":["DynamicSection.tsx"],"sourcesContent":["import React from \"react\";\nimport classSet from \"classnames\";\nimport { css } from \"emotion\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { ButtonDefault, ButtonIcon } from \"@webiny/ui/Button\";\nimport { BindComponent, BindComponentRenderProp, CmsModelField } from \"~/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { GetBindCallable } from \"~/admin/components/ContentEntryForm/useBind\";\nimport { ParentFieldProvider } from \"~/admin/hooks\";\nimport { ParentValueIndexProvider } from \"~/admin/components/ModelFieldProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst style = {\n gridContainer: css`\n padding: 0 !important;\n `,\n addButton: css({\n width: \"100%\",\n borderTop: \"1px solid var(--mdc-theme-background)\",\n paddingTop: 8\n })\n};\n\nexport interface DynamicSectionPropsChildrenParams {\n Bind: BindComponent;\n field: CmsModelField;\n bind: {\n index: BindComponentRenderProp;\n field: BindComponentRenderProp;\n };\n index: number;\n}\n\nexport interface DynamicSectionProps {\n field: CmsModelField;\n getBind: GetBindCallable;\n showLabel?: boolean;\n Label: React.ComponentType<any>;\n children: (params: DynamicSectionPropsChildrenParams) => JSX.Element;\n emptyValue?: any;\n renderTitle?: (value: any[]) => React.ReactElement;\n gridClassName?: string;\n}\n\nconst DynamicSection = ({\n field,\n getBind,\n Label,\n children,\n showLabel = true,\n emptyValue = \"\",\n renderTitle,\n gridClassName\n}: DynamicSectionProps) => {\n const Bind = getBind();\n const FirstFieldBind = getBind(0);\n\n return (\n /* First we mount the top level field, for example: \"items\" */\n <Bind>\n {bindField => {\n /**\n * \"value\" -> an array of items\n * \"appendValue\" -> a callback to add a new value to the top level \"items\" array\n */\n const { value, appendValue } = bindField;\n\n const bindFieldValue: string[] = value || [];\n return (\n <ParentFieldProvider value={value} path={Bind.parentName}>\n <Grid className={classSet(gridClassName, style.gridContainer)}>\n {typeof renderTitle === \"function\" && renderTitle(bindFieldValue)}\n <Cell span={12}>\n {/* We always render the first item, for better UX */}\n {showLabel && field.label && <Label>{field.label}</Label>}\n\n <FirstFieldBind>\n {bindProps => (\n <ParentValueIndexProvider index={0}>\n {/* We bind it to index \"0\", so when you start typing, that index in parent array will be populated */}\n {children({\n Bind: FirstFieldBind,\n field,\n // \"index\" contains Bind props for this particular item in the array\n // \"field\" contains Bind props for the main (parent) field.\n bind: {\n index: bindProps,\n field: bindField\n },\n index: 0 // Binds to \"items.0\" in the <Form>.\n })}\n </ParentValueIndexProvider>\n )}\n </FirstFieldBind>\n </Cell>\n\n {/* Now we skip the first item, because we already rendered it above, and proceed with all other items. */}\n {bindFieldValue.slice(1).map((_, index) => {\n /* We simply increase index, and as you type, the appropriate indexes in the parent array will be updated. */\n const realIndex = index + 1;\n const BindField = getBind(realIndex);\n return (\n <Cell span={12} key={realIndex}>\n <BindField>\n {bindProps => (\n <ParentValueIndexProvider index={realIndex}>\n {children({\n Bind: BindField,\n field,\n bind: {\n index: bindProps,\n field: bindField\n },\n index: realIndex\n })}\n </ParentValueIndexProvider>\n )}\n </BindField>\n </Cell>\n );\n })}\n\n {bindField.validation.isValid === false && (\n <Cell span={12}>\n <FormElementMessage error>\n {bindField.validation.message}\n </FormElementMessage>\n </Cell>\n )}\n <Cell span={12} className={style.addButton}>\n <ButtonDefault\n disabled={bindFieldValue[0] === undefined}\n onClick={() => appendValue(emptyValue)}\n >\n <ButtonIcon icon={<AddIcon />} />\n {t`Add value`}\n </ButtonDefault>\n </Cell>\n </Grid>\n </ParentFieldProvider>\n );\n }}\n </Bind>\n );\n};\n\nexport default DynamicSection;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_classnames","_emotion","_i18n","_Grid","_Typography","_Button","_FormElementMessage","_add18px","_hooks","_ModelFieldProvider","_templateObject","_templateObject2","_EMOTION_STRINGIFIED_CSS_ERROR__","t","i18n","ns","style","gridContainer","css","_taggedTemplateLiteral2","default","FieldLabel","_base","process","env","NODE_ENV","target","label","name","styles","map","toString","AddButtonCell","Cell","_ref","items","_ref2","DynamicSection","_ref3","field","getBind","children","_ref3$showLabel","showLabel","_ref3$emptyValue","emptyValue","gridClassName","Bind","createElement","bindField","value","appendValue","bindFieldValue","ParentFieldProvider","path","parentName","Typography","use","concat","length","helpText","FormElementMessage","Grid","className","classSet","_","index","BindField","span","key","bindProps","ParentValueIndexProvider","bind","validation","isValid","error","message","ButtonDefault","onClick","ButtonIcon","icon","ReactComponent","_default","exports"],"sources":["DynamicSection.tsx"],"sourcesContent":["import React from \"react\";\nimport classSet from \"classnames\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ButtonDefault, ButtonIcon } from \"@webiny/ui/Button\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { GetBindCallable } from \"~/admin/components/ContentEntryForm/useBind\";\nimport { ParentFieldProvider } from \"~/admin/hooks\";\nimport { ParentValueIndexProvider } from \"~/admin/components/ModelFieldProvider\";\nimport { BindComponent, BindComponentRenderProp, CmsModelField } from \"~/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/text\");\n\nconst style = {\n gridContainer: css`\n padding: 0 !important;\n `\n};\n\nexport interface DynamicSectionPropsChildrenParams {\n Bind: BindComponent;\n field: CmsModelField;\n bind: {\n index: BindComponentRenderProp;\n field: BindComponentRenderProp;\n };\n index: number;\n}\n\nexport interface DynamicSectionProps {\n field: CmsModelField;\n getBind: GetBindCallable;\n showLabel?: boolean;\n children: (params: DynamicSectionPropsChildrenParams) => JSX.Element;\n emptyValue?: any;\n gridClassName?: string;\n}\n\nconst FieldLabel = styled.div`\n font-size: 24px;\n font-weight: normal;\n border-bottom: 1px solid var(--mdc-theme-background);\n margin-bottom: 20px;\n padding-bottom: 5px;\n`;\n\nconst AddButtonCell = styled(Cell)<{ items: number }>`\n width: 100%;\n padding-top: ${({ items }) => (items > 0 ? \"8px\" : \"0\")};\n border-top: ${({ items }) => (items > 0 ? \"1px solid var(--mdc-theme-background)\" : \"none\")};\n`;\n\nconst DynamicSection = ({\n field,\n getBind,\n children,\n showLabel = true,\n emptyValue = \"\",\n gridClassName\n}: DynamicSectionProps) => {\n const Bind = getBind();\n\n return (\n /* First we mount the top level field, for example: \"items\" */\n <Bind>\n {bindField => {\n /**\n * \"value\" -> an array of items\n * \"appendValue\" -> a callback to add a new value to the top level \"items\" array\n */\n const { value, appendValue } = bindField;\n\n const bindFieldValue: string[] = value || [];\n\n return (\n <ParentFieldProvider value={value} path={Bind.parentName}>\n {showLabel ? (\n <FieldLabel>\n <Typography use={\"headline5\"}>\n {`${field.label} ${\n bindFieldValue.length ? `(${bindFieldValue.length})` : \"\"\n }`}\n </Typography>\n {field.helpText && (\n <FormElementMessage>{field.helpText}</FormElementMessage>\n )}\n </FieldLabel>\n ) : null}\n <Grid className={classSet(gridClassName, style.gridContainer)}>\n {bindFieldValue.map((_, index) => {\n const BindField = getBind(index);\n return (\n <Cell span={12} key={index}>\n <BindField>\n {bindProps => (\n <ParentValueIndexProvider index={index}>\n {children({\n Bind: BindField,\n field,\n bind: {\n index: bindProps,\n field: bindField\n },\n index\n })}\n </ParentValueIndexProvider>\n )}\n </BindField>\n </Cell>\n );\n })}\n\n {bindField.validation.isValid === false && (\n <Cell span={12}>\n <FormElementMessage error>\n {bindField.validation.message}\n </FormElementMessage>\n </Cell>\n )}\n <AddButtonCell span={12} items={bindFieldValue.length}>\n <ButtonDefault onClick={() => appendValue(emptyValue)}>\n <ButtonIcon icon={<AddIcon />} />\n {t`Add value`}\n </ButtonDefault>\n </AddButtonCell>\n </Grid>\n </ParentFieldProvider>\n );\n }}\n </Bind>\n );\n};\n\nexport default DynamicSection;\n"],"mappings":"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","ignoreList":[]}
@@ -22,7 +22,7 @@ var Input = exports.Input = function Input(_ref) {
22
22
  },
23
23
  label: props.field.label,
24
24
  placeholder: props.field.placeholderText,
25
- description: props.field.helpText,
25
+ description: props.field.multipleValues ? undefined : props.field.helpText,
26
26
  type: props.type,
27
27
  trailingIcon: props.trailingIcon,
28
28
  "data-testid": "fr.input.".concat(props.field.label)
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_Input","_excluded","Input","exports","_ref","bind","props","_objectWithoutProperties2","default","createElement","Object","assign","onChange","value","type","parseFloat","label","field","placeholder","placeholderText","description","helpText","trailingIcon","concat"],"sources":["Input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { CmsModelField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { Input as UiInput } from \"@webiny/ui/Input\";\n\nexport interface TrailingIcon {\n icon: React.ReactNode;\n onClick: any;\n}\n\nexport interface InputProps {\n step?: number;\n type?: string;\n bind: BindComponentRenderProp;\n field: CmsModelField;\n trailingIcon?: TrailingIcon;\n}\n\nexport const Input = ({ bind, ...props }: InputProps) => {\n return (\n <UiInput\n {...props}\n {...bind}\n onChange={value => {\n if (props.type === \"number\") {\n value = parseFloat(value);\n }\n return bind.onChange(value);\n }}\n label={props.field.label}\n placeholder={props.field.placeholderText}\n description={props.field.helpText}\n type={props.type}\n trailingIcon={props.trailingIcon}\n data-testid={`fr.input.${props.field.label}`}\n />\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAAoD,IAAAE,SAAA;AAe7C,IAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,SAARA,KAAKA,CAAAE,IAAA,EAAuC;EAAA,IAAjCC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAH,SAAA;EAClC,oBACIJ,KAAA,CAAAY,aAAA,CAACT,MAAA,CAAAE,KAAO,EAAAQ,MAAA,CAAAC,MAAA,KACAL,KAAK,EACLD,IAAI;IACRO,QAAQ,EAAE,SAAAA,SAAAC,KAAK,EAAI;MACf,IAAIP,KAAK,CAACQ,IAAI,KAAK,QAAQ,EAAE;QACzBD,KAAK,GAAGE,UAAU,CAACF,KAAK,CAAC;MAC7B;MACA,OAAOR,IAAI,CAACO,QAAQ,CAACC,KAAK,CAAC;IAC/B,CAAE;IACFG,KAAK,EAAEV,KAAK,CAACW,KAAK,CAACD,KAAM;IACzBE,WAAW,EAAEZ,KAAK,CAACW,KAAK,CAACE,eAAgB;IACzCC,WAAW,EAAEd,KAAK,CAACW,KAAK,CAACI,QAAS;IAClCP,IAAI,EAAER,KAAK,CAACQ,IAAK;IACjBQ,YAAY,EAAEhB,KAAK,CAACgB,YAAa;IACjC,2BAAAC,MAAA,CAAyBjB,KAAK,CAACW,KAAK,CAACD,KAAK;EAAG,EAChD,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","_Input","_excluded","Input","exports","_ref","bind","props","_objectWithoutProperties2","default","createElement","Object","assign","onChange","value","type","parseFloat","label","field","placeholder","placeholderText","description","multipleValues","undefined","helpText","trailingIcon","concat"],"sources":["Input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { CmsModelField } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { Input as UiInput } from \"@webiny/ui/Input\";\n\nexport interface TrailingIcon {\n icon: React.ReactNode;\n onClick: any;\n}\n\nexport interface InputProps {\n step?: number;\n type?: string;\n bind: BindComponentRenderProp;\n field: CmsModelField;\n trailingIcon?: TrailingIcon;\n}\n\nexport const Input = ({ bind, ...props }: InputProps) => {\n return (\n <UiInput\n {...props}\n {...bind}\n onChange={value => {\n if (props.type === \"number\") {\n value = parseFloat(value);\n }\n return bind.onChange(value);\n }}\n label={props.field.label}\n placeholder={props.field.placeholderText}\n description={props.field.multipleValues ? undefined : props.field.helpText}\n type={props.type}\n trailingIcon={props.trailingIcon}\n data-testid={`fr.input.${props.field.label}`}\n />\n );\n};\n"],"mappings":";;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAAoD,IAAAE,SAAA;AAe7C,IAAMC,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,SAARA,KAAKA,CAAAE,IAAA,EAAuC;EAAA,IAAjCC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAKC,KAAK,OAAAC,yBAAA,CAAAC,OAAA,EAAAJ,IAAA,EAAAH,SAAA;EAClC,oBACIJ,KAAA,CAAAY,aAAA,CAACT,MAAA,CAAAE,KAAO,EAAAQ,MAAA,CAAAC,MAAA,KACAL,KAAK,EACLD,IAAI;IACRO,QAAQ,EAAE,SAAAA,SAAAC,KAAK,EAAI;MACf,IAAIP,KAAK,CAACQ,IAAI,KAAK,QAAQ,EAAE;QACzBD,KAAK,GAAGE,UAAU,CAACF,KAAK,CAAC;MAC7B;MACA,OAAOR,IAAI,CAACO,QAAQ,CAACC,KAAK,CAAC;IAC/B,CAAE;IACFG,KAAK,EAAEV,KAAK,CAACW,KAAK,CAACD,KAAM;IACzBE,WAAW,EAAEZ,KAAK,CAACW,KAAK,CAACE,eAAgB;IACzCC,WAAW,EAAEd,KAAK,CAACW,KAAK,CAACI,cAAc,GAAGC,SAAS,GAAGhB,KAAK,CAACW,KAAK,CAACM,QAAS;IAC3ET,IAAI,EAAER,KAAK,CAACQ,IAAK;IACjBU,YAAY,EAAElB,KAAK,CAACkB,YAAa;IACjC,2BAAAC,MAAA,CAAyBnB,KAAK,CAACW,KAAK,CAACD,KAAK;EAAG,EAChD,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -35,15 +35,12 @@ var plugin = {
35
35
  return /*#__PURE__*/_react.default.createElement(_DynamicSection.default, props, function (_ref2) {
36
36
  var bind = _ref2.bind,
37
37
  index = _ref2.index;
38
- var trailingIcon = undefined;
39
- if (index > 0) {
40
- trailingIcon = {
41
- icon: /*#__PURE__*/_react.default.createElement(_close.ReactComponent, null),
42
- onClick: function onClick() {
43
- return bind.field.removeValue(index);
44
- }
45
- };
46
- }
38
+ var trailingIcon = {
39
+ icon: /*#__PURE__*/_react.default.createElement(_close.ReactComponent, null),
40
+ onClick: function onClick() {
41
+ return bind.field.removeValue(index);
42
+ }
43
+ };
47
44
  if (fieldSettingsType === "dateTimeWithoutTimezone") {
48
45
  return /*#__PURE__*/_react.default.createElement(_DateTimeWithoutTimezone.DateTimeWithoutTimezone, {
49
46
  field: field,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_get","_DynamicSection","_i18n","_close","_DateTimeWithoutTimezone","_DateTimeWithTimezone","_DateOnly","_Time","_templateObject","_templateObject2","_templateObject3","_templateObject4","t","i18n","ns","plugin","type","name","renderer","rendererName","_taggedTemplateLiteral2","default","description","canUse","_ref","field","multipleValues","get","render","props","fieldSettingsType","settings","createElement","_ref2","bind","index","trailingIcon","undefined","icon","ReactComponent","onClick","removeValue","DateTimeWithoutTimezone","DateTimeWithTimezone","Time","_objectSpread2","label","number","DateOnly","_default","exports"],"sources":["dateTimeFields.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport DynamicSection from \"../DynamicSection\";\nimport { CmsModelFieldRendererPlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/close.svg\";\nimport { DateTimeWithoutTimezone } from \"./DateTimeWithoutTimezone\";\nimport { DateTimeWithTimezone } from \"./DateTimeWithTimezone\";\nimport { DateOnly } from \"./DateOnly\";\nimport { Time } from \"./Time\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/date-time\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-date-times\",\n renderer: {\n rendererName: \"date-time-inputs\",\n name: t`Date/Time Inputs`,\n description: t`Renders inputs for various formats of dates and times.`,\n canUse({ field }) {\n return !!(\n field.type === \"datetime\" &&\n field.multipleValues &&\n !get(field, \"predefinedValues.enabled\")\n );\n },\n render(props) {\n const { field } = props;\n\n const fieldSettingsType = field.settings ? field.settings.type : null;\n\n return (\n <DynamicSection {...props}>\n {({ bind, index }) => {\n let trailingIcon = undefined;\n if (index > 0) {\n trailingIcon = {\n icon: <DeleteIcon />,\n onClick: () => bind.field.removeValue(index)\n };\n }\n\n if (fieldSettingsType === \"dateTimeWithoutTimezone\") {\n return (\n <DateTimeWithoutTimezone\n field={field}\n bind={bind.index}\n trailingIcon={trailingIcon}\n />\n );\n }\n if (fieldSettingsType === \"dateTimeWithTimezone\") {\n return (\n <DateTimeWithTimezone\n field={field}\n bind={bind.index}\n trailingIcon={trailingIcon}\n />\n );\n }\n if (fieldSettingsType === \"time\") {\n return (\n <Time\n field={{\n ...props.field,\n label:\n props.field.label +\n t` Value {number}`({ number: index + 1 })\n }}\n bind={bind.index}\n trailingIcon={trailingIcon}\n />\n );\n }\n\n return (\n <DateOnly\n bind={bind.index}\n field={{\n ...props.field,\n label:\n props.field.label +\n t` Value {number}`({ number: index + 1 })\n }}\n trailingIcon={trailingIcon}\n />\n );\n }}\n </DynamicSection>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_get","_DynamicSection","_i18n","_close","_DateTimeWithoutTimezone","_DateTimeWithTimezone","_DateOnly","_Time","_templateObject","_templateObject2","_templateObject3","_templateObject4","t","i18n","ns","plugin","type","name","renderer","rendererName","_taggedTemplateLiteral2","default","description","canUse","_ref","field","multipleValues","get","render","props","fieldSettingsType","settings","createElement","_ref2","bind","index","trailingIcon","icon","ReactComponent","onClick","removeValue","DateTimeWithoutTimezone","DateTimeWithTimezone","Time","_objectSpread2","label","number","DateOnly","_default","exports"],"sources":["dateTimeFields.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport DynamicSection from \"../DynamicSection\";\nimport { CmsModelFieldRendererPlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/close.svg\";\nimport { DateTimeWithoutTimezone } from \"./DateTimeWithoutTimezone\";\nimport { DateTimeWithTimezone } from \"./DateTimeWithTimezone\";\nimport { DateOnly } from \"./DateOnly\";\nimport { Time } from \"./Time\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/date-time\");\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-date-times\",\n renderer: {\n rendererName: \"date-time-inputs\",\n name: t`Date/Time Inputs`,\n description: t`Renders inputs for various formats of dates and times.`,\n canUse({ field }) {\n return !!(\n field.type === \"datetime\" &&\n field.multipleValues &&\n !get(field, \"predefinedValues.enabled\")\n );\n },\n render(props) {\n const { field } = props;\n\n const fieldSettingsType = field.settings ? field.settings.type : null;\n\n return (\n <DynamicSection {...props}>\n {({ bind, index }) => {\n const trailingIcon = {\n icon: <DeleteIcon />,\n onClick: () => bind.field.removeValue(index)\n };\n\n if (fieldSettingsType === \"dateTimeWithoutTimezone\") {\n return (\n <DateTimeWithoutTimezone\n field={field}\n bind={bind.index}\n trailingIcon={trailingIcon}\n />\n );\n }\n if (fieldSettingsType === \"dateTimeWithTimezone\") {\n return (\n <DateTimeWithTimezone\n field={field}\n bind={bind.index}\n trailingIcon={trailingIcon}\n />\n );\n }\n if (fieldSettingsType === \"time\") {\n return (\n <Time\n field={{\n ...props.field,\n label:\n props.field.label +\n t` Value {number}`({ number: index + 1 })\n }}\n bind={bind.index}\n trailingIcon={trailingIcon}\n />\n );\n }\n\n return (\n <DateOnly\n bind={bind.index}\n field={{\n ...props.field,\n label:\n props.field.label +\n t` Value {number}`({ number: index + 1 })\n }}\n trailingIcon={trailingIcon}\n />\n );\n }}\n </DynamicSection>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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","ignoreList":[]}
@@ -36,7 +36,7 @@ var EditorWrapper = /*#__PURE__*/(0, _base.default)("div", process.env.NODE_ENV
36
36
  } : {
37
37
  name: "1j3i2ps",
38
38
  styles: "position:relative;> button{position:absolute;top:0;right:5px;z-index:10;}",
39
- map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxleGljYWxUZXh0SW5wdXRzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQnNCIiwiZmlsZSI6ImxleGljYWxUZXh0SW5wdXRzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBnZXQgZnJvbSBcImxvZGFzaC9nZXRcIjtcbmltcG9ydCB7IGkxOG4gfSBmcm9tIFwiQHdlYmlueS9hcHAvaTE4blwiO1xuaW1wb3J0IHsgQ21zTW9kZWxGaWVsZCwgQ21zTW9kZWxGaWVsZFJlbmRlcmVyUGx1Z2luIH0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIERlbGV0ZUljb24gfSBmcm9tIFwifi9hZG1pbi9pY29ucy9jbG9zZS5zdmdcIjtcbmltcG9ydCBEeW5hbWljU2VjdGlvbiBmcm9tIFwiLi4vRHluYW1pY1NlY3Rpb25cIjtcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgTGV4aWNhbENtc0VkaXRvciB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvTGV4aWNhbENtc0VkaXRvci9MZXhpY2FsQ21zRWRpdG9yXCI7XG5pbXBvcnQgeyBtb2RlbEhhc0xlZ2FjeVJ0ZUZpZWxkIH0gZnJvbSBcIn4vYWRtaW4vcGx1Z2lucy9maWVsZFJlbmRlcmVycy9yaWNoVGV4dC91dGlsc1wiO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnRNZXNzYWdlIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRm9ybUVsZW1lbnRNZXNzYWdlXCI7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSBcIkB3ZWJpbnkvZm9ybVwiO1xuaW1wb3J0IHsgRGVsYXllZE9uQ2hhbmdlIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRGVsYXllZE9uQ2hhbmdlXCI7XG5cbmNvbnN0IHQgPSBpMThuLm5zKFwiYXBwLWhlYWRsZXNzLWNtcy9hZG1pbi9maWVsZHMvcmljaC10ZXh0XCIpO1xuXG5jb25zdCBnZXRLZXkgPSAoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgZmllbGQ6IENtc01vZGVsRmllbGQsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGZvcm1JZCA9IGlkIHx8IFwibmV3XCI7XG4gICAgcmV0dXJuIGAke2Zvcm1JZH0uJHtmaWVsZC5maWVsZElkfS4ke2luZGV4fWA7XG59O1xuXG5jb25zdCBFZGl0b3JXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIFwiPiBidXR0b25cIjoge1xuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIHJpZ2h0OiA1LFxuICAgICAgICB6SW5kZXg6IDEwXG4gICAgfVxufSk7XG5cbmNvbnN0IHBsdWdpbjogQ21zTW9kZWxGaWVsZFJlbmRlcmVyUGx1Z2luID0ge1xuICAgIHR5cGU6IFwiY21zLWVkaXRvci1maWVsZC1yZW5kZXJlclwiLFxuICAgIG5hbWU6IFwiY21zLWVkaXRvci1maWVsZC1yZW5kZXJlci1sZXhpY2FsLWlucHV0c1wiLFxuICAgIHJlbmRlcmVyOiB7XG4gICAgICAgIHJlbmRlcmVyTmFtZTogXCJsZXhpY2FsLXRleHQtaW5wdXRzXCIsXG4gICAgICAgIG5hbWU6IHRgTGV4aWNhbCBUZXh0IElucHV0c2AsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0YFJlbmRlcnMgYSBsaXN0IG9mIGxleGljYWwgZWRpdG9ycy5gLFxuICAgICAgICBjYW5Vc2UoeyBmaWVsZCwgbW9kZWwgfSkge1xuICAgICAgICAgICAgY29uc3QgY2FuVXNlID1cbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09PSBcInJpY2gtdGV4dFwiICYmXG4gICAgICAgICAgICAgICAgISFmaWVsZC5tdWx0aXBsZVZhbHVlcyAmJlxuICAgICAgICAgICAgICAgICFnZXQoZmllbGQsIFwicHJlZGVmaW5lZFZhbHVlcy5lbmFibGVkXCIpO1xuXG4gICAgICAgICAgICBpZiAoY2FuVXNlICYmIG1vZGVsSGFzTGVnYWN5UnRlRmllbGQobW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY2FuVXNlO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXIocHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHByb3BzO1xuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHVzZUZvcm0oKTtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RHluYW1pY1NlY3Rpb24gey4uLnByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgeyh7IGJpbmQsIGluZGV4IH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFZGl0b3JXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxheWVkT25DaGFuZ2Ugey4uLmJpbmQuaW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgdmFsdWUsIG9uQ2hhbmdlIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMZXhpY2FsQ21zRWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2dldEtleShmb3JtLmRhdGEuaWQsIGZpZWxkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ZpZWxkLnBsYWNlaG9sZGVyVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWxheWVkT25DaGFuZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1FbGVtZW50TWVzc2FnZT57ZmllbGQuaGVscFRleHR9PC9Gb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2luZGV4ID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RGVsZXRlSWNvbiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGJpbmQuZmllbGQucmVtb3ZlVmFsdWUoaW5kZXgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0VkaXRvcldyYXBwZXI+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9EeW5hbWljU2VjdGlvbj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBwbHVnaW47XG4iXX0= */",
39
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxleGljYWxUZXh0SW5wdXRzLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxQnNCIiwiZmlsZSI6ImxleGljYWxUZXh0SW5wdXRzLnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBnZXQgZnJvbSBcImxvZGFzaC9nZXRcIjtcbmltcG9ydCB7IGkxOG4gfSBmcm9tIFwiQHdlYmlueS9hcHAvaTE4blwiO1xuaW1wb3J0IHsgQ21zTW9kZWxGaWVsZCwgQ21zTW9kZWxGaWVsZFJlbmRlcmVyUGx1Z2luIH0gZnJvbSBcIn4vdHlwZXNcIjtcbmltcG9ydCB7IFJlYWN0Q29tcG9uZW50IGFzIERlbGV0ZUljb24gfSBmcm9tIFwifi9hZG1pbi9pY29ucy9jbG9zZS5zdmdcIjtcbmltcG9ydCBEeW5hbWljU2VjdGlvbiBmcm9tIFwiLi4vRHluYW1pY1NlY3Rpb25cIjtcbmltcG9ydCB7IEljb25CdXR0b24gfSBmcm9tIFwiQHdlYmlueS91aS9CdXR0b25cIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHsgTGV4aWNhbENtc0VkaXRvciB9IGZyb20gXCJ+L2FkbWluL2NvbXBvbmVudHMvTGV4aWNhbENtc0VkaXRvci9MZXhpY2FsQ21zRWRpdG9yXCI7XG5pbXBvcnQgeyBtb2RlbEhhc0xlZ2FjeVJ0ZUZpZWxkIH0gZnJvbSBcIn4vYWRtaW4vcGx1Z2lucy9maWVsZFJlbmRlcmVycy9yaWNoVGV4dC91dGlsc1wiO1xuaW1wb3J0IHsgRm9ybUVsZW1lbnRNZXNzYWdlIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRm9ybUVsZW1lbnRNZXNzYWdlXCI7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSBcIkB3ZWJpbnkvZm9ybVwiO1xuaW1wb3J0IHsgRGVsYXllZE9uQ2hhbmdlIH0gZnJvbSBcIkB3ZWJpbnkvdWkvRGVsYXllZE9uQ2hhbmdlXCI7XG5cbmNvbnN0IHQgPSBpMThuLm5zKFwiYXBwLWhlYWRsZXNzLWNtcy9hZG1pbi9maWVsZHMvcmljaC10ZXh0XCIpO1xuXG5jb25zdCBnZXRLZXkgPSAoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCwgZmllbGQ6IENtc01vZGVsRmllbGQsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcgPT4ge1xuICAgIGNvbnN0IGZvcm1JZCA9IGlkIHx8IFwibmV3XCI7XG4gICAgcmV0dXJuIGAke2Zvcm1JZH0uJHtmaWVsZC5maWVsZElkfS4ke2luZGV4fWA7XG59O1xuXG5jb25zdCBFZGl0b3JXcmFwcGVyID0gc3R5bGVkKFwiZGl2XCIpKHtcbiAgICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICAgIFwiPiBidXR0b25cIjoge1xuICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICB0b3A6IDAsXG4gICAgICAgIHJpZ2h0OiA1LFxuICAgICAgICB6SW5kZXg6IDEwXG4gICAgfVxufSk7XG5cbmNvbnN0IHBsdWdpbjogQ21zTW9kZWxGaWVsZFJlbmRlcmVyUGx1Z2luID0ge1xuICAgIHR5cGU6IFwiY21zLWVkaXRvci1maWVsZC1yZW5kZXJlclwiLFxuICAgIG5hbWU6IFwiY21zLWVkaXRvci1maWVsZC1yZW5kZXJlci1sZXhpY2FsLWlucHV0c1wiLFxuICAgIHJlbmRlcmVyOiB7XG4gICAgICAgIHJlbmRlcmVyTmFtZTogXCJsZXhpY2FsLXRleHQtaW5wdXRzXCIsXG4gICAgICAgIG5hbWU6IHRgTGV4aWNhbCBUZXh0IElucHV0c2AsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0YFJlbmRlcnMgYSBsaXN0IG9mIGxleGljYWwgZWRpdG9ycy5gLFxuICAgICAgICBjYW5Vc2UoeyBmaWVsZCwgbW9kZWwgfSkge1xuICAgICAgICAgICAgY29uc3QgY2FuVXNlID1cbiAgICAgICAgICAgICAgICBmaWVsZC50eXBlID09PSBcInJpY2gtdGV4dFwiICYmXG4gICAgICAgICAgICAgICAgISFmaWVsZC5tdWx0aXBsZVZhbHVlcyAmJlxuICAgICAgICAgICAgICAgICFnZXQoZmllbGQsIFwicHJlZGVmaW5lZFZhbHVlcy5lbmFibGVkXCIpO1xuXG4gICAgICAgICAgICBpZiAoY2FuVXNlICYmIG1vZGVsSGFzTGVnYWN5UnRlRmllbGQobW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gY2FuVXNlO1xuICAgICAgICB9LFxuICAgICAgICByZW5kZXIocHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgZmllbGQgfSA9IHByb3BzO1xuICAgICAgICAgICAgY29uc3QgZm9ybSA9IHVzZUZvcm0oKTtcblxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8RHluYW1pY1NlY3Rpb24gey4uLnByb3BzfT5cbiAgICAgICAgICAgICAgICAgICAgeyh7IGJpbmQsIGluZGV4IH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxFZGl0b3JXcmFwcGVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEZWxheWVkT25DaGFuZ2Ugey4uLmJpbmQuaW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHsgdmFsdWUsIG9uQ2hhbmdlIH0pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMZXhpY2FsQ21zRWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2dldEtleShmb3JtLmRhdGEuaWQsIGZpZWxkLCBpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e2ZpZWxkLnBsYWNlaG9sZGVyVGV4dH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9EZWxheWVkT25DaGFuZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge2ZpZWxkLm11bHRpcGxlVmFsdWVzID8gbnVsbCA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEZvcm1FbGVtZW50TWVzc2FnZT57ZmllbGQuaGVscFRleHR9PC9Gb3JtRWxlbWVudE1lc3NhZ2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8RGVsZXRlSWNvbiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gYmluZC5maWVsZC5yZW1vdmVWYWx1ZShpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRWRpdG9yV3JhcHBlcj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L0R5bmFtaWNTZWN0aW9uPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IHBsdWdpbjtcbiJdfQ== */",
40
40
  toString: _EMOTION_STRINGIFIED_CSS_ERROR__
41
41
  });
42
42
  var plugin = {
@@ -70,7 +70,7 @@ var plugin = {
70
70
  key: getKey(form.data.id, field, index),
71
71
  placeholder: field.placeholderText
72
72
  });
73
- }), /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, null, field.helpText), index > 0 && /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
73
+ }), field.multipleValues ? null : /*#__PURE__*/_react.default.createElement(_FormElementMessage.FormElementMessage, null, field.helpText), /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
74
74
  icon: /*#__PURE__*/_react.default.createElement(_close.ReactComponent, null),
75
75
  onClick: function onClick() {
76
76
  return bind.field.removeValue(index);
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_get","_i18n","_close","_DynamicSection","_Button","_LexicalCmsEditor","_utils","_FormElementMessage","_form","_DelayedOnChange","_templateObject","_templateObject2","_EMOTION_STRINGIFIED_CSS_ERROR__","t","i18n","ns","getKey","id","field","index","formId","concat","fieldId","EditorWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","plugin","type","renderer","rendererName","_taggedTemplateLiteral2","description","canUse","_ref","model","multipleValues","get","modelHasLegacyRteField","render","props","form","useForm","createElement","_ref2","bind","DelayedOnChange","_ref3","value","onChange","LexicalCmsEditor","key","data","placeholder","placeholderText","FormElementMessage","helpText","IconButton","icon","ReactComponent","onClick","removeValue","_default","exports"],"sources":["lexicalTextInputs.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsModelField, CmsModelFieldRendererPlugin } from \"~/types\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/close.svg\";\nimport DynamicSection from \"../DynamicSection\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport styled from \"@emotion/styled\";\nimport { LexicalCmsEditor } from \"~/admin/components/LexicalCmsEditor/LexicalCmsEditor\";\nimport { modelHasLegacyRteField } from \"~/admin/plugins/fieldRenderers/richText/utils\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { useForm } from \"@webiny/form\";\nimport { DelayedOnChange } from \"@webiny/ui/DelayedOnChange\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/rich-text\");\n\nconst getKey = (id: string | undefined, field: CmsModelField, index: number): string => {\n const formId = id || \"new\";\n return `${formId}.${field.fieldId}.${index}`;\n};\n\nconst EditorWrapper = styled(\"div\")({\n position: \"relative\",\n \"> button\": {\n position: \"absolute\",\n top: 0,\n right: 5,\n zIndex: 10\n }\n});\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-lexical-inputs\",\n renderer: {\n rendererName: \"lexical-text-inputs\",\n name: t`Lexical Text Inputs`,\n description: t`Renders a list of lexical editors.`,\n canUse({ field, model }) {\n const canUse =\n field.type === \"rich-text\" &&\n !!field.multipleValues &&\n !get(field, \"predefinedValues.enabled\");\n\n if (canUse && modelHasLegacyRteField(model)) {\n return false;\n }\n\n return canUse;\n },\n render(props) {\n const { field } = props;\n const form = useForm();\n\n return (\n <DynamicSection {...props}>\n {({ bind, index }) => (\n <EditorWrapper>\n <DelayedOnChange {...bind.index}>\n {({ value, onChange }) => (\n <LexicalCmsEditor\n value={value}\n onChange={onChange}\n key={getKey(form.data.id, field, index)}\n placeholder={field.placeholderText}\n />\n )}\n </DelayedOnChange>\n <FormElementMessage>{field.helpText}</FormElementMessage>\n {index > 0 && (\n <IconButton\n icon={<DeleteIcon />}\n onClick={() => bind.field.removeValue(index)}\n />\n )}\n </EditorWrapper>\n )}\n </DynamicSection>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_get","_i18n","_close","_DynamicSection","_Button","_LexicalCmsEditor","_utils","_FormElementMessage","_form","_DelayedOnChange","_templateObject","_templateObject2","_EMOTION_STRINGIFIED_CSS_ERROR__","t","i18n","ns","getKey","id","field","index","formId","concat","fieldId","EditorWrapper","_base","default","process","env","NODE_ENV","target","label","name","styles","map","toString","plugin","type","renderer","rendererName","_taggedTemplateLiteral2","description","canUse","_ref","model","multipleValues","get","modelHasLegacyRteField","render","props","form","useForm","createElement","_ref2","bind","DelayedOnChange","_ref3","value","onChange","LexicalCmsEditor","key","data","placeholder","placeholderText","FormElementMessage","helpText","IconButton","icon","ReactComponent","onClick","removeValue","_default","exports"],"sources":["lexicalTextInputs.tsx"],"sourcesContent":["import React from \"react\";\nimport get from \"lodash/get\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsModelField, CmsModelFieldRendererPlugin } from \"~/types\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/close.svg\";\nimport DynamicSection from \"../DynamicSection\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport styled from \"@emotion/styled\";\nimport { LexicalCmsEditor } from \"~/admin/components/LexicalCmsEditor/LexicalCmsEditor\";\nimport { modelHasLegacyRteField } from \"~/admin/plugins/fieldRenderers/richText/utils\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { useForm } from \"@webiny/form\";\nimport { DelayedOnChange } from \"@webiny/ui/DelayedOnChange\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/rich-text\");\n\nconst getKey = (id: string | undefined, field: CmsModelField, index: number): string => {\n const formId = id || \"new\";\n return `${formId}.${field.fieldId}.${index}`;\n};\n\nconst EditorWrapper = styled(\"div\")({\n position: \"relative\",\n \"> button\": {\n position: \"absolute\",\n top: 0,\n right: 5,\n zIndex: 10\n }\n});\n\nconst plugin: CmsModelFieldRendererPlugin = {\n type: \"cms-editor-field-renderer\",\n name: \"cms-editor-field-renderer-lexical-inputs\",\n renderer: {\n rendererName: \"lexical-text-inputs\",\n name: t`Lexical Text Inputs`,\n description: t`Renders a list of lexical editors.`,\n canUse({ field, model }) {\n const canUse =\n field.type === \"rich-text\" &&\n !!field.multipleValues &&\n !get(field, \"predefinedValues.enabled\");\n\n if (canUse && modelHasLegacyRteField(model)) {\n return false;\n }\n\n return canUse;\n },\n render(props) {\n const { field } = props;\n const form = useForm();\n\n return (\n <DynamicSection {...props}>\n {({ bind, index }) => (\n <EditorWrapper>\n <DelayedOnChange {...bind.index}>\n {({ value, onChange }) => (\n <LexicalCmsEditor\n value={value}\n onChange={onChange}\n key={getKey(form.data.id, field, index)}\n placeholder={field.placeholderText}\n />\n )}\n </DelayedOnChange>\n {field.multipleValues ? null : (\n <FormElementMessage>{field.helpText}</FormElementMessage>\n )}\n <IconButton\n icon={<DeleteIcon />}\n onClick={() => bind.field.removeValue(index)}\n />\n </EditorWrapper>\n )}\n </DynamicSection>\n );\n }\n }\n};\n\nexport default plugin;\n"],"mappings":"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","ignoreList":[]}