@webiny/app-headless-cms 5.33.5-beta.0 → 5.34.0-beta.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.
Files changed (461) hide show
  1. package/HeadlessCMS.js +4 -0
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntryForm/ContentEntryForm.js +35 -32
  4. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
  5. package/admin/components/ContentEntryForm/Fields.d.ts +2 -2
  6. package/admin/components/ContentEntryForm/Fields.js.map +1 -1
  7. package/admin/components/ContentEntryForm/Label.js +1 -1
  8. package/admin/components/ContentEntryForm/Label.js.map +1 -1
  9. package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +2 -2
  10. package/admin/components/ContentEntryForm/RenderFieldElement.js +6 -2
  11. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
  12. package/admin/components/ContentEntryForm/functions/getValue.d.ts +2 -2
  13. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
  14. package/admin/components/ContentEntryForm/functions/setValue.d.ts +2 -2
  15. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
  16. package/admin/components/ContentEntryForm/useBind.d.ts +2 -2
  17. package/admin/components/ContentEntryForm/useBind.js +11 -8
  18. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  19. package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +1 -2
  20. package/admin/components/ContentEntryForm/useContentEntryForm.js +187 -147
  21. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
  22. package/admin/components/ContentModelEditor/{Context.d.ts → ContentModelEditorProvider.d.ts} +10 -4
  23. package/admin/components/ContentModelEditor/{Context.js → ContentModelEditorProvider.js} +60 -116
  24. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -0
  25. package/admin/components/ContentModelEditor/Editor.js +5 -5
  26. package/admin/components/ContentModelEditor/Editor.js.map +1 -1
  27. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
  28. package/admin/components/ContentModelEditor/PreviewTab.js +3 -3
  29. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
  30. package/admin/components/ContentModelEditor/index.d.ts +2 -0
  31. package/admin/components/ContentModelEditor/index.js +31 -0
  32. package/admin/components/ContentModelEditor/index.js.map +1 -0
  33. package/admin/components/ContentModelEditor/useModelEditor.d.ts +1 -0
  34. package/admin/components/ContentModelEditor/{useContentModelEditor.js → useModelEditor.js} +4 -4
  35. package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -0
  36. package/admin/{views/contentModelGroups → components}/DelayedOnChange.d.ts +0 -0
  37. package/admin/{views/contentModelGroups → components}/DelayedOnChange.js +0 -0
  38. package/admin/{views/contentModelGroups → components}/DelayedOnChange.js.map +0 -0
  39. package/admin/components/Dialog.d.ts +4 -0
  40. package/admin/components/Dialog.js +32 -0
  41. package/admin/components/Dialog.js.map +1 -0
  42. package/admin/components/DropZone/Center.d.ts +2 -1
  43. package/admin/components/DropZone/Center.js +38 -44
  44. package/admin/components/DropZone/Center.js.map +1 -1
  45. package/admin/components/Droppable.d.ts +1 -0
  46. package/admin/components/Droppable.js +12 -1
  47. package/admin/components/Droppable.js.map +1 -1
  48. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.d.ts +2 -8
  49. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +20 -9
  50. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
  51. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.d.ts +2 -9
  52. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +35 -21
  53. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  54. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.d.ts +2 -9
  55. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +14 -12
  56. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
  57. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.d.ts +10 -0
  58. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js +42 -0
  59. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js.map +1 -0
  60. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.d.ts +8 -0
  61. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js +227 -0
  62. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -0
  63. package/admin/components/FieldEditor/EditFieldDialog/getValidators.d.ts +13 -0
  64. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js +115 -0
  65. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -0
  66. package/admin/components/FieldEditor/EditFieldDialog.d.ts +3 -3
  67. package/admin/components/FieldEditor/EditFieldDialog.js +117 -260
  68. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
  69. package/admin/components/FieldEditor/Field.d.ts +5 -5
  70. package/admin/components/FieldEditor/Field.js +17 -14
  71. package/admin/components/FieldEditor/Field.js.map +1 -1
  72. package/admin/components/FieldEditor/FieldEditor.d.ts +4 -4
  73. package/admin/components/FieldEditor/FieldEditor.js +85 -31
  74. package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
  75. package/admin/components/FieldEditor/FieldEditorContext.d.ts +16 -16
  76. package/admin/components/FieldEditor/FieldEditorContext.js +18 -18
  77. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
  78. package/admin/components/FieldEditor/Styled.js +4 -13
  79. package/admin/components/FieldEditor/Styled.js.map +1 -1
  80. package/admin/components/FieldEditor/index.d.ts +1 -1
  81. package/admin/components/FieldEditor/index.js +3 -3
  82. package/admin/components/FieldEditor/index.js.map +1 -1
  83. package/admin/components/FieldEditor/useModelFieldEditor.d.ts +2 -0
  84. package/admin/components/FieldEditor/useModelFieldEditor.js +20 -0
  85. package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -0
  86. package/admin/components/FieldEditor/utils/deleteField.d.ts +2 -2
  87. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
  88. package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +2 -2
  89. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
  90. package/admin/components/FieldEditor/utils/moveField.d.ts +3 -3
  91. package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
  92. package/admin/components/IconPicker.d.ts +7 -0
  93. package/admin/{views/contentModelGroups → components}/IconPicker.js +34 -31
  94. package/admin/components/IconPicker.js.map +1 -0
  95. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +36 -0
  96. package/admin/components/ModelFieldProvider/ModelFieldContext.js +24 -0
  97. package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +1 -0
  98. package/admin/components/ModelFieldProvider/index.d.ts +2 -0
  99. package/admin/components/ModelFieldProvider/index.js +31 -0
  100. package/admin/components/ModelFieldProvider/index.js.map +1 -0
  101. package/admin/components/ModelFieldProvider/useModelField.d.ts +35 -0
  102. package/admin/components/ModelFieldProvider/useModelField.js +42 -0
  103. package/admin/components/ModelFieldProvider/useModelField.js.map +1 -0
  104. package/admin/components/ModelProvider/ModelContext.d.ts +9 -0
  105. package/admin/components/ModelProvider/ModelContext.js +24 -0
  106. package/admin/components/ModelProvider/ModelContext.js.map +1 -0
  107. package/admin/components/ModelProvider/index.d.ts +2 -0
  108. package/admin/components/ModelProvider/index.js +31 -0
  109. package/admin/components/ModelProvider/index.js.map +1 -0
  110. package/admin/components/ModelProvider/useModel.d.ts +9 -0
  111. package/admin/components/ModelProvider/useModel.js +25 -0
  112. package/admin/components/ModelProvider/useModel.js.map +1 -0
  113. package/admin/constants/statusLabels.js +2 -4
  114. package/admin/constants/statusLabels.js.map +1 -1
  115. package/admin/graphql/contentEntries.d.ts +2 -29
  116. package/admin/graphql/contentEntries.js +28 -42
  117. package/admin/graphql/contentEntries.js.map +1 -1
  118. package/admin/graphql/contentModels.d.ts +1 -1
  119. package/admin/graphql/contentModels.js +2 -2
  120. package/admin/graphql/contentModels.js.map +1 -1
  121. package/admin/graphql/createFieldsList.d.ts +7 -2
  122. package/admin/graphql/createFieldsList.js +5 -1
  123. package/admin/graphql/createFieldsList.js.map +1 -1
  124. package/admin/hooks/index.d.ts +5 -0
  125. package/admin/hooks/index.js +47 -2
  126. package/admin/hooks/index.js.map +1 -1
  127. package/admin/hooks/usePermission.d.ts +0 -2
  128. package/admin/hooks/usePermission.js +5 -37
  129. package/admin/hooks/usePermission.js.map +1 -1
  130. package/admin/menus/NothingToShowElement.js +4 -1
  131. package/admin/menus/NothingToShowElement.js.map +1 -1
  132. package/admin/plugins/arrayUtils.d.ts +12 -0
  133. package/admin/plugins/arrayUtils.js +53 -0
  134. package/admin/plugins/arrayUtils.js.map +1 -0
  135. package/admin/plugins/editor/defaultBar/CreateContentButton.js +4 -4
  136. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
  137. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +5 -5
  138. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
  139. package/admin/plugins/editor/defaultBar/Name/Name.js +4 -4
  140. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
  141. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +3 -3
  142. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
  143. package/admin/plugins/editor/formSettings/components/GeneralSettings.js +9 -1
  144. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
  145. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +3 -3
  146. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  147. package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -2
  148. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
  149. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
  150. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
  151. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
  152. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
  153. package/admin/plugins/fieldRenderers/dateTime/Input.d.ts +2 -2
  154. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  155. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +2 -2
  156. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  157. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +12 -0
  158. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js +107 -0
  159. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -0
  160. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +11 -0
  161. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js +139 -0
  162. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -0
  163. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +11 -0
  164. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js +68 -0
  165. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -0
  166. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +8 -0
  167. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js +63 -0
  168. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -0
  169. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +8 -0
  170. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js +53 -0
  171. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -0
  172. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +6 -0
  173. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js +22 -0
  174. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -0
  175. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.d.ts +2 -0
  176. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js +66 -0
  177. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -0
  178. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
  179. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -2
  180. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  181. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -2
  182. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
  183. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +10 -9
  184. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
  185. package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +2 -2
  186. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  187. package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +2 -2
  188. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
  189. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.d.ts +2 -2
  190. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +15 -14
  191. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
  192. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
  193. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
  194. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  195. package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +2 -2
  196. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
  197. package/admin/plugins/fieldValidators/dateGte.d.ts +2 -2
  198. package/admin/plugins/fieldValidators/dateGte.js +79 -23
  199. package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
  200. package/admin/plugins/fieldValidators/dateLte.d.ts +2 -2
  201. package/admin/plugins/fieldValidators/dateLte.js +79 -23
  202. package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
  203. package/admin/plugins/fieldValidators/dynamicZone.d.ts +2 -0
  204. package/admin/plugins/fieldValidators/dynamicZone.js +215 -0
  205. package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -0
  206. package/admin/plugins/fieldValidators/gte.d.ts +2 -2
  207. package/admin/plugins/fieldValidators/gte.js +44 -5
  208. package/admin/plugins/fieldValidators/gte.js.map +1 -1
  209. package/admin/plugins/fieldValidators/in.d.ts +2 -2
  210. package/admin/plugins/fieldValidators/in.js +44 -5
  211. package/admin/plugins/fieldValidators/in.js.map +1 -1
  212. package/admin/plugins/fieldValidators/lte.d.ts +2 -2
  213. package/admin/plugins/fieldValidators/lte.js +44 -5
  214. package/admin/plugins/fieldValidators/lte.js.map +1 -1
  215. package/admin/plugins/fieldValidators/maxLength.d.ts +2 -2
  216. package/admin/plugins/fieldValidators/maxLength.js +55 -6
  217. package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
  218. package/admin/plugins/fieldValidators/minLength.d.ts +2 -2
  219. package/admin/plugins/fieldValidators/minLength.js +55 -6
  220. package/admin/plugins/fieldValidators/minLength.js.map +1 -1
  221. package/admin/plugins/fieldValidators/pattern.d.ts +2 -2
  222. package/admin/plugins/fieldValidators/pattern.js +129 -60
  223. package/admin/plugins/fieldValidators/pattern.js.map +1 -1
  224. package/admin/plugins/fieldValidators/patternPlugins/email.d.ts +2 -2
  225. package/admin/plugins/fieldValidators/patternPlugins/email.js +6 -4
  226. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
  227. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.d.ts +2 -2
  228. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +5 -3
  229. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
  230. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.d.ts +2 -2
  231. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +5 -3
  232. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
  233. package/admin/plugins/fieldValidators/patternPlugins/upperCase.d.ts +2 -2
  234. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +5 -3
  235. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
  236. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.d.ts +2 -2
  237. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +5 -3
  238. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
  239. package/admin/plugins/fieldValidators/patternPlugins/url.d.ts +2 -2
  240. package/admin/plugins/fieldValidators/patternPlugins/url.js +5 -3
  241. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
  242. package/admin/plugins/fieldValidators/required.d.ts +2 -2
  243. package/admin/plugins/fieldValidators/required.js +8 -2
  244. package/admin/plugins/fieldValidators/required.js.map +1 -1
  245. package/admin/plugins/fieldValidators/unique.d.ts +2 -2
  246. package/admin/plugins/fieldValidators/unique.js +30 -2
  247. package/admin/plugins/fieldValidators/unique.js.map +1 -1
  248. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +1 -2
  249. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js +25 -26
  250. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
  251. package/admin/plugins/fields/boolean.d.ts +2 -2
  252. package/admin/plugins/fields/boolean.js +6 -5
  253. package/admin/plugins/fields/boolean.js.map +1 -1
  254. package/admin/plugins/fields/dateTime.d.ts +2 -2
  255. package/admin/plugins/fields/dateTime.js +58 -48
  256. package/admin/plugins/fields/dateTime.js.map +1 -1
  257. package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +11 -0
  258. package/admin/plugins/fields/dynamicZone/AddTemplate.js +114 -0
  259. package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -0
  260. package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -0
  261. package/admin/plugins/fields/dynamicZone/DynamicZone.js +82 -0
  262. package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -0
  263. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +11 -0
  264. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js +127 -0
  265. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -0
  266. package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +9 -0
  267. package/admin/plugins/fields/dynamicZone/TemplateDialog.js +174 -0
  268. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -0
  269. package/admin/plugins/fields/dynamicZone/commonValidators.d.ts +2 -0
  270. package/admin/plugins/fields/dynamicZone/commonValidators.js +26 -0
  271. package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -0
  272. package/admin/plugins/fields/dynamicZone.d.ts +2 -0
  273. package/admin/plugins/fields/dynamicZone.js +97 -0
  274. package/admin/plugins/fields/dynamicZone.js.map +1 -0
  275. package/admin/plugins/fields/file.d.ts +2 -2
  276. package/admin/plugins/fields/file.js +6 -5
  277. package/admin/plugins/fields/file.js.map +1 -1
  278. package/admin/plugins/fields/longText.d.ts +2 -2
  279. package/admin/plugins/fields/longText.js +4 -3
  280. package/admin/plugins/fields/longText.js.map +1 -1
  281. package/admin/plugins/fields/number.d.ts +2 -2
  282. package/admin/plugins/fields/number.js +6 -5
  283. package/admin/plugins/fields/number.js.map +1 -1
  284. package/admin/plugins/fields/object/ObjectFields.d.ts +2 -2
  285. package/admin/plugins/fields/object/ObjectFields.js +3 -3
  286. package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
  287. package/admin/plugins/fields/object.d.ts +2 -2
  288. package/admin/plugins/fields/object.js +9 -4
  289. package/admin/plugins/fields/object.js.map +1 -1
  290. package/admin/plugins/fields/ref.d.ts +2 -2
  291. package/admin/plugins/fields/ref.js +108 -100
  292. package/admin/plugins/fields/ref.js.map +1 -1
  293. package/admin/plugins/fields/richText.d.ts +2 -2
  294. package/admin/plugins/fields/richText.js +6 -5
  295. package/admin/plugins/fields/richText.js.map +1 -1
  296. package/admin/plugins/fields/text.d.ts +2 -2
  297. package/admin/plugins/fields/text.js +4 -3
  298. package/admin/plugins/fields/text.js.map +1 -1
  299. package/admin/plugins/index.d.ts +28 -1
  300. package/admin/plugins/permissionRenderer/CmsPermissions.js +2 -7
  301. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
  302. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +11 -17
  303. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
  304. package/admin/plugins/transformers/dateTransformer.d.ts +1 -2
  305. package/admin/plugins/transformers/dateTransformer.js +3 -3
  306. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  307. package/admin/plugins/transformers/dynamicZoneTransformer.d.ts +2 -0
  308. package/admin/plugins/transformers/dynamicZoneTransformer.js +45 -0
  309. package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -0
  310. package/admin/plugins/transformers/index.js +5 -5
  311. package/admin/plugins/transformers/index.js.map +1 -1
  312. package/admin/plugins/transformers/numberTransformer.d.ts +1 -2
  313. package/admin/plugins/transformers/numberTransformer.js +3 -3
  314. package/admin/plugins/transformers/numberTransformer.js.map +1 -1
  315. package/admin/views/contentEntries/ContentEntries.js +6 -2
  316. package/admin/views/contentEntries/ContentEntries.js.map +1 -1
  317. package/admin/views/contentEntries/ContentEntriesContext.d.ts +4 -4
  318. package/admin/views/contentEntries/ContentEntriesContext.js +1 -9
  319. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  320. package/admin/views/contentEntries/ContentEntriesList.js +23 -8
  321. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
  322. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +19 -4
  323. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  324. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +60 -60
  325. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
  326. package/admin/views/contentEntries/ContentEntry/cache.js +5 -1
  327. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
  328. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -1
  329. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js +3 -80
  330. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -1
  331. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +1 -1
  332. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js +3 -84
  333. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -1
  334. package/admin/views/contentEntries/ContentEntry/prepareFormData.d.ts +2 -2
  335. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
  336. package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +0 -8
  337. package/admin/views/contentEntries/ContentEntry/useRevision.js +10 -122
  338. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
  339. package/admin/views/contentEntries/ContentEntry.js +0 -2
  340. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  341. package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +2 -2
  342. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +27 -14
  343. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -1
  344. package/admin/views/contentEntries/hooks/useContentEntries.js +7 -1
  345. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
  346. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
  347. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  348. package/admin/views/contentModelGroups/ContentModelGroupsForm.js +2 -2
  349. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
  350. package/admin/views/contentModels/CloneContentModelDialog.js +4 -17
  351. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
  352. package/admin/views/contentModels/ContentModelEditor.js +2 -2
  353. package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
  354. package/admin/views/contentModels/NewContentModelDialog.js +5 -17
  355. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  356. package/admin/viewsGraphql.js +1 -1
  357. package/admin/viewsGraphql.js.map +1 -1
  358. package/allPlugins.d.ts +34 -0
  359. package/allPlugins.js +95 -0
  360. package/allPlugins.js.map +1 -0
  361. package/index.d.ts +1 -0
  362. package/index.js +15 -1
  363. package/index.js.map +1 -1
  364. package/package.json +29 -29
  365. package/{types.d.ts → types/index.d.ts} +59 -176
  366. package/types/index.js +44 -0
  367. package/types/index.js.map +1 -0
  368. package/types/model.d.ts +83 -0
  369. package/{types.js → types/model.js} +0 -0
  370. package/types/model.js.map +1 -0
  371. package/types/shared.d.ts +5 -0
  372. package/types/shared.js +5 -0
  373. package/types/shared.js.map +1 -0
  374. package/types/validation.d.ts +70 -0
  375. package/types/validation.js +5 -0
  376. package/types/validation.js.map +1 -0
  377. package/utils/CmsModelFieldValidatorConfigAdapter.d.ts +15 -0
  378. package/utils/CmsModelFieldValidatorConfigAdapter.js +91 -0
  379. package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -0
  380. package/utils/createTypeName.d.ts +1 -0
  381. package/utils/createTypeName.js +18 -0
  382. package/utils/createTypeName.js.map +1 -0
  383. package/utils/createValidators.d.ts +3 -0
  384. package/{admin/components/ContentEntryForm/functions → utils}/createValidators.js +37 -16
  385. package/utils/createValidators.js.map +1 -0
  386. package/utils/getFetchPolicy.d.ts +6 -0
  387. package/utils/getFetchPolicy.js +19 -0
  388. package/utils/getFetchPolicy.js.map +1 -0
  389. package/utils/getModelTitleFieldId.d.ts +2 -0
  390. package/utils/getModelTitleFieldId.js +16 -0
  391. package/utils/getModelTitleFieldId.js.map +1 -0
  392. package/admin/components/ContentEntryForm/functions/createValidators.d.ts +0 -3
  393. package/admin/components/ContentEntryForm/functions/createValidators.js.map +0 -1
  394. package/admin/components/ContentModelEditor/Context.js.map +0 -1
  395. package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +0 -1
  396. package/admin/components/ContentModelEditor/useContentModelEditor.js.map +0 -1
  397. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +0 -15
  398. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +0 -148
  399. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +0 -1
  400. package/admin/components/FieldEditor/useFieldEditor.d.ts +0 -1
  401. package/admin/components/FieldEditor/useFieldEditor.js +0 -14
  402. package/admin/components/FieldEditor/useFieldEditor.js.map +0 -1
  403. package/admin/plugins/validators/dateGte.d.ts +0 -3
  404. package/admin/plugins/validators/dateGte.js +0 -68
  405. package/admin/plugins/validators/dateGte.js.map +0 -1
  406. package/admin/plugins/validators/dateLte.d.ts +0 -3
  407. package/admin/plugins/validators/dateLte.js +0 -68
  408. package/admin/plugins/validators/dateLte.js.map +0 -1
  409. package/admin/plugins/validators/gte.d.ts +0 -3
  410. package/admin/plugins/validators/gte.js +0 -57
  411. package/admin/plugins/validators/gte.js.map +0 -1
  412. package/admin/plugins/validators/in.d.ts +0 -3
  413. package/admin/plugins/validators/in.js +0 -57
  414. package/admin/plugins/validators/in.js.map +0 -1
  415. package/admin/plugins/validators/lte.d.ts +0 -3
  416. package/admin/plugins/validators/lte.js +0 -57
  417. package/admin/plugins/validators/lte.js.map +0 -1
  418. package/admin/plugins/validators/maxLength.d.ts +0 -3
  419. package/admin/plugins/validators/maxLength.js +0 -57
  420. package/admin/plugins/validators/maxLength.js.map +0 -1
  421. package/admin/plugins/validators/minLength.d.ts +0 -3
  422. package/admin/plugins/validators/minLength.js +0 -57
  423. package/admin/plugins/validators/minLength.js.map +0 -1
  424. package/admin/plugins/validators/pattern.d.ts +0 -3
  425. package/admin/plugins/validators/pattern.js +0 -77
  426. package/admin/plugins/validators/pattern.js.map +0 -1
  427. package/admin/plugins/validators/patternPlugins/email.d.ts +0 -3
  428. package/admin/plugins/validators/patternPlugins/email.js +0 -17
  429. package/admin/plugins/validators/patternPlugins/email.js.map +0 -1
  430. package/admin/plugins/validators/patternPlugins/lowerCase.d.ts +0 -3
  431. package/admin/plugins/validators/patternPlugins/lowerCase.js +0 -17
  432. package/admin/plugins/validators/patternPlugins/lowerCase.js.map +0 -1
  433. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.d.ts +0 -3
  434. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +0 -17
  435. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +0 -1
  436. package/admin/plugins/validators/patternPlugins/upperCase.d.ts +0 -3
  437. package/admin/plugins/validators/patternPlugins/upperCase.js +0 -17
  438. package/admin/plugins/validators/patternPlugins/upperCase.js.map +0 -1
  439. package/admin/plugins/validators/patternPlugins/upperCaseSpace.d.ts +0 -3
  440. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +0 -17
  441. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +0 -1
  442. package/admin/plugins/validators/patternPlugins/url.d.ts +0 -3
  443. package/admin/plugins/validators/patternPlugins/url.js +0 -17
  444. package/admin/plugins/validators/patternPlugins/url.js.map +0 -1
  445. package/admin/plugins/validators/required.d.ts +0 -3
  446. package/admin/plugins/validators/required.js +0 -21
  447. package/admin/plugins/validators/required.js.map +0 -1
  448. package/admin/plugins/validators/timeGte.d.ts +0 -3
  449. package/admin/plugins/validators/timeGte.js +0 -59
  450. package/admin/plugins/validators/timeGte.js.map +0 -1
  451. package/admin/plugins/validators/timeLte.d.ts +0 -3
  452. package/admin/plugins/validators/timeLte.js +0 -59
  453. package/admin/plugins/validators/timeLte.js.map +0 -1
  454. package/admin/plugins/validators/unique.d.ts +0 -7
  455. package/admin/plugins/validators/unique.js +0 -50
  456. package/admin/plugins/validators/unique.js.map +0 -1
  457. package/admin/views/contentEntries/ContentEntry/header/requestChanges/rule-24px.svg +0 -1
  458. package/admin/views/contentEntries/ContentEntry/header/requestReview/emoji_people-24px.svg +0 -1
  459. package/admin/views/contentModelGroups/IconPicker.d.ts +0 -8
  460. package/admin/views/contentModelGroups/IconPicker.js.map +0 -1
  461. package/types.js.map +0 -1
@@ -15,15 +15,13 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
15
15
 
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
17
 
18
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
-
20
- var _cloneDeep2 = _interopRequireDefault(require("lodash/cloneDeep"));
21
-
22
18
  var _react = _interopRequireWildcard(require("react"));
23
19
 
24
- var _emotion = require("emotion");
20
+ var _cloneDeep = _interopRequireDefault(require("lodash/cloneDeep"));
21
+
22
+ var _styled = _interopRequireDefault(require("@emotion/styled"));
25
23
 
26
- var _Dialog = require("@webiny/ui/Dialog");
24
+ var _Dialog = require("../Dialog");
27
25
 
28
26
  var _form = require("@webiny/form");
29
27
 
@@ -39,286 +37,145 @@ var _AppearanceTab = _interopRequireDefault(require("./EditFieldDialog/Appearanc
39
37
 
40
38
  var _PredefinedValues = _interopRequireDefault(require("./EditFieldDialog/PredefinedValues"));
41
39
 
42
- var _ValidatorsTab = _interopRequireDefault(require("./EditFieldDialog/ValidatorsTab"));
43
-
44
- var _Grid = require("@webiny/ui/Grid");
45
-
46
- var _Typography = require("@webiny/ui/Typography");
47
-
48
- var _Elevation = require("@webiny/ui/Elevation");
40
+ var _ValidatorsList = require("./EditFieldDialog/ValidatorsList");
49
41
 
50
- var _useFieldEditor2 = require("./useFieldEditor");
42
+ var _Button = require("@webiny/ui/Button");
51
43
 
52
- var _invariant = _interopRequireDefault(require("invariant"));
44
+ var _hooks = require("../../hooks");
53
45
 
54
- var _Button = require("@webiny/ui/Button");
46
+ var _ModelFieldProvider = require("../ModelFieldProvider");
55
47
 
56
- var _useContentModelEditor = require("../ContentModelEditor/useContentModelEditor");
48
+ var _ValidationsSection = require("./EditFieldDialog/ValidationsSection");
57
49
 
58
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
50
+ var _getValidators = require("./EditFieldDialog/getValidators");
59
51
 
60
- var _excluded = ["field", "onSubmit"];
52
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
61
53
 
62
54
  var t = _i18n.i18n.namespace("app-headless-cms/admin/components/editor");
63
55
 
64
- var dialogBody = /*#__PURE__*/(0, _emotion.css)({
65
- "&.webiny-ui-dialog__content": {
66
- width: 875,
67
- height: 450
68
- }
69
- }, "label:dialogBody;");
70
-
71
- var getValidators = function getValidators(fieldPlugin, key) {
72
- var defaultValidators = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
56
+ var FullScreenDialog = /*#__PURE__*/(0, _styled.default)(_Dialog.Dialog, {
57
+ label: "FullScreenDialog",
58
+ target: "eoy63ui0"
59
+ })("width:100vw;height:100vh;.mdc-dialog__surface{width:100%;max-width:100% !important;max-height:100% !important;.webiny-ui-dialog__content{max-width:100% !important;max-height:100% !important;width:100vw;height:calc(100vh - 155px);overflow:scroll !important;}}");
73
60
 
74
- var mappedValidators = _plugins.plugins.byType("cms-editor-field-validator").map(function (_ref) {
75
- var validator = _ref.validator;
76
- var allowedValidators = fieldPlugin.field[key] || defaultValidators;
61
+ function setupState(field, fieldPlugin, contentModel) {
62
+ var clonedField = (0, _cloneDeep.default)(field);
77
63
 
78
- if (allowedValidators.includes(validator.name)) {
79
- return {
80
- optional: true,
81
- validator: validator
82
- };
83
- } else if (allowedValidators.includes("!".concat(validator.name))) {
84
- return {
85
- optional: false,
86
- validator: validator
64
+ if (!clonedField.renderer || !clonedField.renderer.name) {
65
+ var _plugins$byType$filte = _plugins.plugins.byType("cms-editor-field-renderer").filter(function (item) {
66
+ return item.renderer.canUse({
67
+ field: field,
68
+ fieldPlugin: fieldPlugin
69
+ });
70
+ }),
71
+ _plugins$byType$filte2 = (0, _slicedToArray2.default)(_plugins$byType$filte, 1),
72
+ renderPlugin = _plugins$byType$filte2[0];
73
+
74
+ if (renderPlugin) {
75
+ clonedField.renderer = {
76
+ name: renderPlugin.renderer.rendererName
87
77
  };
88
78
  }
89
-
90
- return null;
91
- });
92
-
93
- var filteredValidators = mappedValidators.filter(Boolean);
94
- return filteredValidators
95
- /**
96
- * We can safely cast because we are filtering in previous step.
97
- */
98
- .sort(function (a, b) {
99
- if (!a.optional && b.optional) {
100
- return -1;
101
- }
102
-
103
- if (a.optional && !b.optional) {
104
- return 1;
105
- }
106
-
107
- return 0;
108
- });
109
- };
110
-
111
- var getListValidators = function getListValidators(fieldPlugin) {
112
- return getValidators(fieldPlugin, "listValidators", ["minLength", "maxLength"]);
113
- };
114
-
115
- var getFieldValidators = function getFieldValidators(fieldPlugin) {
116
- return getValidators(fieldPlugin, "validators");
117
- };
118
-
119
- var fieldEditorDialog = /*#__PURE__*/(0, _emotion.css)({
120
- width: "100vw",
121
- height: "100vh",
122
- ".mdc-dialog__surface": {
123
- maxWidth: "100% !important",
124
- maxHeight: "100% !important",
125
- ".webiny-ui-dialog__content": {
126
- maxWidth: "100% !important",
127
- maxHeight: "100% !important",
128
- width: "100vw",
129
- height: "calc(100vh - 155px)",
130
- paddingTop: "0 !important"
131
- }
132
79
  }
133
- }, "label:fieldEditorDialog;");
134
-
135
- var EditFieldDialog = function EditFieldDialog(_ref2) {
136
- var field = _ref2.field,
137
- _onSubmit = _ref2.onSubmit,
138
- props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
139
-
140
- var _useState = (0, _react.useState)(null),
141
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
142
- current = _useState2[0],
143
- setCurrent = _useState2[1];
144
-
145
- var _useFieldEditor = (0, _useFieldEditor2.useFieldEditor)(),
146
- getFieldPlugin = _useFieldEditor.getFieldPlugin;
147
-
148
- var _useContentModelEdito = (0, _useContentModelEditor.useContentModelEditor)(),
149
- contentModel = _useContentModelEdito.data,
150
- setContentModelData = _useContentModelEdito.setData;
151
-
152
- var _useState3 = (0, _react.useState)(false),
153
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
154
- isTitleField = _useState4[0],
155
- setIsTitleField = _useState4[1];
156
-
157
- (0, _react.useEffect)(function () {
158
- if (!field) {
159
- setCurrent(field);
160
- setIsTitleField(false);
161
- return;
162
- }
163
80
 
164
- var clonedField = (0, _cloneDeep2.default)(field);
81
+ return {
82
+ shadowField: clonedField,
83
+ isTitleField: contentModel.titleFieldId === field.fieldId
84
+ };
85
+ }
86
+
87
+ var EditFieldDialog = function EditFieldDialog(props) {
88
+ var _useModelField = (0, _hooks.useModelField)(),
89
+ field = _useModelField.field,
90
+ fieldPlugin = _useModelField.fieldPlugin;
91
+
92
+ var _useModelEditor = (0, _hooks.useModelEditor)(),
93
+ contentModel = _useModelEditor.data,
94
+ setContentModelData = _useModelEditor.setData;
95
+
96
+ var _useState = (0, _react.useState)(setupState(field, fieldPlugin, contentModel)),
97
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
98
+ _useState2$ = _useState2[0],
99
+ shadowField = _useState2$.shadowField,
100
+ isTitleField = _useState2$.isTitleField;
101
+
102
+ var headerTitle = t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Field Settings - {fieldTypeLabel}"])))({
103
+ fieldTypeLabel: fieldPlugin.field.label
104
+ });
165
105
 
166
- if (!clonedField.renderer || !clonedField.renderer.name) {
167
- var _plugins$byType$filte = _plugins.plugins.byType("cms-editor-field-renderer").filter(function (item) {
168
- return item.renderer.canUse({
169
- field: field
106
+ var onSubmit = function onSubmit(data, form) {
107
+ /**
108
+ * In case title field `fieldId` changed, we need to update the title field on the model itself.
109
+ */
110
+ if (isTitleField && contentModel.titleFieldId !== data.fieldId) {
111
+ setContentModelData(function (prev) {
112
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), {}, {
113
+ titleFieldId: data.fieldId
170
114
  });
171
- }),
172
- _plugins$byType$filte2 = (0, _slicedToArray2.default)(_plugins$byType$filte, 1),
173
- renderPlugin = _plugins$byType$filte2[0];
174
-
175
- if (renderPlugin) {
176
- clonedField.renderer = {
177
- name: renderPlugin.renderer.rendererName
178
- };
179
- }
180
- }
181
-
182
- if (contentModel.titleFieldId === field.fieldId) {
183
- setIsTitleField(true);
184
- } else if (isTitleField === true) {
185
- setIsTitleField(false);
115
+ });
186
116
  }
187
117
 
188
- setCurrent(clonedField);
189
- }, [field]);
190
- var onClose = (0, _react.useCallback)(function () {
191
- setCurrent(null);
192
- props.onClose();
193
- }, []);
194
- var render = null;
195
- var headerTitle = t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Field Settings"])));
118
+ props.onSubmit(data, form);
119
+ };
196
120
 
197
- if (current) {
198
- /**
199
- * Something must be very wrong for field plugin to be missing.
200
- */
201
- var fieldPlugin = getFieldPlugin(current.type);
202
- /**
203
- * We will throw error because of that.
204
- */
205
-
206
- (0, _invariant.default)(fieldPlugin, "Missing field plugin for type \"".concat(current.type, "\"."));
207
- headerTitle = t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Field Settings - {fieldTypeLabel}"])))({
208
- fieldTypeLabel: fieldPlugin.field.label
209
- });
210
- render = /*#__PURE__*/_react.default.createElement(_form.Form, {
211
- data: current,
212
- onSubmit: function onSubmit(data) {
213
- /**
214
- * We know that data is CmsEditorField.
215
- */
216
- return _onSubmit(data);
217
- }
218
- }, function (form) {
219
- var hasValidators = Array.isArray(fieldPlugin.field.validators) && fieldPlugin.field.validators.length > 0;
220
- var showValidatorsTab = form.data.multipleValues || Array.isArray(fieldPlugin.field.validators) && fieldPlugin.field.validators.length > 0;
221
- var predefinedValuesTabEnabled = fieldPlugin.field.allowPredefinedValues && form.data.predefinedValues && form.data.predefinedValues.enabled;
222
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Dialog.DialogContent, {
223
- className: dialogBody
224
- }, /*#__PURE__*/_react.default.createElement(_Tabs.Tabs, null, /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
225
- label: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["General"])))
226
- }, /*#__PURE__*/_react.default.createElement(_GeneralTab.default, {
227
- form: form,
228
- field: form.data,
229
- fieldPlugin: fieldPlugin
230
- })), /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
231
- label: t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Predefined Values"]))),
121
+ return /*#__PURE__*/_react.default.createElement(FullScreenDialog, {
122
+ preventOutsideDismiss: true,
123
+ open: true,
124
+ onClose: props.onClose,
125
+ "data-testid": "cms-editor-edit-fields-dialog"
126
+ }, /*#__PURE__*/_react.default.createElement(_Dialog.DialogTitle, null, headerTitle), /*#__PURE__*/_react.default.createElement(_form.Form, {
127
+ data: shadowField,
128
+ onSubmit: onSubmit
129
+ }, function (_ref) {
130
+ var shadowField = _ref.data,
131
+ submit = _ref.submit;
132
+ var individualValidation = (0, _getValidators.getFieldValidators)(shadowField, fieldPlugin);
133
+ var hasValidators = individualValidation.validators.length > 0;
134
+ var showValidatorsTab = shadowField.multipleValues || individualValidation.validators.length > 0;
135
+ var predefinedValuesTabEnabled = fieldPlugin.field.allowPredefinedValues && shadowField.predefinedValues && shadowField.predefinedValues.enabled;
136
+ var listValidation = (0, _getValidators.getListValidators)(shadowField, fieldPlugin);
137
+ return (
138
+ /*#__PURE__*/
139
+
140
+ /**
141
+ * We're using the `shadowField` as the new context, because we want all changes by form inputs
142
+ * to immediately be propagated to all dialog components.
143
+ */
144
+ _react.default.createElement(_ModelFieldProvider.ModelFieldProvider, {
145
+ field: shadowField
146
+ }, /*#__PURE__*/_react.default.createElement(_Dialog.DialogContent, null, /*#__PURE__*/_react.default.createElement(_Tabs.Tabs, null, /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
147
+ label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["General"])))
148
+ }, /*#__PURE__*/_react.default.createElement(_GeneralTab.default, null)), /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
149
+ label: t(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["Predefined Values"]))),
232
150
  disabled: !predefinedValuesTabEnabled
233
- }, predefinedValuesTabEnabled && /*#__PURE__*/_react.default.createElement(_PredefinedValues.default, {
234
- form: form,
235
- field: form.data,
236
- fieldPlugin: fieldPlugin
237
- })), showValidatorsTab ? /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
151
+ }, predefinedValuesTabEnabled && /*#__PURE__*/_react.default.createElement(_PredefinedValues.default, null)), /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
152
+ visible: showValidatorsTab,
238
153
  label: "Validators",
239
154
  "data-testid": "cms.editor.field.tabs.validators"
240
- }, form.data.multipleValues ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
241
- span: 12
242
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
243
- use: "headline5"
244
- }, "List validators"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
245
- use: "body2"
246
- }, "These validators are applied to the entire list of values.")), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
247
- span: 12
248
- }, /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
249
- z: 2
250
- }, /*#__PURE__*/_react.default.createElement(_ValidatorsTab.default, {
251
- field: current,
252
- name: "listValidation",
253
- validators: getListValidators(fieldPlugin),
254
- form: form
255
- })))), /*#__PURE__*/_react.default.createElement(_Grid.Grid, null, /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
256
- span: 12
257
- }, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
258
- use: "headline5"
259
- }, "Individual value validators"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
260
- use: "body2"
261
- }, "These validators are applied to each value in the list.")), /*#__PURE__*/_react.default.createElement(_Grid.Cell, {
262
- span: 12
263
- }, /*#__PURE__*/_react.default.createElement(_Elevation.Elevation, {
264
- z: 2
265
- }, /*#__PURE__*/_react.default.createElement(_ValidatorsTab.default, {
266
- field: current,
267
- form: form,
155
+ }, shadowField.multipleValues ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ValidationsSection.ValidationsSection, {
156
+ validators: listValidation.validators,
157
+ fieldKey: "listValidators",
158
+ title: listValidation.title || "List validators",
159
+ description: listValidation.description || "These validators are applied to the entire list of values."
160
+ }), hasValidators ? /*#__PURE__*/_react.default.createElement(_ValidationsSection.ValidationsSection, {
161
+ fieldKey: "validators",
162
+ validators: individualValidation.validators,
163
+ title: individualValidation.title || "Individual value validators",
164
+ description: individualValidation.description || "These validators are applied to each value in the list."
165
+ }) : null) : null, !shadowField.multipleValues && hasValidators ? /*#__PURE__*/_react.default.createElement(_ValidatorsList.ValidatorsList, {
268
166
  name: "validation",
269
- validators: getFieldValidators(fieldPlugin)
270
- }))))) : null, !form.data.multipleValues && hasValidators ? /*#__PURE__*/_react.default.createElement(_ValidatorsTab.default, {
271
- field: current,
272
- form: form,
273
- name: "validation",
274
- validators: getFieldValidators(fieldPlugin)
275
- }) : null) : null, /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
276
- label: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Appearance"])))
277
- }, /*#__PURE__*/_react.default.createElement(_AppearanceTab.default, {
278
- form: form,
279
- field: form.data // TODO @ts-refactor verify that this actually worked? There was no fieldPlugin in AppearanceTab props
280
- // @ts-ignore
281
- ,
282
- fieldPlugin: fieldPlugin
283
- })))), /*#__PURE__*/_react.default.createElement(_Dialog.DialogActions, null, /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
167
+ validators: individualValidation.validators
168
+ }) : null), /*#__PURE__*/_react.default.createElement(_Tabs.Tab, {
169
+ label: t(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["Appearance"])))
170
+ }, /*#__PURE__*/_react.default.createElement(_AppearanceTab.default, null)))), /*#__PURE__*/_react.default.createElement(_Dialog.DialogActions, null, /*#__PURE__*/_react.default.createElement(_Button.ButtonDefault, {
284
171
  "data-testid": "cms.editor.field.settings.cancel",
285
- onClick: onClose
286
- }, t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Cancel"])))), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
172
+ onClick: props.onClose
173
+ }, t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Cancel"])))), /*#__PURE__*/_react.default.createElement(_Button.ButtonPrimary, {
287
174
  "data-testid": "cms.editor.field.settings.save",
288
- onClick: function onClick(ev) {
289
- /**
290
- * In case title field fieldID changed, we need to change it in the model data as well.
291
- */
292
- if (isTitleField && contentModel.titleFieldId !== form.data.fieldId) {
293
- setContentModelData(function (prev) {
294
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, prev), {}, {
295
- titleFieldId: form.data.fieldId
296
- });
297
- }).then(function () {
298
- form.submit(ev);
299
- }).catch(function (ex) {
300
- console.error(ex.message);
301
- });
302
- return;
303
- }
304
- /**
305
- * Or just continue as usually
306
- */
307
-
308
-
309
- form.submit(ev);
310
- }
311
- }, t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Save Field"]))))));
312
- });
313
- }
314
-
315
- return /*#__PURE__*/_react.default.createElement(_Dialog.Dialog, {
316
- preventOutsideDismiss: true,
317
- open: !!current,
318
- onClose: onClose,
319
- "data-testid": "cms-editor-edit-fields-dialog",
320
- className: fieldEditorDialog
321
- }, /*#__PURE__*/_react.default.createElement(_Dialog.DialogTitle, null, headerTitle), render);
175
+ onClick: submit
176
+ }, t(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["Save Field"]))))))
177
+ );
178
+ }));
322
179
  };
323
180
 
324
181
  var _default = EditFieldDialog;
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","namespace","dialogBody","css","width","height","getValidators","fieldPlugin","key","defaultValidators","mappedValidators","plugins","byType","map","validator","allowedValidators","field","includes","name","optional","filteredValidators","filter","Boolean","sort","a","b","getListValidators","getFieldValidators","fieldEditorDialog","maxWidth","maxHeight","paddingTop","EditFieldDialog","onSubmit","props","useState","current","setCurrent","useFieldEditor","getFieldPlugin","useContentModelEditor","contentModel","data","setContentModelData","setData","isTitleField","setIsTitleField","useEffect","clonedField","renderer","item","canUse","renderPlugin","rendererName","titleFieldId","fieldId","onClose","useCallback","render","headerTitle","type","invariant","fieldTypeLabel","label","form","hasValidators","Array","isArray","validators","length","showValidatorsTab","multipleValues","predefinedValuesTabEnabled","allowPredefinedValues","predefinedValues","enabled","ev","prev","then","submit","catch","ex","console","error","message"],"sources":["EditFieldDialog.tsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from \"react\";\nimport { cloneDeep } from \"lodash\";\nimport { css } from \"emotion\";\nimport { Dialog, DialogContent, DialogTitle, DialogActions } from \"@webiny/ui/Dialog\";\nimport { Form } from \"@webiny/form\";\nimport { Tabs, Tab } from \"@webiny/ui/Tabs\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CmsEditorField,\n CmsEditorFieldRendererPlugin,\n CmsEditorFieldTypePlugin,\n CmsEditorFieldValidatorPlugin\n} from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport GeneralTab from \"./EditFieldDialog/GeneralTab\";\nimport AppearanceTab from \"./EditFieldDialog/AppearanceTab\";\nimport PredefinedValues from \"./EditFieldDialog/PredefinedValues\";\nimport ValidatorsTab from \"./EditFieldDialog/ValidatorsTab\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Elevation } from \"@webiny/ui/Elevation\";\nimport { useFieldEditor } from \"~/admin/components/FieldEditor/useFieldEditor\";\nimport invariant from \"invariant\";\nimport { ButtonDefault, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/components/editor\");\n\nconst dialogBody = css({\n \"&.webiny-ui-dialog__content\": {\n width: 875,\n height: 450\n }\n});\n\ninterface EditFieldDialogProps {\n field: CmsEditorField | null;\n onClose: () => void;\n onSubmit: (data: CmsEditorField) => void;\n}\n\ninterface Validator {\n optional: boolean;\n validator: CmsEditorFieldValidatorPlugin[\"validator\"];\n}\nconst getValidators = (\n fieldPlugin: CmsEditorFieldTypePlugin,\n /**\n * We only have validators and listValidators, thats why the strict string types\n */\n key: \"validators\" | \"listValidators\",\n defaultValidators: string[] = []\n): Validator[] => {\n const mappedValidators = plugins\n .byType<CmsEditorFieldValidatorPlugin>(\"cms-editor-field-validator\")\n .map(({ validator }) => {\n const allowedValidators = fieldPlugin.field[key] || defaultValidators;\n if (allowedValidators.includes(validator.name)) {\n return {\n optional: true,\n validator\n };\n } else if (allowedValidators.includes(`!${validator.name}`)) {\n return {\n optional: false,\n validator\n };\n }\n\n return null;\n });\n\n const filteredValidators = mappedValidators.filter(Boolean) as Validator[];\n\n return (\n filteredValidators\n /**\n * We can safely cast because we are filtering in previous step.\n */\n .sort((a: Validator, b: Validator) => {\n if (!a.optional && b.optional) {\n return -1;\n }\n\n if (a.optional && !b.optional) {\n return 1;\n }\n\n return 0;\n }) as Validator[]\n );\n};\n\nconst getListValidators = (fieldPlugin: CmsEditorFieldTypePlugin) => {\n return getValidators(fieldPlugin, \"listValidators\", [\"minLength\", \"maxLength\"]);\n};\n\nconst getFieldValidators = (fieldPlugin: CmsEditorFieldTypePlugin) => {\n return getValidators(fieldPlugin, \"validators\");\n};\n\nconst fieldEditorDialog = css({\n width: \"100vw\",\n height: \"100vh\",\n \".mdc-dialog__surface\": {\n maxWidth: \"100% !important\",\n maxHeight: \"100% !important\",\n \".webiny-ui-dialog__content\": {\n maxWidth: \"100% !important\",\n maxHeight: \"100% !important\",\n width: \"100vw\",\n height: \"calc(100vh - 155px)\",\n paddingTop: \"0 !important\"\n }\n }\n});\n\nconst EditFieldDialog: React.FC<EditFieldDialogProps> = ({ field, onSubmit, ...props }) => {\n const [current, setCurrent] = useState<CmsEditorField | null>(null);\n const { getFieldPlugin } = useFieldEditor();\n const { data: contentModel, setData: setContentModelData } = useContentModelEditor();\n\n const [isTitleField, setIsTitleField] = useState<boolean>(false);\n\n useEffect((): void => {\n if (!field) {\n setCurrent(field);\n setIsTitleField(false);\n return;\n }\n\n const clonedField = cloneDeep(field);\n\n if (!clonedField.renderer || !clonedField.renderer.name) {\n const [renderPlugin] = plugins\n .byType<CmsEditorFieldRendererPlugin>(\"cms-editor-field-renderer\")\n .filter(item => item.renderer.canUse({ field }));\n\n if (renderPlugin) {\n clonedField.renderer = { name: renderPlugin.renderer.rendererName };\n }\n }\n if (contentModel.titleFieldId === field.fieldId) {\n setIsTitleField(true);\n } else if (isTitleField === true) {\n setIsTitleField(false);\n }\n setCurrent(clonedField);\n }, [field]);\n\n const onClose = useCallback((): void => {\n setCurrent(null);\n props.onClose();\n }, []);\n\n let render = null;\n let headerTitle = t`Field Settings`;\n\n if (current) {\n /**\n * Something must be very wrong for field plugin to be missing.\n */\n const fieldPlugin = getFieldPlugin(current.type) as CmsEditorFieldTypePlugin;\n /**\n * We will throw error because of that.\n */\n invariant(fieldPlugin, `Missing field plugin for type \"${current.type}\".`);\n\n headerTitle = t`Field Settings - {fieldTypeLabel}`({\n fieldTypeLabel: fieldPlugin.field.label\n });\n\n render = (\n <Form\n data={current}\n onSubmit={data => {\n /**\n * We know that data is CmsEditorField.\n */\n return onSubmit(data as unknown as CmsEditorField);\n }}\n >\n {form => {\n const hasValidators =\n Array.isArray(fieldPlugin.field.validators) &&\n fieldPlugin.field.validators.length > 0;\n\n const showValidatorsTab =\n form.data.multipleValues ||\n (Array.isArray(fieldPlugin.field.validators) &&\n fieldPlugin.field.validators.length > 0);\n\n const predefinedValuesTabEnabled =\n fieldPlugin.field.allowPredefinedValues &&\n form.data.predefinedValues &&\n form.data.predefinedValues.enabled;\n\n return (\n <>\n <DialogContent className={dialogBody}>\n <Tabs>\n <Tab label={t`General`}>\n <GeneralTab\n form={form}\n field={form.data as CmsEditorField}\n fieldPlugin={fieldPlugin}\n />\n </Tab>\n <Tab\n label={t`Predefined Values`}\n disabled={!predefinedValuesTabEnabled}\n >\n {predefinedValuesTabEnabled && (\n <PredefinedValues\n form={form}\n field={form.data as CmsEditorField}\n fieldPlugin={fieldPlugin}\n />\n )}\n </Tab>\n\n {showValidatorsTab ? (\n <Tab\n label={\"Validators\"}\n data-testid={\"cms.editor.field.tabs.validators\"}\n >\n {form.data.multipleValues ? (\n <>\n <Grid>\n <Cell span={12}>\n <Typography use={\"headline5\"}>\n List validators\n </Typography>\n <br />\n <Typography use={\"body2\"}>\n These validators are applied to the\n entire list of values.\n </Typography>\n </Cell>\n <Cell span={12}>\n <Elevation z={2}>\n <ValidatorsTab\n field={current}\n name={\"listValidation\"}\n validators={getListValidators(\n fieldPlugin\n )}\n form={form}\n />\n </Elevation>\n </Cell>\n </Grid>\n\n <Grid>\n <Cell span={12}>\n <Typography use={\"headline5\"}>\n Individual value validators\n </Typography>\n <br />\n <Typography use={\"body2\"}>\n These validators are applied to each\n value in the list.\n </Typography>\n </Cell>\n <Cell span={12}>\n <Elevation z={2}>\n <ValidatorsTab\n field={current}\n form={form}\n name={\"validation\"}\n validators={getFieldValidators(\n fieldPlugin\n )}\n />\n </Elevation>\n </Cell>\n </Grid>\n </>\n ) : null}\n\n {!form.data.multipleValues && hasValidators ? (\n <ValidatorsTab\n field={current}\n form={form}\n name={\"validation\"}\n validators={getFieldValidators(fieldPlugin)}\n />\n ) : null}\n </Tab>\n ) : null}\n <Tab label={t`Appearance`}>\n <AppearanceTab\n form={form}\n field={form.data as CmsEditorField}\n // TODO @ts-refactor verify that this actually worked? There was no fieldPlugin in AppearanceTab props\n // @ts-ignore\n fieldPlugin={fieldPlugin}\n />\n </Tab>\n </Tabs>\n </DialogContent>\n <DialogActions>\n <ButtonDefault\n data-testid=\"cms.editor.field.settings.cancel\"\n onClick={onClose}\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n data-testid=\"cms.editor.field.settings.save\"\n onClick={ev => {\n /**\n * In case title field fieldID changed, we need to change it in the model data as well.\n */\n if (\n isTitleField &&\n contentModel.titleFieldId !== form.data.fieldId\n ) {\n setContentModelData(prev => {\n return {\n ...prev,\n titleFieldId: form.data.fieldId\n };\n })\n .then(() => {\n form.submit(ev);\n })\n .catch(ex => {\n console.error(ex.message);\n });\n return;\n }\n /**\n * Or just continue as usually\n */\n form.submit(ev);\n }}\n >{t`Save Field`}</ButtonPrimary>\n </DialogActions>\n </>\n );\n }}\n </Form>\n );\n }\n\n return (\n <Dialog\n preventOutsideDismiss\n open={!!current}\n onClose={onClose}\n data-testid={\"cms-editor-edit-fields-dialog\"}\n className={fieldEditorDialog}\n >\n <DialogTitle>{headerTitle}</DialogTitle>\n {render}\n </Dialog>\n );\n};\n\nexport default EditFieldDialog;\n"],"mappings":"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"}
1
+ {"version":3,"names":["t","i18n","namespace","FullScreenDialog","styled","Dialog","setupState","field","fieldPlugin","contentModel","clonedField","cloneDeep","renderer","name","plugins","byType","filter","item","canUse","renderPlugin","rendererName","shadowField","isTitleField","titleFieldId","fieldId","EditFieldDialog","props","useModelField","useModelEditor","data","setContentModelData","setData","useState","headerTitle","fieldTypeLabel","label","onSubmit","form","prev","onClose","submit","individualValidation","getFieldValidators","hasValidators","validators","length","showValidatorsTab","multipleValues","predefinedValuesTabEnabled","allowPredefinedValues","predefinedValues","enabled","listValidation","getListValidators","title","description"],"sources":["EditFieldDialog.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport cloneDeep from \"lodash/cloneDeep\";\nimport styled from \"@emotion/styled\";\nimport { Dialog, DialogContent, DialogTitle, DialogActions } from \"~/admin/components/Dialog\";\nimport { Form, FormOnSubmit } from \"@webiny/form\";\nimport { Tabs, Tab } from \"@webiny/ui/Tabs\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CmsEditorContentModel,\n CmsModelField,\n CmsEditorFieldRendererPlugin,\n CmsEditorFieldTypePlugin\n} from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport GeneralTab from \"./EditFieldDialog/GeneralTab\";\nimport AppearanceTab from \"./EditFieldDialog/AppearanceTab\";\nimport PredefinedValues from \"./EditFieldDialog/PredefinedValues\";\nimport { ValidatorsList } from \"./EditFieldDialog/ValidatorsList\";\nimport { ButtonDefault, ButtonPrimary } from \"@webiny/ui/Button\";\nimport { useModelField, useModelEditor } from \"~/admin/hooks\";\nimport { ModelFieldProvider } from \"~/admin/components/ModelFieldProvider\";\nimport { ValidationsSection } from \"~/admin/components/FieldEditor/EditFieldDialog/ValidationsSection\";\nimport { getFieldValidators, getListValidators } from \"./EditFieldDialog/getValidators\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/components/editor\");\n\nconst FullScreenDialog = styled(Dialog)`\n width: 100vw;\n height: 100vh;\n .mdc-dialog__surface {\n width: 100%;\n max-width: 100% !important;\n max-height: 100% !important;\n .webiny-ui-dialog__content {\n max-width: 100% !important;\n max-height: 100% !important;\n width: 100vw;\n height: calc(100vh - 155px);\n overflow: scroll !important;\n }\n }\n`;\n\nfunction setupState(\n field: CmsModelField,\n fieldPlugin: CmsEditorFieldTypePlugin,\n contentModel: CmsEditorContentModel\n): EditFieldState {\n const clonedField = cloneDeep(field);\n\n if (!clonedField.renderer || !clonedField.renderer.name) {\n const [renderPlugin] = plugins\n .byType<CmsEditorFieldRendererPlugin>(\"cms-editor-field-renderer\")\n .filter(item => item.renderer.canUse({ field, fieldPlugin }));\n\n if (renderPlugin) {\n clonedField.renderer = { name: renderPlugin.renderer.rendererName };\n }\n }\n\n return {\n shadowField: clonedField,\n isTitleField: contentModel.titleFieldId === field.fieldId\n };\n}\n\ninterface EditFieldState {\n shadowField: CmsModelField;\n isTitleField: boolean;\n}\n\ninterface EditFieldDialogProps {\n onClose: () => void;\n onSubmit: FormOnSubmit<CmsModelField>;\n}\n\nconst EditFieldDialog: React.FC<EditFieldDialogProps> = props => {\n const { field, fieldPlugin } = useModelField();\n const { data: contentModel, setData: setContentModelData } = useModelEditor();\n const [{ shadowField, isTitleField }] = useState<EditFieldState>(\n setupState(field, fieldPlugin, contentModel)\n );\n\n const headerTitle = t`Field Settings - {fieldTypeLabel}`({\n fieldTypeLabel: fieldPlugin.field.label\n });\n\n const onSubmit: FormOnSubmit<CmsModelField> = (data, form) => {\n /**\n * In case title field `fieldId` changed, we need to update the title field on the model itself.\n */\n if (isTitleField && contentModel.titleFieldId !== data.fieldId) {\n setContentModelData(prev => {\n return {\n ...prev,\n titleFieldId: data.fieldId\n };\n });\n }\n\n props.onSubmit(data, form);\n };\n\n return (\n <FullScreenDialog\n preventOutsideDismiss\n open={true}\n onClose={props.onClose}\n data-testid={\"cms-editor-edit-fields-dialog\"}\n >\n <DialogTitle>{headerTitle}</DialogTitle>\n <Form<CmsModelField> data={shadowField} onSubmit={onSubmit}>\n {({ data: shadowField, submit }) => {\n const individualValidation = getFieldValidators(shadowField, fieldPlugin);\n\n const hasValidators = individualValidation.validators.length > 0;\n\n const showValidatorsTab =\n shadowField.multipleValues || individualValidation.validators.length > 0;\n\n const predefinedValuesTabEnabled =\n fieldPlugin.field.allowPredefinedValues &&\n shadowField.predefinedValues &&\n shadowField.predefinedValues.enabled;\n\n const listValidation = getListValidators(shadowField, fieldPlugin);\n\n return (\n /**\n * We're using the `shadowField` as the new context, because we want all changes by form inputs\n * to immediately be propagated to all dialog components.\n */\n <ModelFieldProvider field={shadowField}>\n <DialogContent>\n <Tabs>\n <Tab label={t`General`}>\n <GeneralTab />\n </Tab>\n <Tab\n label={t`Predefined Values`}\n disabled={!predefinedValuesTabEnabled}\n >\n {predefinedValuesTabEnabled && <PredefinedValues />}\n </Tab>\n\n <Tab\n visible={showValidatorsTab}\n label={\"Validators\"}\n data-testid={\"cms.editor.field.tabs.validators\"}\n >\n {shadowField.multipleValues ? (\n <>\n <ValidationsSection\n validators={listValidation.validators}\n fieldKey={\"listValidators\"}\n title={\n listValidation.title || \"List validators\"\n }\n description={\n listValidation.description ||\n \"These validators are applied to the entire list of values.\"\n }\n />\n\n {hasValidators ? (\n <ValidationsSection\n fieldKey={\"validators\"}\n validators={individualValidation.validators}\n title={\n individualValidation.title ||\n \"Individual value validators\"\n }\n description={\n individualValidation.description ||\n \"These validators are applied to each value in the list.\"\n }\n />\n ) : null}\n </>\n ) : null}\n\n {!shadowField.multipleValues && hasValidators ? (\n <ValidatorsList\n name={\"validation\"}\n validators={individualValidation.validators}\n />\n ) : null}\n </Tab>\n <Tab label={t`Appearance`}>\n <AppearanceTab />\n </Tab>\n </Tabs>\n </DialogContent>\n <DialogActions>\n <ButtonDefault\n data-testid=\"cms.editor.field.settings.cancel\"\n onClick={props.onClose}\n >{t`Cancel`}</ButtonDefault>\n <ButtonPrimary\n data-testid=\"cms.editor.field.settings.save\"\n onClick={submit}\n >{t`Save Field`}</ButtonPrimary>\n </DialogActions>\n </ModelFieldProvider>\n );\n }}\n </Form>\n </FullScreenDialog>\n );\n};\n\nexport default EditFieldDialog;\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
- import { CmsEditorField } from "../../../types";
2
+ import { CmsModelField } from "../../../types";
3
3
  export interface FieldProps {
4
- field: CmsEditorField;
5
- onDelete: (field: CmsEditorField) => void;
6
- onEdit: (field: CmsEditorField) => void;
7
- parent?: CmsEditorField;
4
+ field: CmsModelField;
5
+ onDelete: (field: CmsModelField) => void;
6
+ onEdit: (field: CmsModelField) => void;
7
+ parent?: CmsModelField;
8
8
  }
9
9
  declare const _default: React.NamedExoticComponent<FieldProps>;
10
10
  export default _default;
@@ -27,7 +27,7 @@ var _Button = require("@webiny/ui/Button");
27
27
 
28
28
  var _Typography = require("@webiny/ui/Typography");
29
29
 
30
- var _edit = require("../../icons/edit.svg");
30
+ var _edit = require("@material-design-icons/svg/outlined/edit.svg");
31
31
 
32
32
  var _delete = require("../../icons/delete.svg");
33
33
 
@@ -47,9 +47,9 @@ var _i18n = require("@webiny/app/i18n");
47
47
 
48
48
  var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
49
49
 
50
- var _useContentModelEditor = require("../ContentModelEditor/useContentModelEditor");
50
+ var _hooks = require("../../hooks");
51
51
 
52
- var _useFieldEditor2 = require("./useFieldEditor");
52
+ var _useModelFieldEditor2 = require("./useModelFieldEditor");
53
53
 
54
54
  var _appAdmin = require("@webiny/app-admin");
55
55
 
@@ -101,6 +101,10 @@ var menuStyles = /*#__PURE__*/(0, _emotion.css)({
101
101
  pointerEvents: "none"
102
102
  }
103
103
  }, "label:menuStyles;");
104
+ var FieldExtra = /*#__PURE__*/(0, _styled.default)("div", {
105
+ label: "FieldExtra",
106
+ target: "erv8xml4"
107
+ })("padding:10px 0 10px;:empty{display:none;}");
104
108
  var allowedTitleFieldTypes = ["text", "number"];
105
109
 
106
110
  var isFieldAllowedToBeTitle = function isFieldAllowedToBeTitle(field, parent) {
@@ -121,13 +125,13 @@ var Field = function Field(props) {
121
125
  var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
122
126
  showSnackbar = _useSnackbar.showSnackbar;
123
127
 
124
- var _useContentModelEdito = (0, _useContentModelEditor.useContentModelEditor)(),
125
- setData = _useContentModelEdito.setData,
126
- data = _useContentModelEdito.data;
128
+ var _useModelEditor = (0, _hooks.useModelEditor)(),
129
+ setData = _useModelEditor.setData,
130
+ data = _useModelEditor.data;
127
131
 
128
- var _useFieldEditor = (0, _useFieldEditor2.useFieldEditor)(),
129
- getFieldPlugin = _useFieldEditor.getFieldPlugin,
130
- getFieldRendererPlugin = _useFieldEditor.getFieldRendererPlugin;
132
+ var _useModelFieldEditor = (0, _useModelFieldEditor2.useModelFieldEditor)(),
133
+ getFieldPlugin = _useModelFieldEditor.getFieldPlugin,
134
+ getFieldRendererPlugin = _useModelFieldEditor.getFieldRendererPlugin;
131
135
 
132
136
  var _useConfirmationDialo = (0, _appAdmin.useConfirmationDialog)({
133
137
  title: t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Warning - You are trying to delete a locked field!"]))),
@@ -191,19 +195,20 @@ var Field = function Field(props) {
191
195
  }
192
196
 
193
197
  var rendererPlugin = getFieldRendererPlugin(field.renderer.name);
198
+ var canEdit = fieldPlugin.field.canEditSettings !== false;
194
199
  var isTitleField = data && field.fieldId === data.titleFieldId && !parent;
195
200
  var info = [rendererPlugin === null || rendererPlugin === void 0 ? void 0 : rendererPlugin.renderer.name, field.multipleValues ? "multiple values" : null, isTitleField ? "entry title" : null].filter(Boolean).join(", ");
196
201
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(FieldContainer, null, /*#__PURE__*/_react.default.createElement(Info, null, /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
197
202
  use: "subtitle1"
198
203
  }, field.label), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
199
204
  use: "caption"
200
- }, fieldPlugin.field.label, " ", field.multipleValues && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(LowerCase, null, "(", info, ")"))), /*#__PURE__*/_react.default.createElement(Actions, null, /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
205
+ }, fieldPlugin.field.label, " ", field.multipleValues && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null), /*#__PURE__*/_react.default.createElement(LowerCase, null, "(", info, ")"))), /*#__PURE__*/_react.default.createElement(Actions, null, canEdit ? /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
201
206
  "data-testid": "cms.editor.edit-field",
202
207
  icon: /*#__PURE__*/_react.default.createElement(_edit.ReactComponent, null),
203
208
  onClick: function onClick() {
204
209
  return onEdit(field);
205
210
  }
206
- }), /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
211
+ }) : null, /*#__PURE__*/_react.default.createElement(_Menu.Menu, {
207
212
  className: menuStyles,
208
213
  handle: /*#__PURE__*/_react.default.createElement(_Button.IconButton, {
209
214
  icon: /*#__PURE__*/_react.default.createElement(_more_vert.ReactComponent, null)
@@ -221,9 +226,7 @@ var Field = function Field(props) {
221
226
  onClick: onDelete
222
227
  }, /*#__PURE__*/_react.default.createElement(_List.ListItemGraphic, null, /*#__PURE__*/_react.default.createElement(_Icon.Icon, {
223
228
  icon: /*#__PURE__*/_react.default.createElement(_delete.ReactComponent, null)
224
- })), t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Delete"]))))))), /*#__PURE__*/_react.default.createElement("div", {
225
- className: "field-extra"
226
- }, fieldPlugin.field.render && fieldPlugin.field.render({
229
+ })), t(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["Delete"]))))))), /*#__PURE__*/_react.default.createElement(FieldExtra, null, fieldPlugin.field.render && fieldPlugin.field.render({
227
230
  field: field,
228
231
  data: data,
229
232
  setData: setData