@webiny/app-headless-cms 5.24.0 → 5.25.0-beta.2

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 (427) hide show
  1. package/HeadlessCMS.d.ts +4 -3
  2. package/HeadlessCMS.js.map +1 -0
  3. package/admin/components/ContentEntryForm/ContentEntryForm.js +27 -6
  4. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -0
  5. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +18 -2
  6. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -0
  7. package/admin/components/ContentEntryForm/Fields.d.ts +1 -2
  8. package/admin/components/ContentEntryForm/Fields.js +1 -1
  9. package/admin/components/ContentEntryForm/Fields.js.map +1 -0
  10. package/admin/components/ContentEntryForm/Label.js.map +1 -0
  11. package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +1 -2
  12. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -0
  13. package/admin/components/ContentEntryForm/functions/createValidators.d.ts +2 -1
  14. package/admin/components/ContentEntryForm/functions/createValidators.js +8 -5
  15. package/admin/components/ContentEntryForm/functions/createValidators.js.map +1 -0
  16. package/admin/components/ContentEntryForm/functions/getValue.d.ts +4 -3
  17. package/admin/components/ContentEntryForm/functions/getValue.js +0 -1
  18. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -0
  19. package/admin/components/ContentEntryForm/functions/setValue.d.ts +4 -3
  20. package/admin/components/ContentEntryForm/functions/setValue.js +0 -1
  21. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -0
  22. package/admin/components/ContentEntryForm/useBind.d.ts +3 -7
  23. package/admin/components/ContentEntryForm/useBind.js +6 -0
  24. package/admin/components/ContentEntryForm/useBind.js.map +1 -0
  25. package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +2 -4
  26. package/admin/components/ContentEntryForm/useContentEntryForm.js +75 -26
  27. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -0
  28. package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -0
  29. package/admin/components/ContentModelEditor/Context.d.ts +9 -7
  30. package/admin/components/ContentModelEditor/Context.js +158 -36
  31. package/admin/components/ContentModelEditor/Context.js.map +1 -0
  32. package/admin/components/ContentModelEditor/Editor.d.ts +1 -1
  33. package/admin/components/ContentModelEditor/Editor.js +5 -3
  34. package/admin/components/ContentModelEditor/Editor.js.map +1 -0
  35. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -0
  36. package/admin/components/ContentModelEditor/Header.js.map +1 -0
  37. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -0
  38. package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +1 -1
  39. package/admin/components/ContentModelEditor/useContentModelEditor.js.map +1 -0
  40. package/admin/components/DragPreview.js +6 -1
  41. package/admin/components/DragPreview.js.map +1 -0
  42. package/admin/components/Draggable.js.map +1 -0
  43. package/admin/components/DropZone/Center.js.map +1 -0
  44. package/admin/components/DropZone/Horizontal.js +1 -1
  45. package/admin/components/DropZone/Horizontal.js.map +1 -0
  46. package/admin/components/DropZone/Vertical.js +1 -1
  47. package/admin/components/DropZone/Vertical.js.map +1 -0
  48. package/admin/components/DropZone/index.js.map +1 -0
  49. package/admin/components/Droppable.js.map +1 -0
  50. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -0
  51. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +14 -4
  52. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -0
  53. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +5 -1
  54. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -0
  55. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +9 -4
  56. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +13 -6
  57. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +1 -0
  58. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.d.ts +2 -1
  59. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -0
  60. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.d.ts +2 -1
  61. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +0 -1
  62. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -0
  63. package/admin/components/FieldEditor/EditFieldDialog.d.ts +1 -1
  64. package/admin/components/FieldEditor/EditFieldDialog.js +35 -18
  65. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -0
  66. package/admin/components/FieldEditor/Field.js +2 -2
  67. package/admin/components/FieldEditor/Field.js.map +1 -0
  68. package/admin/components/FieldEditor/FieldEditor.js.map +1 -0
  69. package/admin/components/FieldEditor/FieldEditorContext.d.ts +9 -9
  70. package/admin/components/FieldEditor/FieldEditorContext.js +43 -15
  71. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -0
  72. package/admin/components/FieldEditor/Styled.d.ts +2 -3
  73. package/admin/components/FieldEditor/Styled.js.map +1 -0
  74. package/admin/components/FieldEditor/index.js.map +1 -0
  75. package/admin/components/FieldEditor/useFieldEditor.js.map +1 -0
  76. package/admin/components/FieldEditor/utils/deleteField.d.ts +5 -5
  77. package/admin/components/FieldEditor/utils/deleteField.js +4 -0
  78. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -0
  79. package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +2 -2
  80. package/admin/components/FieldEditor/utils/getFieldPosition.js +3 -2
  81. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -0
  82. package/admin/components/FieldEditor/utils/index.js.map +1 -0
  83. package/admin/components/FieldEditor/utils/moveField.d.ts +2 -2
  84. package/admin/components/FieldEditor/utils/moveField.js +3 -1
  85. package/admin/components/FieldEditor/utils/moveField.js.map +1 -0
  86. package/admin/components/FieldEditor/utils/moveRow.js.map +1 -0
  87. package/admin/constants/statusLabels.js.map +1 -0
  88. package/admin/contexts/Cms/NetworkError.js.map +1 -0
  89. package/admin/contexts/Cms/index.js +22 -7
  90. package/admin/contexts/Cms/index.js.map +1 -0
  91. package/admin/elements/ContentGroupMenuElement.js.map +1 -0
  92. package/admin/elements/ContentModelMenuElement.js.map +1 -0
  93. package/admin/elements/NothingToShowElement.js.map +1 -0
  94. package/admin/graphql/contentEntries.d.ts +8 -8
  95. package/admin/graphql/contentEntries.js.map +1 -0
  96. package/admin/graphql/contentModels.d.ts +2 -2
  97. package/admin/graphql/contentModels.js.map +1 -0
  98. package/admin/graphql/createFieldsList.js.map +1 -0
  99. package/admin/hooks/index.js.map +1 -0
  100. package/admin/hooks/useApolloClient.js.map +1 -0
  101. package/admin/hooks/useCms.js.map +1 -0
  102. package/admin/hooks/useLazyQuery.d.ts +2 -1
  103. package/admin/hooks/useLazyQuery.js.map +1 -0
  104. package/admin/hooks/useMutation.d.ts +2 -1
  105. package/admin/hooks/useMutation.js.map +1 -0
  106. package/admin/hooks/usePermission.js +20 -19
  107. package/admin/hooks/usePermission.js.map +1 -0
  108. package/admin/hooks/useQuery.d.ts +2 -2
  109. package/admin/hooks/useQuery.js.map +1 -0
  110. package/admin/hooks/useQueryLocale.d.ts +2 -2
  111. package/admin/hooks/useQueryLocale.js.map +1 -0
  112. package/admin/menus/CmsMenuLoader.js.map +1 -0
  113. package/admin/menus/ContentGroupsMenuItems.js +1 -1
  114. package/admin/menus/ContentGroupsMenuItems.js.map +1 -0
  115. package/admin/menus/GlobalSearchPlugins.d.ts +0 -1
  116. package/admin/menus/GlobalSearchPlugins.js +1 -1
  117. package/admin/menus/GlobalSearchPlugins.js.map +1 -0
  118. package/admin/menus/NothingToShowElement.js.map +1 -0
  119. package/admin/plugins/apiInformation/index.js +3 -3
  120. package/admin/plugins/apiInformation/index.js.map +1 -0
  121. package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -0
  122. package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -0
  123. package/admin/plugins/editor/defaultBar/BackButton.js +4 -2
  124. package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -0
  125. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -0
  126. package/admin/plugins/editor/defaultBar/Divider.d.ts +1 -2
  127. package/admin/plugins/editor/defaultBar/Divider.js.map +1 -0
  128. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +11 -1
  129. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -0
  130. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -0
  131. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.d.ts +2 -2
  132. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -0
  133. package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -0
  134. package/admin/plugins/editor/defaultBar/Name/Name.js +1 -1
  135. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -0
  136. package/admin/plugins/editor/defaultBar/Name/NameStyled.d.ts +3 -4
  137. package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -0
  138. package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -0
  139. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +37 -32
  140. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -0
  141. package/admin/plugins/editor/defaultBar/index.d.ts +0 -1
  142. package/admin/plugins/editor/defaultBar/index.js.map +1 -0
  143. package/admin/plugins/editor/formSettings/components/GeneralSettings.d.ts +0 -1
  144. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -0
  145. package/admin/plugins/editor/formSettings/components/GroupSelect.d.ts +0 -1
  146. package/admin/plugins/editor/formSettings/components/GroupSelect.js +1 -1
  147. package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -0
  148. package/admin/plugins/editor/formSettings/index.js.map +1 -0
  149. package/admin/plugins/fieldRenderers/Accordion.d.ts +1 -1
  150. package/admin/plugins/fieldRenderers/Accordion.js +1 -1
  151. package/admin/plugins/fieldRenderers/Accordion.js.map +1 -0
  152. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +7 -1
  153. package/admin/plugins/fieldRenderers/DynamicSection.js +7 -4
  154. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -0
  155. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js +0 -1
  156. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -0
  157. package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -0
  158. package/admin/plugins/fieldRenderers/checkboxes.js +11 -6
  159. package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -0
  160. package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -1
  161. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +40 -9
  162. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -0
  163. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +2 -2
  164. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +74 -18
  165. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -0
  166. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +2 -2
  167. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +72 -16
  168. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -0
  169. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -0
  170. package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -0
  171. package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -0
  172. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +4 -4
  173. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -0
  174. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +15 -10
  175. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -0
  176. package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -0
  177. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +3 -3
  178. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -0
  179. package/admin/plugins/fieldRenderers/file/File.d.ts +4 -4
  180. package/admin/plugins/fieldRenderers/file/File.js +9 -3
  181. package/admin/plugins/fieldRenderers/file/File.js.map +1 -0
  182. package/admin/plugins/fieldRenderers/file/fileField.js +4 -4
  183. package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -0
  184. package/admin/plugins/fieldRenderers/file/fileFields.js +10 -5
  185. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -0
  186. package/admin/plugins/fieldRenderers/file/index.js.map +1 -0
  187. package/admin/plugins/fieldRenderers/file/utils.d.ts +0 -1
  188. package/admin/plugins/fieldRenderers/file/utils.js +2 -2
  189. package/admin/plugins/fieldRenderers/file/utils.js.map +1 -0
  190. package/admin/plugins/fieldRenderers/longText/index.js.map +1 -0
  191. package/admin/plugins/fieldRenderers/longText/longText.js +0 -1
  192. package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -0
  193. package/admin/plugins/fieldRenderers/longText/longTexts.js +1 -1
  194. package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -0
  195. package/admin/plugins/fieldRenderers/number/index.js.map +1 -0
  196. package/admin/plugins/fieldRenderers/number/numberInput.js +0 -1
  197. package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -0
  198. package/admin/plugins/fieldRenderers/number/numberInputs.js +1 -1
  199. package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -0
  200. package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -0
  201. package/admin/plugins/fieldRenderers/object/index.js.map +1 -0
  202. package/admin/plugins/fieldRenderers/object/multipleObjects.js +5 -5
  203. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -0
  204. package/admin/plugins/fieldRenderers/object/singleObject.js +3 -2
  205. package/admin/plugins/fieldRenderers/object/singleObject.js.map +1 -0
  206. package/admin/plugins/fieldRenderers/radioButtons.js +11 -5
  207. package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -0
  208. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +2 -1
  209. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +2 -4
  210. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -0
  211. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +2 -1
  212. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -0
  213. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.d.ts +3 -2
  214. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -0
  215. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +14 -8
  216. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -0
  217. package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -0
  218. package/admin/plugins/fieldRenderers/ref/components/getOptions.d.ts +4 -3
  219. package/admin/plugins/fieldRenderers/ref/components/getOptions.js +1 -1
  220. package/admin/plugins/fieldRenderers/ref/components/getOptions.js.map +1 -0
  221. package/admin/plugins/fieldRenderers/ref/components/graphql.d.ts +4 -14
  222. package/admin/plugins/fieldRenderers/ref/components/graphql.js +1 -1
  223. package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -0
  224. package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -0
  225. package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +6 -11
  226. package/admin/plugins/fieldRenderers/ref/components/useReference.js +4 -3
  227. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -0
  228. package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +3 -9
  229. package/admin/plugins/fieldRenderers/ref/components/useReferences.js +1 -2
  230. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -0
  231. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +4 -3
  232. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -0
  233. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js +6 -1
  234. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -0
  235. package/admin/plugins/fieldRenderers/ref/index.js.map +1 -0
  236. package/admin/plugins/fieldRenderers/ref/refInput.js +0 -1
  237. package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -0
  238. package/admin/plugins/fieldRenderers/ref/refInputs.js +1 -2
  239. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -0
  240. package/admin/plugins/fieldRenderers/richText/index.js.map +1 -0
  241. package/admin/plugins/fieldRenderers/richText/richTextInput.js +5 -1
  242. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -0
  243. package/admin/plugins/fieldRenderers/richText/richTextInputs.js +9 -3
  244. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -0
  245. package/admin/plugins/fieldRenderers/select.js +28 -7
  246. package/admin/plugins/fieldRenderers/select.js.map +1 -0
  247. package/admin/plugins/fieldRenderers/text/index.js.map +1 -0
  248. package/admin/plugins/fieldRenderers/text/textInput.js +0 -1
  249. package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -0
  250. package/admin/plugins/fieldRenderers/text/textInputs.js +1 -1
  251. package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -0
  252. package/admin/plugins/fieldValidators/date/availableValidators.d.ts +1 -1
  253. package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -0
  254. package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +0 -1
  255. package/admin/plugins/fieldValidators/date/createDateInputField.js +5 -3
  256. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -0
  257. package/admin/plugins/fieldValidators/dateGte.js +1 -1
  258. package/admin/plugins/fieldValidators/dateGte.js.map +1 -0
  259. package/admin/plugins/fieldValidators/dateLte.js +1 -1
  260. package/admin/plugins/fieldValidators/dateLte.js.map +1 -0
  261. package/admin/plugins/fieldValidators/gte.js.map +1 -0
  262. package/admin/plugins/fieldValidators/in.js.map +1 -0
  263. package/admin/plugins/fieldValidators/lte.js.map +1 -0
  264. package/admin/plugins/fieldValidators/maxLength.js.map +1 -0
  265. package/admin/plugins/fieldValidators/minLength.js.map +1 -0
  266. package/admin/plugins/fieldValidators/pattern.js +6 -0
  267. package/admin/plugins/fieldValidators/pattern.js.map +1 -0
  268. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -0
  269. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -0
  270. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -0
  271. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -0
  272. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -0
  273. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -0
  274. package/admin/plugins/fieldValidators/required.js.map +1 -0
  275. package/admin/plugins/fieldValidators/unique.js.map +1 -0
  276. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -0
  277. package/admin/plugins/fields/boolean.js.map +1 -0
  278. package/admin/plugins/fields/dateTime.js.map +1 -0
  279. package/admin/plugins/fields/file.js +2 -2
  280. package/admin/plugins/fields/file.js.map +1 -0
  281. package/admin/plugins/fields/longText.js.map +1 -0
  282. package/admin/plugins/fields/number.js.map +1 -0
  283. package/admin/plugins/fields/object/ObjectFields.js +2 -2
  284. package/admin/plugins/fields/object/ObjectFields.js.map +1 -0
  285. package/admin/plugins/fields/object.js +1 -1
  286. package/admin/plugins/fields/object.js.map +1 -0
  287. package/admin/plugins/fields/ref.js +5 -5
  288. package/admin/plugins/fields/ref.js.map +1 -0
  289. package/admin/plugins/fields/richText.js.map +1 -0
  290. package/admin/plugins/fields/text.js.map +1 -0
  291. package/admin/plugins/getObjectId.js.map +1 -0
  292. package/admin/plugins/icons.js +10 -3
  293. package/admin/plugins/icons.js.map +1 -0
  294. package/admin/plugins/index.d.ts +0 -1
  295. package/admin/plugins/index.js.map +1 -0
  296. package/admin/plugins/install.js +11 -7
  297. package/admin/plugins/install.js.map +1 -0
  298. package/admin/plugins/permissionRenderer/CmsPermissions.js +14 -9
  299. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -0
  300. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.d.ts +2 -2
  301. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +7 -6
  302. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -0
  303. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.d.ts +2 -2
  304. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +7 -6
  305. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -0
  306. package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -0
  307. package/admin/plugins/permissionRenderer/components/ContentModelPermission.d.ts +2 -2
  308. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +7 -6
  309. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -0
  310. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -0
  311. package/admin/plugins/permissionRenderer/components/PermissionSelector.d.ts +1 -1
  312. package/admin/plugins/permissionRenderer/components/PermissionSelector.js +13 -1
  313. package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -0
  314. package/admin/plugins/permissionRenderer/components/StyledComponents.d.ts +1 -2
  315. package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -0
  316. package/admin/plugins/permissionRenderer/components/types.js.map +1 -0
  317. package/admin/plugins/permissionRenderer/components/useCmsData.js +4 -6
  318. package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -0
  319. package/admin/plugins/permissionRenderer/index.js.map +1 -0
  320. package/admin/plugins/routes.js.map +1 -0
  321. package/admin/plugins/transformers/dateTransformer.js +20 -24
  322. package/admin/plugins/transformers/dateTransformer.js.map +1 -0
  323. package/admin/plugins/transformers/index.js.map +1 -0
  324. package/admin/plugins/transformers/numberTransformer.js.map +1 -0
  325. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +1 -1
  326. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +1 -0
  327. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +2 -2
  328. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +1 -0
  329. package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +1 -0
  330. package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +1 -0
  331. package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +1 -0
  332. package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +1 -0
  333. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +2 -2
  334. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +1 -0
  335. package/admin/plugins/upgrades/5.19.0/types.js.map +1 -0
  336. package/admin/plugins/upgrades/v5.0.0.d.ts +0 -1
  337. package/admin/plugins/upgrades/v5.0.0.js.map +1 -0
  338. package/admin/plugins/upgrades/v5.19.0.d.ts +0 -1
  339. package/admin/plugins/upgrades/v5.19.0.js.map +1 -0
  340. package/admin/plugins/upgrades/v5.5.0.d.ts +0 -1
  341. package/admin/plugins/upgrades/v5.5.0.js.map +1 -0
  342. package/admin/plugins/upgrades/v5.8.0.d.ts +0 -1
  343. package/admin/plugins/upgrades/v5.8.0.js.map +1 -0
  344. package/admin/plugins/validators/dateGte.js.map +1 -0
  345. package/admin/plugins/validators/dateLte.js.map +1 -0
  346. package/admin/plugins/validators/gte.js.map +1 -0
  347. package/admin/plugins/validators/in.js.map +1 -0
  348. package/admin/plugins/validators/lte.js.map +1 -0
  349. package/admin/plugins/validators/maxLength.js.map +1 -0
  350. package/admin/plugins/validators/minLength.js.map +1 -0
  351. package/admin/plugins/validators/pattern.js.map +1 -0
  352. package/admin/plugins/validators/patternPlugins/email.js.map +1 -0
  353. package/admin/plugins/validators/patternPlugins/lowerCase.js.map +1 -0
  354. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
  355. package/admin/plugins/validators/patternPlugins/upperCase.js.map +1 -0
  356. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +1 -0
  357. package/admin/plugins/validators/patternPlugins/url.js.map +1 -0
  358. package/admin/plugins/validators/required.js.map +1 -0
  359. package/admin/plugins/validators/timeGte.js.map +1 -0
  360. package/admin/plugins/validators/timeLte.js.map +1 -0
  361. package/admin/plugins/validators/unique.js.map +1 -0
  362. package/admin/plugins/welcomeScreenWidget.js.map +1 -0
  363. package/admin/views/contentEntries/ContentEntries.js +2 -2
  364. package/admin/views/contentEntries/ContentEntries.js.map +1 -0
  365. package/admin/views/contentEntries/ContentEntriesContext.js +13 -4
  366. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -0
  367. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -0
  368. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +10 -7
  369. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +85 -4
  370. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -0
  371. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +4 -2
  372. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -0
  373. package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -0
  374. package/admin/views/contentEntries/ContentEntry/cache.js +19 -23
  375. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -0
  376. package/admin/views/contentEntries/ContentEntry/header/Header.js.map +1 -0
  377. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +15 -8
  378. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -0
  379. package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -0
  380. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -2
  381. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -0
  382. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -0
  383. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js +8 -7
  384. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -0
  385. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +2 -2
  386. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -0
  387. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js +2 -2
  388. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +1 -0
  389. package/admin/views/contentEntries/ContentEntry/prepareFormData.js +2 -1
  390. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -0
  391. package/admin/views/contentEntries/ContentEntry/useRevision.js +105 -47
  392. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -0
  393. package/admin/views/contentEntries/ContentEntry.js.map +1 -0
  394. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -0
  395. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -2
  396. package/admin/views/contentEntries/hooks/useContentEntriesList.js +4 -4
  397. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -0
  398. package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -0
  399. package/admin/views/contentModelGroups/ContentModelGroups.js +4 -3
  400. package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -0
  401. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +6 -3
  402. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -0
  403. package/admin/views/contentModelGroups/ContentModelGroupsForm.js +23 -8
  404. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -0
  405. package/admin/views/contentModelGroups/DelayedOnChange.js.map +1 -0
  406. package/admin/views/contentModelGroups/IconPicker.js +11 -3
  407. package/admin/views/contentModelGroups/IconPicker.js.map +1 -0
  408. package/admin/views/contentModelGroups/graphql.js.map +1 -0
  409. package/admin/views/contentModels/CloneContentModelDialog.js +25 -34
  410. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -0
  411. package/admin/views/contentModels/ContentModelEditor.js +2 -2
  412. package/admin/views/contentModels/ContentModelEditor.js.map +1 -0
  413. package/admin/views/contentModels/ContentModels.js +5 -4
  414. package/admin/views/contentModels/ContentModels.js.map +1 -0
  415. package/admin/views/contentModels/ContentModelsDataList.js +9 -2
  416. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -0
  417. package/admin/views/contentModels/NewContentModelDialog.js +17 -3
  418. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -0
  419. package/admin/views/contentModels/cache.js +38 -12
  420. package/admin/views/contentModels/cache.js.map +1 -0
  421. package/admin/views/contentModels/types.js.map +1 -0
  422. package/admin/views/utils.js.map +1 -0
  423. package/admin/viewsGraphql.js.map +1 -0
  424. package/index.js.map +1 -0
  425. package/package.json +26 -25
  426. package/types.d.ts +41 -7
  427. package/types.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["maxLength.tsx"],"names":["React","Grid","Cell","Input","validation","plugin","type","name","validator","label","description","defaultMessage","renderSettings","Bind","create"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,UAAT,QAA2B,oBAA3B;AAGA,IAAMC,MAAqC,GAAG;AAC1CC,EAAAA,IAAI,EAAE,4BADoC;AAE1CC,EAAAA,IAAI,EAAE,uCAFoC;AAG1CC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,WADC;AAEPE,IAAAA,KAAK,EAAE,YAFA;AAGPC,IAAAA,WAAW,EAAE,gEAHN;AAIPC,IAAAA,cAAc,EAAE,oBAJT;AAKPC,IAAAA,cALO,gCAKkB;AAAA,UAARC,IAAQ,QAARA,IAAQ;AACrB,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AACI,QAAA,IAAI,EAAE,gBADV;AAEI,QAAA,UAAU,EAAET,UAAU,CAACU,MAAX,CAAkB,kBAAlB;AAFhB,sBAII,oBAAC,KAAD;AACI,QAAA,IAAI,EAAE,QADV;AAEI,QAAA,KAAK,EAAE,OAFX;AAGI,QAAA,WAAW,EAAE;AAHjB,QAJJ,CADJ,CADJ,CADJ;AAgBH;AAtBM;AAH+B,CAA9C;AA4BA,eAAeT,MAAf","sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsEditorFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPlugin = {\n type: \"cms-editor-field-validator\",\n name: \"cms-editor-field-validator-max-length\",\n validator: {\n name: \"maxLength\",\n label: \"Max length\",\n description: \"Entered value must not be longer than the provided max length.\",\n defaultMessage: \"Value is too long.\",\n renderSettings({ Bind }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"settings.value\"}\n validators={validation.create(\"required,numeric\")}\n >\n <Input\n type={\"number\"}\n label={\"Value\"}\n description={\"This is the maximum allowed length.\"}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["minLength.tsx"],"names":["React","Grid","Cell","Input","validation","plugin","type","name","validator","label","description","defaultMessage","renderSettings","Bind","create"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,SAASC,UAAT,QAA2B,oBAA3B;AAGA,IAAMC,MAAqC,GAAG;AAC1CC,EAAAA,IAAI,EAAE,4BADoC;AAE1CC,EAAAA,IAAI,EAAE,uCAFoC;AAG1CC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,WADC;AAEPE,IAAAA,KAAK,EAAE,YAFA;AAGPC,IAAAA,WAAW,EAAE,iEAHN;AAIPC,IAAAA,cAAc,EAAE,qBAJT;AAKPC,IAAAA,cALO,gCAKkB;AAAA,UAARC,IAAQ,QAARA,IAAQ;AACrB,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AACI,QAAA,IAAI,EAAE,gBADV;AAEI,QAAA,UAAU,EAAET,UAAU,CAACU,MAAX,CAAkB,kBAAlB;AAFhB,sBAII,oBAAC,KAAD;AACI,QAAA,IAAI,EAAE,QADV;AAEI,QAAA,KAAK,EAAE,OAFX;AAGI,QAAA,WAAW,EAAE;AAHjB,QAJJ,CADJ,CADJ,CADJ;AAgBH;AAtBM;AAH+B,CAA9C;AA4BA,eAAeT,MAAf","sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsEditorFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPlugin = {\n type: \"cms-editor-field-validator\",\n name: \"cms-editor-field-validator-min-length\",\n validator: {\n name: \"minLength\",\n label: \"Min length\",\n description: \"Entered value must not be shorter than the provided min length.\",\n defaultMessage: \"Value is too short.\",\n renderSettings({ Bind }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind\n name={\"settings.value\"}\n validators={validation.create(\"required,numeric\")}\n >\n <Input\n type={\"number\"}\n label={\"Value\"}\n description={\"This is the minimum allowed length.\"}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\nexport default plugin;\n"]}
@@ -44,6 +44,12 @@ var plugin = {
44
44
  var selectedPatternPlugin = presetPlugins.find(function (item) {
45
45
  return item.pattern.name === value;
46
46
  });
47
+
48
+ if (!selectedPatternPlugin) {
49
+ setMessage("Missing pattern plugin \"".concat(value, "\"."));
50
+ return;
51
+ }
52
+
47
53
  setMessage(selectedPatternPlugin.pattern.message);
48
54
  }
49
55
  }, /*#__PURE__*/React.createElement(Select, {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["pattern.tsx"],"names":["React","Grid","Cell","Input","Select","plugins","validation","plugin","type","name","validator","label","description","defaultMessage","defaultSettings","preset","renderSettings","Bind","setValue","setMessage","data","inputsDisabled","settings","presetPlugins","byType","selectOptions","map","item","pattern","create","value","selectedPatternPlugin","find","message"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { plugins } from \"@webiny/plugins\";\nimport { validation } from \"@webiny/validation\";\nimport { CmsEditorFieldValidatorPlugin, CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPlugin = {\n type: \"cms-editor-field-validator\",\n name: \"cms-editor-field-validator-pattern\",\n validator: {\n name: \"pattern\",\n label: \"Pattern\",\n description: \"Entered value must match a specific pattern.\",\n defaultMessage: \"Invalid value.\",\n defaultSettings: {\n preset: \"custom\"\n },\n renderSettings({ Bind, setValue, setMessage, data }) {\n const inputsDisabled = data.settings.preset !== \"custom\";\n const presetPlugins = plugins.byType<CmsEditorFieldValidatorPatternPlugin>(\n \"cms-editor-field-validator-pattern\"\n );\n\n const selectOptions: any = presetPlugins.map(item => (\n <option key={item.pattern.name} value={item.pattern.name}>\n {item.pattern.label}\n </option>\n ));\n\n return (\n <Grid>\n <Cell span={3}>\n <Bind\n name={\"settings.preset\"}\n validators={validation.create(\"required\")}\n afterChange={value => {\n if (value === \"custom\") {\n setMessage(\"Invalid value.\");\n return;\n }\n\n setValue(\"settings.regex\", null);\n setValue(\"settings.flags\", null);\n\n const selectedPatternPlugin = presetPlugins.find(\n item => item.pattern.name === value\n );\n if (!selectedPatternPlugin) {\n setMessage(`Missing pattern plugin \"${value}\".`);\n return;\n }\n\n setMessage(selectedPatternPlugin.pattern.message);\n }}\n >\n <Select label={\"Preset\"}>\n <option value={\"custom\"}>Custom</option>\n {selectOptions}\n </Select>\n </Bind>\n </Cell>\n <Cell span={7}>\n <Bind name={\"settings.regex\"} validators={validation.create(\"required\")}>\n <Input\n disabled={inputsDisabled}\n label={\"Regex\"}\n description={\"Regex to test the value\"}\n />\n </Bind>\n </Cell>\n <Cell span={2}>\n <Bind name={\"settings.flags\"} validators={validation.create(\"required\")}>\n <Input\n disabled={inputsDisabled}\n label={\"Flags\"}\n description={\"Regex flags\"}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["email.ts"],"names":["plugin","type","name","pattern","message","label"],"mappings":"AAEA,IAAMA,MAA4C,GAAG;AACjDC,EAAAA,IAAI,EAAE,oCAD2C;AAEjDC,EAAAA,IAAI,EAAE,0CAF2C;AAGjDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,OAAO,EAAE,8BADJ;AAELF,IAAAA,IAAI,EAAE,OAFD;AAGLG,IAAAA,KAAK,EAAE;AAHF;AAHwC,CAArD;AASA,eAAeL,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPatternPlugin = {\n type: \"cms-editor-field-validator-pattern\",\n name: \"cms-editor-field-validator-pattern-email\",\n pattern: {\n message: \"Please enter a valid e-mail.\",\n name: \"email\",\n label: \"E-mail\"\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["lowerCase.ts"],"names":["plugin","type","name","pattern","message","label"],"mappings":"AAEA,IAAMA,MAA4C,GAAG;AACjDC,EAAAA,IAAI,EAAE,oCAD2C;AAEjDC,EAAAA,IAAI,EAAE,+CAF2C;AAGjDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,OAAO,EAAE,yCADJ;AAELF,IAAAA,IAAI,EAAE,WAFD;AAGLG,IAAAA,KAAK,EAAE;AAHF;AAHwC,CAArD;AAUA,eAAeL,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPatternPlugin = {\n type: \"cms-editor-field-validator-pattern\",\n name: \"cms-editor-field-validator-pattern-lower-case\",\n pattern: {\n message: \"Only lower case characters are allowed.\",\n name: \"lowerCase\",\n label: \"Lower case\"\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["lowerCaseSpace.ts"],"names":["plugin","type","name","pattern","message","label"],"mappings":"AAEA,IAAMA,MAA4C,GAAG;AACjDC,EAAAA,IAAI,EAAE,oCAD2C;AAEjDC,EAAAA,IAAI,EAAE,qDAF2C;AAGjDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,OAAO,EAAE,mDADJ;AAELF,IAAAA,IAAI,EAAE,gBAFD;AAGLG,IAAAA,KAAK,EAAE;AAHF;AAHwC,CAArD;AASA,eAAeL,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPatternPlugin = {\n type: \"cms-editor-field-validator-pattern\",\n name: \"cms-editor-field-validator-pattern-lower-case-space\",\n pattern: {\n message: \"Only lower case characters and space are allowed.\",\n name: \"lowerCaseSpace\",\n label: \"Lower case + space\"\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["upperCase.ts"],"names":["plugin","type","name","pattern","message","label"],"mappings":"AAEA,IAAMA,MAA4C,GAAG;AACjDC,EAAAA,IAAI,EAAE,oCAD2C;AAEjDC,EAAAA,IAAI,EAAE,+CAF2C;AAGjDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,OAAO,EAAE,yCADJ;AAELF,IAAAA,IAAI,EAAE,WAFD;AAGLG,IAAAA,KAAK,EAAE;AAHF;AAHwC,CAArD;AASA,eAAeL,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPatternPlugin = {\n type: \"cms-editor-field-validator-pattern\",\n name: \"cms-editor-field-validator-pattern-upper-case\",\n pattern: {\n message: \"Only upper case characters are allowed.\",\n name: \"upperCase\",\n label: \"Upper case\"\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["upperCaseSpace.ts"],"names":["plugin","type","name","pattern","message","label"],"mappings":"AAEA,IAAMA,MAA4C,GAAG;AACjDC,EAAAA,IAAI,EAAE,oCAD2C;AAEjDC,EAAAA,IAAI,EAAE,qDAF2C;AAGjDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,OAAO,EAAE,mDADJ;AAELF,IAAAA,IAAI,EAAE,gBAFD;AAGLG,IAAAA,KAAK,EAAE;AAHF;AAHwC,CAArD;AASA,eAAeL,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPatternPlugin = {\n type: \"cms-editor-field-validator-pattern\",\n name: \"cms-editor-field-validator-pattern-upper-case-space\",\n pattern: {\n message: \"Only upper case characters and space are allowed.\",\n name: \"upperCaseSpace\",\n label: \"Upper case + space\"\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["url.ts"],"names":["plugin","type","name","pattern","message","label"],"mappings":"AAEA,IAAMA,MAA4C,GAAG;AACjDC,EAAAA,IAAI,EAAE,oCAD2C;AAEjDC,EAAAA,IAAI,EAAE,wCAF2C;AAGjDC,EAAAA,OAAO,EAAE;AACLC,IAAAA,OAAO,EAAE,2BADJ;AAELF,IAAAA,IAAI,EAAE,KAFD;AAGLG,IAAAA,KAAK,EAAE;AAHF;AAHwC,CAArD;AASA,eAAeL,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPatternPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPatternPlugin = {\n type: \"cms-editor-field-validator-pattern\",\n name: \"cms-editor-field-validator-pattern-url\",\n pattern: {\n message: \"Please enter a valid URL.\",\n name: \"url\",\n label: \"URL\"\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["required.tsx"],"names":["plugin","type","name","validator","label","description","defaultMessage"],"mappings":"AAEA,IAAMA,MAAqC,GAAG;AAC1CC,EAAAA,IAAI,EAAE,4BADoC;AAE1CC,EAAAA,IAAI,EAAE,qCAFoC;AAG1CC,EAAAA,SAAS,EAAE;AACPD,IAAAA,IAAI,EAAE,UADC;AAEPE,IAAAA,KAAK,EAAE,UAFA;AAGPC,IAAAA,WAAW,EAAE,6DAHN;AAIPC,IAAAA,cAAc,EAAE;AAJT;AAH+B,CAA9C;AAUA,eAAeN,MAAf","sourcesContent":["import { CmsEditorFieldValidatorPlugin } from \"~/types\";\n\nconst plugin: CmsEditorFieldValidatorPlugin = {\n type: \"cms-editor-field-validator\",\n name: \"cms-editor-field-validator-required\",\n validator: {\n name: \"required\",\n label: \"Required\",\n description: \"You won't be able to submit the form if this field is empty\",\n defaultMessage: \"Value is required.\"\n }\n};\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["unique.tsx"],"names":["type","name","validator","label","description","defaultMessage"],"mappings":"AAEA,gBAAe,YAAqC;AAChD,SAAO;AACHA,IAAAA,IAAI,EAAE,4BADH;AAEHC,IAAAA,IAAI,EAAE,mCAFH;AAGHC,IAAAA,SAAS,EAAE;AACPD,MAAAA,IAAI,EAAE,QADC;AAEPE,MAAAA,KAAK,EAAE,QAFA;AAGPC,MAAAA,WAAW,EAAE,kEAHN;AAIPC,MAAAA,cAAc,EAAE;AAJT;AAHR,GAAP;AAUH,CAXD","sourcesContent":["import { CmsEditorFieldValidatorPlugin } from \"~/types\";\n\nexport default (): CmsEditorFieldValidatorPlugin => {\n return {\n type: \"cms-editor-field-validator\",\n name: \"cms-editor-field-validator-unique\",\n validator: {\n name: \"unique\",\n label: \"Unique\",\n description: \"You won't be able to submit the form if this field is not unique\",\n defaultMessage: \"Value must be unique.\"\n }\n };\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["PredefinedValuesDynamicFieldset.tsx"],"names":["React","styled","css","Grid","Cell","GridInner","i18n","DynamicFieldset","Typography","ButtonPrimary","ButtonSecondary","Input","Switch","t","ns","Fieldset","position","width","marginBottom","display","right","top","controlButtons","alignItems","justifyContent","marginRight","emptyStyles","textAlign","Header","onSelectedChange","params","bind","field","targetIndex","index","setToValue","value","form","setValue","map","defaultValue","multipleValues","selected","PredefinedValuesDynamicFieldset","getBind","renderValueInput","Bind","actions","header","row","empty","selectedBind","add","remove"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { css } from \"emotion\";\nimport { Grid, Cell, GridInner } from \"@webiny/ui/Grid\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { DynamicFieldset } from \"@webiny/ui/DynamicFieldset\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ButtonPrimary, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { Switch } from \"@webiny/ui/Switch\";\nimport { CmsEditorField } from \"~/types\";\nimport { BindComponent, BindComponentRenderProp } from \"@webiny/form/Bind\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields/dynamic-fieldset-predefined-values\");\n\nconst Fieldset = styled(\"div\")({\n position: \"relative\",\n width: \"100%\",\n marginBottom: 15,\n \".webiny-ui-button\": {\n position: \"absolute\",\n display: \"block\",\n right: 10,\n top: 13\n }\n});\n\nconst controlButtons = css({\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \">button\": {\n marginRight: 15\n }\n});\n\nconst emptyStyles = css({\n textAlign: \"center\"\n});\n\nconst Header = styled(\"div\")({\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 15\n});\n\ninterface PredefinedValue {\n selected?: boolean;\n}\n\ninterface OnSelectedParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n index: number;\n value: boolean;\n}\nconst onSelectedChange = (params: OnSelectedParams) => {\n const { bind, field, index: targetIndex, value: setToValue } = params;\n bind.form.setValue(\n \"predefinedValues.values\",\n bind.value.map((value: PredefinedValue, index: number) => {\n const defaultValue = field.multipleValues ? value.selected : false;\n return {\n ...value,\n selected: index === targetIndex ? setToValue : defaultValue\n };\n })\n );\n};\n\nexport interface Props {\n getBind: (value?: any) => BindComponent;\n renderValueInput?: (Bind: BindComponent) => React.ReactNode;\n field: CmsEditorField;\n}\nconst PredefinedValuesDynamicFieldset: React.FC<Props> = ({\n getBind,\n renderValueInput = null,\n field\n}) => {\n const Bind = getBind();\n\n return (\n <Grid>\n <Cell span={12}>\n <Bind>\n {(bind: BindComponentRenderProp) => {\n return (\n <DynamicFieldset {...bind}>\n {({ actions, header, row, empty }) => {\n return (\n <React.Fragment>\n {row(({ index }) => {\n const Bind = getBind(index);\n\n return (\n <React.Fragment>\n <GridInner>\n <Cell span={4}>\n <Fieldset>\n <Bind name={\"label\"}>\n <Input label={t`Label`} />\n </Bind>\n </Fieldset>\n </Cell>\n <Cell span={4}>\n <Fieldset>\n {renderValueInput ? (\n renderValueInput(Bind)\n ) : (\n <Bind name={\"value\"}>\n <Input\n label={t`Value`}\n />\n </Bind>\n )}\n </Fieldset>\n </Cell>\n <Cell span={2}>\n <Fieldset>\n <Bind name={\"selected\"}>\n {(\n selectedBind: BindComponentRenderProp\n ) => {\n return (\n <Switch\n {...selectedBind}\n label={\n \"Selected\"\n }\n description={\n \"Mark as selected value\"\n }\n onChange={(\n value: boolean\n ) => {\n onSelectedChange(\n {\n bind,\n field,\n index,\n value\n }\n );\n }}\n />\n );\n }}\n </Bind>\n </Fieldset>\n </Cell>\n\n <Cell\n span={2}\n className={controlButtons}\n >\n <ButtonPrimary\n small\n onClick={actions.add(index)}\n >\n +\n </ButtonPrimary>\n <ButtonSecondary\n small\n onClick={actions.remove(index)}\n >\n -\n </ButtonSecondary>\n </Cell>\n </GridInner>\n </React.Fragment>\n );\n })}\n {empty(() => {\n return (\n <React.Fragment>\n <Header>\n <Typography\n use={\"overline\"}\n >{t`Predefined values`}</Typography>\n </Header>\n\n <GridInner className={emptyStyles}>\n <Cell span={12}>\n <Typography use={\"subtitle1\"}>\n {t`There are no predefined values available.`}\n </Typography>\n </Cell>\n <Cell span={12}>\n <ButtonPrimary\n onClick={actions.add()}\n >{t`Add a predefined value`}</ButtonPrimary>\n </Cell>\n </GridInner>\n </React.Fragment>\n );\n })}\n {header(() => {\n return (\n <Header>\n <Typography\n use={\"overline\"}\n >{t`Predefined values`}</Typography>\n </Header>\n );\n })}\n </React.Fragment>\n );\n }}\n </DynamicFieldset>\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n};\n\nexport default PredefinedValuesDynamicFieldset;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["boolean.tsx"],"names":["React","ReactComponent","BooleanIcon","i18n","Grid","Cell","Select","t","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings","Bind","form"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAc,IAAIC,WAA3B;AAEA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,IAAMC,CAAC,GAAGJ,IAAI,CAACK,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,+BAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,SADH;AAEHG,IAAAA,KAAK,EAAEN,CAAF,4EAFF;AAGHO,IAAAA,WAAW,EAAEP,CAAF,iHAHR;AAIHQ,IAAAA,IAAI,eAAE,oBAAC,WAAD,OAJH;AAKHC,IAAAA,mBAAmB,EAAE,KALlB;AAMHC,IAAAA,qBAAqB,EAAE,KANpB;AAOHC,IAAAA,mBAAmB,EAAEX,CAAF,gGAPhB;AAQHY,IAAAA,WARG,yBAQW;AACV,aAAO;AACHT,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHU,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNV,UAAAA,IAAI,EAAE;AADA;AAHP,OAAP;AAOH,KAhBE;AAiBHW,IAAAA,cAjBG,gCAiBgC;AAAA,UAAVC,IAAU,QAAlBC,IAAkB,CAAVD,IAAU;AAC/B,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,MAAD;AACI,QAAA,KAAK,EAAEhB,CAAF,oFADT;AAEI,QAAA,WAAW,EAAE;AAFjB,sBAII;AAAQ,QAAA,KAAK,EAAE;AAAf,gBAJJ,eAKI;AAAQ,QAAA,KAAK,EAAE;AAAf,iBALJ,CADJ,CADJ,CADJ,CADJ;AAeH;AAjCE;AAH8B,CAAzC;AAwCA,eAAeE,MAAf","sourcesContent":["import React from \"react\";\nimport { ReactComponent as BooleanIcon } from \"./icons/toggle_on-black-24px.svg\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-boolean\",\n field: {\n type: \"boolean\",\n label: t`Boolean`,\n description: t`Store boolean (\"yes\" or \"no\" ) values.`,\n icon: <BooleanIcon />,\n allowMultipleValues: false,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a list of booleans`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind } }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.defaultValue\"}>\n <Select\n label={t`Default value`}\n description={\"Default value for the field\"}\n >\n <option value={\"true\"}>True</option>\n <option value={\"\"}>False</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["dateTime.tsx"],"names":["React","Grid","Cell","Select","Input","i18n","ReactComponent","DateTimeIcon","t","ns","plugin","type","name","field","label","description","icon","validators","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","settings","validation","renderer","renderSettings","form","Bind","data","contentModel","lockedFields","fieldId","lockedField","find","Boolean","formatType"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { get } from \"lodash\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsEditorField, CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as DateTimeIcon } from \"./icons/schedule-black-24px.svg\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-dateTime\",\n field: {\n type: \"datetime\",\n label: t`Date/Time`,\n description: t`Store date and time.`,\n icon: <DateTimeIcon />,\n validators: [\"required\", \"dateGte\", \"dateLte\"],\n allowMultipleValues: true,\n allowPredefinedValues: false, // TODO: implement \"renderPredefinedValues\" and set to true.\n multipleValuesLabel: t`Use as a list of dates and times`,\n createField() {\n return {\n type: this.type,\n settings: {\n type: \"date\"\n },\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind, data }, contentModel }) {\n const lockedFields = contentModel.lockedFields || [];\n const fieldId = get(data, \"fieldId\", null);\n const lockedField = lockedFields.find(\n lockedField => lockedField.fieldId === fieldId\n ) as CmsEditorField<{\n formatType: string;\n }>;\n\n return (\n <>\n <Grid>\n <Cell span={12}>\n <Bind name={\"placeholderText\"}>\n <Input\n label={t`Placeholder text`}\n description={t`Placeholder text (optional)`}\n />\n </Bind>\n </Cell>\n </Grid>\n <Grid>\n <Cell span={6}>\n <Bind name={\"settings.type\"}>\n <Select\n label={t`Format`}\n description={t`Cannot be changed later`}\n disabled={lockedField && Boolean(lockedField.formatType)}\n >\n <option value={t`date`}>{t`Date only`}</option>\n <option value={t`time`}>{t`Time only`}</option>\n <option\n value={t`dateTimeWithTimezone`}\n >{t`Date and time with timezone`}</option>\n <option\n value={t`dateTimeWithoutTimezone`}\n >{t`Date and time without timezone`}</option>\n </Select>\n </Bind>\n </Cell>\n <Cell span={6}>\n <Bind name={\"settings.defaultSetValue\"}>\n <Select\n label={t`Default Admin UI value`}\n description={\"Affects the Admin UI only\"}\n >\n <option value={t`null`}>{t`Leave empty (null value)`}</option>\n <option value={t`current`}>{t`Current date/time`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n </>\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -6,7 +6,7 @@ import React from "react";
6
6
  import { ReactComponent as FileIcon } from "./icons/round_insert_drive_file-24px.svg";
7
7
  import { i18n } from "@webiny/app/i18n";
8
8
  import { Cell, Grid } from "@webiny/ui/Grid";
9
- import { Radio } from "@webiny/ui/Radio";
9
+ import { Switch } from "@webiny/ui/Switch";
10
10
  var t = i18n.ns("app-headless-cms/admin/fields");
11
11
  var plugin = {
12
12
  type: "cms-editor-field-type",
@@ -36,7 +36,7 @@ var plugin = {
36
36
  span: 12
37
37
  }, /*#__PURE__*/React.createElement(Bind, {
38
38
  name: "settings.imagesOnly"
39
- }, /*#__PURE__*/React.createElement(Radio, {
39
+ }, /*#__PURE__*/React.createElement(Switch, {
40
40
  label: t(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Images only"]))),
41
41
  description: t(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Allow only images to be selected"])))
42
42
  }))));
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["file.tsx"],"names":["React","ReactComponent","FileIcon","i18n","Cell","Grid","Switch","t","ns","plugin","type","name","field","label","description","icon","validators","listValidators","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings","Bind","form"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAc,IAAIC,QAA3B;AAEA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,MAAT,QAAuB,mBAAvB;AAEA,IAAMC,CAAC,GAAGJ,IAAI,CAACK,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,4BAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,MADH;AAEHG,IAAAA,KAAK,EAAEN,CAAF,0EAFF;AAGHO,IAAAA,WAAW,EAAEP,CAAF,sGAHR;AAIHQ,IAAAA,IAAI,eAAE,oBAAC,QAAD,OAJH;AAKHC,IAAAA,UAAU,EAAE,CAAC,UAAD,CALT;AAMHC,IAAAA,cAAc,EAAE,CAAC,WAAD,EAAc,WAAd,CANb;AAOHC,IAAAA,mBAAmB,EAAE,IAPlB;AAQHC,IAAAA,qBAAqB,EAAE,KARpB;AASHC,IAAAA,mBAAmB,EAAEb,CAAF,iHAThB;AAUHc,IAAAA,WAVG,yBAUW;AACV,aAAO;AACHX,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHY,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNZ,UAAAA,IAAI,EAAE;AADA;AAHP,OAAP;AAOH,KAlBE;AAmBHa,IAAAA,cAAc,EAAE,8BAAwB;AAAA,UAAbC,IAAa,QAArBC,IAAqB,CAAbD,IAAa;AACpC,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,MAAD;AACI,QAAA,KAAK,EAAElB,CAAF,kFADT;AAEI,QAAA,WAAW,EAAEA,CAAF;AAFf,QADJ,CADJ,CADJ,CADJ;AAYH;AAhCE;AAH8B,CAAzC;AAuCA,eAAeE,MAAf","sourcesContent":["import React from \"react\";\nimport { ReactComponent as FileIcon } from \"./icons/round_insert_drive_file-24px.svg\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Switch } from \"@webiny/ui/Switch\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-file\",\n field: {\n type: \"file\",\n label: t`Files`,\n description: t`Images, videos and other files.`,\n icon: <FileIcon />,\n validators: [\"required\"],\n listValidators: [\"minLength\", \"maxLength\"],\n allowMultipleValues: true,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a list of files or an image gallery`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings: ({ form: { Bind } }) => {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"settings.imagesOnly\"}>\n <Switch\n label={t`Images only`}\n description={t`Allow only images to be selected`}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["longText.tsx"],"names":["React","ReactComponent","LongTextIcon","Grid","Cell","Input","i18n","t","ns","plugin","type","name","field","validators","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings","Bind","form"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAc,IAAIC,YAA3B;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,KAAT,QAAsB,kBAAtB;AAEA,SAASC,IAAT,QAAqB,kBAArB;AAEA,IAAMC,CAAC,GAAGD,IAAI,CAACE,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,iCAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,WADH;AAEHG,IAAAA,UAAU,EAAE,CAAC,UAAD,EAAa,WAAb,EAA0B,WAA1B,EAAuC,SAAvC,CAFT;AAGHC,IAAAA,KAAK,EAAEP,CAAF,8EAHF;AAIHQ,IAAAA,WAAW,EAAER,CAAF,+GAJR;AAKHS,IAAAA,IAAI,eAAE,oBAAC,YAAD,OALH;AAMHC,IAAAA,mBAAmB,EAAE,IANlB;AAOHC,IAAAA,qBAAqB,EAAE,KAPpB;AAO2B;AAC9BC,IAAAA,mBAAmB,EAAEZ,CAAF,kGARhB;AASHa,IAAAA,WATG,yBASW;AACV,aAAO;AACHV,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHW,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNX,UAAAA,IAAI,EAAE;AADA;AAHP,OAAP;AAOH,KAjBE;AAkBHY,IAAAA,cAlBG,gCAkBgC;AAAA,UAAVC,IAAU,QAAlBC,IAAkB,CAAVD,IAAU;AAC/B,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,KAAD;AACI,QAAA,KAAK,EAAEjB,CAAF,uFADT;AAEI,QAAA,WAAW,EAAEA,CAAF;AAFf,QADJ,CADJ,CADJ,CADJ;AAYH;AA/BE;AAH8B,CAAzC;AAsCA,eAAeE,MAAf","sourcesContent":["import React from \"react\";\nimport { ReactComponent as LongTextIcon } from \"./icons/round-notes.svg\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-long-text\",\n field: {\n type: \"long-text\",\n validators: [\"required\", \"minLength\", \"maxLength\", \"pattern\"],\n label: t`Long text`,\n description: t`Long comments, notes, multi line values.`,\n icon: <LongTextIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false, // TODO: implement \"renderPredefinedValues\" and set to true.\n multipleValuesLabel: t`Use as a list of long texts`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind } }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"placeholderText\"}>\n <Input\n label={t`Placeholder text`}\n description={t`Placeholder text (optional)`}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["number.tsx"],"names":["React","Grid","Cell","i18n","Input","PredefinedValuesDynamicFieldset","ReactComponent","FloatIcon","t","ns","plugin","type","name","field","label","description","icon","validators","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings","Bind","form","renderPredefinedValues","props","bind","value","onChange","parseFloat"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AAEA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,OAAOC,+BAAP;AACA,SAASC,cAAc,IAAIC,SAA3B;AAEA,IAAMC,CAAC,GAAGL,IAAI,CAACM,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,8BAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,QADH;AAEHG,IAAAA,KAAK,EAAEN,CAAF,2EAFF;AAGHO,IAAAA,WAAW,EAAEP,CAAF,qFAHR;AAIHQ,IAAAA,IAAI,eAAE,oBAAC,SAAD,OAJH;AAKHC,IAAAA,UAAU,EAAE,CAAC,UAAD,EAAa,KAAb,EAAoB,KAApB,CALT;AAMHC,IAAAA,mBAAmB,EAAE,IANlB;AAOHC,IAAAA,qBAAqB,EAAE,IAPpB;AAQHC,IAAAA,mBAAmB,EAAEZ,CAAF,+FARhB;AASHa,IAAAA,WATG,yBASW;AACV,aAAO;AACHV,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHW,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNX,UAAAA,IAAI,EAAE;AADA;AAHP,OAAP;AAOH,KAjBE;AAkBHY,IAAAA,cAlBG,gCAkBgC;AAAA,UAAVC,IAAU,QAAlBC,IAAkB,CAAVD,IAAU;AAC/B,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,KAAD;AACI,QAAA,KAAK,EAAEjB,CAAF,uFADT;AAEI,QAAA,WAAW,EAAEA,CAAF;AAFf,QADJ,CADJ,CADJ,CADJ;AAYH,KA/BE;AAgCHmB,IAAAA,sBAhCG,kCAgCoBC,KAhCpB,EAgC2B;AAC1B,0BACI,oBAAC,+BAAD,oBACQA,KADR;AAEI,QAAA,gBAAgB,EAAE,0BAAAH,IAAI;AAAA,8BAClB,oBAAC,IAAD;AAAM,YAAA,IAAI,EAAE;AAAZ,aACK,UAAAI,IAAI;AAAA,gCACD,oBAAC,KAAD,oBACQA,IADR;AAEI,cAAA,IAAI,EAAC,QAFT;AAGI,cAAA,KAAK,EAAErB,CAAF,4EAHT;AAII,cAAA,QAAQ,EAAE,kBAAAsB,KAAK;AAAA,uBAAID,IAAI,CAACE,QAAL,CAAcC,UAAU,CAACF,KAAD,CAAxB,CAAJ;AAAA;AAJnB,eADC;AAAA,WADT,CADkB;AAAA;AAF1B,SADJ;AAiBH;AAlDE;AAH8B,CAAzC;AAyDA,eAAepB,MAAf","sourcesContent":["import React from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Input } from \"@webiny/ui/Input\";\nimport PredefinedValuesDynamicFieldset from \"./PredefinedValuesDynamicFieldset\";\nimport { ReactComponent as FloatIcon } from \"./icons/round-looks_3-24px.svg\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-number\",\n field: {\n type: \"number\",\n label: t`Number`,\n description: t`Store numbers.`,\n icon: <FloatIcon />,\n validators: [\"required\", \"gte\", \"lte\"],\n allowMultipleValues: true,\n allowPredefinedValues: true,\n multipleValuesLabel: t`Use as a list of numbers`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind } }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"placeholderText\"}>\n <Input\n label={t`Placeholder text`}\n description={t`Placeholder text (optional)`}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n },\n renderPredefinedValues(props) {\n return (\n <PredefinedValuesDynamicFieldset\n {...props}\n renderValueInput={Bind => (\n <Bind name={\"value\"}>\n {bind => (\n <Input\n {...bind}\n type=\"number\"\n label={t`Value`}\n onChange={value => bind.onChange(parseFloat(value))}\n />\n )}\n </Bind>\n )}\n />\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -25,8 +25,8 @@ export var ObjectFields = function ObjectFields(_ref) {
25
25
  }, [field]);
26
26
  return /*#__PURE__*/React.createElement(FieldEditor, {
27
27
  parent: field,
28
- fields: field.settings.fields,
29
- layout: field.settings.layout,
28
+ fields: (field.settings ? field.settings.fields : null) || [],
29
+ layout: (field.settings ? field.settings.layout : null) || [],
30
30
  onChange: onChange
31
31
  });
32
32
  };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ObjectFields.tsx"],"names":["React","useCallback","set","FieldEditor","useFieldEditor","ObjectFields","field","getField","updateField","onChange","fields","layout","currentField","id","updatedField","settings"],"mappings":";AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,SAASC,GAAT,QAAoB,oBAApB;AACA,SAASC,WAAT,EAAsBC,cAAtB;AAMA,OAAO,IAAMC,YAAyC,GAAG,SAA5CA,YAA4C,OAAe;AAAA,MAAZC,KAAY,QAAZA,KAAY;;AACpE,wBAAkCF,cAAc,EAAhD;AAAA,MAAQG,QAAR,mBAAQA,QAAR;AAAA,MAAkBC,WAAlB,mBAAkBA,WAAlB;;AAEA,MAAMC,QAAQ,GAAGR,WAAW,CACxB,iBAA6D;AAAA,QAA1DS,MAA0D,SAA1DA,MAA0D;AAAA,QAAlDC,MAAkD,SAAlDA,MAAkD;AACzD,QAAMC,YAAY,GAAGL,QAAQ,CAAC;AAAEM,MAAAA,EAAE,EAAEP,KAAK,CAACO;AAAZ,KAAD,CAA7B;AACA,QAAMC,YAAY,GAAGZ,GAAG,CACpBU,YADoB,cAGpB,UAACG,QAAD,EAAuD;AACnD,6CAAYA,QAAZ;AAAsBL,QAAAA,MAAM,EAANA,MAAtB;AAA8BC,QAAAA,MAAM,EAANA;AAA9B;AACH,KALmB,CAAxB;AAOAH,IAAAA,WAAW,CAACM,YAAD,CAAX;AACH,GAXuB,EAYxB,CAACR,KAAD,CAZwB,CAA5B;AAeA,sBACI,oBAAC,WAAD;AACI,IAAA,MAAM,EAAEA,KADZ;AAEI,IAAA,MAAM,EAAE,CAACA,KAAK,CAACS,QAAN,GAAiBT,KAAK,CAACS,QAAN,CAAeL,MAAhC,GAAyC,IAA1C,KAAmD,EAF/D;AAGI,IAAA,MAAM,EAAE,CAACJ,KAAK,CAACS,QAAN,GAAiBT,KAAK,CAACS,QAAN,CAAeJ,MAAhC,GAAyC,IAA1C,KAAmD,EAH/D;AAII,IAAA,QAAQ,EAAEF;AAJd,IADJ;AAQH,CA1BM","sourcesContent":["import React, { useCallback } from \"react\";\nimport { set } from \"dot-prop-immutable\";\nimport { FieldEditor, useFieldEditor } from \"~/admin/components/FieldEditor\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\n\ninterface ObjectFieldsProps {\n field: CmsEditorField;\n}\nexport const ObjectFields: React.FC<ObjectFieldsProps> = ({ field }) => {\n const { getField, updateField } = useFieldEditor();\n\n const onChange = useCallback(\n ({ fields, layout }: Pick<CmsModel, \"fields\" | \"layout\">) => {\n const currentField = getField({ id: field.id });\n const updatedField = set(\n currentField,\n `settings`,\n (settings: CmsModel[\"settings\"]): Partial<CmsModel> => {\n return { ...settings, fields, layout };\n }\n );\n updateField(updatedField);\n },\n [field]\n );\n\n return (\n <FieldEditor\n parent={field}\n fields={(field.settings ? field.settings.fields : null) || []}\n layout={(field.settings ? field.settings.layout : null) || []}\n onChange={onChange}\n />\n );\n};\n"]}
@@ -38,7 +38,7 @@ var plugin = {
38
38
  graphql: {
39
39
  queryField: function queryField(_ref) {
40
40
  var field = _ref.field;
41
- return "{ ".concat(createFieldsList(field.settings.fields), " }");
41
+ return "{ ".concat(createFieldsList((field.settings ? field.settings.fields : []) || []), " }");
42
42
  }
43
43
  }
44
44
  }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["object.tsx"],"names":["React","ReactComponent","ObjectIcon","i18n","ObjectFields","createFieldsList","t","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","settings","fields","layout","renderer","render","props","graphql","queryField"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAc,IAAIC,UAA3B;AAEA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,YAAT;AACA,SAASC,gBAAT;AAEA,IAAMC,CAAC,GAAGH,IAAI,CAACI,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,8BAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,QADH;AAEHG,IAAAA,KAAK,EAAEN,CAAF,2EAFF;AAGHO,IAAAA,WAAW,EAAEP,CAAF,oGAHR;AAIHQ,IAAAA,IAAI,eAAE,oBAAC,UAAD,OAJH;AAKHC,IAAAA,mBAAmB,EAAE,IALlB;AAMHC,IAAAA,qBAAqB,EAAE,KANpB;AAOHC,IAAAA,mBAAmB,EAAEX,CAAF,iGAPhB;AAQHY,IAAAA,WARG,yBAQW;AACV,aAAO;AACHT,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHU,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNC,UAAAA,MAAM,EAAE,EADF;AAENC,UAAAA,MAAM,EAAE;AAFF,SAHP;AAOHC,QAAAA,QAAQ,EAAE;AACNb,UAAAA,IAAI,EAAE;AADA;AAPP,OAAP;AAWH,KApBE;AAqBHc,IAAAA,MArBG,kBAqBIC,KArBJ,EAqBW;AACV,0BAAO,oBAAC,YAAD,EAAkBA,KAAlB,CAAP;AACH,KAvBE;AAwBHC,IAAAA,OAAO,EAAE;AACLC,MAAAA,UADK,4BACiB;AAAA,YAAThB,KAAS,QAATA,KAAS;AAClB,2BAAYN,gBAAgB,CACxB,CAACM,KAAK,CAACS,QAAN,GAAiBT,KAAK,CAACS,QAAN,CAAeC,MAAhC,GAAyC,EAA1C,KAAiD,EADzB,CAA5B;AAGH;AALI;AAxBN;AAH8B,CAAzC;AAqCA,eAAeb,MAAf","sourcesContent":["import React from \"react\";\nimport { ReactComponent as ObjectIcon } from \"./icons/ballot_black_24dp.svg\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ObjectFields } from \"./object/ObjectFields\";\nimport { createFieldsList } from \"~/admin/graphql/createFieldsList\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-object\",\n field: {\n type: \"object\",\n label: t`Object`,\n description: t`Store nested data structures.`,\n icon: <ObjectIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a repeatable object`,\n createField() {\n return {\n type: this.type,\n validation: [],\n settings: {\n fields: [],\n layout: []\n },\n renderer: {\n name: \"\"\n }\n };\n },\n render(props) {\n return <ObjectFields {...props} />;\n },\n graphql: {\n queryField({ field }) {\n return `{ ${createFieldsList(\n (field.settings ? field.settings.fields : []) || []\n )} }`;\n }\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -46,10 +46,10 @@ var plugin = {
46
46
  Bind = _ref$form.Bind,
47
47
  formData = _ref$form.data,
48
48
  contentModel = _ref.contentModel;
49
- var lockedFields = get(contentModel, "lockedFields", []);
50
- var fieldId = get(formData, "fieldId", null);
51
- var lockedField = lockedFields.find(function (lockedField) {
52
- return lockedField.fieldId === fieldId;
49
+ var lockedFields = contentModel.lockedFields || [];
50
+ var fieldId = (formData || {}).fieldId || null;
51
+ var isFieldLocked = lockedFields.some(function (lockedField) {
52
+ return fieldId && lockedField.fieldId === fieldId;
53
53
  });
54
54
 
55
55
  var _useQuery = useQuery(LIST_CONTENT_MODELS),
@@ -131,7 +131,7 @@ var plugin = {
131
131
  label: t(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["Content Models"]))),
132
132
  description: t(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Cannot be changed later"]))),
133
133
  options: options,
134
- disabled: lockedField && lockedField.modelId
134
+ disabled: isFieldLocked
135
135
  }));
136
136
  })));
137
137
  },
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["ref.tsx"],"names":["React","useCallback","useMemo","get","useQuery","LIST_CONTENT_MODELS","validation","ValidationError","Cell","Grid","MultiAutoComplete","CircularProgress","useSnackbar","ReactComponent","RefIcon","i18n","t","ns","plugin","type","name","field","validators","listValidators","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","settings","models","renderer","renderSettings","form","Bind","formData","data","contentModel","lockedFields","fieldId","isFieldLocked","some","lockedField","loading","error","showSnackbar","message","options","map","model","id","modelId","atLeastOneItem","value","validate","bind","formattedValueForAutoComplete","filter","option","values","onChange","graphql","queryField"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport get from \"lodash/get\";\nimport { useQuery } from \"../../hooks\";\nimport { LIST_CONTENT_MODELS, ListCmsModelsQueryResponse } from \"../../viewsGraphql\";\nimport { validation, ValidationError } from \"@webiny/validation\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { MultiAutoComplete } from \"@webiny/ui/AutoComplete\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { CmsEditorFieldTypePlugin, CmsModel } from \"~/types\";\nimport { ReactComponent as RefIcon } from \"./icons/round-link-24px.svg\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { BindComponentRenderProp } from \"@webiny/form/Bind\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-ref\",\n field: {\n type: \"ref\",\n validators: [\"required\"],\n listValidators: [\"minLength\", \"maxLength\"],\n label: t`Reference`,\n description: t`Reference existing content entries. For example, a book can reference one or more authors.`,\n icon: <RefIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a list of references`,\n createField() {\n return {\n type: this.type,\n settings: {\n models: []\n },\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind, data: formData }, contentModel }) {\n const lockedFields = contentModel.lockedFields || [];\n const fieldId = (formData || {}).fieldId || null;\n const isFieldLocked = lockedFields.some(\n lockedField => fieldId && lockedField.fieldId === fieldId\n );\n\n const { data, loading, error } =\n useQuery<ListCmsModelsQueryResponse>(LIST_CONTENT_MODELS);\n const { showSnackbar } = useSnackbar();\n\n if (error) {\n showSnackbar(error.message);\n return null;\n }\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => {\n const models = get(data, \"listContentModels.data\", []) as CmsModel[];\n return models.map(model => {\n return { id: model.modelId, name: model.name };\n });\n }, [data]);\n\n const atLeastOneItem = useCallback(async value => {\n try {\n await validation.validate(value, \"required,minLength:1\");\n } catch (err) {\n throw new ValidationError(`Please select at least 1 item`);\n }\n }, []);\n\n return (\n <Grid>\n {loading && <CircularProgress />}\n <Cell span={12}>\n <Bind name={\"settings.models\"} validators={atLeastOneItem}>\n {(bind: BindComponentRenderProp<CmsModel[]>) => {\n // Format value prop for MultiAutoComplete component.\n const formattedValueForAutoComplete = options.filter(option =>\n bind.value.some(({ modelId }) => option.id === modelId)\n );\n\n return (\n <MultiAutoComplete\n {...bind}\n value={formattedValueForAutoComplete}\n onChange={(values: CmsModel[]) => {\n bind.onChange(\n values.map(value => ({ modelId: value.id }))\n );\n }}\n label={t`Content Models`}\n description={t`Cannot be changed later`}\n options={options}\n disabled={isFieldLocked}\n />\n );\n }}\n </Bind>\n </Cell>\n </Grid>\n );\n },\n graphql: {\n queryField: /* GraphQL */ `\n {\n modelId\n id\n }\n `\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["richText.tsx"],"names":["React","i18n","Grid","Cell","ReactComponent","NotesIcon","Input","t","ns","plugin","type","name","field","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings","Bind","form"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AACA,SAASC,cAAc,IAAIC,SAA3B;AACA,SAASC,KAAT,QAAsB,kBAAtB;AAEA,IAAMC,CAAC,GAAGN,IAAI,CAACO,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,gCAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,WADH;AAEHG,IAAAA,KAAK,EAAEN,CAAF,8EAFF;AAGHO,IAAAA,WAAW,EAAEP,CAAF,iHAHR;AAIHQ,IAAAA,IAAI,eAAE,oBAAC,SAAD,OAJH;AAKHC,IAAAA,mBAAmB,EAAE,IALlB;AAMHC,IAAAA,qBAAqB,EAAE,KANpB;AAOHC,IAAAA,mBAAmB,EAAEX,CAAF,kGAPhB;AAQHY,IAAAA,WARG,yBAQW;AACV,aAAO;AACHT,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHU,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNV,UAAAA,IAAI,EAAE;AADA;AAHP,OAAP;AAOH,KAhBE;AAiBHW,IAAAA,cAjBG,gCAiBgC;AAAA,UAAVC,IAAU,QAAlBC,IAAkB,CAAVD,IAAU;AAC/B,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,KAAD;AACI,QAAA,KAAK,EAAEhB,CAAF,uFADT;AAEI,QAAA,WAAW,EAAEA,CAAF;AAFf,QADJ,CADJ,CADJ,CADJ;AAYH;AA9BE;AAH8B,CAAzC;AAqCA,eAAeE,MAAf","sourcesContent":["import React from \"react\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { ReactComponent as NotesIcon } from \"./icons/round-text_fields-24px.svg\";\nimport { Input } from \"@webiny/ui/Input\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-richText\",\n field: {\n type: \"rich-text\",\n label: t`Rich text`,\n description: t`Text formatting with references and media.`,\n icon: <NotesIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: false,\n multipleValuesLabel: t`Use as a list of rich texts`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind } }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"placeholderText\"}>\n <Input\n label={t`Placeholder text`}\n description={t`Placeholder text (optional)`}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["text.tsx"],"names":["React","ReactComponent","TextIcon","Grid","Cell","i18n","Input","PredefinedValuesDynamicFieldset","t","ns","plugin","type","name","field","validators","label","description","icon","allowMultipleValues","allowPredefinedValues","multipleValuesLabel","createField","validation","renderer","renderSettings","Bind","form","renderPredefinedValues","props"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,cAAc,IAAIC,QAA3B;AACA,SAASC,IAAT,EAAeC,IAAf,QAA2B,iBAA3B;AAEA,SAASC,IAAT,QAAqB,kBAArB;AACA,SAASC,KAAT,QAAsB,kBAAtB;AACA,OAAOC,+BAAP;AACA,IAAMC,CAAC,GAAGH,IAAI,CAACI,EAAL,CAAQ,+BAAR,CAAV;AAEA,IAAMC,MAAgC,GAAG;AACrCC,EAAAA,IAAI,EAAE,uBAD+B;AAErCC,EAAAA,IAAI,EAAE,4BAF+B;AAGrCC,EAAAA,KAAK,EAAE;AACHF,IAAAA,IAAI,EAAE,MADH;AAEHG,IAAAA,UAAU,EAAE,CAAC,UAAD,EAAa,WAAb,EAA0B,WAA1B,EAAuC,SAAvC,EAAkD,QAAlD,CAFT;AAGHC,IAAAA,KAAK,EAAEP,CAAF,yEAHF;AAIHQ,IAAAA,WAAW,EAAER,CAAF,yGAJR;AAKHS,IAAAA,IAAI,eAAE,oBAAC,QAAD,OALH;AAMHC,IAAAA,mBAAmB,EAAE,IANlB;AAOHC,IAAAA,qBAAqB,EAAE,IAPpB;AAQHC,IAAAA,mBAAmB,EAAEZ,CAAF,6FARhB;AASHa,IAAAA,WATG,yBASW;AACV,aAAO;AACHV,QAAAA,IAAI,EAAE,KAAKA,IADR;AAEHW,QAAAA,UAAU,EAAE,EAFT;AAGHC,QAAAA,QAAQ,EAAE;AACNX,UAAAA,IAAI,EAAE;AADA;AAHP,OAAP;AAOH,KAjBE;AAkBHY,IAAAA,cAlBG,gCAkBgC;AAAA,UAAVC,IAAU,QAAlBC,IAAkB,CAAVD,IAAU;AAC/B,0BACI,oBAAC,IAAD,qBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,IAAD;AAAM,QAAA,IAAI,EAAE;AAAZ,sBACI,oBAAC,KAAD;AACI,QAAA,KAAK,EAAEjB,CAAF,uFADT;AAEI,QAAA,WAAW,EAAEA,CAAF;AAFf,QADJ,CADJ,CADJ,CADJ;AAYH,KA/BE;AAgCHmB,IAAAA,sBAhCG,kCAgCoBC,KAhCpB,EAgC2B;AAC1B,0BACI,oBAAC,+BAAD,EAAqCA,KAArC,eACI,oBAAC,KAAD;AAAO,QAAA,KAAK,EAAEpB,CAAF;AAAZ,QADJ,CADJ;AAKH;AAtCE;AAH8B,CAAzC;AA6CA,eAAeE,MAAf","sourcesContent":["import React from \"react\";\nimport { ReactComponent as TextIcon } from \"./icons/round-text_fields-24px.svg\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { CmsEditorFieldTypePlugin } from \"~/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Input } from \"@webiny/ui/Input\";\nimport PredefinedValuesDynamicFieldset from \"./PredefinedValuesDynamicFieldset\";\nconst t = i18n.ns(\"app-headless-cms/admin/fields\");\n\nconst plugin: CmsEditorFieldTypePlugin = {\n type: \"cms-editor-field-type\",\n name: \"cms-editor-field-type-text\",\n field: {\n type: \"text\",\n validators: [\"required\", \"minLength\", \"maxLength\", \"pattern\", \"unique\"],\n label: t`Text`,\n description: t`Titles, names, single line values.`,\n icon: <TextIcon />,\n allowMultipleValues: true,\n allowPredefinedValues: true,\n multipleValuesLabel: t`Use as a list of texts`,\n createField() {\n return {\n type: this.type,\n validation: [],\n renderer: {\n name: \"\"\n }\n };\n },\n renderSettings({ form: { Bind } }) {\n return (\n <Grid>\n <Cell span={12}>\n <Bind name={\"placeholderText\"}>\n <Input\n label={t`Placeholder text`}\n description={t`Placeholder text (optional)`}\n />\n </Bind>\n </Cell>\n </Grid>\n );\n },\n renderPredefinedValues(props) {\n return (\n <PredefinedValuesDynamicFieldset {...props}>\n <Input label={t`Value`} />\n </PredefinedValuesDynamicFieldset>\n );\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getObjectId.ts"],"names":["plugin","type","getObjectId","obj","__typename","modelId","undefined"],"mappings":"AAEA,IAAMA,MAA8B,GAAG;AACnCC,EAAAA,IAAI,EAAE,qBAD6B;AAEnCC,EAAAA,WAFmC,uBAEvBC,GAFuB,EAEE;AACjC,YAAQA,GAAG,CAACC,UAAZ;AACI,WAAK,iBAAL;AACI,eAAOD,GAAG,CAACE,OAAX;;AACJ;AACI,eAAOC,SAAP;AAJR;AAMH;AATkC,CAAvC;AAYA,eAAeN,MAAf","sourcesContent":["import { CacheGetObjectIdPlugin } from \"@webiny/app/types\";\n\nconst plugin: CacheGetObjectIdPlugin = {\n type: \"cache-get-object-id\",\n getObjectId(obj): string | undefined {\n switch (obj.__typename) {\n case \"CmsContentModel\":\n return obj.modelId;\n default:\n return undefined;\n }\n }\n};\n\nexport default plugin;\n"]}
@@ -19,15 +19,22 @@ var plugin = {
19
19
  name: "cms-icons-fontawesome",
20
20
  type: "cms-icons",
21
21
  init: function init() {
22
- library.add(fab, fas, far); // @ts-ignore
23
-
22
+ // @ts-ignore
23
+ library.add(fab, fas, far);
24
24
  var definitions = library.definitions;
25
+ /**
26
+ * Ignoring TS errors. We know what we coded is good, but cannot get it to work with typescript.
27
+ */
28
+ // @ts-ignore
29
+
25
30
  Object.keys(definitions).forEach(function (pack) {
26
- var defs = definitions[pack];
31
+ var defs = definitions[pack]; // @ts-ignore
32
+
27
33
  Object.keys(defs).forEach(function (icon) {
28
34
  icons.push({
29
35
  id: [pack, icon],
30
36
  name: icon,
37
+ // @ts-ignore
31
38
  svg: createSvg(defs[icon])
32
39
  });
33
40
  });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["icons.tsx"],"names":["React","library","fab","fas","far","createSvg","icon","icons","plugin","name","type","init","add","definitions","Object","keys","forEach","pack","defs","push","id","svg","getIcons"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAmBC,OAAnB,QAAkC,mCAAlC;AAEA,SAASC,GAAT,QAAoB,oCAApB;AACA,SAASC,GAAT,QAAoB,mCAApB;AACA,SAASC,GAAT,QAAoB,qCAApB;;AAGA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,IAAD,EAAwC;AACtD,sBACI;AAAK,IAAA,KAAK,EAAE,EAAZ;AAAgB,IAAA,OAAO,gBAASA,IAAI,CAAC,CAAD,CAAb,cAAoBA,IAAI,CAAC,CAAD,CAAxB;AAAvB,kBACI;AAAM,IAAA,CAAC,EAAEA,IAAI,CAAC,CAAD,CAAb;AAAkB,IAAA,IAAI,EAAC;AAAvB,IADJ,CADJ;AAKH,CAND;;AAQA,IAAMC,KAAgB,GAAG,EAAzB;AAEA,IAAMC,MAAsB,GAAG;AAC3BC,EAAAA,IAAI,EAAE,uBADqB;AAE3BC,EAAAA,IAAI,EAAE,WAFqB;AAG3BC,EAAAA,IAH2B,kBAGpB;AACH;AACAV,IAAAA,OAAO,CAACW,GAAR,CAAYV,GAAZ,EAAiBC,GAAjB,EAAsBC,GAAtB;AACA,QAAMS,WAAW,GAAIZ,OAAD,CAAiBY,WAArC;AACA;AACR;AACA;AACQ;;AACAC,IAAAA,MAAM,CAACC,IAAP,CAAYF,WAAZ,EAAyBG,OAAzB,CAAiC,UAACC,IAAD,EAAsB;AACnD,UAAMC,IAAI,GAAGL,WAAW,CAACI,IAAD,CAAxB,CADmD,CAEnD;;AACAH,MAAAA,MAAM,CAACC,IAAP,CAAYG,IAAZ,EAAkBF,OAAlB,CAA0B,UAACV,IAAD,EAAoB;AAC1CC,QAAAA,KAAK,CAACY,IAAN,CAAW;AACPC,UAAAA,EAAE,EAAE,CAACH,IAAD,EAAOX,IAAP,CADG;AAEPG,UAAAA,IAAI,EAAEH,IAFC;AAGP;AACAe,UAAAA,GAAG,EAAEhB,SAAS,CAACa,IAAI,CAACZ,IAAD,CAAL;AAJP,SAAX;AAMH,OAPD;AAQH,KAXD;AAYH,GAvB0B;AAwB3BgB,EAAAA,QAxB2B,sBAwBhB;AACP,WAAOf,KAAP;AACH;AA1B0B,CAA/B;AA6BA,eAAeC,MAAf","sourcesContent":["import React from \"react\";\nimport { IconName, library } from \"@fortawesome/fontawesome-svg-core\";\nimport { IconPrefix } from \"@fortawesome/fontawesome-common-types\";\nimport { fab } from \"@fortawesome/free-brands-svg-icons\";\nimport { fas } from \"@fortawesome/free-solid-svg-icons\";\nimport { far } from \"@fortawesome/free-regular-svg-icons\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\n\nconst createSvg = (icon: string[]): React.ReactElement => {\n return (\n <svg width={24} viewBox={`0 0 ${icon[0]} ${icon[1]}`}>\n <path d={icon[4]} fill=\"currentColor\" />\n </svg>\n );\n};\n\nconst icons: CmsIcon[] = [];\n\nconst plugin: CmsIconsPlugin = {\n name: \"cms-icons-fontawesome\",\n type: \"cms-icons\",\n init() {\n // @ts-ignore\n library.add(fab, fas, far);\n const definitions = (library as any).definitions as unknown as Record<IconPrefix, IconName>;\n /**\n * Ignoring TS errors. We know what we coded is good, but cannot get it to work with typescript.\n */\n // @ts-ignore\n Object.keys(definitions).forEach((pack: IconPrefix) => {\n const defs = definitions[pack];\n // @ts-ignore\n Object.keys(defs).forEach((icon: IconName) => {\n icons.push({\n id: [pack, icon],\n name: icon,\n // @ts-ignore\n svg: createSvg(defs[icon])\n });\n });\n });\n },\n getIcons() {\n return icons;\n }\n};\n\nexport default plugin;\n"]}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare const _default: () => (import("@webiny/app/types").CacheGetObjectIdPlugin | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer[] | import("@webiny/app/types").RoutePlugin[] | import("../../types").CmsContentDetailsPlugin[] | {
3
2
  name: string;
4
3
  type: string;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["routes","icons","install","contentFormTransformers","defaultBar","formSettings","permissionRenderer","getObjectId","contentEntryHeader"],"mappings":"AAAA,OAAOA,MAAP;AACA,OAAOC,KAAP;AACA,OAAOC,OAAP;AACA,OAAOC,uBAAP;AACA,OAAOC,UAAP;AACA,OAAOC,YAAP;AACA,OAAOC,kBAAP;AACA,OAAOC,WAAP;AACA,OAAOC,kBAAP;AAEA,gBAAe;AAAA,SAAM,CACjBN,OADiB,EAEjBF,MAFiB,EAGjBC,KAHiB,EAIjBE,uBAAuB,EAJN,EAKjBC,UALiB,EAMjBC,YANiB,EAOjBC,kBAPiB,EAQjBC,WARiB,EASjBC,kBATiB,CAAN;AAAA,CAAf","sourcesContent":["import routes from \"./routes\";\nimport icons from \"./icons\";\nimport install from \"./install\";\nimport contentFormTransformers from \"./transformers\";\nimport defaultBar from \"./editor/defaultBar\";\nimport formSettings from \"./editor/formSettings\";\nimport permissionRenderer from \"./permissionRenderer\";\nimport getObjectId from \"./getObjectId\";\nimport contentEntryHeader from \"../views/contentEntries/ContentEntry/header\";\n\nexport default () => [\n install,\n routes,\n icons,\n contentFormTransformers(),\n defaultBar,\n formSettings,\n permissionRenderer,\n getObjectId,\n contentEntryHeader\n];\n"]}
@@ -49,9 +49,13 @@ var CMSInstaller = function CMSInstaller(_ref) {
49
49
  setTimeout(function () {
50
50
  client.mutate({
51
51
  mutation: INSTALL
52
- }).then(function (_ref2) {
53
- var data = _ref2.data;
54
- var error = data.cms.install.error;
52
+ }).then(function (result) {
53
+ if (!result || !result.data) {
54
+ setError("Missing Install Mutation response data.");
55
+ return;
56
+ }
57
+
58
+ var error = result.data.cms.install.error;
55
59
 
56
60
  if (error) {
57
61
  setError(error.message);
@@ -78,7 +82,7 @@ var plugin = {
78
82
  title: t(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["Headless CMS"]))),
79
83
  dependencies: ["admin-installation-security", "admin-installation-i18n", "admin-installation-fm"],
80
84
  secure: true,
81
- getInstalledVersion: function getInstalledVersion(_ref3) {
85
+ getInstalledVersion: function getInstalledVersion(_ref2) {
82
86
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
83
87
  var client, _yield$client$query, data;
84
88
 
@@ -86,7 +90,7 @@ var plugin = {
86
90
  while (1) {
87
91
  switch (_context.prev = _context.next) {
88
92
  case 0:
89
- client = _ref3.client;
93
+ client = _ref2.client;
90
94
  _context.next = 3;
91
95
  return client.query({
92
96
  query: IS_INSTALLED
@@ -105,8 +109,8 @@ var plugin = {
105
109
  }, _callee);
106
110
  }))();
107
111
  },
108
- render: function render(_ref4) {
109
- var onInstalled = _ref4.onInstalled;
112
+ render: function render(_ref3) {
113
+ var onInstalled = _ref3.onInstalled;
110
114
  return /*#__PURE__*/React.createElement(CMSInstaller, {
111
115
  onInstalled: onInstalled
112
116
  });
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["install.tsx"],"names":["React","useState","useEffect","gql","useApolloClient","i18n","Alert","CircularProgress","SimpleForm","SimpleFormContent","styled","SimpleFormPlaceholder","minHeight","minWidth","t","ns","IS_INSTALLED","INSTALL","CMSInstaller","onInstalled","client","error","setError","setTimeout","mutate","mutation","then","result","data","cms","install","message","label","plugin","name","type","title","dependencies","secure","getInstalledVersion","query","version","render","upgrades"],"mappings":"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","sourcesContent":["import React, { useState, useEffect } from \"react\";\nimport gql from \"graphql-tag\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Alert } from \"@webiny/ui/Alert\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { SimpleForm, SimpleFormContent } from \"@webiny/app-admin/components/SimpleForm\";\nimport styled from \"@emotion/styled\";\nimport { AdminInstallationPlugin } from \"@webiny/app-admin/types\";\nimport { CmsErrorResponse } from \"~/types\";\n\nconst SimpleFormPlaceholder = styled.div({\n minHeight: 300,\n minWidth: 400\n});\n\nconst t = i18n.ns(\"app-headless-cms/admin/installation\");\n/**\n * ########################\n * Is Installed Query\n */\nexport interface CmsIsInstalledQueryResponse {\n cms: {\n version: string | null;\n };\n}\nconst IS_INSTALLED = gql`\n query IsCMSInstalled {\n cms {\n version\n }\n }\n`;\n/**\n * ########################\n * Install Mutation\n */\nexport interface CmsInstallMutationResponse {\n cms: {\n install: {\n data: boolean;\n error?: CmsErrorResponse;\n };\n };\n}\nconst INSTALL = gql`\n mutation InstallCms {\n cms {\n install {\n data\n error {\n code\n message\n data\n }\n }\n }\n }\n`;\ninterface CMSInstallerProps {\n onInstalled: () => void;\n}\nconst CMSInstaller: React.FC<CMSInstallerProps> = ({ onInstalled }) => {\n const client = useApolloClient();\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n // Temporary fix for the ES index creation failure.\n // Let's try waiting a bit before running the installation.\n setTimeout(() => {\n client\n .mutate<CmsInstallMutationResponse>({\n mutation: INSTALL\n })\n .then(result => {\n if (!result || !result.data) {\n setError(\"Missing Install Mutation response data.\");\n return;\n }\n const { error } = result.data.cms.install;\n if (error) {\n setError(error.message);\n return;\n }\n\n // Just so the user sees the actual message.\n setTimeout(onInstalled, 3000);\n });\n }, 10000);\n }, []);\n\n const label = error ? (\n <Alert title={t`Something went wrong`} type={\"danger\"}>\n {error}\n </Alert>\n ) : (\n t`Installing Headless CMS...`\n );\n\n return (\n <SimpleForm>\n <CircularProgress label={label} />\n <SimpleFormContent>\n <SimpleFormPlaceholder />\n </SimpleFormContent>\n </SimpleForm>\n );\n};\n\nconst plugin: AdminInstallationPlugin = {\n name: \"admin-installation-cms\",\n type: \"admin-installation\",\n title: t`Headless CMS`,\n dependencies: [\n \"admin-installation-security\",\n \"admin-installation-i18n\",\n \"admin-installation-fm\"\n ],\n secure: true,\n async getInstalledVersion({ client }) {\n const { data } = await client.query<CmsIsInstalledQueryResponse>({ query: IS_INSTALLED });\n return data.cms.version;\n },\n render({ onInstalled }) {\n return <CMSInstaller onInstalled={onInstalled} />;\n },\n upgrades: [\n // {\n // version: \"5.0.0\",\n // getComponent() {\n // return lazy(() => import(\"./upgrades/v5.0.0\"));\n // }\n // },\n // {\n // version: \"5.5.0\",\n // getComponent() {\n // return lazy(() => import(\"./upgrades/v5.5.0\"));\n // }\n // },\n // {\n // version: \"5.8.0\",\n // getComponent() {\n // return lazy(() => import(\"./upgrades/v5.8.0\"));\n // }\n // },\n // {\n // version: \"5.19.0\",\n // getComponent() {\n // return lazy(() => import(\"./upgrades/v5.19.0\"));\n // }\n // }\n ]\n};\n\nexport default plugin;\n"]}
@@ -98,12 +98,13 @@ export var CMSPermissions = function CMSPermissions(_ref) {
98
98
  });
99
99
  onChange(newValue);
100
100
  return;
101
- } // Handling custom access level.
101
+ }
102
102
 
103
+ var endpoints = data.endpoints; // Handling custom access level.
103
104
 
104
- if (Array.isArray(data.endpoints)) {
105
+ if (endpoints && Array.isArray(data.endpoints)) {
105
106
  API_ENDPOINTS.forEach(function (api) {
106
- if (data.endpoints.includes(api.id)) {
107
+ if (endpoints.includes(api.id)) {
107
108
  newValue.push({
108
109
  name: "".concat(CMS_PERMISSION, ".endpoint.").concat(api.id)
109
110
  });
@@ -183,8 +184,7 @@ export var CMSPermissions = function CMSPermissions(_ref) {
183
184
  // This function only runs once on Form mount
184
185
  if (!Array.isArray(value)) {
185
186
  return {
186
- accessLevel: NO_ACCESS,
187
- endpoints: []
187
+ accessLevel: NO_ACCESS
188
188
  };
189
189
  }
190
190
 
@@ -207,8 +207,7 @@ export var CMSPermissions = function CMSPermissions(_ref) {
207
207
 
208
208
  if (!permissions.length) {
209
209
  return {
210
- accessLevel: NO_ACCESS,
211
- endpoints: []
210
+ accessLevel: NO_ACCESS
212
211
  };
213
212
  } // We're dealing with custom permissions. Let's first prepare data for "content models", "content model groups", "content entries" and "environments".
214
213
 
@@ -270,12 +269,18 @@ export var CMSPermissions = function CMSPermissions(_ref) {
270
269
  }, []);
271
270
  return /*#__PURE__*/React.createElement(Form, {
272
271
  data: formData,
273
- onChange: onFormChange
272
+ onChange: function onChange(data) {
273
+ /**
274
+ * We know that data is CmsSecurityPermission.
275
+ */
276
+ return onFormChange(data);
277
+ }
274
278
  }, function (_ref2) {
275
279
  var data = _ref2.data,
276
280
  Bind = _ref2.Bind,
277
281
  setValue = _ref2.setValue;
278
- var graphQLEndpointAccess = data.endpoints.includes("read") || data.endpoints.includes("manage") || data.endpoints.includes("preview");
282
+ var endpoints = data.endpoints || [];
283
+ var graphQLEndpointAccess = endpoints.includes("read") || endpoints.includes("manage") || endpoints.includes("preview");
279
284
  return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Grid, {
280
285
  className: gridNoPaddingClass
281
286
  }, /*#__PURE__*/React.createElement(Cell, {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["CmsPermissions.tsx"],"names":["React","Fragment","useCallback","useMemo","ContentModelGroupPermission","Grid","Cell","Select","i18n","PermissionInfo","gridNoPaddingClass","Form","ContentModelPermission","ContentEntryPermission","Checkbox","CheckboxGroup","useI18N","Link","t","ns","CMS_PERMISSION","CMS_PERMISSION_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","ENTITIES","API_ENDPOINTS","id","name","GRAPHQL_API_TYPES_LINK","CMSPermissions","value","onChange","getLocales","canRead","permissionName","permission","find","item","rwd","includes","getFormLocales","localePermission","startsWith","map","l","code","Array","isArray","locales","onFormChange","data","newValue","filter","accessLevel","push","endpoints","forEach","api","entity","accessScope","own","pw","groups","undefined","models","join","props","reduce","acc","locale","formData","hasFullAccess","permissions","length","returnData","p","replace","entityPermission","split","Object","assign","getSelectedContentModelGroups","contentModelGroupAccessScope","contentModelGroupProps","Bind","setValue","graphQLEndpointAccess","link","getValue"],"mappings":"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","sourcesContent":["/**\n * @pavel Please review types for security permissions\n * TODO @ts-refactor\n */\nimport React, { Fragment, useCallback, useMemo } from \"react\";\nimport ContentModelGroupPermission from \"./components/ContentModelGroupPermission\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { PermissionInfo, gridNoPaddingClass } from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { ContentModelPermission } from \"./components/ContentModelPermission\";\nimport { ContentEntryPermission } from \"./components/ContentEntryPermission\";\nimport { Checkbox, CheckboxGroup } from \"@webiny/ui/Checkbox\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { Link } from \"@webiny/react-router\";\nimport { CmsSecurityPermission } from \"~/types\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/plugins/permissionRenderer\");\n\nconst CMS_PERMISSION = \"cms\";\nconst CMS_PERMISSION_FULL_ACCESS = \"cms.*\";\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\nconst ENTITIES = [\"contentModel\", \"contentModelGroup\", \"contentEntry\"];\nconst API_ENDPOINTS = [\n { id: \"read\", name: \"Read\" },\n { id: \"manage\", name: \"Manage\" },\n { id: \"preview\", name: \"Preview\" }\n];\n\nconst GRAPHQL_API_TYPES_LINK =\n \"https://www.webiny.com/docs/key-topics/webiny-applications/headless-cms/graphql-api/#graphql-api-types\";\n\nexport interface CMSPermissionsProps {\n value: CmsSecurityPermission[];\n onChange: (value: CmsSecurityPermission[]) => void;\n}\nexport const CMSPermissions: React.FC<CMSPermissionsProps> = ({ value, onChange }) => {\n const { getLocales } = useI18N();\n\n const canRead = useCallback((value: any[], permissionName: string) => {\n const permission = value.find(item => item.name === permissionName);\n\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"r\");\n }, []);\n\n const getFormLocales = () => {\n const localePermission = (value || []).find(item => item.name.startsWith(\"content.i18n\"));\n if (!localePermission) {\n return getLocales().map(l => l.code);\n }\n\n return Array.isArray(localePermission.locales)\n ? localePermission.locales\n : getLocales().map(l => l.code);\n };\n\n const onFormChange = useCallback(\n (data: CmsSecurityPermission) => {\n let newValue: CmsSecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `cms*` permission objects.\n // Based on the `data` we rebuild new permission object from scratch.\n newValue = value.filter(item => !item.name.startsWith(CMS_PERMISSION));\n }\n\n if (data.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (data.accessLevel === FULL_ACCESS) {\n newValue.push({\n name: CMS_PERMISSION_FULL_ACCESS\n });\n onChange(newValue);\n return;\n }\n\n const endpoints = data.endpoints;\n\n // Handling custom access level.\n if (endpoints && Array.isArray(data.endpoints)) {\n API_ENDPOINTS.forEach(api => {\n if (endpoints.includes(api.id)) {\n newValue.push({\n name: `${CMS_PERMISSION}.endpoint.${api.id}`\n });\n }\n });\n }\n\n const locales = getFormLocales();\n\n // Content models, content model groups, content entries\n ENTITIES.forEach(entity => {\n const accessScope = data[`${entity}AccessScope`];\n if (accessScope && accessScope !== NO_ACCESS) {\n const permission: CmsSecurityPermission = {\n name: `${CMS_PERMISSION}.${entity}`,\n own: false,\n rwd: \"r\",\n pw: \"\",\n groups: undefined,\n models: undefined\n };\n\n if (accessScope === \"own\") {\n permission.own = true;\n permission.rwd = \"rwd\";\n } else {\n permission.rwd = data[`${entity}RWD`] || \"r\";\n }\n\n permission.pw = (data[`${entity}PW`] || []).join(\"\");\n\n if (accessScope === \"models\") {\n permission.models = {};\n }\n\n if (accessScope === \"groups\") {\n permission.groups = {};\n }\n\n const props = data[`${entity}Props`];\n if (props) {\n [\"models\", \"groups\"].forEach(entity => {\n if (accessScope === entity && props[entity]) {\n permission[entity] = locales.reduce((acc, locale) => {\n if (props[entity][locale]) {\n acc[locale] = props[entity][locale];\n }\n return acc;\n }, {} as Record<string, string>);\n }\n });\n }\n\n newValue.push(permission);\n }\n });\n // Remove dependent permissions.\n // The \"cms.contentModel\" permission can only be assigned if the user has the \"read\" access for the \"cms.contentModelGroup\".\n if (!canRead(newValue, \"cms.contentModelGroup\")) {\n newValue = newValue.filter(item => item.name !== \"cms.contentModel\");\n }\n // The \"cms.contentEntry\" permission can only be assigned if the user has the \"read\" access for the \"cms.contentModel\".\n if (!canRead(newValue, \"cms.contentModel\")) {\n newValue = newValue.filter(item => item.name !== \"cms.contentEntry\");\n }\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n // This function only runs once on Form mount\n if (!Array.isArray(value)) {\n return {\n accessLevel: NO_ACCESS\n };\n }\n\n const hasFullAccess = value.find(\n item => item.name === CMS_PERMISSION_FULL_ACCESS || item.name === \"*\"\n );\n\n if (hasFullAccess) {\n return {\n accessLevel: FULL_ACCESS,\n endpoints: API_ENDPOINTS.map(item => item.id)\n };\n }\n\n const permissions = value.filter(item => item.name.startsWith(CMS_PERMISSION));\n\n if (!permissions.length) {\n return {\n accessLevel: NO_ACCESS\n };\n }\n\n // We're dealing with custom permissions. Let's first prepare data for \"content models\", \"content model groups\", \"content entries\" and \"environments\".\n const returnData = {\n accessLevel: CUSTOM_ACCESS,\n endpoints: permissions\n .filter(p => p.name.startsWith(\"cms.endpoint.\"))\n .map(p => p.name.replace(\"cms.endpoint.\", \"\"))\n };\n\n ENTITIES.forEach(entity => {\n const data: Record<string, any> = {\n [`${entity}AccessScope`]: FULL_ACCESS,\n [`${entity}RWD`]: \"r\",\n [`${entity}Props`]: {}\n };\n\n const entityPermission = permissions.find(\n item => item.name === `${CMS_PERMISSION}.${entity}`\n );\n\n if (entityPermission) {\n data[`${entity}AccessScope`] = entityPermission.own ? \"own\" : FULL_ACCESS;\n if (data[`${entity}AccessScope`] === \"own\") {\n data[`${entity}RWD`] = \"rwd\";\n } else {\n data[`${entity}RWD`] = entityPermission.rwd;\n }\n\n // If there are any non-empty props we'll set \"AccessScope\" to that prop.\n if (entityPermission.models) {\n data[`${entity}AccessScope`] = \"models\";\n data[`${entity}Props`] = { models: entityPermission.models };\n }\n\n if (entityPermission.groups) {\n data[`${entity}AccessScope`] = \"groups\";\n data[`${entity}Props`] = { groups: entityPermission.groups };\n }\n\n if (entity === \"contentEntry\") {\n data[`${entity}PW`] = entityPermission.pw ? entityPermission.pw.split(\"\") : [];\n }\n }\n\n Object.assign(returnData, data);\n });\n\n return returnData;\n }, []);\n\n const locales = getFormLocales();\n\n const getSelectedContentModelGroups = useCallback(data => {\n if (data && data.contentModelGroupAccessScope === \"groups\" && data.contentModelGroupProps) {\n return data.contentModelGroupProps.groups;\n }\n }, []);\n\n return (\n <Form\n data={formData}\n onChange={data => {\n /**\n * We know that data is CmsSecurityPermission.\n */\n return onFormChange(data as unknown as CmsSecurityPermission);\n }}\n >\n {({ data, Bind, setValue }) => {\n const endpoints = data.endpoints || [];\n const graphQLEndpointAccess =\n endpoints.includes(\"read\") ||\n endpoints.includes(\"manage\") ||\n endpoints.includes(\"preview\");\n\n return (\n <Fragment>\n <Grid className={gridNoPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select label={t`Access Level`}>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && (\n <>\n <Grid>\n <Cell span={12}>\n <Bind name={\"endpoints\"}>\n <CheckboxGroup\n label={t`GraphQL API types`}\n description={t`Each type has a separate URL and a specific purpose.\n Check out the {link} key topic to learn more.`({\n link: (\n <Link\n to={GRAPHQL_API_TYPES_LINK}\n target={\"_blank\"}\n >\n Headless CMS GraphQL API\n </Link>\n )\n })}\n >\n {({ getValue, onChange }) =>\n API_ENDPOINTS.map(({ id, name }) => (\n <Checkbox\n key={id}\n label={name}\n value={getValue(id)}\n onChange={onChange(id)}\n />\n ))\n }\n </CheckboxGroup>\n </Bind>\n </Cell>\n </Grid>\n {graphQLEndpointAccess && (\n <ContentModelGroupPermission\n data={data}\n Bind={Bind}\n entity={\"contentModelGroup\"}\n title={\"Content Model Groups\"}\n locales={locales}\n />\n )}\n\n {graphQLEndpointAccess &&\n canRead(value, \"cms.contentModelGroup\") && (\n <ContentModelPermission\n locales={locales}\n data={data}\n setValue={setValue}\n Bind={Bind}\n entity={\"contentModel\"}\n title={\"Content Models\"}\n selectedContentModelGroups={getSelectedContentModelGroups(\n data\n )}\n />\n )}\n\n {graphQLEndpointAccess && canRead(value, \"cms.contentModel\") && (\n <ContentEntryPermission\n data={data}\n Bind={Bind}\n setValue={setValue}\n entity={\"contentEntry\"}\n title={\"Content Entries\"}\n />\n )}\n </>\n )}\n </Fragment>\n );\n }}\n </Form>\n );\n};\n"]}