@webiny/app-headless-cms 5.23.1 → 5.25.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (572) hide show
  1. package/HeadlessCMS.d.ts +4 -3
  2. package/HeadlessCMS.js.map +1 -0
  3. package/admin/components/ContentEntryForm/ContentEntryForm.d.ts +2 -2
  4. package/admin/components/ContentEntryForm/ContentEntryForm.js +27 -6
  5. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -0
  6. package/admin/components/ContentEntryForm/ContentEntryFormPreview.d.ts +2 -2
  7. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +18 -2
  8. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -0
  9. package/admin/components/ContentEntryForm/Fields.d.ts +4 -5
  10. package/admin/components/ContentEntryForm/Fields.js +1 -1
  11. package/admin/components/ContentEntryForm/Fields.js.map +1 -0
  12. package/admin/components/ContentEntryForm/Label.d.ts +2 -4
  13. package/admin/components/ContentEntryForm/Label.js.map +1 -0
  14. package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +5 -4
  15. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -0
  16. package/admin/components/ContentEntryForm/functions/createValidators.d.ts +3 -1
  17. package/admin/components/ContentEntryForm/functions/createValidators.js +8 -5
  18. package/admin/components/ContentEntryForm/functions/createValidators.js.map +1 -0
  19. package/admin/components/ContentEntryForm/functions/getValue.d.ts +9 -5
  20. package/admin/components/ContentEntryForm/functions/getValue.js +4 -4
  21. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -0
  22. package/admin/components/ContentEntryForm/functions/setValue.d.ts +10 -6
  23. package/admin/components/ContentEntryForm/functions/setValue.js +5 -5
  24. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -0
  25. package/admin/components/ContentEntryForm/useBind.d.ts +6 -6
  26. package/admin/components/ContentEntryForm/useBind.js +23 -10
  27. package/admin/components/ContentEntryForm/useBind.js.map +1 -0
  28. package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +2 -4
  29. package/admin/components/ContentEntryForm/useContentEntryForm.js +84 -31
  30. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -0
  31. package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -0
  32. package/admin/components/ContentModelEditor/Context.d.ts +24 -13
  33. package/admin/components/ContentModelEditor/Context.js +190 -61
  34. package/admin/components/ContentModelEditor/Context.js.map +1 -0
  35. package/admin/components/ContentModelEditor/Editor.d.ts +2 -2
  36. package/admin/components/ContentModelEditor/Editor.js +5 -3
  37. package/admin/components/ContentModelEditor/Editor.js.map +1 -0
  38. package/admin/components/ContentModelEditor/FieldsSidebar.d.ts +6 -4
  39. package/admin/components/ContentModelEditor/FieldsSidebar.js +11 -11
  40. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -0
  41. package/admin/components/ContentModelEditor/Header.d.ts +3 -2
  42. package/admin/components/ContentModelEditor/Header.js +5 -2
  43. package/admin/components/ContentModelEditor/Header.js.map +1 -0
  44. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -0
  45. package/admin/components/ContentModelEditor/useContentModelEditor.d.ts +1 -1
  46. package/admin/components/ContentModelEditor/useContentModelEditor.js.map +1 -0
  47. package/admin/components/DragPreview.d.ts +3 -2
  48. package/admin/components/DragPreview.js +12 -5
  49. package/admin/components/DragPreview.js.map +1 -0
  50. package/admin/components/Draggable.d.ts +9 -7
  51. package/admin/components/Draggable.js +4 -3
  52. package/admin/components/Draggable.js.map +1 -0
  53. package/admin/components/DropZone/Center.d.ts +6 -6
  54. package/admin/components/DropZone/Center.js +7 -4
  55. package/admin/components/DropZone/Center.js.map +1 -0
  56. package/admin/components/DropZone/Horizontal.d.ts +7 -5
  57. package/admin/components/DropZone/Horizontal.js +2 -2
  58. package/admin/components/DropZone/Horizontal.js.map +1 -0
  59. package/admin/components/DropZone/Vertical.d.ts +4 -4
  60. package/admin/components/DropZone/Vertical.js +2 -2
  61. package/admin/components/DropZone/Vertical.js.map +1 -0
  62. package/admin/components/DropZone/index.js.map +1 -0
  63. package/admin/components/Droppable.d.ts +22 -13
  64. package/admin/components/Droppable.js +3 -3
  65. package/admin/components/Droppable.js.map +1 -0
  66. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.d.ts +8 -2
  67. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +7 -6
  68. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -0
  69. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.d.ts +4 -4
  70. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +14 -4
  71. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -0
  72. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.d.ts +2 -2
  73. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js +7 -1
  74. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -0
  75. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.d.ts +9 -4
  76. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js +38 -30
  77. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsTab.js.map +1 -0
  78. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.d.ts +7 -5
  79. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js +4 -4
  80. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -0
  81. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.d.ts +8 -6
  82. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js +5 -5
  83. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -0
  84. package/admin/components/FieldEditor/EditFieldDialog.d.ts +7 -7
  85. package/admin/components/FieldEditor/EditFieldDialog.js +45 -28
  86. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -0
  87. package/admin/components/FieldEditor/Field.d.ts +4 -4
  88. package/admin/components/FieldEditor/Field.js +2 -2
  89. package/admin/components/FieldEditor/Field.js.map +1 -0
  90. package/admin/components/FieldEditor/FieldEditor.d.ts +2 -2
  91. package/admin/components/FieldEditor/FieldEditor.js +9 -6
  92. package/admin/components/FieldEditor/FieldEditor.js.map +1 -0
  93. package/admin/components/FieldEditor/FieldEditorContext.d.ts +70 -25
  94. package/admin/components/FieldEditor/FieldEditorContext.js +63 -35
  95. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -0
  96. package/admin/components/FieldEditor/Styled.d.ts +2 -2
  97. package/admin/components/FieldEditor/Styled.js.map +1 -0
  98. package/admin/components/FieldEditor/index.js.map +1 -0
  99. package/admin/components/FieldEditor/useFieldEditor.js.map +1 -0
  100. package/admin/components/FieldEditor/utils/deleteField.d.ts +6 -8
  101. package/admin/components/FieldEditor/utils/deleteField.js +10 -6
  102. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -0
  103. package/admin/components/FieldEditor/utils/getFieldPosition.d.ts +6 -5
  104. package/admin/components/FieldEditor/utils/getFieldPosition.js +6 -5
  105. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -0
  106. package/admin/components/FieldEditor/utils/index.js.map +1 -0
  107. package/admin/components/FieldEditor/utils/moveField.d.ts +5 -4
  108. package/admin/components/FieldEditor/utils/moveField.js +16 -10
  109. package/admin/components/FieldEditor/utils/moveField.js.map +1 -0
  110. package/admin/components/FieldEditor/utils/moveRow.d.ts +5 -6
  111. package/admin/components/FieldEditor/utils/moveRow.js.map +1 -0
  112. package/admin/constants/statusLabels.d.ts +2 -8
  113. package/admin/constants/statusLabels.js +3 -2
  114. package/admin/constants/statusLabels.js.map +1 -0
  115. package/admin/contexts/Cms/NetworkError.js.map +1 -0
  116. package/admin/contexts/Cms/index.d.ts +3 -3
  117. package/admin/contexts/Cms/index.js +24 -9
  118. package/admin/contexts/Cms/index.js.map +1 -0
  119. package/admin/elements/ContentGroupMenuElement.js +1 -0
  120. package/admin/elements/ContentGroupMenuElement.js.map +1 -0
  121. package/admin/elements/ContentModelMenuElement.js +1 -0
  122. package/admin/elements/ContentModelMenuElement.js.map +1 -0
  123. package/admin/elements/NothingToShowElement.d.ts +1 -1
  124. package/admin/elements/NothingToShowElement.js.map +1 -0
  125. package/admin/graphql/contentEntries.d.ts +172 -11
  126. package/admin/graphql/contentEntries.js +55 -0
  127. package/admin/graphql/contentEntries.js.map +1 -0
  128. package/admin/graphql/contentModels.d.ts +28 -0
  129. package/admin/graphql/contentModels.js +13 -2
  130. package/admin/graphql/contentModels.js.map +1 -0
  131. package/admin/graphql/createFieldsList.js.map +1 -0
  132. package/admin/hooks/index.js.map +1 -0
  133. package/admin/hooks/useApolloClient.d.ts +2 -1
  134. package/admin/hooks/useApolloClient.js.map +1 -0
  135. package/admin/hooks/useCms.js.map +1 -0
  136. package/admin/hooks/useLazyQuery.d.ts +4 -1
  137. package/admin/hooks/useLazyQuery.js.map +1 -0
  138. package/admin/hooks/useMutation.d.ts +4 -1
  139. package/admin/hooks/useMutation.js +1 -1
  140. package/admin/hooks/useMutation.js.map +1 -0
  141. package/admin/hooks/usePermission.d.ts +21 -20
  142. package/admin/hooks/usePermission.js +25 -21
  143. package/admin/hooks/usePermission.js.map +1 -0
  144. package/admin/hooks/useQuery.d.ts +4 -1
  145. package/admin/hooks/useQuery.js.map +1 -0
  146. package/admin/hooks/useQueryLocale.d.ts +3 -1
  147. package/admin/hooks/useQueryLocale.js.map +1 -0
  148. package/admin/menus/CmsMenuLoader.d.ts +1 -1
  149. package/admin/menus/CmsMenuLoader.js +5 -2
  150. package/admin/menus/CmsMenuLoader.js.map +1 -0
  151. package/admin/menus/ContentGroupsMenuItems.d.ts +2 -1
  152. package/admin/menus/ContentGroupsMenuItems.js +5 -7
  153. package/admin/menus/ContentGroupsMenuItems.js.map +1 -0
  154. package/admin/menus/GlobalSearchPlugins.d.ts +2 -1
  155. package/admin/menus/GlobalSearchPlugins.js +2 -2
  156. package/admin/menus/GlobalSearchPlugins.js.map +1 -0
  157. package/admin/menus/NothingToShowElement.d.ts +2 -2
  158. package/admin/menus/NothingToShowElement.js.map +1 -0
  159. package/admin/plugins/apiInformation/index.js +3 -3
  160. package/admin/plugins/apiInformation/index.js.map +1 -0
  161. package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -0
  162. package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -0
  163. package/admin/plugins/editor/defaultBar/BackButton.d.ts +1 -1
  164. package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -0
  165. package/admin/plugins/editor/defaultBar/CreateContentButton.d.ts +2 -2
  166. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -0
  167. package/admin/plugins/editor/defaultBar/Divider.d.ts +1 -1
  168. package/admin/plugins/editor/defaultBar/Divider.js.map +1 -0
  169. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.d.ts +4 -4
  170. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js +11 -1
  171. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -0
  172. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.d.ts +2 -2
  173. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -0
  174. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.d.ts +2 -2
  175. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -0
  176. package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -0
  177. package/admin/plugins/editor/defaultBar/Name/Name.d.ts +2 -2
  178. package/admin/plugins/editor/defaultBar/Name/Name.js +10 -5
  179. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -0
  180. package/admin/plugins/editor/defaultBar/Name/NameStyled.d.ts +3 -3
  181. package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -0
  182. package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -0
  183. package/admin/plugins/editor/defaultBar/SaveContentModelButton.d.ts +2 -2
  184. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js +37 -32
  185. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -0
  186. package/admin/plugins/editor/defaultBar/index.js.map +1 -0
  187. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -0
  188. package/admin/plugins/editor/formSettings/components/GroupSelect.js +1 -1
  189. package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -0
  190. package/admin/plugins/editor/formSettings/index.js.map +1 -0
  191. package/admin/plugins/fieldRenderers/Accordion.d.ts +5 -6
  192. package/admin/plugins/fieldRenderers/Accordion.js +3 -2
  193. package/admin/plugins/fieldRenderers/Accordion.js.map +1 -0
  194. package/admin/plugins/fieldRenderers/DynamicSection.d.ts +12 -5
  195. package/admin/plugins/fieldRenderers/DynamicSection.js +7 -4
  196. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -0
  197. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -0
  198. package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -0
  199. package/admin/plugins/fieldRenderers/checkboxes.js +11 -5
  200. package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -0
  201. package/admin/plugins/fieldRenderers/dateTime/DateOnly.d.ts +2 -1
  202. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js +40 -9
  203. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -0
  204. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.d.ts +4 -3
  205. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +75 -19
  206. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -0
  207. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.d.ts +4 -3
  208. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js +72 -16
  209. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -0
  210. package/admin/plugins/fieldRenderers/dateTime/Input.d.ts +2 -2
  211. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -0
  212. package/admin/plugins/fieldRenderers/dateTime/Select.d.ts +3 -3
  213. package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -0
  214. package/admin/plugins/fieldRenderers/dateTime/Time.d.ts +2 -2
  215. package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -0
  216. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js +4 -3
  217. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -0
  218. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js +15 -10
  219. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -0
  220. package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -0
  221. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +8 -6
  222. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -0
  223. package/admin/plugins/fieldRenderers/file/File.d.ts +5 -5
  224. package/admin/plugins/fieldRenderers/file/File.js +10 -4
  225. package/admin/plugins/fieldRenderers/file/File.js.map +1 -0
  226. package/admin/plugins/fieldRenderers/file/fileField.js +4 -3
  227. package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -0
  228. package/admin/plugins/fieldRenderers/file/fileFields.js +17 -6
  229. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -0
  230. package/admin/plugins/fieldRenderers/file/index.js.map +1 -0
  231. package/admin/plugins/fieldRenderers/file/utils.d.ts +8 -3
  232. package/admin/plugins/fieldRenderers/file/utils.js +2 -2
  233. package/admin/plugins/fieldRenderers/file/utils.js.map +1 -0
  234. package/admin/plugins/fieldRenderers/longText/index.js.map +1 -0
  235. package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -0
  236. package/admin/plugins/fieldRenderers/longText/longTexts.js +1 -1
  237. package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -0
  238. package/admin/plugins/fieldRenderers/number/index.js.map +1 -0
  239. package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -0
  240. package/admin/plugins/fieldRenderers/number/numberInputs.js +1 -1
  241. package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -0
  242. package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -0
  243. package/admin/plugins/fieldRenderers/object/index.js.map +1 -0
  244. package/admin/plugins/fieldRenderers/object/multipleObjects.js +5 -5
  245. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -0
  246. package/admin/plugins/fieldRenderers/object/singleObject.js +3 -2
  247. package/admin/plugins/fieldRenderers/object/singleObject.js.map +1 -0
  248. package/admin/plugins/fieldRenderers/radioButtons.js +11 -5
  249. package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -0
  250. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.d.ts +8 -5
  251. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js +5 -5
  252. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -0
  253. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.d.ts +8 -5
  254. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js +15 -9
  255. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -0
  256. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.d.ts +3 -2
  257. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -0
  258. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.d.ts +2 -1
  259. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +16 -9
  260. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -0
  261. package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.d.ts +2 -2
  262. package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -0
  263. package/admin/plugins/fieldRenderers/ref/components/getOptions.d.ts +16 -1
  264. package/admin/plugins/fieldRenderers/ref/components/getOptions.js +1 -1
  265. package/admin/plugins/fieldRenderers/ref/components/getOptions.js.map +1 -0
  266. package/admin/plugins/fieldRenderers/ref/components/graphql.d.ts +50 -0
  267. package/admin/plugins/fieldRenderers/ref/components/graphql.js +16 -1
  268. package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -0
  269. package/admin/plugins/fieldRenderers/ref/components/renderItem.d.ts +2 -2
  270. package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -0
  271. package/admin/plugins/fieldRenderers/ref/components/useReference.d.ts +6 -11
  272. package/admin/plugins/fieldRenderers/ref/components/useReference.js +4 -3
  273. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -0
  274. package/admin/plugins/fieldRenderers/ref/components/useReferences.d.ts +12 -9
  275. package/admin/plugins/fieldRenderers/ref/components/useReferences.js +1 -1
  276. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -0
  277. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js +4 -3
  278. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -0
  279. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.d.ts +2 -4
  280. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js +6 -1
  281. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -0
  282. package/admin/plugins/fieldRenderers/ref/index.js.map +1 -0
  283. package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -0
  284. package/admin/plugins/fieldRenderers/ref/refInputs.js +1 -1
  285. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -0
  286. package/admin/plugins/fieldRenderers/richText/index.js.map +1 -0
  287. package/admin/plugins/fieldRenderers/richText/richTextInput.js +5 -0
  288. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -0
  289. package/admin/plugins/fieldRenderers/richText/richTextInputs.js +9 -2
  290. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -0
  291. package/admin/plugins/fieldRenderers/select.js +28 -7
  292. package/admin/plugins/fieldRenderers/select.js.map +1 -0
  293. package/admin/plugins/fieldRenderers/text/index.js.map +1 -0
  294. package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -0
  295. package/admin/plugins/fieldRenderers/text/textInputs.js +1 -1
  296. package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -0
  297. package/admin/plugins/fieldValidators/date/availableValidators.d.ts +1 -1
  298. package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -0
  299. package/admin/plugins/fieldValidators/date/createDateInputField.d.ts +2 -1
  300. package/admin/plugins/fieldValidators/date/createDateInputField.js +5 -3
  301. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -0
  302. package/admin/plugins/fieldValidators/dateGte.js +1 -1
  303. package/admin/plugins/fieldValidators/dateGte.js.map +1 -0
  304. package/admin/plugins/fieldValidators/dateLte.js +1 -1
  305. package/admin/plugins/fieldValidators/dateLte.js.map +1 -0
  306. package/admin/plugins/fieldValidators/gte.d.ts +2 -2
  307. package/admin/plugins/fieldValidators/gte.js +3 -2
  308. package/admin/plugins/fieldValidators/gte.js.map +1 -0
  309. package/admin/plugins/fieldValidators/in.d.ts +2 -2
  310. package/admin/plugins/fieldValidators/in.js +3 -2
  311. package/admin/plugins/fieldValidators/in.js.map +1 -0
  312. package/admin/plugins/fieldValidators/lte.d.ts +2 -2
  313. package/admin/plugins/fieldValidators/lte.js +3 -2
  314. package/admin/plugins/fieldValidators/lte.js.map +1 -0
  315. package/admin/plugins/fieldValidators/maxLength.d.ts +2 -2
  316. package/admin/plugins/fieldValidators/maxLength.js +3 -2
  317. package/admin/plugins/fieldValidators/maxLength.js.map +1 -0
  318. package/admin/plugins/fieldValidators/minLength.d.ts +2 -2
  319. package/admin/plugins/fieldValidators/minLength.js +3 -2
  320. package/admin/plugins/fieldValidators/minLength.js.map +1 -0
  321. package/admin/plugins/fieldValidators/pattern.d.ts +2 -2
  322. package/admin/plugins/fieldValidators/pattern.js +9 -2
  323. package/admin/plugins/fieldValidators/pattern.js.map +1 -0
  324. package/admin/plugins/fieldValidators/patternPlugins/email.d.ts +2 -2
  325. package/admin/plugins/fieldValidators/patternPlugins/email.js +3 -2
  326. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -0
  327. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.d.ts +2 -2
  328. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js +3 -2
  329. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -0
  330. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.d.ts +2 -2
  331. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js +3 -2
  332. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -0
  333. package/admin/plugins/fieldValidators/patternPlugins/upperCase.d.ts +2 -2
  334. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js +3 -2
  335. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -0
  336. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.d.ts +2 -2
  337. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js +3 -2
  338. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -0
  339. package/admin/plugins/fieldValidators/patternPlugins/url.d.ts +2 -2
  340. package/admin/plugins/fieldValidators/patternPlugins/url.js +3 -2
  341. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -0
  342. package/admin/plugins/fieldValidators/required.d.ts +2 -2
  343. package/admin/plugins/fieldValidators/required.js +3 -2
  344. package/admin/plugins/fieldValidators/required.js.map +1 -0
  345. package/admin/plugins/fieldValidators/unique.js.map +1 -0
  346. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.d.ts +3 -2
  347. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -0
  348. package/admin/plugins/fields/boolean.js.map +1 -0
  349. package/admin/plugins/fields/dateTime.js.map +1 -0
  350. package/admin/plugins/fields/file.js.map +1 -0
  351. package/admin/plugins/fields/longText.js.map +1 -0
  352. package/admin/plugins/fields/number.js.map +1 -0
  353. package/admin/plugins/fields/object/ObjectFields.d.ts +7 -4
  354. package/admin/plugins/fields/object/ObjectFields.js +2 -2
  355. package/admin/plugins/fields/object/ObjectFields.js.map +1 -0
  356. package/admin/plugins/fields/object.js +1 -1
  357. package/admin/plugins/fields/object.js.map +1 -0
  358. package/admin/plugins/fields/ref.js +7 -6
  359. package/admin/plugins/fields/ref.js.map +1 -0
  360. package/admin/plugins/fields/richText.js.map +1 -0
  361. package/admin/plugins/fields/text.js.map +1 -0
  362. package/admin/plugins/getObjectId.js.map +1 -0
  363. package/admin/plugins/icons.js +10 -4
  364. package/admin/plugins/icons.js.map +1 -0
  365. package/admin/plugins/index.d.ts +1 -1
  366. package/admin/plugins/index.js.map +1 -0
  367. package/admin/plugins/install.d.ts +22 -0
  368. package/admin/plugins/install.js +47 -37
  369. package/admin/plugins/install.js.map +1 -0
  370. package/admin/plugins/permissionRenderer/CmsPermissions.d.ts +11 -5
  371. package/admin/plugins/permissionRenderer/CmsPermissions.js +19 -10
  372. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -0
  373. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.d.ts +12 -8
  374. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +7 -6
  375. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -0
  376. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.d.ts +11 -8
  377. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +7 -6
  378. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -0
  379. package/admin/plugins/permissionRenderer/components/ContentModelList.d.ts +8 -6
  380. package/admin/plugins/permissionRenderer/components/ContentModelList.js +3 -3
  381. package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -0
  382. package/admin/plugins/permissionRenderer/components/ContentModelPermission.d.ts +14 -10
  383. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +10 -8
  384. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -0
  385. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.d.ts +10 -5
  386. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js +4 -0
  387. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -0
  388. package/admin/plugins/permissionRenderer/components/PermissionSelector.d.ts +12 -27
  389. package/admin/plugins/permissionRenderer/components/PermissionSelector.js +13 -1
  390. package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -0
  391. package/admin/plugins/permissionRenderer/components/StyledComponents.d.ts +1 -1
  392. package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -0
  393. package/admin/plugins/permissionRenderer/components/types.d.ts +16 -0
  394. package/admin/plugins/permissionRenderer/components/types.js +1 -0
  395. package/admin/plugins/permissionRenderer/components/types.js.map +1 -0
  396. package/admin/plugins/permissionRenderer/components/useCmsData.d.ts +17 -1
  397. package/admin/plugins/permissionRenderer/components/useCmsData.js +37 -25
  398. package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -0
  399. package/admin/plugins/permissionRenderer/index.d.ts +2 -2
  400. package/admin/plugins/permissionRenderer/index.js +3 -2
  401. package/admin/plugins/permissionRenderer/index.js.map +1 -0
  402. package/admin/plugins/routes.js.map +1 -0
  403. package/admin/plugins/transformers/dateTransformer.js +20 -24
  404. package/admin/plugins/transformers/dateTransformer.js.map +1 -0
  405. package/admin/plugins/transformers/index.js.map +1 -0
  406. package/admin/plugins/transformers/numberTransformer.js.map +1 -0
  407. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +1 -1
  408. package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +1 -0
  409. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +2 -2
  410. package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +1 -0
  411. package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +1 -0
  412. package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +1 -0
  413. package/admin/plugins/upgrades/5.19.0/createRepublishMutation.d.ts +2 -1
  414. package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +1 -0
  415. package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +1 -0
  416. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +2 -2
  417. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +1 -0
  418. package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +1 -0
  419. package/admin/plugins/upgrades/5.19.0/types.js.map +1 -0
  420. package/admin/plugins/upgrades/v5.0.0.js +1 -0
  421. package/admin/plugins/upgrades/v5.0.0.js.map +1 -0
  422. package/admin/plugins/upgrades/v5.19.0.js +1 -0
  423. package/admin/plugins/upgrades/v5.19.0.js.map +1 -0
  424. package/admin/plugins/upgrades/v5.5.0.js +1 -0
  425. package/admin/plugins/upgrades/v5.5.0.js.map +1 -0
  426. package/admin/plugins/upgrades/v5.8.0.js +1 -0
  427. package/admin/plugins/upgrades/v5.8.0.js.map +1 -0
  428. package/admin/plugins/validators/dateGte.js.map +1 -0
  429. package/admin/plugins/validators/dateLte.js.map +1 -0
  430. package/admin/plugins/validators/gte.d.ts +2 -2
  431. package/admin/plugins/validators/gte.js +3 -2
  432. package/admin/plugins/validators/gte.js.map +1 -0
  433. package/admin/plugins/validators/in.d.ts +2 -2
  434. package/admin/plugins/validators/in.js +3 -2
  435. package/admin/plugins/validators/in.js.map +1 -0
  436. package/admin/plugins/validators/lte.d.ts +2 -2
  437. package/admin/plugins/validators/lte.js +3 -2
  438. package/admin/plugins/validators/lte.js.map +1 -0
  439. package/admin/plugins/validators/maxLength.d.ts +2 -2
  440. package/admin/plugins/validators/maxLength.js +3 -2
  441. package/admin/plugins/validators/maxLength.js.map +1 -0
  442. package/admin/plugins/validators/minLength.d.ts +2 -2
  443. package/admin/plugins/validators/minLength.js +3 -2
  444. package/admin/plugins/validators/minLength.js.map +1 -0
  445. package/admin/plugins/validators/pattern.d.ts +3 -9
  446. package/admin/plugins/validators/pattern.js +3 -2
  447. package/admin/plugins/validators/pattern.js.map +1 -0
  448. package/admin/plugins/validators/patternPlugins/email.d.ts +3 -10
  449. package/admin/plugins/validators/patternPlugins/email.js +3 -2
  450. package/admin/plugins/validators/patternPlugins/email.js.map +1 -0
  451. package/admin/plugins/validators/patternPlugins/lowerCase.d.ts +3 -10
  452. package/admin/plugins/validators/patternPlugins/lowerCase.js +3 -2
  453. package/admin/plugins/validators/patternPlugins/lowerCase.js.map +1 -0
  454. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.d.ts +3 -10
  455. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js +3 -2
  456. package/admin/plugins/validators/patternPlugins/lowerCaseSpace.js.map +1 -0
  457. package/admin/plugins/validators/patternPlugins/upperCase.d.ts +3 -10
  458. package/admin/plugins/validators/patternPlugins/upperCase.js +3 -2
  459. package/admin/plugins/validators/patternPlugins/upperCase.js.map +1 -0
  460. package/admin/plugins/validators/patternPlugins/upperCaseSpace.d.ts +3 -10
  461. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js +3 -2
  462. package/admin/plugins/validators/patternPlugins/upperCaseSpace.js.map +1 -0
  463. package/admin/plugins/validators/patternPlugins/url.d.ts +3 -10
  464. package/admin/plugins/validators/patternPlugins/url.js +3 -2
  465. package/admin/plugins/validators/patternPlugins/url.js.map +1 -0
  466. package/admin/plugins/validators/required.d.ts +2 -2
  467. package/admin/plugins/validators/required.js +3 -2
  468. package/admin/plugins/validators/required.js.map +1 -0
  469. package/admin/plugins/validators/timeGte.js.map +1 -0
  470. package/admin/plugins/validators/timeLte.js.map +1 -0
  471. package/admin/plugins/validators/unique.js.map +1 -0
  472. package/admin/plugins/welcomeScreenWidget.js.map +1 -0
  473. package/admin/views/contentEntries/ContentEntries.d.ts +2 -2
  474. package/admin/views/contentEntries/ContentEntries.js +2 -2
  475. package/admin/views/contentEntries/ContentEntries.js.map +1 -0
  476. package/admin/views/contentEntries/ContentEntriesContext.d.ts +9 -5
  477. package/admin/views/contentEntries/ContentEntriesContext.js +14 -5
  478. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -0
  479. package/admin/views/contentEntries/ContentEntriesList.d.ts +2 -2
  480. package/admin/views/contentEntries/ContentEntriesList.js +11 -1
  481. package/admin/views/contentEntries/ContentEntriesList.js.map +1 -0
  482. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +11 -11
  483. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +93 -10
  484. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -0
  485. package/admin/views/contentEntries/ContentEntry/RevisionListItem.d.ts +4 -4
  486. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +15 -4
  487. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -0
  488. package/admin/views/contentEntries/ContentEntry/RevisionsList.d.ts +2 -2
  489. package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -0
  490. package/admin/views/contentEntries/ContentEntry/cache.d.ts +9 -7
  491. package/admin/views/contentEntries/ContentEntry/cache.js +39 -37
  492. package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -0
  493. package/admin/views/contentEntries/ContentEntry/header/Header.d.ts +2 -2
  494. package/admin/views/contentEntries/ContentEntry/header/Header.js.map +1 -0
  495. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.d.ts +2 -2
  496. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +15 -8
  497. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -0
  498. package/admin/views/contentEntries/ContentEntry/header/index.js.map +1 -0
  499. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.d.ts +1 -1
  500. package/admin/views/contentEntries/ContentEntry/header/requestChanges/RequestChanges.js.map +1 -0
  501. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.d.ts +2 -2
  502. package/admin/views/contentEntries/ContentEntry/header/requestReview/RequestReview.js.map +1 -0
  503. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.d.ts +2 -2
  504. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js +8 -7
  505. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +1 -0
  506. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.d.ts +2 -2
  507. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +2 -2
  508. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +1 -0
  509. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.d.ts +2 -2
  510. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js +2 -2
  511. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +1 -0
  512. package/admin/views/contentEntries/ContentEntry/prepareFormData.js +2 -1
  513. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -0
  514. package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +31 -9
  515. package/admin/views/contentEntries/ContentEntry/useRevision.js +212 -132
  516. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -0
  517. package/admin/views/contentEntries/ContentEntry.d.ts +1 -2
  518. package/admin/views/contentEntries/ContentEntry.js +2 -5
  519. package/admin/views/contentEntries/ContentEntry.js.map +1 -0
  520. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -0
  521. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +3 -6
  522. package/admin/views/contentEntries/hooks/useContentEntriesList.js +4 -4
  523. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -0
  524. package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -0
  525. package/admin/views/contentModelGroups/ContentModelGroups.d.ts +2 -2
  526. package/admin/views/contentModelGroups/ContentModelGroups.js +6 -5
  527. package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -0
  528. package/admin/views/contentModelGroups/ContentModelGroupsDataList.d.ts +4 -4
  529. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +19 -24
  530. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -0
  531. package/admin/views/contentModelGroups/ContentModelGroupsForm.d.ts +4 -4
  532. package/admin/views/contentModelGroups/ContentModelGroupsForm.js +69 -37
  533. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -0
  534. package/admin/views/contentModelGroups/DelayedOnChange.d.ts +29 -12
  535. package/admin/views/contentModelGroups/DelayedOnChange.js +13 -13
  536. package/admin/views/contentModelGroups/DelayedOnChange.js.map +1 -0
  537. package/admin/views/contentModelGroups/IconPicker.d.ts +3 -2
  538. package/admin/views/contentModelGroups/IconPicker.js +12 -4
  539. package/admin/views/contentModelGroups/IconPicker.js.map +1 -0
  540. package/admin/views/contentModelGroups/graphql.d.ts +68 -0
  541. package/admin/views/contentModelGroups/graphql.js +26 -5
  542. package/admin/views/contentModelGroups/graphql.js.map +1 -0
  543. package/admin/views/contentModels/CloneContentModelDialog.js +31 -39
  544. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -0
  545. package/admin/views/contentModels/ContentModelEditor.d.ts +3 -2
  546. package/admin/views/contentModels/ContentModelEditor.js +6 -3
  547. package/admin/views/contentModels/ContentModelEditor.js.map +1 -0
  548. package/admin/views/contentModels/ContentModels.d.ts +2 -2
  549. package/admin/views/contentModels/ContentModels.js +10 -9
  550. package/admin/views/contentModels/ContentModels.js.map +1 -0
  551. package/admin/views/contentModels/ContentModelsDataList.d.ts +4 -4
  552. package/admin/views/contentModels/ContentModelsDataList.js +26 -23
  553. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -0
  554. package/admin/views/contentModels/NewContentModelDialog.d.ts +2 -2
  555. package/admin/views/contentModels/NewContentModelDialog.js +166 -77
  556. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -0
  557. package/admin/views/contentModels/cache.d.ts +5 -4
  558. package/admin/views/contentModels/cache.js +47 -21
  559. package/admin/views/contentModels/cache.js.map +1 -0
  560. package/admin/views/contentModels/types.d.ts +4 -0
  561. package/admin/views/contentModels/types.js +1 -0
  562. package/admin/views/contentModels/types.js.map +1 -0
  563. package/admin/views/utils.d.ts +3 -2
  564. package/admin/views/utils.js +5 -18
  565. package/admin/views/utils.js.map +1 -0
  566. package/admin/viewsGraphql.d.ts +62 -0
  567. package/admin/viewsGraphql.js +30 -5
  568. package/admin/viewsGraphql.js.map +1 -0
  569. package/index.js.map +1 -0
  570. package/package.json +27 -23
  571. package/types.d.ts +129 -30
  572. package/types.js.map +1 -0
@@ -4,7 +4,7 @@ import { FieldEditorProps } from "./FieldEditor";
4
4
  import { DragObjectWithType, DragSourceMonitor } from "react-dnd";
5
5
  interface DropTarget {
6
6
  row: number;
7
- index: number;
7
+ index: number | null;
8
8
  }
9
9
  interface Position {
10
10
  row: number;
@@ -12,42 +12,87 @@ interface Position {
12
12
  }
13
13
  export interface DragSource extends DragObjectWithType {
14
14
  parent?: string;
15
- pos: Partial<Position>;
15
+ pos?: Partial<Position>;
16
16
  type: "row" | "field" | "newField";
17
17
  fieldType?: string;
18
- field?: CmsEditorField;
18
+ field?: CmsEditorField | null;
19
19
  fields?: CmsEditorField[];
20
20
  }
21
+ /**
22
+ * Property in GetFieldParams can be any key from CmsEditorField, but TS does not allow union types
23
+ */
24
+ interface GetFieldParams {
25
+ id?: string;
26
+ fieldId?: string;
27
+ }
28
+ interface InsertFieldParams {
29
+ field: CmsEditorField;
30
+ position: FieldLayoutPosition;
31
+ }
32
+ interface MoveFieldParams {
33
+ field: CmsEditorFieldId | CmsEditorField;
34
+ position: FieldLayoutPosition;
35
+ }
36
+ interface GetFieldsInLayoutCallable {
37
+ (): CmsEditorField[][];
38
+ }
39
+ interface GetFieldPluginCallable {
40
+ (type: string): CmsEditorFieldTypePlugin | undefined;
41
+ }
42
+ interface GetFieldCallable {
43
+ (query: GetFieldParams): CmsEditorField | undefined;
44
+ }
45
+ interface OnFieldDropCallable {
46
+ (source: Partial<DragSource>, target: DropTarget): void;
47
+ }
48
+ interface InsertFieldCallable {
49
+ (params: InsertFieldParams): void;
50
+ }
51
+ interface MoveFieldCallable {
52
+ (params: MoveFieldParams): void;
53
+ }
54
+ interface OnEndDragCallable {
55
+ (item: DragSource, monitor: DragSourceMonitor): void;
56
+ }
57
+ interface MoveRowCallable {
58
+ (source: number, destination: number): void;
59
+ }
60
+ interface UpdateFieldCallable {
61
+ (field: Pick<CmsEditorField, "id">): void;
62
+ }
63
+ interface DeleteFieldCallable {
64
+ (field: Pick<CmsEditorField, "id">): void;
65
+ }
66
+ interface IsVisibleCallable {
67
+ (item: DragSource): boolean;
68
+ }
69
+ interface NoConflictCallable {
70
+ (cb?: IsVisibleCallable): (item: DragSource) => boolean;
71
+ }
21
72
  export interface FieldEditorContextValue {
22
73
  fields: CmsEditorField[][];
23
- noConflict: Function;
74
+ noConflict: NoConflictCallable;
24
75
  layout: CmsEditorFieldsLayout;
25
76
  onChange?: (data: any) => void;
26
- getFieldsInLayout: () => CmsEditorField[][];
27
- getFieldPlugin: (type: string) => CmsEditorFieldTypePlugin;
28
- getField: (query: Record<string, string>) => CmsEditorField;
29
- editField: (field: CmsEditorField) => void;
30
- field: CmsEditorField;
31
- parent: CmsEditorField;
77
+ getFieldsInLayout: GetFieldsInLayoutCallable;
78
+ getFieldPlugin: GetFieldPluginCallable;
79
+ getField: GetFieldCallable;
80
+ editField: (field: CmsEditorField | null) => void;
81
+ field: CmsEditorField | null;
82
+ parent?: CmsEditorField;
32
83
  depth: number;
33
- dropTarget?: DropTarget;
34
- onFieldDrop: (source: Partial<DragSource>, target: DropTarget) => void;
35
- onEndDrag: (item: DragSource, monitor: DragSourceMonitor) => void;
36
- insertField: (params: {
37
- field: CmsEditorField;
38
- position: FieldLayoutPosition;
39
- }) => void;
40
- moveField: (params: {
41
- field: CmsEditorFieldId | CmsEditorField;
42
- position: FieldLayoutPosition;
43
- }) => void;
44
- moveRow: (source: number, destination: number) => void;
45
- updateField: (field: CmsEditorField) => void;
46
- deleteField: (field: CmsEditorField) => void;
84
+ dropTarget: DropTarget;
85
+ onFieldDrop: OnFieldDropCallable;
86
+ onEndDrag: OnEndDragCallable;
87
+ insertField: InsertFieldCallable;
88
+ moveField: MoveFieldCallable;
89
+ moveRow: MoveRowCallable;
90
+ updateField: UpdateFieldCallable;
91
+ deleteField: DeleteFieldCallable;
47
92
  }
48
93
  interface FieldEditorProviderProps extends FieldEditorProps {
49
94
  children: React.ReactElement;
50
95
  }
51
96
  export declare const FieldEditorContext: React.Context<FieldEditorContextValue>;
52
- export declare const FieldEditorProvider: ({ parent, fields, layout, onChange, children }: FieldEditorProviderProps) => JSX.Element;
97
+ export declare const FieldEditorProvider: React.FC<FieldEditorProviderProps>;
53
98
  export {};
@@ -3,12 +3,17 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import React, { useCallback, useState } from "react";
4
4
  import dot from "dot-prop-immutable";
5
5
  import shortid from "shortid";
6
- import cloneDeep from "lodash/cloneDeep";
7
6
  import useDeepCompareEffect from "use-deep-compare-effect";
8
7
  import { plugins } from "@webiny/plugins";
9
8
  import * as utils from "./utils";
10
9
  import { useFieldEditor } from "./useFieldEditor";
11
- export var FieldEditorContext = /*#__PURE__*/React.createContext(null);
10
+ export var FieldEditorContext = /*#__PURE__*/React.createContext(
11
+ /**
12
+ * Safe to cast.
13
+ */
14
+ {
15
+ field: null
16
+ });
12
17
  export var FieldEditorProvider = function FieldEditorProvider(_ref) {
13
18
  var parent = _ref.parent,
14
19
  fields = _ref.fields,
@@ -28,7 +33,10 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
28
33
  layout: layout,
29
34
  fields: fields,
30
35
  field: null,
31
- dropTarget: null
36
+ dropTarget: {
37
+ row: -1,
38
+ index: null
39
+ }
32
40
  }),
33
41
  _useState2 = _slicedToArray(_useState, 2),
34
42
  state = _useState2[0],
@@ -55,7 +63,8 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
55
63
  type = source.type,
56
64
  fieldType = source.fieldType,
57
65
  field = source.field,
58
- fields = source.fields;
66
+ _source$fields = source.fields,
67
+ fields = _source$fields === void 0 ? [] : _source$fields;
59
68
  var parentId = parent ? parent.fieldId : null;
60
69
 
61
70
  if (type === "row") {
@@ -70,7 +79,7 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
70
79
  }
71
80
  });
72
81
  });
73
- } else {
82
+ } else if (pos && pos.row !== undefined) {
74
83
  // We're dragging a row within the same fieldset
75
84
  moveRow(pos.row, dropTarget.row);
76
85
  }
@@ -80,6 +89,10 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
80
89
 
81
90
 
82
91
  if (pos) {
92
+ if (!field) {
93
+ return onDropTarget;
94
+ }
95
+
83
96
  if (parentId !== source.parent) {
84
97
  // We're dragging an existing field from another fieldset
85
98
  insertField({
@@ -97,7 +110,20 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
97
110
  return onDropTarget;
98
111
  }
99
112
 
113
+ if (!fieldType) {
114
+ return null;
115
+ }
116
+
100
117
  var plugin = getFieldPlugin(fieldType);
118
+
119
+ if (!plugin) {
120
+ return null;
121
+ }
122
+ /**
123
+ * TODO @ts-refactor figure out better type for this.
124
+ */
125
+
126
+
101
127
  editField(plugin.field.createField());
102
128
  setState(function (state) {
103
129
  return _objectSpread(_objectSpread({}, state), {}, {
@@ -126,7 +152,7 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
126
152
  return;
127
153
  }
128
154
 
129
- var removeFields = type === "row" ? fields : [field];
155
+ var removeFields = type === "row" ? fields || [] : field ? [field] : [];
130
156
  removeFields.forEach(function (field) {
131
157
  return deleteField(field);
132
158
  });
@@ -134,17 +160,17 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
134
160
 
135
161
  var getFieldsInLayout = function getFieldsInLayout() {
136
162
  // Replace every field ID with actual field object.
137
- var fields = cloneDeep(state.layout.filter(function (arr) {
163
+ return state.layout.filter(function (arr) {
138
164
  return arr.length;
139
- }));
140
- fields.forEach(function (row, rowIndex) {
141
- row.forEach(function (fieldId, fieldIndex) {
142
- fields[rowIndex][fieldIndex] = getField({
143
- id: fieldId
165
+ }).map(function (row) {
166
+ return row.map(function (id) {
167
+ return getField({
168
+ id: id
144
169
  });
145
- });
170
+ }).filter(Boolean);
171
+ }).filter(function (row) {
172
+ return row.length > 0;
146
173
  });
147
- return fields;
148
174
  };
149
175
  /**
150
176
  * Return field plugin.
@@ -152,9 +178,8 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
152
178
 
153
179
 
154
180
  var getFieldPlugin = function getFieldPlugin(type) {
155
- return plugins.byType("cms-editor-field-type").find(function (_ref3) {
156
- var field = _ref3.field;
157
- return field.type === type;
181
+ return plugins.byType("cms-editor-field-type").find(function (plugin) {
182
+ return plugin.field.type === type;
158
183
  });
159
184
  };
160
185
  /**
@@ -166,11 +191,13 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
166
191
  return state.fields.find(function (field) {
167
192
  for (var key in query) {
168
193
  if (!(key in field)) {
169
- return null;
170
- }
194
+ return false;
195
+ } // TODO @ts-refactor figure if there is a way to fix this.
196
+ // @ts-ignore
197
+
171
198
 
172
199
  if (field[key] !== query[key]) {
173
- return null;
200
+ return false;
174
201
  }
175
202
  }
176
203
 
@@ -182,9 +209,9 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
182
209
  */
183
210
 
184
211
 
185
- var insertField = function insertField(_ref4) {
186
- var field = _ref4.field,
187
- position = _ref4.position;
212
+ var insertField = function insertField(_ref3) {
213
+ var field = _ref3.field,
214
+ position = _ref3.position;
188
215
 
189
216
  if (!field.id) {
190
217
  field.id = shortid.generate();
@@ -200,19 +227,16 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
200
227
  throw new Error("Invalid field \"type\".");
201
228
  }
202
229
 
203
- setState(function (data) {
204
- data = dot.set(data, "fields", function (fields) {
205
- if (Array.isArray(fields)) {
206
- return fields.concat(field);
207
- }
208
-
209
- return [field];
230
+ setState(function (prev) {
231
+ var next = _objectSpread(_objectSpread({}, prev), {}, {
232
+ fields: (prev.fields || []).concat(field)
210
233
  }); // Move field to position where it was dropped.
211
234
 
235
+
212
236
  return utils.moveField({
213
237
  field: field,
214
238
  position: position,
215
- data: data
239
+ data: next
216
240
  });
217
241
  });
218
242
  };
@@ -221,9 +245,9 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
221
245
  */
222
246
 
223
247
 
224
- var moveField = function moveField(_ref5) {
225
- var field = _ref5.field,
226
- position = _ref5.position;
248
+ var moveField = function moveField(_ref4) {
249
+ var field = _ref4.field,
250
+ position = _ref4.position;
227
251
  setState(function (data) {
228
252
  return utils.moveField({
229
253
  field: field,
@@ -283,12 +307,16 @@ export var FieldEditorProvider = function FieldEditorProvider(_ref) {
283
307
 
284
308
  switch (item.type) {
285
309
  case "row":
286
- item.fields.forEach(function (field) {
310
+ (item.fields || []).forEach(function (field) {
287
311
  return draggedFields.push(field.fieldId);
288
312
  });
289
313
  break;
290
314
 
291
315
  case "field":
316
+ if (!item.field) {
317
+ break;
318
+ }
319
+
292
320
  draggedFields.push(item.field.fieldId);
293
321
  break;
294
322
 
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["FieldEditorContext.tsx"],"names":["React","useCallback","useState","dot","shortid","useDeepCompareEffect","plugins","utils","useFieldEditor","FieldEditorContext","createContext","field","FieldEditorProvider","parent","fields","layout","onChange","children","depth","editor","dropTarget","row","index","state","setState","editField","onDropTarget","fieldId","onFieldDrop","source","pos","type","fieldType","parentId","forEach","insertField","position","undefined","moveRow","moveField","plugin","getFieldPlugin","createField","onEndDrag","monitor","didDrop","getDropResult","removeFields","deleteField","getFieldsInLayout","filter","arr","length","map","id","getField","Boolean","byType","find","query","key","generate","Error","fieldPlugin","prev","next","concat","data","destination","updateField","i","set","noConflict","isVisible","item","sameParent","draggedFields","push","some","includes","f","join","value"],"mappings":"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","sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport dot from \"dot-prop-immutable\";\nimport shortid from \"shortid\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport {\n CmsEditorField,\n CmsEditorFieldId,\n CmsEditorFieldsLayout,\n CmsEditorFieldTypePlugin,\n FieldLayoutPosition\n} from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport * as utils from \"./utils\";\nimport { FieldEditorProps } from \"./FieldEditor\";\nimport { DragObjectWithType, DragSourceMonitor } from \"react-dnd\";\nimport { useFieldEditor } from \"~/admin/components/FieldEditor/useFieldEditor\";\n\ninterface DropTarget {\n row: number;\n index: number | null;\n}\n\ninterface Position {\n row: number;\n index: number;\n}\n\nexport interface DragSource extends DragObjectWithType {\n parent?: string;\n pos?: Partial<Position>;\n type: \"row\" | \"field\" | \"newField\";\n fieldType?: string;\n field?: CmsEditorField | null;\n fields?: CmsEditorField[];\n}\n\n/**\n * Property in GetFieldParams can be any key from CmsEditorField, but TS does not allow union types\n */\ninterface GetFieldParams {\n id?: string;\n fieldId?: string;\n}\ninterface InsertFieldParams {\n field: CmsEditorField;\n position: FieldLayoutPosition;\n}\ninterface MoveFieldParams {\n field: CmsEditorFieldId | CmsEditorField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): CmsEditorField[][];\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsEditorFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsEditorField | undefined;\n}\ninterface OnFieldDropCallable {\n (source: Partial<DragSource>, target: DropTarget): void;\n}\ninterface InsertFieldCallable {\n (params: InsertFieldParams): void;\n}\ninterface MoveFieldCallable {\n (params: MoveFieldParams): void;\n}\ninterface OnEndDragCallable {\n (item: DragSource, monitor: DragSourceMonitor): void;\n}\ninterface MoveRowCallable {\n (source: number, destination: number): void;\n}\ninterface UpdateFieldCallable {\n (field: Pick<CmsEditorField, \"id\">): void;\n}\ninterface DeleteFieldCallable {\n (field: Pick<CmsEditorField, \"id\">): void;\n}\ninterface IsVisibleCallable {\n (item: DragSource): boolean;\n}\ninterface NoConflictCallable {\n (cb?: IsVisibleCallable): (item: DragSource) => boolean;\n}\nexport interface FieldEditorContextValue {\n fields: CmsEditorField[][];\n noConflict: NoConflictCallable;\n layout: CmsEditorFieldsLayout;\n onChange?: (data: any) => void;\n getFieldsInLayout: GetFieldsInLayoutCallable;\n getFieldPlugin: GetFieldPluginCallable;\n getField: GetFieldCallable;\n editField: (field: CmsEditorField | null) => void;\n field: CmsEditorField | null;\n parent?: CmsEditorField;\n depth: number;\n dropTarget: DropTarget;\n onFieldDrop: OnFieldDropCallable;\n onEndDrag: OnEndDragCallable;\n insertField: InsertFieldCallable;\n moveField: MoveFieldCallable;\n moveRow: MoveRowCallable;\n updateField: UpdateFieldCallable;\n deleteField: DeleteFieldCallable;\n}\n\ninterface FieldEditorProviderProps extends FieldEditorProps {\n children: React.ReactElement;\n}\n\nexport const FieldEditorContext = React.createContext<FieldEditorContextValue>(\n /**\n * Safe to cast.\n */\n {\n field: null\n } as unknown as FieldEditorContextValue\n);\n\ninterface State {\n layout: CmsEditorFieldsLayout;\n fields: CmsEditorField[];\n field: CmsEditorField | null;\n dropTarget: DropTarget;\n}\nexport const FieldEditorProvider: React.FC<FieldEditorProviderProps> = ({\n parent,\n fields,\n layout,\n onChange,\n children\n}) => {\n // We need to determine depth of this provider so we can render drop zones with correct z-indexes.\n let depth = 0;\n try {\n const editor = useFieldEditor();\n depth = editor.depth + 1;\n } catch {\n // There's no parent provider, so this is the top-level one.\n }\n\n const [state, setState] = useState<State>({\n layout,\n fields,\n field: null,\n dropTarget: {\n row: -1,\n index: null\n }\n });\n\n useDeepCompareEffect(() => {\n onChange({ fields: state.fields, layout: state.layout });\n }, [state.fields, state.layout]);\n\n const editField = useCallback((field: CmsEditorField | null) => {\n setState(state => ({ ...state, field }));\n }, []);\n\n const onDropTarget = {\n dropTarget: parent ? parent.fieldId : null\n };\n\n const onFieldDrop = useCallback<OnFieldDropCallable>((source, dropTarget) => {\n const { pos, type, fieldType, field, fields = [] } = source;\n\n const parentId = parent ? parent.fieldId : null;\n\n if (type === \"row\") {\n if (parentId !== source.parent) {\n // We're dragging an existing row from another fieldset\n fields.forEach((field, index) => {\n insertField({\n field,\n position: {\n row: dropTarget.row,\n index: index === 0 ? null : index\n }\n });\n });\n } else if (pos && pos.row !== undefined) {\n // We're dragging a row within the same fieldset\n moveRow(pos.row, dropTarget.row);\n }\n\n return onDropTarget;\n }\n\n // If source pos is set, we are moving an existing field.\n if (pos) {\n if (!field) {\n return onDropTarget;\n }\n if (parentId !== source.parent) {\n // We're dragging an existing field from another fieldset\n insertField({ field, position: dropTarget });\n } else {\n // We're dragging a field within the same fieldset\n moveField({ field, position: dropTarget });\n }\n return onDropTarget;\n }\n\n if (!fieldType) {\n return null;\n }\n const plugin = getFieldPlugin(fieldType);\n if (!plugin) {\n return null;\n }\n /**\n * TODO @ts-refactor figure out better type for this.\n */\n editField(plugin.field.createField() as CmsEditorField);\n setState(state => ({\n ...state,\n dropTarget\n }));\n return null;\n }, []);\n\n const onEndDrag: OnEndDragCallable = ({ type, field, fields }, monitor) => {\n if (!monitor.didDrop()) {\n return;\n }\n\n // Check if we dropped outside of the source fieldset, and if yes, remove the field from the original parent.\n const { dropTarget } = monitor.getDropResult();\n const parentId = parent ? parent.fieldId : null;\n if (dropTarget === parentId) {\n return;\n }\n\n const removeFields = type === \"row\" ? fields || [] : field ? [field] : [];\n removeFields.forEach(field => deleteField(field));\n };\n\n const getFieldsInLayout: GetFieldsInLayoutCallable = () => {\n // Replace every field ID with actual field object.\n return state.layout\n .filter(arr => arr.length)\n .map(row => {\n return row\n .map(id => {\n return getField({ id });\n })\n .filter(Boolean);\n })\n .filter(row => {\n return row.length > 0;\n }) as CmsEditorField[][];\n };\n\n /**\n * Return field plugin.\n */\n const getFieldPlugin: GetFieldPluginCallable = type => {\n return plugins\n .byType<CmsEditorFieldTypePlugin>(\"cms-editor-field-type\")\n .find(plugin => plugin.field.type === type);\n };\n\n /**\n * Checks if field of given type already exists in the list of fields.\n */\n const getField: GetFieldCallable = query => {\n return state.fields.find(field => {\n for (const key in query) {\n if (!(key in field)) {\n return false;\n }\n // TODO @ts-refactor figure if there is a way to fix this.\n // @ts-ignore\n if (field[key] !== query[key]) {\n return false;\n }\n }\n\n return true;\n });\n };\n\n /**\n * Inserts a new field into the target position.\n */\n const insertField: InsertFieldCallable = ({ field, position }) => {\n if (!field.id) {\n field.id = shortid.generate();\n }\n\n if (!field.type) {\n throw new Error(`Field \"type\" missing.`);\n }\n\n const fieldPlugin = getFieldPlugin(field.type);\n if (!fieldPlugin) {\n throw new Error(`Invalid field \"type\".`);\n }\n\n setState(prev => {\n const next: State = {\n ...prev,\n fields: (prev.fields || []).concat(field)\n };\n\n // Move field to position where it was dropped.\n return utils.moveField({ field, position, data: next });\n });\n };\n\n /**\n * Moves field to the given target position.\n */\n const moveField: MoveFieldCallable = ({ field, position }) => {\n setState(data => {\n return utils.moveField<State>({ field, position, data });\n });\n };\n\n /**\n * Moves row to a destination row.\n */\n const moveRow: MoveRowCallable = (source, destination) => {\n setState(data => {\n return utils.moveRow({ data, source, destination });\n });\n };\n\n /**\n * Updates field.\n */\n const updateField: UpdateFieldCallable = field => {\n setState(data => {\n for (let i = 0; i < data.fields.length; i++) {\n if (data.fields[i].id === field.id) {\n return dot.set(data, `fields.${i}`, field);\n }\n }\n return data;\n });\n };\n\n /**\n * Deletes a field (both from the list of field and the layout).\n */\n const deleteField: DeleteFieldCallable = field => {\n setState(data => {\n return utils.deleteField({ field, data });\n });\n };\n\n const noConflict: NoConflictCallable = useCallback(\n (isVisible?: IsVisibleCallable) => item => {\n const sameParent = item.parent === onDropTarget.dropTarget;\n const draggedFields: string[] = [];\n switch (item.type) {\n case \"row\":\n (item.fields || []).forEach(field => draggedFields.push(field.fieldId));\n break;\n case \"field\":\n if (!item.field) {\n break;\n }\n draggedFields.push(item.field.fieldId);\n break;\n default:\n break;\n }\n\n if (\n draggedFields.length &&\n !sameParent &&\n fields.some(field => draggedFields.includes(field.fieldId))\n ) {\n return false;\n }\n\n return typeof isVisible === \"function\" ? isVisible(item) : true;\n },\n [fields.map(f => f.fieldId).join(\".\")]\n );\n\n const value = {\n parent,\n depth,\n getFieldsInLayout,\n getFieldPlugin,\n getField,\n editField,\n field: state.field,\n dropTarget: state.dropTarget,\n onFieldDrop,\n onEndDrag,\n insertField,\n moveField,\n moveRow,\n updateField,\n deleteField,\n fields: getFieldsInLayout(),\n noConflict,\n layout: state.layout\n };\n\n return <FieldEditorContext.Provider value={value}>{children}</FieldEditorContext.Provider>;\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- export declare const RowContainer: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">, object>;
3
- export declare const Row: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "hidden" | "dir" | "slot" | "style" | "title" | "color" | "translate" | "children" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "className" | "contentEditable" | "contextMenu" | "draggable" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture">, object>;
2
+ export declare const RowContainer: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
3
+ export declare const Row: import("@emotion/styled-base").StyledComponent<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<import("react").ClassAttributes<HTMLDivElement> & import("react").HTMLAttributes<HTMLDivElement>, keyof import("react").HTMLAttributes<HTMLDivElement>>, object>;
4
4
  export declare const fieldContainer: string;
5
5
  export declare const rowHandle: string;
6
6
  export declare const fieldHandle: string;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["Styled.ts"],"names":["css","styled","RowContainer","position","display","flexDirection","marginBottom","borderRadius","backgroundColor","border","boxShadow","Row","paddingLeft","paddingRight","fieldContainer","flex","padding","margin","transition","color","cursor","rowHandle","width","left","top","transform","zIndex","fieldHandle"],"mappings":"AAAA,SAASA,GAAT,QAAoB,SAApB;AACA,OAAOC,MAAP,MAAmB,iBAAnB;AAEA,OAAO,IAAMC,YAAY,gBAAGD,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AACtCE,EAAAA,QAAQ,EAAE,UAD4B;AAEtCC,EAAAA,OAAO,EAAE,MAF6B;AAGtCC,EAAAA,aAAa,EAAE,QAHuB;AAItCC,EAAAA,YAAY,EAAE,EAJwB;AAKtCC,EAAAA,YAAY,EAAE,CALwB;AAMtCC,EAAAA,eAAe,EAAE,0BANqB;AAOtCC,EAAAA,MAAM,EAAE,0CAP8B;AAQtCC,EAAAA,SAAS,EACL;AATkC,CAAjB,CAAlB;AAYP,OAAO,IAAMC,GAAG,gBAAGV,MAAH,CAAU,KAAV;AAAA;AAAA;AAAA,GAAiB;AAC7BG,EAAAA,OAAO,EAAE,MADoB;AAE7BC,EAAAA,aAAa,EAAE,KAFc;AAG7BG,EAAAA,eAAe,EAAE,0BAHY;AAI7BI,EAAAA,WAAW,EAAE,EAJgB;AAK7BC,EAAAA,YAAY,EAAE,EALe;AAM7BV,EAAAA,QAAQ,EAAE;AANmB,CAAjB,CAAT;AASP,OAAO,IAAMW,cAAc,gBAAGd,GAAG,CAAC;AAC9BG,EAAAA,QAAQ,EAAE,UADoB;AAE9BY,EAAAA,IAAI,EAAE,QAFwB;AAG9BP,EAAAA,eAAe,EAAE,6BAHa;AAI9BQ,EAAAA,OAAO,EAAE,QAJqB;AAK9BC,EAAAA,MAAM,EAAE,EALsB;AAM9BV,EAAAA,YAAY,EAAE,CANgB;AAO9BE,EAAAA,MAAM,EAAE,0CAPsB;AAQ9BS,EAAAA,UAAU,EAAE,kBARkB;AAS9BC,EAAAA,KAAK,EAAE,6BATuB;AAU9BC,EAAAA,MAAM,EAAE,MAVsB;AAW9B,aAAW;AACPV,IAAAA,SAAS,EACL;AAFG;AAXmB,CAAD,0BAA1B;AAiBP,OAAO,IAAMW,SAAS,gBAAGrB,GAAG,CAAC;AACzBsB,EAAAA,KAAK,EAAE,EADkB;AAEzBF,EAAAA,MAAM,EAAE,MAFiB;AAGzBjB,EAAAA,QAAQ,EAAE,UAHe;AAIzBoB,EAAAA,IAAI,EAAE,EAJmB;AAKzBC,EAAAA,GAAG,EAAE,KALoB;AAMzBC,EAAAA,SAAS,EAAE,kBANc;AAOzBC,EAAAA,MAAM,EAAE,CAPiB;AAQzBP,EAAAA,KAAK,EAAE;AARkB,CAAD,qBAArB;AAWP,OAAO,IAAMQ,WAAW,gBAAG3B,GAAG,CAAC;AAC3BoB,EAAAA,MAAM,EAAE;AADmB,CAAD,uBAAvB","sourcesContent":["import { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const RowContainer = styled(\"div\")({\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n marginBottom: 20,\n borderRadius: 2,\n backgroundColor: \"var(--mdc-theme-surface)\",\n border: \"1px solid var(--mdc-theme-on-background)\",\n boxShadow:\n \"var(--mdc-theme-on-background) 1px 1px 1px, var(--mdc-theme-on-background) 1px 1px 2px\"\n});\n\nexport const Row = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n backgroundColor: \"var(--mdc-theme-surface)\",\n paddingLeft: 40,\n paddingRight: 10,\n position: \"relative\"\n});\n\nexport const fieldContainer = css({\n position: \"relative\",\n flex: \"1 100%\",\n backgroundColor: \"var(--mdc-theme-background)\",\n padding: \"0 15px\",\n margin: 10,\n borderRadius: 2,\n border: \"1px solid var(--mdc-theme-on-background)\",\n transition: \"box-shadow 225ms\",\n color: \"var(--mdc-theme-on-surface)\",\n cursor: \"grab\",\n \"&:hover\": {\n boxShadow:\n \"var(--mdc-theme-on-background) 1px 1px 1px, var(--mdc-theme-on-background) 1px 1px 2px\"\n }\n});\n\nexport const rowHandle = css({\n width: 30,\n cursor: \"grab\",\n position: \"absolute\",\n left: 10,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n zIndex: 1,\n color: \"var(--mdc-theme-on-surface)\"\n});\n\nexport const fieldHandle = css({\n cursor: \"grab\"\n});\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["FieldEditor","useFieldEditor"],"mappings":"AAAA,SAASA,WAAT;AACA,SAASC,cAAT","sourcesContent":["export { FieldEditor } from \"./FieldEditor\";\nexport { useFieldEditor } from \"./useFieldEditor\";\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useFieldEditor.ts"],"names":["useContext","FieldEditorContext","useFieldEditor"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,kBAAT;AAEA,OAAO,SAASC,cAAT,GAA0B;AAC7B,SAAOF,UAAU,CAACC,kBAAD,CAAjB;AACH","sourcesContent":["import { useContext } from \"react\";\nimport { FieldEditorContext } from \"./FieldEditorContext\";\n\nexport function useFieldEditor() {\n return useContext(FieldEditorContext);\n}\n"]}
@@ -1,10 +1,8 @@
1
- import { CmsEditorField, CmsEditorFieldsLayout } from "../../../../types";
2
- interface Data {
3
- fields: CmsEditorField[];
4
- layout: CmsEditorFieldsLayout;
1
+ import { CmsEditorField, CmsModel } from "../../../../types";
2
+ declare type DeleteFieldParamsData = Pick<CmsModel, "fields" | "layout">;
3
+ interface DeleteFieldParams {
4
+ field: Pick<CmsEditorField, "id">;
5
+ data: DeleteFieldParamsData;
5
6
  }
6
- declare const _default: ({ field, data }: {
7
- field: CmsEditorField;
8
- data: Data;
9
- }) => any;
7
+ declare const _default: (params: DeleteFieldParams) => any;
10
8
  export default _default;
@@ -1,14 +1,18 @@
1
1
  import dot from "dot-prop-immutable";
2
- export default (function (_ref) {
3
- var field = _ref.field,
4
- data = _ref.data;
5
- // Remove the field from fields list...
6
- var fieldIndex = data.fields.findIndex(function (item) {
2
+ export default (function (params) {
3
+ var field = params.field,
4
+ prev = params.data; // Remove the field from fields list...
5
+
6
+ var fieldIndex = prev.fields.findIndex(function (item) {
7
7
  return item.id === field.id;
8
8
  });
9
- data = dot.delete(data, "fields.".concat(fieldIndex)); // ...and rebuild the layout object.
9
+ var data = dot.delete(prev, "fields.".concat(fieldIndex)); // ...and rebuild the layout object.
10
10
 
11
11
  return dot.set(data, "layout", function (layout) {
12
+ if (!layout) {
13
+ return [];
14
+ }
15
+
12
16
  var newLayout = [];
13
17
  var currentRowIndex = 0;
14
18
  layout.forEach(function (row) {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["deleteField.ts"],"names":["dot","params","field","prev","data","fieldIndex","fields","findIndex","item","id","delete","set","layout","newLayout","currentRowIndex","forEach","row","fieldId","find","Array","isArray","push","length"],"mappings":"AAAA,OAAOA,GAAP,MAAgB,oBAAhB;AAQA,gBAAe,UAACC,MAAD,EAA+B;AAC1C,MAAQC,KAAR,GAA8BD,MAA9B,CAAQC,KAAR;AAAA,MAAqBC,IAArB,GAA8BF,MAA9B,CAAeG,IAAf,CAD0C,CAE1C;;AACA,MAAMC,UAAU,GAAGF,IAAI,CAACG,MAAL,CAAYC,SAAZ,CAAsB,UAAAC,IAAI;AAAA,WAAIA,IAAI,CAACC,EAAL,KAAYP,KAAK,CAACO,EAAtB;AAAA,GAA1B,CAAnB;AACA,MAAML,IAAI,GAAGJ,GAAG,CAACU,MAAJ,CAAWP,IAAX,mBAA2BE,UAA3B,EAAb,CAJ0C,CAM1C;;AACA,SAAOL,GAAG,CAACW,GAAJ,CAAQP,IAAR,EAAc,QAAd,EAAwB,UAACQ,MAAD,EAA6C;AACxE,QAAI,CAACA,MAAL,EAAa;AACT,aAAO,EAAP;AACH;;AACD,QAAMC,SAA0C,GAAG,EAAnD;AACA,QAAIC,eAAe,GAAG,CAAtB;AACAF,IAAAA,MAAM,CAACG,OAAP,CAAe,UAAAC,GAAG,EAAI;AAClBA,MAAAA,GAAG,CAACD,OAAJ,CAAY,UAAAE,OAAO,EAAI;AACnB,YAAMf,KAAK,GAAGE,IAAI,CAACE,MAAL,CAAYY,IAAZ,CAAiB,UAAAV,IAAI;AAAA,iBAAIA,IAAI,CAACC,EAAL,KAAYQ,OAAhB;AAAA,SAArB,CAAd;;AACA,YAAI,CAACf,KAAL,EAAY;AACR;AACH;;AACD,YAAI,CAACiB,KAAK,CAACC,OAAN,CAAcP,SAAS,CAACC,eAAD,CAAvB,CAAL,EAAgD;AAC5CD,UAAAA,SAAS,CAACC,eAAD,CAAT,GAA6B,EAA7B;AACH;;AAEDD,QAAAA,SAAS,CAACC,eAAD,CAAT,CAA2BO,IAA3B,CAAgCJ,OAAhC;AACH,OAVD;AAWAJ,MAAAA,SAAS,CAACC,eAAD,CAAT,IAA8BD,SAAS,CAACC,eAAD,CAAT,CAA2BQ,MAAzD,IAAmER,eAAe,EAAlF;AACH,KAbD;AAeA,WAAOD,SAAP;AACH,GAtBM,CAAP;AAuBH,CA9BD","sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\n\ntype DeleteFieldParamsData = Pick<CmsModel, \"fields\" | \"layout\">;\ninterface DeleteFieldParams {\n field: Pick<CmsEditorField, \"id\">;\n data: DeleteFieldParamsData;\n}\nexport default (params: DeleteFieldParams) => {\n const { field, data: prev } = params;\n // Remove the field from fields list...\n const fieldIndex = prev.fields.findIndex(item => item.id === field.id);\n const data = dot.delete(prev, `fields.${fieldIndex}`) as DeleteFieldParamsData;\n\n // ...and rebuild the layout object.\n return dot.set(data, \"layout\", (layout: DeleteFieldParamsData[\"layout\"]) => {\n if (!layout) {\n return [];\n }\n const newLayout: DeleteFieldParamsData[\"layout\"] = [];\n let currentRowIndex = 0;\n layout.forEach(row => {\n row.forEach(fieldId => {\n const field = data.fields.find(item => item.id === fieldId);\n if (!field) {\n return;\n }\n if (!Array.isArray(newLayout[currentRowIndex])) {\n newLayout[currentRowIndex] = [];\n }\n\n newLayout[currentRowIndex].push(fieldId);\n });\n newLayout[currentRowIndex] && newLayout[currentRowIndex].length && currentRowIndex++;\n });\n\n return newLayout;\n });\n};\n"]}
@@ -1,6 +1,7 @@
1
- import { FieldLayoutPosition } from "../../../../types";
2
- declare const _default: ({ field, data }: {
3
- field: any;
4
- data: any;
5
- }) => FieldLayoutPosition;
1
+ import { CmsEditorField, CmsModel, FieldLayoutPosition } from "../../../../types";
2
+ interface GetFieldPositionParams {
3
+ field: string | CmsEditorField;
4
+ data: Pick<CmsModel, "layout">;
5
+ }
6
+ declare const _default: (params: GetFieldPositionParams) => FieldLayoutPosition | null;
6
7
  export default _default;
@@ -1,10 +1,11 @@
1
- export default (function (_ref) {
2
- var field = _ref.field,
3
- data = _ref.data;
1
+ export default (function (params) {
2
+ var field = params.field,
3
+ data = params.data;
4
4
  var id = typeof field === "string" ? field : field.id;
5
+ var layout = data.layout ? data.layout : [];
5
6
 
6
- for (var i = 0; i < data.layout.length; i++) {
7
- var row = data.layout[i];
7
+ for (var i = 0; i < layout.length; i++) {
8
+ var row = layout[i];
8
9
 
9
10
  for (var j = 0; j < row.length; j++) {
10
11
  if (row[j] === id) {
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getFieldPosition.ts"],"names":["params","field","data","id","layout","i","length","row","j","index"],"mappings":"AAMA,gBAAe,UAACA,MAAD,EAAgE;AAC3E,MAAQC,KAAR,GAAwBD,MAAxB,CAAQC,KAAR;AAAA,MAAeC,IAAf,GAAwBF,MAAxB,CAAeE,IAAf;AACA,MAAMC,EAAE,GAAG,OAAOF,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCA,KAAK,CAACE,EAArD;AACA,MAAMC,MAAM,GAAGF,IAAI,CAACE,MAAL,GAAcF,IAAI,CAACE,MAAnB,GAA4B,EAA3C;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,MAAM,CAACE,MAA3B,EAAmCD,CAAC,EAApC,EAAwC;AACpC,QAAME,GAAG,GAAGH,MAAM,CAACC,CAAD,CAAlB;;AACA,SAAK,IAAIG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,GAAG,CAACD,MAAxB,EAAgCE,CAAC,EAAjC,EAAqC;AACjC,UAAID,GAAG,CAACC,CAAD,CAAH,KAAWL,EAAf,EAAmB;AACf,eAAO;AAAEI,UAAAA,GAAG,EAAEF,CAAP;AAAUI,UAAAA,KAAK,EAAED;AAAjB,SAAP;AACH;AACJ;AACJ;;AAED,SAAO,IAAP;AACH,CAdD","sourcesContent":["import { CmsEditorField, CmsModel, FieldLayoutPosition } from \"~/types\";\n\ninterface GetFieldPositionParams {\n field: string | CmsEditorField;\n data: Pick<CmsModel, \"layout\">;\n}\nexport default (params: GetFieldPositionParams): FieldLayoutPosition | null => {\n const { field, data } = params;\n const id = typeof field === \"string\" ? field : field.id;\n const layout = data.layout ? data.layout : [];\n for (let i = 0; i < layout.length; i++) {\n const row = layout[i];\n for (let j = 0; j < row.length; j++) {\n if (row[j] === id) {\n return { row: i, index: j };\n }\n }\n }\n\n return null;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":["default","getFieldPosition","moveField","deleteField","moveRow"],"mappings":"AAAA,SAASA,OAAO,IAAIC,gBAApB;AACA,SAASD,OAAO,IAAIE,SAApB;AACA,SAASF,OAAO,IAAIG,WAApB;AACA,SAASH,OAAO,IAAII,OAApB","sourcesContent":["export { default as getFieldPosition } from \"./getFieldPosition\";\nexport { default as moveField } from \"./moveField\";\nexport { default as deleteField } from \"./deleteField\";\nexport { default as moveRow } from \"./moveRow\";\n"]}
@@ -1,7 +1,8 @@
1
1
  import { CmsEditorField, CmsEditorFieldId, FieldLayoutPosition } from "../../../../types";
2
- declare const _default: (params: {
3
- field: CmsEditorFieldId | CmsEditorField;
2
+ interface MoveFieldParams<T> {
3
+ field: CmsEditorFieldId | Pick<CmsEditorField, "id">;
4
4
  position: FieldLayoutPosition;
5
- data: object;
6
- }) => any;
5
+ data: T;
6
+ }
7
+ declare const _default: <T extends Required<Pick<import("../../../../types").CmsEditorContentModel, "layout" | "fields">>>(params: MoveFieldParams<T>) => T;
7
8
  export default _default;
@@ -1,32 +1,38 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
3
  import dot from "dot-prop-immutable";
3
4
  import getFieldPosition from "./getFieldPosition";
4
5
 
5
- var moveField = function moveField(_ref) {
6
- var field = _ref.field,
7
- position = _ref.position,
8
- data = _ref.data;
6
+ var moveField = function moveField(params) {
7
+ var field = params.field,
8
+ position = params.position,
9
+ prev = params.data;
9
10
  var row = position.row,
10
11
  index = position.index;
11
12
  var fieldId = typeof field === "string" ? field : field.id;
13
+
14
+ var next = _objectSpread(_objectSpread({}, prev), {}, {
15
+ layout: prev.layout ? prev.layout || [] : []
16
+ });
17
+
12
18
  var existingPosition = getFieldPosition({
13
19
  field: fieldId,
14
- data: data
20
+ data: prev
15
21
  });
16
22
 
17
23
  if (existingPosition) {
18
- data = dot.delete(data, "layout.".concat(existingPosition.row, ".").concat(existingPosition.index));
24
+ next = dot.delete(prev, "layout.".concat(existingPosition.row, ".").concat(existingPosition.index));
19
25
  } // Setting a form field into a new non-existing row.
20
26
 
21
27
 
22
- if (!data.layout[row]) {
23
- return dot.set(data, "layout.".concat(row), [fieldId]);
28
+ if (!next.layout[row]) {
29
+ return dot.set(next, "layout.".concat(row), [fieldId]);
24
30
  } // Drop the field at the specified index.
25
31
 
26
32
 
27
33
  if (index === null) {
28
34
  // Create a new row with the new field at the given row index,
29
- return dot.set(data, "layout", function (layout) {
35
+ return dot.set(next, "layout", function (layout) {
30
36
  var newLayout = _toConsumableArray(layout);
31
37
 
32
38
  newLayout.splice(row, 0, [fieldId]);
@@ -34,7 +40,7 @@ var moveField = function moveField(_ref) {
34
40
  });
35
41
  }
36
42
 
37
- return dot.set(data, "layout.".concat(row), function (layout) {
43
+ return dot.set(next, "layout.".concat(row), function (layout) {
38
44
  var newLayout = _toConsumableArray(layout);
39
45
 
40
46
  newLayout.splice(index, 0, fieldId);
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["moveField.ts"],"names":["dot","getFieldPosition","moveField","params","field","position","prev","data","row","index","fieldId","id","next","layout","existingPosition","delete","set","newLayout","splice","filter","length"],"mappings":";;AAAA,OAAOA,GAAP,MAAgB,oBAAhB;AAOA,OAAOC,gBAAP;;AAUA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAAqBC,MAArB,EAAoD;AAClE,MAAQC,KAAR,GAAwCD,MAAxC,CAAQC,KAAR;AAAA,MAAeC,QAAf,GAAwCF,MAAxC,CAAeE,QAAf;AAAA,MAA+BC,IAA/B,GAAwCH,MAAxC,CAAyBI,IAAzB;AACA,MAAQC,GAAR,GAAuBH,QAAvB,CAAQG,GAAR;AAAA,MAAaC,KAAb,GAAuBJ,QAAvB,CAAaI,KAAb;AACA,MAAMC,OAAO,GAAG,OAAON,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoCA,KAAK,CAACO,EAA1D;;AAEA,MAAIC,IAAO,mCACJN,IADI;AAEPO,IAAAA,MAAM,EAAEP,IAAI,CAACO,MAAL,GAAcP,IAAI,CAACO,MAAL,IAAe,EAA7B,GAAkC;AAFnC,IAAX;;AAKA,MAAMC,gBAAgB,GAAGb,gBAAgB,CAAC;AAAEG,IAAAA,KAAK,EAAEM,OAAT;AAAkBH,IAAAA,IAAI,EAAED;AAAxB,GAAD,CAAzC;;AAEA,MAAIQ,gBAAJ,EAAsB;AAClBF,IAAAA,IAAI,GAAGZ,GAAG,CAACe,MAAJ,CAAWT,IAAX,mBAA2BQ,gBAAgB,CAACN,GAA5C,cAAmDM,gBAAgB,CAACL,KAApE,EAAP;AACH,GAdiE,CAgBlE;;;AACA,MAAI,CAACG,IAAI,CAACC,MAAL,CAAYL,GAAZ,CAAL,EAAuB;AACnB,WAAOR,GAAG,CAACgB,GAAJ,CAAQJ,IAAR,mBAAwBJ,GAAxB,GAA+B,CAACE,OAAD,CAA/B,CAAP;AACH,GAnBiE,CAqBlE;;;AACA,MAAID,KAAK,KAAK,IAAd,EAAoB;AAChB;AACA,WAAOT,GAAG,CAACgB,GAAJ,CAAQJ,IAAR,EAAc,QAAd,EAAwB,UAACC,MAAD,EAAwB;AACnD,UAAMI,SAAS,sBAAOJ,MAAP,CAAf;;AACAI,MAAAA,SAAS,CAACC,MAAV,CAAiBV,GAAjB,EAAsB,CAAtB,EAAyB,CAACE,OAAD,CAAzB;AACA,aAAOO,SAAP;AACH,KAJM,CAAP;AAKH;;AAED,SAAOjB,GAAG,CAACgB,GAAJ,CAAQJ,IAAR,mBAAwBJ,GAAxB,GAA+B,UAACK,MAAD,EAAsB;AACxD,QAAMI,SAAS,sBAAOJ,MAAP,CAAf;;AACAI,IAAAA,SAAS,CAACC,MAAV,CAAiBT,KAAjB,EAAwB,CAAxB,EAA2BC,OAA3B;AACA,WAAOO,SAAP;AACH,GAJM,CAAP;AAKH,CApCD;;AAsCA,gBAAe,UAAqBd,MAArB,EAAuD;AAClE,SAAOH,GAAG,CAACgB,GAAJ,CAAQd,SAAS,CAAIC,MAAJ,CAAjB,EAA8B,QAA9B,EAAwC,UAACU,MAAD,EAAwB;AACnE,WAAO,mBAAIA,MAAJ,EAAYM,MAAZ,CAAmB,UAAAX,GAAG;AAAA,aAAIA,GAAG,CAACY,MAAJ,GAAa,CAAjB;AAAA,KAAtB,CAAP;AACH,GAFM,CAAP;AAGH,CAJD","sourcesContent":["import dot from \"dot-prop-immutable\";\nimport {\n CmsEditorField,\n CmsEditorFieldId,\n CmsModel as BaseCmsModel,\n FieldLayoutPosition\n} from \"~/types\";\nimport getFieldPosition from \"./getFieldPosition\";\n\ntype CmsModel = Required<Pick<BaseCmsModel, \"fields\" | \"layout\">>;\n\ninterface MoveFieldParams<T> {\n field: CmsEditorFieldId | Pick<CmsEditorField, \"id\">;\n position: FieldLayoutPosition;\n data: T;\n}\n\nconst moveField = <T extends CmsModel>(params: MoveFieldParams<T>) => {\n const { field, position, data: prev } = params;\n const { row, index } = position;\n const fieldId = typeof field === \"string\" ? field : field.id;\n\n let next: T = {\n ...prev,\n layout: prev.layout ? prev.layout || [] : []\n };\n\n const existingPosition = getFieldPosition({ field: fieldId, data: prev });\n\n if (existingPosition) {\n next = dot.delete(prev, `layout.${existingPosition.row}.${existingPosition.index}`) as T;\n }\n\n // Setting a form field into a new non-existing row.\n if (!next.layout[row]) {\n return dot.set(next, `layout.${row}`, [fieldId]);\n }\n\n // Drop the field at the specified index.\n if (index === null) {\n // Create a new row with the new field at the given row index,\n return dot.set(next, \"layout\", (layout: string[][]) => {\n const newLayout = [...layout];\n newLayout.splice(row, 0, [fieldId]);\n return newLayout;\n });\n }\n\n return dot.set(next, `layout.${row}`, (layout: string[]) => {\n const newLayout = [...layout];\n newLayout.splice(index, 0, fieldId);\n return newLayout;\n });\n};\n\nexport default <T extends CmsModel>(params: MoveFieldParams<T>): T => {\n return dot.set(moveField<T>(params), \"layout\", (layout: string[][]) => {\n return [...layout].filter(row => row.length > 0);\n });\n};\n"]}
@@ -1,9 +1,8 @@
1
- import { CmsEditorFieldsLayout } from "../../../../types";
2
- declare const _default: ({ data, source, destination }: {
1
+ import { CmsModel } from "../../../../types";
2
+ interface Params {
3
3
  source: number;
4
4
  destination: number;
5
- data: {
6
- layout: CmsEditorFieldsLayout;
7
- };
8
- }) => any;
5
+ data: Pick<CmsModel, "layout">;
6
+ }
7
+ declare const _default: ({ data, source, destination }: Params) => any;
9
8
  export default _default;