@webiny/app-headless-cms 5.36.2 → 5.37.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (675) hide show
  1. package/HeadlessCMS.js +3 -2
  2. package/HeadlessCMS.js.map +1 -1
  3. package/admin/components/ContentEntries/Empty/index.d.ts +9 -0
  4. package/admin/components/ContentEntries/Empty/index.js +42 -0
  5. package/admin/components/ContentEntries/Empty/index.js.map +1 -0
  6. package/admin/components/ContentEntries/Empty/styled.d.ts +14 -0
  7. package/admin/components/ContentEntries/Empty/styled.js +19 -0
  8. package/admin/components/ContentEntries/Empty/styled.js.map +1 -0
  9. package/admin/components/ContentEntries/Filters/FilterByStatus.d.ts +2 -0
  10. package/admin/components/ContentEntries/Filters/FilterByStatus.js +54 -0
  11. package/admin/components/ContentEntries/Filters/FilterByStatus.js.map +1 -0
  12. package/admin/components/ContentEntries/Filters/Filters.d.ts +2 -0
  13. package/admin/components/ContentEntries/Filters/Filters.js +32 -0
  14. package/admin/components/ContentEntries/Filters/Filters.js.map +1 -0
  15. package/admin/components/ContentEntries/Filters/index.d.ts +2 -0
  16. package/admin/components/ContentEntries/Filters/index.js +27 -0
  17. package/admin/components/ContentEntries/Filters/index.js.map +1 -0
  18. package/admin/components/ContentEntries/Filters/styles.d.ts +15 -0
  19. package/admin/components/ContentEntries/Filters/styles.js +23 -0
  20. package/admin/components/ContentEntries/Filters/styles.js.map +1 -0
  21. package/admin/components/ContentEntries/Header/ButtonFilters/ButtonFilters.d.ts +2 -0
  22. package/admin/components/ContentEntries/Header/ButtonFilters/ButtonFilters.js +41 -0
  23. package/admin/components/ContentEntries/Header/ButtonFilters/ButtonFilters.js.map +1 -0
  24. package/admin/components/ContentEntries/Header/ButtonFilters/index.d.ts +1 -0
  25. package/admin/components/ContentEntries/Header/ButtonFilters/index.js +16 -0
  26. package/admin/components/ContentEntries/Header/ButtonFilters/index.js.map +1 -0
  27. package/admin/components/ContentEntries/Header/ButtonsCreate/ButtonsCreate.d.ts +7 -0
  28. package/admin/components/ContentEntries/Header/ButtonsCreate/ButtonsCreate.js +34 -0
  29. package/admin/components/ContentEntries/Header/ButtonsCreate/ButtonsCreate.js.map +1 -0
  30. package/admin/components/ContentEntries/Header/ButtonsCreate/index.d.ts +1 -0
  31. package/admin/components/ContentEntries/Header/ButtonsCreate/index.js +16 -0
  32. package/admin/components/ContentEntries/Header/ButtonsCreate/index.js.map +1 -0
  33. package/admin/components/ContentEntries/Header/ButtonsCreate/styled.d.ts +7 -0
  34. package/admin/components/ContentEntries/Header/ButtonsCreate/styled.js +13 -0
  35. package/admin/components/ContentEntries/Header/ButtonsCreate/styled.js.map +1 -0
  36. package/admin/components/ContentEntries/Header/Header.d.ts +11 -0
  37. package/admin/components/ContentEntries/Header/Header.js +41 -0
  38. package/admin/components/ContentEntries/Header/Header.js.map +1 -0
  39. package/admin/components/ContentEntries/Header/Title/Title.d.ts +6 -0
  40. package/admin/components/ContentEntries/Header/Title/Title.js +20 -0
  41. package/admin/components/ContentEntries/Header/Title/Title.js.map +1 -0
  42. package/admin/components/ContentEntries/Header/Title/index.d.ts +1 -0
  43. package/admin/components/ContentEntries/Header/Title/index.js +16 -0
  44. package/admin/components/ContentEntries/Header/Title/index.js.map +1 -0
  45. package/admin/components/ContentEntries/Header/Title/styled.d.ts +7 -0
  46. package/admin/components/ContentEntries/Header/Title/styled.js +14 -0
  47. package/admin/components/ContentEntries/Header/Title/styled.js.map +1 -0
  48. package/admin/components/ContentEntries/Header/index.d.ts +1 -0
  49. package/admin/components/ContentEntries/Header/index.js +16 -0
  50. package/admin/components/ContentEntries/Header/index.js.map +1 -0
  51. package/admin/components/ContentEntries/Header/styled.d.ts +11 -0
  52. package/admin/components/ContentEntries/Header/styled.js +18 -0
  53. package/admin/components/ContentEntries/Header/styled.js.map +1 -0
  54. package/admin/components/ContentEntries/LoadMoreButton/LoadMoreButton.d.ts +10 -0
  55. package/admin/components/ContentEntries/LoadMoreButton/LoadMoreButton.js +30 -0
  56. package/admin/components/ContentEntries/LoadMoreButton/LoadMoreButton.js.map +1 -0
  57. package/admin/components/ContentEntries/LoadMoreButton/index.d.ts +1 -0
  58. package/admin/components/ContentEntries/LoadMoreButton/index.js +16 -0
  59. package/admin/components/ContentEntries/LoadMoreButton/index.js.map +1 -0
  60. package/admin/components/ContentEntries/LoadMoreButton/styled.d.ts +7 -0
  61. package/admin/components/ContentEntries/LoadMoreButton/styled.js +13 -0
  62. package/admin/components/ContentEntries/LoadMoreButton/styled.js.map +1 -0
  63. package/admin/components/ContentEntries/LoadingMore/index.d.ts +2 -0
  64. package/admin/components/ContentEntries/LoadingMore/index.js +23 -0
  65. package/admin/components/ContentEntries/LoadingMore/index.js.map +1 -0
  66. package/admin/components/ContentEntries/LoadingMore/styled.d.ts +11 -0
  67. package/admin/components/ContentEntries/LoadingMore/styled.js +18 -0
  68. package/admin/components/ContentEntries/LoadingMore/styled.js.map +1 -0
  69. package/admin/components/ContentEntries/Table/Row/Folder/FolderActionDelete.d.ts +6 -0
  70. package/admin/components/ContentEntries/Table/Row/Folder/FolderActionDelete.js +25 -0
  71. package/admin/components/ContentEntries/Table/Row/Folder/FolderActionDelete.js.map +1 -0
  72. package/admin/components/ContentEntries/Table/Row/Folder/FolderActionEdit.d.ts +6 -0
  73. package/admin/components/ContentEntries/Table/Row/Folder/FolderActionEdit.js +25 -0
  74. package/admin/components/ContentEntries/Table/Row/Folder/FolderActionEdit.js.map +1 -0
  75. package/admin/components/ContentEntries/Table/Row/Name.d.ts +12 -0
  76. package/admin/components/ContentEntries/Table/Row/Name.js +49 -0
  77. package/admin/components/ContentEntries/Table/Row/Name.js.map +1 -0
  78. package/admin/components/ContentEntries/Table/Row/Record/RecordActionDelete.d.ts +7 -0
  79. package/admin/{views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js → components/ContentEntries/Table/Row/Record/RecordActionDelete.js} +45 -72
  80. package/admin/components/ContentEntries/Table/Row/Record/RecordActionDelete.js.map +1 -0
  81. package/admin/components/ContentEntries/Table/Row/Record/RecordActionEdit.d.ts +11 -0
  82. package/admin/components/ContentEntries/Table/Row/Record/RecordActionEdit.js +30 -0
  83. package/admin/components/ContentEntries/Table/Row/Record/RecordActionEdit.js.map +1 -0
  84. package/admin/components/ContentEntries/Table/Row/Record/RecordActionMove.d.ts +6 -0
  85. package/admin/components/ContentEntries/Table/Row/Record/RecordActionMove.js +25 -0
  86. package/admin/components/ContentEntries/Table/Row/Record/RecordActionMove.js.map +1 -0
  87. package/admin/components/ContentEntries/Table/Row/Record/RecordActionPublish.d.ts +17 -0
  88. package/admin/components/ContentEntries/Table/Row/Record/RecordActionPublish.js +94 -0
  89. package/admin/components/ContentEntries/Table/Row/Record/RecordActionPublish.js.map +1 -0
  90. package/admin/components/ContentEntries/Table/index.d.ts +13 -0
  91. package/admin/components/ContentEntries/Table/index.js +235 -0
  92. package/admin/components/ContentEntries/Table/index.js.map +1 -0
  93. package/admin/components/ContentEntries/Table/styled.d.ts +4 -0
  94. package/admin/components/ContentEntries/Table/styled.js +17 -0
  95. package/admin/components/ContentEntries/Table/styled.js.map +1 -0
  96. package/admin/components/ContentEntries/Table/types.d.ts +24 -0
  97. package/admin/components/ContentEntries/Table/types.js.map +1 -0
  98. package/admin/components/ContentEntryForm/ContentEntryForm.js +2 -2
  99. package/admin/components/ContentEntryForm/ContentEntryForm.js.map +1 -1
  100. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js +2 -2
  101. package/admin/components/ContentEntryForm/ContentEntryFormPreview.js.map +1 -1
  102. package/admin/components/ContentEntryForm/Fields.js +2 -2
  103. package/admin/components/ContentEntryForm/Fields.js.map +1 -1
  104. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.d.ts +2 -0
  105. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.js +20 -0
  106. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -0
  107. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.styles.d.ts +7 -0
  108. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.styles.js +13 -0
  109. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/ContentFormOptionsMenu.styles.js.map +1 -0
  110. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/index.d.ts +1 -0
  111. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/index.js +16 -0
  112. package/admin/components/ContentEntryForm/Header/ContentFormOptionsMenu/index.js.map +1 -0
  113. package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.d.ts +2 -0
  114. package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js +46 -0
  115. package/admin/components/ContentEntryForm/Header/DeleteEntry/DeleteEntry.js.map +1 -0
  116. package/admin/components/ContentEntryForm/Header/DeleteEntry/index.d.ts +1 -0
  117. package/admin/components/ContentEntryForm/Header/DeleteEntry/index.js +16 -0
  118. package/admin/components/ContentEntryForm/Header/DeleteEntry/index.js.map +1 -0
  119. package/admin/components/ContentEntryForm/Header/DeleteEntry/useDeleteEntry.d.ts +9 -0
  120. package/admin/components/ContentEntryForm/Header/DeleteEntry/useDeleteEntry.js +85 -0
  121. package/admin/components/ContentEntryForm/Header/DeleteEntry/useDeleteEntry.js.map +1 -0
  122. package/admin/components/ContentEntryForm/Header/Header.d.ts +2 -0
  123. package/admin/{views/contentEntries/ContentEntry/header → components/ContentEntryForm/Header}/Header.js +13 -7
  124. package/admin/components/ContentEntryForm/Header/Header.js.map +1 -0
  125. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.d.ts +2 -0
  126. package/admin/{views/contentEntries/ContentEntry/header/revisionSelector → components/ContentEntryForm/Header/RevisionSelector}/RevisionSelector.js +14 -33
  127. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.js.map +1 -0
  128. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.styles.d.ts +36 -0
  129. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.styles.js +20 -0
  130. package/admin/components/ContentEntryForm/Header/RevisionSelector/RevisionSelector.styles.js.map +1 -0
  131. package/admin/components/ContentEntryForm/Header/RevisionSelector/index.d.ts +1 -0
  132. package/admin/components/ContentEntryForm/Header/RevisionSelector/index.js +16 -0
  133. package/admin/components/ContentEntryForm/Header/RevisionSelector/index.js.map +1 -0
  134. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/SaveAndPublishContent.js +35 -0
  135. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/SaveAndPublishContent.js.map +1 -0
  136. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/index.d.ts +1 -0
  137. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/index.js +16 -0
  138. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/index.js.map +1 -0
  139. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/useSaveAndPublish.d.ts +11 -0
  140. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/useSaveAndPublish.js +68 -0
  141. package/admin/components/ContentEntryForm/Header/SaveAndPublishContent/useSaveAndPublish.js.map +1 -0
  142. package/admin/components/ContentEntryForm/Header/SaveContent/SaveContent.d.ts +2 -0
  143. package/admin/{views/contentEntries/ContentEntry/header/saveContent → components/ContentEntryForm/Header/SaveContent}/SaveContent.js +11 -13
  144. package/admin/components/ContentEntryForm/Header/SaveContent/SaveContent.js.map +1 -0
  145. package/admin/components/ContentEntryForm/Header/SaveContent/index.d.ts +1 -0
  146. package/admin/components/ContentEntryForm/Header/SaveContent/index.js +16 -0
  147. package/admin/components/ContentEntryForm/Header/SaveContent/index.js.map +1 -0
  148. package/admin/components/ContentEntryForm/Header/index.d.ts +5 -0
  149. package/admin/components/ContentEntryForm/Header/index.js +60 -0
  150. package/admin/components/ContentEntryForm/Header/index.js.map +1 -0
  151. package/admin/components/ContentEntryForm/Label.js.map +1 -1
  152. package/admin/components/ContentEntryForm/RenderFieldElement.d.ts +2 -4
  153. package/admin/components/ContentEntryForm/RenderFieldElement.js +15 -5
  154. package/admin/components/ContentEntryForm/RenderFieldElement.js.map +1 -1
  155. package/admin/components/ContentEntryForm/functions/getValue.js.map +1 -1
  156. package/admin/components/ContentEntryForm/functions/setValue.js.map +1 -1
  157. package/admin/components/ContentEntryForm/useBind.js.map +1 -1
  158. package/admin/components/ContentEntryForm/useContentEntryForm.d.ts +2 -2
  159. package/admin/components/ContentEntryForm/useContentEntryForm.js +47 -29
  160. package/admin/components/ContentEntryForm/useContentEntryForm.js.map +1 -1
  161. package/admin/components/ContentEntryForm/useRenderPlugins.js.map +1 -1
  162. package/admin/components/ContentModelEditor/ContentModelEditorProvider.js.map +1 -1
  163. package/admin/components/ContentModelEditor/Editor.js.map +1 -1
  164. package/admin/components/ContentModelEditor/FieldsSidebar.js.map +1 -1
  165. package/admin/components/ContentModelEditor/Header.js.map +1 -1
  166. package/admin/components/ContentModelEditor/PreviewTab.js.map +1 -1
  167. package/admin/components/ContentModelEditor/index.js.map +1 -1
  168. package/admin/components/ContentModelEditor/useModelEditor.js.map +1 -1
  169. package/admin/components/DelayedOnChange.js +9 -0
  170. package/admin/components/DelayedOnChange.js.map +1 -1
  171. package/admin/components/Dialog.js.map +1 -1
  172. package/admin/components/DragPreview.js.map +1 -1
  173. package/admin/components/Draggable.js.map +1 -1
  174. package/admin/components/DropZone/Center.js.map +1 -1
  175. package/admin/components/DropZone/Horizontal.d.ts +1 -1
  176. package/admin/components/DropZone/Horizontal.js.map +1 -1
  177. package/admin/components/DropZone/Vertical.d.ts +1 -1
  178. package/admin/components/DropZone/Vertical.js.map +1 -1
  179. package/admin/components/DropZone/index.js.map +1 -1
  180. package/admin/components/Droppable.d.ts +1 -1
  181. package/admin/components/Droppable.js.map +1 -1
  182. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js +16 -2
  183. package/admin/components/FieldEditor/EditFieldDialog/AppearanceTab.js.map +1 -1
  184. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +3 -3
  185. package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
  186. package/admin/components/FieldEditor/EditFieldDialog/PredefinedValues.js.map +1 -1
  187. package/admin/components/FieldEditor/EditFieldDialog/ValidationsSection.js.map +1 -1
  188. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js +5 -5
  189. package/admin/components/FieldEditor/EditFieldDialog/ValidatorsList.js.map +1 -1
  190. package/admin/components/FieldEditor/EditFieldDialog/functions/getValue.js.map +1 -1
  191. package/admin/components/FieldEditor/EditFieldDialog/functions/setValue.js.map +1 -1
  192. package/admin/components/FieldEditor/EditFieldDialog/getValidators.js.map +1 -1
  193. package/admin/components/FieldEditor/EditFieldDialog.js +4 -1
  194. package/admin/components/FieldEditor/EditFieldDialog.js.map +1 -1
  195. package/admin/components/FieldEditor/Field.js.map +1 -1
  196. package/admin/components/FieldEditor/FieldEditor.js.map +1 -1
  197. package/admin/components/FieldEditor/FieldEditorContext.d.ts +2 -14
  198. package/admin/components/FieldEditor/FieldEditorContext.js +4 -0
  199. package/admin/components/FieldEditor/FieldEditorContext.js.map +1 -1
  200. package/admin/components/FieldEditor/Styled.js.map +1 -1
  201. package/admin/components/FieldEditor/index.js.map +1 -1
  202. package/admin/components/FieldEditor/useModelFieldEditor.js.map +1 -1
  203. package/admin/components/FieldEditor/utils/deleteField.js.map +1 -1
  204. package/admin/components/FieldEditor/utils/getFieldPosition.js.map +1 -1
  205. package/admin/components/FieldEditor/utils/index.js.map +1 -1
  206. package/admin/components/FieldEditor/utils/moveField.js.map +1 -1
  207. package/admin/components/FieldEditor/utils/moveRow.js.map +1 -1
  208. package/admin/components/IconPicker.js.map +1 -1
  209. package/admin/components/LexicalCmsEditor/LexicalCmsEditor.d.ts +3 -0
  210. package/admin/components/LexicalCmsEditor/LexicalCmsEditor.js +45 -0
  211. package/admin/components/LexicalCmsEditor/LexicalCmsEditor.js.map +1 -0
  212. package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.d.ts +2 -0
  213. package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js +98 -0
  214. package/admin/components/LexicalCmsEditor/LexicalEditorCmsPlugin.js.map +1 -0
  215. package/admin/components/LexicalCmsEditor/TypographyDropDown.d.ts +2 -0
  216. package/admin/components/LexicalCmsEditor/TypographyDropDown.js +105 -0
  217. package/admin/components/LexicalCmsEditor/TypographyDropDown.js.map +1 -0
  218. package/admin/components/ModelFieldProvider/ModelFieldContext.d.ts +3 -13
  219. package/admin/components/ModelFieldProvider/ModelFieldContext.js.map +1 -1
  220. package/admin/components/ModelFieldProvider/index.js.map +1 -1
  221. package/admin/components/ModelFieldProvider/useModelField.d.ts +4 -13
  222. package/admin/components/ModelFieldProvider/useModelField.js.map +1 -1
  223. package/admin/components/ModelProvider/ModelContext.js.map +1 -1
  224. package/admin/components/ModelProvider/index.js.map +1 -1
  225. package/admin/components/ModelProvider/useModel.js.map +1 -1
  226. package/admin/config/contentEntries/editor/Actions/BaseAction.d.ts +16 -0
  227. package/admin/config/contentEntries/editor/Actions/BaseAction.js +52 -0
  228. package/admin/config/contentEntries/editor/Actions/BaseAction.js.map +1 -0
  229. package/admin/config/contentEntries/editor/Actions/ButtonAction.d.ts +8 -0
  230. package/admin/config/contentEntries/editor/Actions/ButtonAction.js +20 -0
  231. package/admin/config/contentEntries/editor/Actions/ButtonAction.js.map +1 -0
  232. package/admin/config/contentEntries/editor/Actions/MenuItemAction.d.ts +8 -0
  233. package/admin/config/contentEntries/editor/Actions/MenuItemAction.js +20 -0
  234. package/admin/config/contentEntries/editor/Actions/MenuItemAction.js.map +1 -0
  235. package/admin/config/contentEntries/editor/Actions/index.d.ts +13 -0
  236. package/admin/config/contentEntries/editor/Actions/index.js +13 -0
  237. package/admin/config/contentEntries/editor/Actions/index.js.map +1 -0
  238. package/admin/config/contentEntries/editor/ContentEntryEditorConfig.d.ts +18 -0
  239. package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js +33 -0
  240. package/admin/config/contentEntries/editor/ContentEntryEditorConfig.js.map +1 -0
  241. package/admin/config/contentEntries/editor/index.d.ts +1 -0
  242. package/admin/config/contentEntries/editor/index.js +16 -0
  243. package/admin/config/contentEntries/editor/index.js.map +1 -0
  244. package/admin/config/contentEntries/index.d.ts +2 -0
  245. package/admin/config/contentEntries/index.js +27 -0
  246. package/admin/config/contentEntries/index.js.map +1 -0
  247. package/admin/config/contentEntries/list/Browser/Filter.d.ts +20 -0
  248. package/admin/config/contentEntries/list/Browser/Filter.js +66 -0
  249. package/admin/config/contentEntries/list/Browser/Filter.js.map +1 -0
  250. package/admin/config/contentEntries/list/Browser/FiltersToWhere.d.ts +9 -0
  251. package/admin/config/contentEntries/list/Browser/FiltersToWhere.js +29 -0
  252. package/admin/config/contentEntries/list/Browser/FiltersToWhere.js.map +1 -0
  253. package/admin/config/contentEntries/list/Browser/index.d.ts +13 -0
  254. package/admin/config/contentEntries/list/Browser/index.js +13 -0
  255. package/admin/config/contentEntries/list/Browser/index.js.map +1 -0
  256. package/admin/config/contentEntries/list/ContentEntryListConfig.d.ts +18 -0
  257. package/admin/config/contentEntries/list/ContentEntryListConfig.js +32 -0
  258. package/admin/config/contentEntries/list/ContentEntryListConfig.js.map +1 -0
  259. package/admin/config/contentEntries/list/index.d.ts +1 -0
  260. package/admin/config/contentEntries/list/index.js +16 -0
  261. package/admin/config/contentEntries/list/index.js.map +1 -0
  262. package/admin/constants/folders.d.ts +1 -0
  263. package/admin/constants/folders.js +8 -0
  264. package/admin/constants/folders.js.map +1 -0
  265. package/admin/constants/statusLabels.d.ts +6 -2
  266. package/admin/constants/statusLabels.js +2 -3
  267. package/admin/constants/statusLabels.js.map +1 -1
  268. package/admin/constants.d.ts +3 -0
  269. package/admin/constants.js +17 -0
  270. package/admin/constants.js.map +1 -0
  271. package/admin/contexts/Cms/NetworkError.js.map +1 -1
  272. package/admin/contexts/Cms/index.d.ts +7 -12
  273. package/admin/contexts/Cms/index.js.map +1 -1
  274. package/admin/elements/ContentGroupMenuElement.js.map +1 -1
  275. package/admin/elements/ContentModelMenuElement.js.map +1 -1
  276. package/admin/elements/NothingToShowElement.js.map +1 -1
  277. package/admin/graphql/contentModels.js.map +1 -1
  278. package/admin/graphql/createFieldsList.js +0 -2
  279. package/admin/graphql/createFieldsList.js.map +1 -1
  280. package/admin/hooks/index.js.map +1 -1
  281. package/admin/hooks/useApolloClient.js.map +1 -1
  282. package/admin/hooks/useCms.js.map +1 -1
  283. package/admin/hooks/useContentModels.d.ts +3 -0
  284. package/admin/hooks/useContentModels.js +4 -2
  285. package/admin/hooks/useContentModels.js.map +1 -1
  286. package/admin/hooks/useLazyQuery.js.map +1 -1
  287. package/admin/hooks/useMutation.js.map +1 -1
  288. package/admin/hooks/usePermission.d.ts +3 -2
  289. package/admin/hooks/usePermission.js +131 -63
  290. package/admin/hooks/usePermission.js.map +1 -1
  291. package/admin/hooks/useQuery.js.map +1 -1
  292. package/admin/hooks/useQueryLocale.js.map +1 -1
  293. package/admin/lexicalConfig/LexicalEditorConfig.d.ts +12 -0
  294. package/admin/lexicalConfig/LexicalEditorConfig.js +37 -0
  295. package/admin/lexicalConfig/LexicalEditorConfig.js.map +1 -0
  296. package/admin/menus/CmsMenuLoader.js.map +1 -1
  297. package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
  298. package/admin/menus/GlobalSearchPlugins.js.map +1 -1
  299. package/admin/menus/NothingToShowElement.js.map +1 -1
  300. package/admin/plugins/apiInformation/index.js.map +1 -1
  301. package/admin/plugins/arrayUtils.js.map +1 -1
  302. package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js +0 -3
  303. package/admin/plugins/definitions/CmsEditorFieldValidatorFileTypePlugin.js.map +1 -1
  304. package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js +0 -2
  305. package/admin/plugins/definitions/CmsFieldValidatorFileTypePlugin.js.map +1 -1
  306. package/admin/plugins/editor/defaultBar/BackButton.js.map +1 -1
  307. package/admin/plugins/editor/defaultBar/CreateContentButton.js.map +1 -1
  308. package/admin/plugins/editor/defaultBar/Divider.js.map +1 -1
  309. package/admin/plugins/editor/defaultBar/FormSettings/FormSettings.js.map +1 -1
  310. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsButton.js.map +1 -1
  311. package/admin/plugins/editor/defaultBar/FormSettings/FormSettingsStyled.js.map +1 -1
  312. package/admin/plugins/editor/defaultBar/FormSettings/index.js.map +1 -1
  313. package/admin/plugins/editor/defaultBar/Name/Name.js +4 -0
  314. package/admin/plugins/editor/defaultBar/Name/Name.js.map +1 -1
  315. package/admin/plugins/editor/defaultBar/Name/NameStyled.js.map +1 -1
  316. package/admin/plugins/editor/defaultBar/Name/index.js.map +1 -1
  317. package/admin/plugins/editor/defaultBar/SaveContentModelButton.js.map +1 -1
  318. package/admin/plugins/editor/defaultBar/index.js.map +1 -1
  319. package/admin/plugins/editor/formSettings/components/GeneralSettings.js.map +1 -1
  320. package/admin/plugins/editor/formSettings/components/GroupSelect.js.map +1 -1
  321. package/admin/plugins/editor/formSettings/index.js.map +1 -1
  322. package/admin/plugins/entry/DefaultOnEntryDelete.js +15 -22
  323. package/admin/plugins/entry/DefaultOnEntryDelete.js.map +1 -1
  324. package/admin/plugins/entry/DefaultOnEntryPublish.js +2 -11
  325. package/admin/plugins/entry/DefaultOnEntryPublish.js.map +1 -1
  326. package/admin/plugins/fieldRenderers/Accordion.js.map +1 -1
  327. package/admin/plugins/fieldRenderers/DynamicSection.js.map +1 -1
  328. package/admin/plugins/fieldRenderers/boolean/booleanSwitch.js.map +1 -1
  329. package/admin/plugins/fieldRenderers/boolean/index.d.ts +1 -1
  330. package/admin/plugins/fieldRenderers/boolean/index.js.map +1 -1
  331. package/admin/plugins/fieldRenderers/checkboxes.js.map +1 -1
  332. package/admin/plugins/fieldRenderers/dateTime/DateOnly.js.map +1 -1
  333. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js +2 -1
  334. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithTimezone.js.map +1 -1
  335. package/admin/plugins/fieldRenderers/dateTime/DateTimeWithoutTimezone.js.map +1 -1
  336. package/admin/plugins/fieldRenderers/dateTime/Input.js.map +1 -1
  337. package/admin/plugins/fieldRenderers/dateTime/Select.js.map +1 -1
  338. package/admin/plugins/fieldRenderers/dateTime/Time.js.map +1 -1
  339. package/admin/plugins/fieldRenderers/dateTime/dateTimeField.js.map +1 -1
  340. package/admin/plugins/fieldRenderers/dateTime/dateTimeFields.js.map +1 -1
  341. package/admin/plugins/fieldRenderers/dateTime/index.d.ts +1 -1
  342. package/admin/plugins/fieldRenderers/dateTime/index.js.map +1 -1
  343. package/admin/plugins/fieldRenderers/dateTime/utils.d.ts +0 -4
  344. package/admin/plugins/fieldRenderers/dateTime/utils.js +1 -120
  345. package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
  346. package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
  347. package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
  348. package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
  349. package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -1
  350. package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
  351. package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
  352. package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
  353. package/admin/plugins/fieldRenderers/file/File.js +7 -2
  354. package/admin/plugins/fieldRenderers/file/File.js.map +1 -1
  355. package/admin/plugins/fieldRenderers/file/fileField.js +44 -7
  356. package/admin/plugins/fieldRenderers/file/fileField.js.map +1 -1
  357. package/admin/plugins/fieldRenderers/file/fileFields.d.ts +2 -2
  358. package/admin/plugins/fieldRenderers/file/fileFields.js +27 -4
  359. package/admin/plugins/fieldRenderers/file/fileFields.js.map +1 -1
  360. package/admin/plugins/fieldRenderers/file/index.d.ts +1 -1
  361. package/admin/plugins/fieldRenderers/file/index.js.map +1 -1
  362. package/admin/plugins/fieldRenderers/file/utils.js +1 -1
  363. package/admin/plugins/fieldRenderers/file/utils.js.map +1 -1
  364. package/admin/plugins/fieldRenderers/lexicalText/index.d.ts +1 -0
  365. package/admin/plugins/fieldRenderers/lexicalText/index.js +13 -0
  366. package/admin/plugins/fieldRenderers/lexicalText/index.js.map +1 -0
  367. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.d.ts +3 -0
  368. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js +53 -0
  369. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInput.js.map +1 -0
  370. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.d.ts +3 -0
  371. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js +74 -0
  372. package/admin/plugins/fieldRenderers/lexicalText/lexicalTextInputs.js.map +1 -0
  373. package/admin/plugins/fieldRenderers/lexicalText/utils.d.ts +2 -0
  374. package/admin/plugins/fieldRenderers/lexicalText/utils.js +12 -0
  375. package/admin/plugins/fieldRenderers/lexicalText/utils.js.map +1 -0
  376. package/admin/plugins/fieldRenderers/longText/index.d.ts +1 -1
  377. package/admin/plugins/fieldRenderers/longText/index.js.map +1 -1
  378. package/admin/plugins/fieldRenderers/longText/longText.js.map +1 -1
  379. package/admin/plugins/fieldRenderers/longText/longTexts.js.map +1 -1
  380. package/admin/plugins/fieldRenderers/number/index.d.ts +1 -1
  381. package/admin/plugins/fieldRenderers/number/index.js.map +1 -1
  382. package/admin/plugins/fieldRenderers/number/numberInput.js.map +1 -1
  383. package/admin/plugins/fieldRenderers/number/numberInputs.js.map +1 -1
  384. package/admin/plugins/fieldRenderers/object/StyledComponents.js.map +1 -1
  385. package/admin/plugins/fieldRenderers/object/index.d.ts +1 -1
  386. package/admin/plugins/fieldRenderers/object/index.js.map +1 -1
  387. package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
  388. package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
  389. package/admin/plugins/fieldRenderers/object/singleObjectAccordion.js.map +1 -1
  390. package/admin/plugins/fieldRenderers/object/singleObjectInline.js.map +1 -1
  391. package/admin/plugins/fieldRenderers/radioButtons.js.map +1 -1
  392. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
  393. package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
  394. package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -1
  395. package/admin/plugins/fieldRenderers/ref/advanced/components/Entry.js.map +1 -1
  396. package/admin/plugins/fieldRenderers/ref/advanced/components/Loader.js.map +1 -1
  397. package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map +1 -1
  398. package/admin/plugins/fieldRenderers/ref/advanced/components/Options.js.map +1 -1
  399. package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -1
  400. package/admin/plugins/fieldRenderers/ref/advanced/components/Search.js.map +1 -1
  401. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/Dialog.js.map +1 -1
  402. package/admin/plugins/fieldRenderers/ref/advanced/components/dialog/DialogHeader.js.map +1 -1
  403. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Box.js.map +1 -1
  404. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/CreatedBy.js.map +1 -1
  405. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Description.js.map +1 -1
  406. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js +6 -2
  407. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Image.js.map +1 -1
  408. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModelName.js.map +1 -1
  409. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/ModifiedBy.js.map +1 -1
  410. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveDown.js.map +1 -1
  411. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/MoveUp.js.map +1 -1
  412. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Remove.js.map +1 -1
  413. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Select.js.map +1 -1
  414. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Status.js.map +1 -1
  415. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/Title.js.map +1 -1
  416. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js +3 -1
  417. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/View.js.map +1 -1
  418. package/admin/plugins/fieldRenderers/ref/advanced/components/entry/elements/ButtonLink.js.map +1 -1
  419. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -1
  420. package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelListItem.js.map +1 -1
  421. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferenceRenderer.js.map +1 -1
  422. package/admin/plugins/fieldRenderers/ref/advanced/detailedReferencesRenderer.js.map +1 -1
  423. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.d.ts +3 -0
  424. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +2 -2
  425. package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -1
  426. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js +5 -1
  427. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useEntries.js.map +1 -1
  428. package/admin/plugins/fieldRenderers/ref/advanced/hooks/useReferences.js.map +1 -1
  429. package/admin/plugins/fieldRenderers/ref/advanced/index.d.ts +1 -1
  430. package/admin/plugins/fieldRenderers/ref/advanced/index.js.map +1 -1
  431. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesAutocomplete.js.map +1 -1
  432. package/admin/plugins/fieldRenderers/ref/components/ContentEntriesMultiAutoComplete.js.map +1 -1
  433. package/admin/plugins/fieldRenderers/ref/components/EntryStatus.js.map +1 -1
  434. package/admin/plugins/fieldRenderers/ref/components/MissingEntryHelpText.js.map +1 -1
  435. package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
  436. package/admin/plugins/fieldRenderers/ref/components/createEntryUrl.js.map +1 -1
  437. package/admin/plugins/fieldRenderers/ref/components/graphql.js +5 -0
  438. package/admin/plugins/fieldRenderers/ref/components/graphql.js.map +1 -1
  439. package/admin/plugins/fieldRenderers/ref/components/helpers.js.map +1 -1
  440. package/admin/plugins/fieldRenderers/ref/components/renderItem.js.map +1 -1
  441. package/admin/plugins/fieldRenderers/ref/components/types.d.ts +3 -0
  442. package/admin/plugins/fieldRenderers/ref/components/types.js.map +1 -1
  443. package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
  444. package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
  445. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntry.js.map +1 -1
  446. package/admin/plugins/fieldRenderers/ref/hooks/useNewRefEntryDialog.js.map +1 -1
  447. package/admin/plugins/fieldRenderers/ref/index.d.ts +1 -1
  448. package/admin/plugins/fieldRenderers/ref/index.js.map +1 -1
  449. package/admin/plugins/fieldRenderers/ref/refInput.js.map +1 -1
  450. package/admin/plugins/fieldRenderers/ref/refInputs.js.map +1 -1
  451. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleItems.js.map +1 -1
  452. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js +0 -2
  453. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleMultipleRenderer.js.map +1 -1
  454. package/admin/plugins/fieldRenderers/ref/simple/components/SimpleSingleRenderer.js.map +1 -1
  455. package/admin/plugins/fieldRenderers/ref/simple/components/useContentModels.js.map +1 -1
  456. package/admin/plugins/fieldRenderers/ref/simple/components/useReferences.js.map +1 -1
  457. package/admin/plugins/fieldRenderers/ref/simple/index.d.ts +1 -1
  458. package/admin/plugins/fieldRenderers/ref/simple/index.js.map +1 -1
  459. package/admin/plugins/fieldRenderers/ref/simple/simpleMultipleRenderer.js.map +1 -1
  460. package/admin/plugins/fieldRenderers/ref/simple/simpleSingleRenderer.js.map +1 -1
  461. package/admin/plugins/fieldRenderers/richText/index.d.ts +1 -2
  462. package/admin/plugins/fieldRenderers/richText/index.js +5 -3
  463. package/admin/plugins/fieldRenderers/richText/index.js.map +1 -1
  464. package/admin/plugins/fieldRenderers/richText/richTextInput.js +22 -4
  465. package/admin/plugins/fieldRenderers/richText/richTextInput.js.map +1 -1
  466. package/admin/plugins/fieldRenderers/richText/richTextInputs.js +22 -4
  467. package/admin/plugins/fieldRenderers/richText/richTextInputs.js.map +1 -1
  468. package/admin/plugins/fieldRenderers/richText/utils.d.ts +4 -0
  469. package/admin/plugins/fieldRenderers/richText/utils.js +18 -0
  470. package/admin/plugins/fieldRenderers/richText/utils.js.map +1 -0
  471. package/admin/plugins/fieldRenderers/select.js.map +1 -1
  472. package/admin/plugins/fieldRenderers/text/index.d.ts +1 -1
  473. package/admin/plugins/fieldRenderers/text/index.js.map +1 -1
  474. package/admin/plugins/fieldRenderers/text/textInput.js.map +1 -1
  475. package/admin/plugins/fieldRenderers/text/textInputs.js.map +1 -1
  476. package/admin/plugins/fieldValidators/date/availableValidators.js.map +1 -1
  477. package/admin/plugins/fieldValidators/date/createDateInputField.js.map +1 -1
  478. package/admin/plugins/fieldValidators/dateGte.js.map +1 -1
  479. package/admin/plugins/fieldValidators/dateLte.js.map +1 -1
  480. package/admin/plugins/fieldValidators/dynamicZone.js.map +1 -1
  481. package/admin/plugins/fieldValidators/gte.js.map +1 -1
  482. package/admin/plugins/fieldValidators/in.js.map +1 -1
  483. package/admin/plugins/fieldValidators/lte.js.map +1 -1
  484. package/admin/plugins/fieldValidators/maxLength.js.map +1 -1
  485. package/admin/plugins/fieldValidators/minLength.js.map +1 -1
  486. package/admin/plugins/fieldValidators/pattern.js.map +1 -1
  487. package/admin/plugins/fieldValidators/patternPlugins/email.js.map +1 -1
  488. package/admin/plugins/fieldValidators/patternPlugins/lowerCase.js.map +1 -1
  489. package/admin/plugins/fieldValidators/patternPlugins/lowerCaseSpace.js.map +1 -1
  490. package/admin/plugins/fieldValidators/patternPlugins/upperCase.js.map +1 -1
  491. package/admin/plugins/fieldValidators/patternPlugins/upperCaseSpace.js.map +1 -1
  492. package/admin/plugins/fieldValidators/patternPlugins/url.js.map +1 -1
  493. package/admin/plugins/fieldValidators/required.js.map +1 -1
  494. package/admin/plugins/fieldValidators/unique.js.map +1 -1
  495. package/admin/plugins/fields/PredefinedValuesDynamicFieldset.js.map +1 -1
  496. package/admin/plugins/fields/boolean.js.map +1 -1
  497. package/admin/plugins/fields/dateTime.js +2 -2
  498. package/admin/plugins/fields/dateTime.js.map +1 -1
  499. package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
  500. package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
  501. package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
  502. package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
  503. package/admin/plugins/fields/dynamicZone/commonValidators.js.map +1 -1
  504. package/admin/plugins/fields/dynamicZone.js.map +1 -1
  505. package/admin/plugins/fields/file.js.map +1 -1
  506. package/admin/plugins/fields/longText.js.map +1 -1
  507. package/admin/plugins/fields/number.js.map +1 -1
  508. package/admin/plugins/fields/object/ObjectFields.js.map +1 -1
  509. package/admin/plugins/fields/object.js.map +1 -1
  510. package/admin/plugins/fields/ref/graphql.js.map +1 -1
  511. package/admin/plugins/fields/ref/renderInfo.js.map +1 -1
  512. package/admin/plugins/fields/ref.js.map +1 -1
  513. package/admin/plugins/fields/richText.js.map +1 -1
  514. package/admin/plugins/fields/text.js.map +1 -1
  515. package/admin/plugins/getObjectId.js.map +1 -1
  516. package/admin/plugins/icons.js.map +1 -1
  517. package/admin/plugins/index.d.ts +8 -18
  518. package/admin/plugins/index.js +1 -2
  519. package/admin/plugins/index.js.map +1 -1
  520. package/admin/plugins/install.js +1 -1
  521. package/admin/plugins/install.js.map +1 -1
  522. package/admin/plugins/permissionRenderer/CmsPermissions.js +21 -1
  523. package/admin/plugins/permissionRenderer/CmsPermissions.js.map +1 -1
  524. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.d.ts +1 -0
  525. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js +5 -4
  526. package/admin/plugins/permissionRenderer/components/ContentEntryPermission.js.map +1 -1
  527. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.d.ts +1 -0
  528. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js +6 -3
  529. package/admin/plugins/permissionRenderer/components/ContentModelGroupPermission.js.map +1 -1
  530. package/admin/plugins/permissionRenderer/components/ContentModelList.js.map +1 -1
  531. package/admin/plugins/permissionRenderer/components/ContentModelPermission.d.ts +1 -0
  532. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js +5 -3
  533. package/admin/plugins/permissionRenderer/components/ContentModelPermission.js.map +1 -1
  534. package/admin/plugins/permissionRenderer/components/PermissionRendererWrapper.js.map +1 -1
  535. package/admin/plugins/permissionRenderer/components/PermissionSelector.d.ts +2 -0
  536. package/admin/plugins/permissionRenderer/components/PermissionSelector.js +7 -3
  537. package/admin/plugins/permissionRenderer/components/PermissionSelector.js.map +1 -1
  538. package/admin/plugins/permissionRenderer/components/StyledComponents.js.map +1 -1
  539. package/admin/plugins/permissionRenderer/components/useCmsData.js +5 -0
  540. package/admin/plugins/permissionRenderer/components/useCmsData.js.map +1 -1
  541. package/admin/plugins/permissionRenderer/index.js.map +1 -1
  542. package/admin/plugins/routes.js +8 -3
  543. package/admin/plugins/routes.js.map +1 -1
  544. package/admin/plugins/transformers/dateTransformer.js.map +1 -1
  545. package/admin/plugins/transformers/dynamicZoneTransformer.js.map +1 -1
  546. package/admin/plugins/transformers/index.js.map +1 -1
  547. package/admin/plugins/transformers/numberTransformer.js.map +1 -1
  548. package/admin/plugins/welcomeScreenWidget.js.map +1 -1
  549. package/admin/views/contentEntries/ContentEntries.d.ts +1 -2
  550. package/admin/views/contentEntries/ContentEntries.js +5 -12
  551. package/admin/views/contentEntries/ContentEntries.js.map +1 -1
  552. package/admin/views/contentEntries/ContentEntriesContainer.d.ts +4 -2
  553. package/admin/views/contentEntries/ContentEntriesContainer.js +2 -2
  554. package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -1
  555. package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -15
  556. package/admin/views/contentEntries/ContentEntriesContext.js +1 -52
  557. package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
  558. package/admin/views/contentEntries/ContentEntriesModule.js +29 -0
  559. package/admin/views/contentEntries/ContentEntriesModule.js.map +1 -0
  560. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +4 -4
  561. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +28 -15
  562. package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
  563. package/admin/views/contentEntries/ContentEntry/PublishEntryRevisionListItem.js.map +1 -1
  564. package/admin/views/contentEntries/ContentEntry/RevisionListItem.d.ts +2 -2
  565. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js +4 -0
  566. package/admin/views/contentEntries/ContentEntry/RevisionListItem.js.map +1 -1
  567. package/admin/views/contentEntries/ContentEntry/RevisionsList.js.map +1 -1
  568. package/admin/views/contentEntries/ContentEntry/prepareFormData.js.map +1 -1
  569. package/admin/views/contentEntries/ContentEntry/useRevision.d.ts +4 -2
  570. package/admin/views/contentEntries/ContentEntry/useRevision.js +15 -16
  571. package/admin/views/contentEntries/ContentEntry/useRevision.js.map +1 -1
  572. package/admin/views/contentEntries/ContentEntry.js +2 -2
  573. package/admin/views/contentEntries/ContentEntry.js.map +1 -1
  574. package/admin/views/contentEntries/Table/Main.d.ts +6 -0
  575. package/admin/views/contentEntries/Table/Main.js +130 -0
  576. package/admin/views/contentEntries/Table/Main.js.map +1 -0
  577. package/admin/views/contentEntries/Table/Sidebar.d.ts +6 -0
  578. package/admin/views/contentEntries/Table/Sidebar.js +63 -0
  579. package/admin/views/contentEntries/Table/Sidebar.js.map +1 -0
  580. package/admin/views/contentEntries/Table/index.d.ts +2 -0
  581. package/admin/views/contentEntries/Table/index.js +48 -0
  582. package/admin/views/contentEntries/Table/index.js.map +1 -0
  583. package/admin/views/contentEntries/Table/styled.d.ts +15 -0
  584. package/admin/views/contentEntries/Table/styled.js +23 -0
  585. package/admin/views/contentEntries/Table/styled.js.map +1 -0
  586. package/admin/views/contentEntries/hooks/index.js.map +1 -1
  587. package/admin/views/contentEntries/hooks/useContentEntries.js.map +1 -1
  588. package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +23 -18
  589. package/admin/views/contentEntries/hooks/useContentEntriesList.js +82 -116
  590. package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
  591. package/admin/views/contentEntries/hooks/useContentEntry.js.map +1 -1
  592. package/admin/views/contentModelGroups/ContentModelGroups.js.map +1 -1
  593. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js +5 -1
  594. package/admin/views/contentModelGroups/ContentModelGroupsDataList.js.map +1 -1
  595. package/admin/views/contentModelGroups/ContentModelGroupsForm.js.map +1 -1
  596. package/admin/views/contentModelGroups/graphql.js +6 -0
  597. package/admin/views/contentModelGroups/graphql.js.map +1 -1
  598. package/admin/views/contentModels/CloneContentModelDialog.js.map +1 -1
  599. package/admin/views/contentModels/ContentModelEditor.js.map +1 -1
  600. package/admin/views/contentModels/ContentModels.js.map +1 -1
  601. package/admin/views/contentModels/ContentModelsDataList.js +13 -4
  602. package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
  603. package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
  604. package/admin/views/contentModels/cache.js.map +1 -1
  605. package/admin/views/contentModels/helpers/apiNameValidator.js.map +1 -1
  606. package/admin/views/contentModels/helpers/nameValidator.js.map +1 -1
  607. package/admin/views/utils.js.map +1 -1
  608. package/admin/viewsGraphql.js.map +1 -1
  609. package/allPlugins.d.ts +8 -18
  610. package/allPlugins.js +3 -2
  611. package/allPlugins.js.map +1 -1
  612. package/index.d.ts +13 -9
  613. package/index.js +58 -5
  614. package/index.js.map +1 -1
  615. package/package.json +30 -26
  616. package/types.d.ts +1 -0
  617. package/types.js +16 -0
  618. package/types.js.map +1 -0
  619. package/utils/CmsModelFieldValidatorConfigAdapter.d.ts +2 -2
  620. package/utils/CmsModelFieldValidatorConfigAdapter.js +0 -4
  621. package/utils/CmsModelFieldValidatorConfigAdapter.js.map +1 -1
  622. package/utils/acoRecordTransform.d.ts +7 -0
  623. package/utils/acoRecordTransform.js +46 -0
  624. package/utils/acoRecordTransform.js.map +1 -0
  625. package/utils/allowCmsLegacyRichTextInput.d.ts +1 -0
  626. package/utils/allowCmsLegacyRichTextInput.js +10 -0
  627. package/utils/allowCmsLegacyRichTextInput.js.map +1 -0
  628. package/utils/createTypeName.js.map +1 -1
  629. package/utils/createValidators.js.map +1 -1
  630. package/utils/getFetchPolicy.js.map +1 -1
  631. package/utils/getModelTitleFieldId.js.map +1 -1
  632. package/admin/graphql/contentEntries.d.ts +0 -146
  633. package/admin/graphql/contentEntries.js +0 -112
  634. package/admin/graphql/contentEntries.js.map +0 -1
  635. package/admin/views/contentEntries/ContentEntriesList.d.ts +0 -3
  636. package/admin/views/contentEntries/ContentEntriesList.js +0 -199
  637. package/admin/views/contentEntries/ContentEntriesList.js.map +0 -1
  638. package/admin/views/contentEntries/ContentEntry/cache.d.ts +0 -9
  639. package/admin/views/contentEntries/ContentEntry/cache.js +0 -198
  640. package/admin/views/contentEntries/ContentEntry/cache.js.map +0 -1
  641. package/admin/views/contentEntries/ContentEntry/header/Header.d.ts +0 -3
  642. package/admin/views/contentEntries/ContentEntry/header/Header.js.map +0 -1
  643. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.d.ts +0 -3
  644. package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +0 -1
  645. package/admin/views/contentEntries/ContentEntry/header/index.d.ts +0 -3
  646. package/admin/views/contentEntries/ContentEntry/header/index.js +0 -40
  647. package/admin/views/contentEntries/ContentEntry/header/index.js.map +0 -1
  648. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.d.ts +0 -3
  649. package/admin/views/contentEntries/ContentEntry/header/revisionSelector/RevisionSelector.js.map +0 -1
  650. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js +0 -80
  651. package/admin/views/contentEntries/ContentEntry/header/saveAndPublishContent/SaveAndPublishContent.js.map +0 -1
  652. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.d.ts +0 -3
  653. package/admin/views/contentEntries/ContentEntry/header/saveContent/SaveContent.js.map +0 -1
  654. package/admin/views/contentEntries/experiment/ContentEntriesModule.js +0 -68
  655. package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +0 -1
  656. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.d.ts +0 -2
  657. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +0 -24
  658. package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +0 -1
  659. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +0 -37
  660. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +0 -128
  661. package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +0 -1
  662. package/types/index.d.ts +0 -490
  663. package/types/index.js +0 -38
  664. package/types/index.js.map +0 -1
  665. package/types/model.d.ts +0 -88
  666. package/types/model.js.map +0 -1
  667. package/types/shared.d.ts +0 -5
  668. package/types/shared.js +0 -5
  669. package/types/shared.js.map +0 -1
  670. package/types/validation.d.ts +0 -70
  671. package/types/validation.js +0 -5
  672. package/types/validation.js.map +0 -1
  673. /package/{types/model.js → admin/components/ContentEntries/Table/types.js} +0 -0
  674. /package/admin/{views/contentEntries/ContentEntry/header/saveAndPublishContent → components/ContentEntryForm/Header/SaveAndPublishContent}/SaveAndPublishContent.d.ts +0 -0
  675. /package/admin/views/contentEntries/{experiment/ContentEntriesModule.d.ts → ContentEntriesModule.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","ns","FieldContainer","styled","display","flexDirection","justifyContent","alignItems","LowerCase","Info","flex","lineHeight","Actions","position","FieldTypeName","textTransform","color","textAlign","fontSize","paddingRight","menuStyles","css","width","opacity","pointerEvents","FieldExtra","allowedTitleFieldTypes","isFieldAllowedToBeTitle","model","field","parent","multipleValues","includes","type","titleFieldId","fieldId","isFieldAllowedToBeDescription","descriptionFieldId","isFieldAllowedToBeImage","imageFieldId","settings","imagesOnly","getFieldTypeName","isTitleField","isDescriptionField","isImageField","filter","Boolean","join","Field","props","onEdit","useSnackbar","showSnackbar","useModelEditor","setModel","setData","data","useModelFieldEditor","getFieldPlugin","getFieldRendererPlugin","useConfirmationDialog","title","message","showConfirmation","lockedFields","isLocked","some","lockedField","storageId","removeFieldFromSelected","useCallback","id","onDelete","setAsTitle","response","error","setAsDescription","setAsImage","fieldPlugin","editorFieldOptionPlugins","plugins","byType","rendererPlugin","renderer","name","canEdit","canEditSettings","defaultInformationRenderer","useMemo","fieldTypeName","fn","displayName","fieldInformationRenderer","renderInfo","info","label","map","pl","React","cloneElement","render","key","memo"],"sources":["Field.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsEditorFieldOptionPlugin, CmsModel } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst LowerCase = styled.span`\n text-transform: lowercase;\n`;\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n position: \"relative\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\n/**\n * TODO @sven to give correct values\n */\nconst FieldTypeName = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n textTransform: \"uppercase\",\n color: \"#938F99\",\n flex: \"1\",\n textAlign: \"right\",\n fontSize: \"14px\",\n paddingRight: \"10px\"\n});\n\nconst menuStyles = css({\n width: \"220px\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst FieldExtra = styled.div`\n padding: 10px 0 10px;\n\n :empty {\n display: none;\n }\n`;\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n } else if (model.titleFieldId === field.fieldId) {\n return false;\n }\n return true;\n};\nconst isFieldAllowedToBeDescription = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.descriptionFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"long-text\";\n};\n\nconst isFieldAllowedToBeImage = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.imageFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"file\" && field.settings?.imagesOnly;\n};\n\nconst getFieldTypeName = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n): string | null => {\n if (parent) {\n return null;\n }\n const isTitleField = field.fieldId === model?.titleFieldId && !parent;\n const isDescriptionField = field.fieldId === model?.descriptionFieldId && !parent;\n const isImageField = field.fieldId === model?.imageFieldId && !parent;\n\n return (\n [\n isTitleField ? \"entry title\" : null,\n isDescriptionField ? \"entry description\" : null,\n isImageField ? \"entry image\" : null\n ]\n .filter(Boolean)\n .join(\"\") || null\n );\n};\n\nexport interface FieldProps {\n field: CmsModelField;\n onDelete: (field: CmsModelField) => void;\n onEdit: (field: CmsModelField) => void;\n parent?: CmsModelField;\n}\n\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData: setModel, data: model } = useModelEditor();\n const { getFieldPlugin, getFieldRendererPlugin } = useModelFieldEditor();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Warning - You are trying to delete a locked field!`,\n message: (\n <>\n <p>{t`You are about to delete a field which is used in the data storage`}</p>\n <p>{t`All data in that field will be lost and there is no going back!`}</p>\n <p>&nbsp;</p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n )\n });\n const lockedFields = model?.lockedFields || [];\n const isLocked = lockedFields.some(lockedField => lockedField.fieldId === field.storageId);\n\n const removeFieldFromSelected = useCallback(async () => {\n if (model.titleFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n titleFieldId: null\n };\n });\n } else if (model.descriptionFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n descriptionFieldId: null\n };\n });\n } else if (model.imageFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n imageFieldId: null\n };\n });\n }\n }, [field.id, setModel, model]);\n\n const onDelete = useCallback(async () => {\n if (!isLocked) {\n await removeFieldFromSelected();\n props.onDelete(field);\n return;\n }\n showConfirmation(async () => {\n await removeFieldFromSelected();\n props.onDelete(field);\n });\n }, [field.fieldId, lockedFields]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsDescription = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, descriptionFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Description field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsImage = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, imageFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Image field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const rendererPlugin = getFieldRendererPlugin(field.renderer.name);\n const canEdit = fieldPlugin.field.canEditSettings !== false;\n\n const defaultInformationRenderer = useMemo(() => {\n const fieldTypeName = getFieldTypeName(model, field, parent);\n const fn = () => {\n if (!fieldTypeName) {\n return null;\n }\n return <FieldTypeName>{fieldTypeName}</FieldTypeName>;\n };\n\n fn.displayName = \"FieldTypeRenderer\";\n\n return fn;\n }, [field.id]);\n\n const fieldInformationRenderer = fieldPlugin.field?.renderInfo;\n\n const info = [rendererPlugin?.renderer.name, field.multipleValues ? \"multiple values\" : null]\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label}\n {info && <LowerCase> ({info})</LowerCase>}\n </Typography>\n </Info>\n {fieldInformationRenderer\n ? fieldInformationRenderer({ model, field })\n : defaultInformationRenderer()}\n <Actions>\n {canEdit ? (\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n ) : null}\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(model, field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem\n disabled={!isFieldAllowedToBeDescription(model, field, parent)}\n onClick={setAsDescription}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as description`}\n </MenuItem>\n <MenuItem\n disabled={!isFieldAllowedToBeImage(model, field, parent)}\n onClick={setAsImage}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as image`}\n </MenuItem>\n\n <MenuItem onClick={onDelete}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <FieldExtra>\n {fieldPlugin.field.render &&\n fieldPlugin.field.render({ field, data: model, setData: setModel })}\n </FieldExtra>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_emotion","_styled","_interopRequireDefault","_Button","_Typography","_edit","_delete","_title24px","_more_vert","_Menu","_plugins","_List","_Icon","_i18n","_useSnackbar2","_hooks","_useModelFieldEditor2","_appAdmin","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","t","i18n","ns","FieldContainer","styled","target","label","display","flexDirection","justifyContent","alignItems","LowerCase","Info","flex","lineHeight","Actions","position","FieldTypeName","textTransform","color","textAlign","fontSize","paddingRight","menuStyles","css","width","opacity","pointerEvents","FieldExtra","allowedTitleFieldTypes","isFieldAllowedToBeTitle","model","field","parent","multipleValues","includes","type","titleFieldId","fieldId","isFieldAllowedToBeDescription","descriptionFieldId","isFieldAllowedToBeImage","_field$settings","imageFieldId","settings","imagesOnly","getFieldTypeName","isTitleField","isDescriptionField","isImageField","filter","Boolean","join","Field","props","_fieldPlugin$field","onEdit","_useSnackbar","useSnackbar","showSnackbar","_useModelEditor","useModelEditor","setModel","setData","data","_useModelFieldEditor","useModelFieldEditor","getFieldPlugin","getFieldRendererPlugin","_useConfirmationDialo","useConfirmationDialog","title","_taggedTemplateLiteral2","default","message","createElement","Fragment","showConfirmation","lockedFields","isLocked","some","lockedField","storageId","removeFieldFromSelected","useCallback","_asyncToGenerator2","_regeneratorRuntime2","mark","_callee","wrap","_callee$","_context","prev","next","_objectSpread2","stop","id","onDelete","_callee3","_callee3$","_context3","abrupt","_callee2","_callee2$","_context2","setAsTitle","_callee4","response","_callee4$","_context4","sent","error","setAsDescription","_callee5","_callee5$","_context5","setAsImage","_callee6","_callee6$","_context6","fieldPlugin","editorFieldOptionPlugins","plugins","byType","rendererPlugin","renderer","name","canEdit","canEditSettings","defaultInformationRenderer","useMemo","fieldTypeName","fn","displayName","fieldInformationRenderer","renderInfo","info","Typography","use","IconButton","icon","ReactComponent","onClick","Menu","className","handle","map","pl","React","cloneElement","render","key","MenuItem","disabled","ListItemGraphic","Icon","_default","memo","exports"],"sources":["Field.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"@material-design-icons/svg/outlined/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsModelField, CmsEditorFieldOptionPlugin, CmsModel } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useModelEditor } from \"~/admin/hooks\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { useConfirmationDialog } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst LowerCase = styled.span`\n text-transform: lowercase;\n`;\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n position: \"relative\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\n/**\n * TODO @sven to give correct values\n */\nconst FieldTypeName = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n textTransform: \"uppercase\",\n color: \"#938F99\",\n flex: \"1\",\n textAlign: \"right\",\n fontSize: \"14px\",\n paddingRight: \"10px\"\n});\n\nconst menuStyles = css({\n width: \"220px\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst FieldExtra = styled.div`\n padding: 10px 0 10px;\n\n :empty {\n display: none;\n }\n`;\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n } else if (model.titleFieldId === field.fieldId) {\n return false;\n }\n return true;\n};\nconst isFieldAllowedToBeDescription = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.descriptionFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"long-text\";\n};\n\nconst isFieldAllowedToBeImage = (model: CmsModel, field: CmsModelField, parent?: CmsModelField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (model.imageFieldId === field.fieldId) {\n return false;\n }\n return field.type === \"file\" && field.settings?.imagesOnly;\n};\n\nconst getFieldTypeName = (\n model: CmsModel,\n field: CmsModelField,\n parent?: CmsModelField\n): string | null => {\n if (parent) {\n return null;\n }\n const isTitleField = field.fieldId === model?.titleFieldId && !parent;\n const isDescriptionField = field.fieldId === model?.descriptionFieldId && !parent;\n const isImageField = field.fieldId === model?.imageFieldId && !parent;\n\n return (\n [\n isTitleField ? \"entry title\" : null,\n isDescriptionField ? \"entry description\" : null,\n isImageField ? \"entry image\" : null\n ]\n .filter(Boolean)\n .join(\"\") || null\n );\n};\n\nexport interface FieldProps {\n field: CmsModelField;\n onDelete: (field: CmsModelField) => void;\n onEdit: (field: CmsModelField) => void;\n parent?: CmsModelField;\n}\n\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData: setModel, data: model } = useModelEditor();\n const { getFieldPlugin, getFieldRendererPlugin } = useModelFieldEditor();\n\n const { showConfirmation } = useConfirmationDialog({\n title: t`Warning - You are trying to delete a locked field!`,\n message: (\n <>\n <p>{t`You are about to delete a field which is used in the data storage`}</p>\n <p>{t`All data in that field will be lost and there is no going back!`}</p>\n <p>&nbsp;</p>\n <p>{t`Are you sure you want to continue?`}</p>\n </>\n )\n });\n const lockedFields = model?.lockedFields || [];\n const isLocked = lockedFields.some(lockedField => lockedField.fieldId === field.storageId);\n\n const removeFieldFromSelected = useCallback(async () => {\n if (model.titleFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n titleFieldId: null\n };\n });\n } else if (model.descriptionFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n descriptionFieldId: null\n };\n });\n } else if (model.imageFieldId === field.fieldId) {\n await setModel(data => {\n return {\n ...data,\n imageFieldId: null\n };\n });\n }\n }, [field.id, setModel, model]);\n\n const onDelete = useCallback(async () => {\n if (!isLocked) {\n await removeFieldFromSelected();\n props.onDelete(field);\n return;\n }\n showConfirmation(async () => {\n await removeFieldFromSelected();\n props.onDelete(field);\n });\n }, [field.fieldId, lockedFields]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsDescription = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, descriptionFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Description field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const setAsImage = useCallback(async (): Promise<void> => {\n const response = await setModel(data => {\n return { ...data, imageFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Image field set successfully.`);\n }, [field.fieldId, setModel]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const rendererPlugin = getFieldRendererPlugin(field.renderer.name);\n const canEdit = fieldPlugin.field.canEditSettings !== false;\n\n const defaultInformationRenderer = useMemo(() => {\n const fieldTypeName = getFieldTypeName(model, field, parent);\n const fn = () => {\n if (!fieldTypeName) {\n return null;\n }\n return <FieldTypeName>{fieldTypeName}</FieldTypeName>;\n };\n\n fn.displayName = \"FieldTypeRenderer\";\n\n return fn;\n }, [field.id]);\n\n const fieldInformationRenderer = fieldPlugin.field?.renderInfo;\n\n const info = [rendererPlugin?.renderer.name, field.multipleValues ? \"multiple values\" : null]\n .filter(Boolean)\n .join(\", \");\n\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label}\n {info && <LowerCase> ({info})</LowerCase>}\n </Typography>\n </Info>\n {fieldInformationRenderer\n ? fieldInformationRenderer({ model, field })\n : defaultInformationRenderer()}\n <Actions>\n {canEdit ? (\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n ) : null}\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(model, field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem\n disabled={!isFieldAllowedToBeDescription(model, field, parent)}\n onClick={setAsDescription}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as description`}\n </MenuItem>\n <MenuItem\n disabled={!isFieldAllowedToBeImage(model, field, parent)}\n onClick={setAsImage}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as image`}\n </MenuItem>\n\n <MenuItem onClick={onDelete}>\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <FieldExtra>\n {fieldPlugin.field.render &&\n fieldPlugin.field.render({ field, data: model, setData: setModel })}\n </FieldExtra>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["t","i18n","namespace","fieldTypes","Editor","useModelFieldEditor","parent","depth","insertField","updateField","deleteField","fields","noConflict","editField","onFieldDrop","onEndDrag","field","dropTarget","getFieldPlugin","canDropIntoField","draggable","fieldPlugin","type","canAccept","isVerticalDropzoneVisible","cb","item","allowLayout","isHorizontalDropzoneVisible","length","row","index","map","fieldId","pos","f","join","drag","isDragging","opacity","rowHandle","fieldIndex","fieldContainer","includes","get","fieldHandle","id","position","FieldEditor","props"],"sources":["FieldEditor.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as HandleIcon } from \"~/admin/icons/round-drag_indicator-24px.svg\";\nimport { Center, Vertical, Horizontal } from \"../DropZone\";\nimport Draggable from \"../Draggable\";\nimport EditFieldDialog from \"./EditFieldDialog\";\nimport Field from \"./Field\";\nimport { rowHandle, fieldHandle, fieldContainer, Row, RowContainer } from \"./Styled\";\nimport { useModelFieldEditor } from \"./useModelFieldEditor\";\nimport { DragSource, FieldEditorProvider, IsVisibleCallable } from \"./FieldEditorContext\";\nimport { CmsModelField, CmsEditorFieldsLayout, CmsModelFieldTypePlugin } from \"~/types\";\nimport { ModelFieldProvider } from \"~/admin/components/ModelFieldProvider\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/components/editor\");\n\nconst fieldTypes: string[] = [\"field\", \"newField\"];\n\nconst Editor: React.FC = () => {\n const {\n parent,\n depth,\n insertField,\n updateField,\n deleteField,\n fields,\n noConflict,\n editField,\n onFieldDrop,\n onEndDrag,\n field,\n dropTarget,\n getFieldPlugin\n } = useModelFieldEditor();\n\n const canDropIntoField = (field: CmsModelField, draggable: DragSource) => {\n const fieldPlugin = getFieldPlugin(field.type) as CmsModelFieldTypePlugin;\n const canAccept = fieldPlugin.field.canAccept;\n if (typeof canAccept === \"function\" && !canAccept(field, draggable)) {\n return false;\n }\n\n return true;\n };\n\n const isVerticalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n const fieldPlugin = getFieldPlugin(parent.type) as CmsModelFieldTypePlugin;\n const allowLayout = fieldPlugin.field.allowLayout ?? true;\n if (!allowLayout) {\n return false;\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n const isHorizontalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n return (\n <Fragment>\n {fields.length === 0 && (\n <Center\n isDroppable={isHorizontalDropzoneVisible(() => true)}\n onDrop={item =>\n onFieldDrop(item, {\n row: 0,\n index: 0\n })\n }\n >\n {t`Drop your first field here`}\n </Center>\n )}\n\n {fields.map((row, index) => (\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"row\",\n fields: row,\n pos: { row: index }\n }}\n endDrag={onEndDrag}\n key={row.map(f => f.fieldId).join(\".\")}\n >\n {(\n {\n drag,\n isDragging\n } /* RowContainer start - includes drag handle, drop zones and the Row itself. */\n ) => (\n <RowContainer style={{ opacity: isDragging ? 0.3 : 1 }}>\n <div className={rowHandle} ref={drag}>\n <Icon icon={<HandleIcon />} />\n </div>\n <Horizontal\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n data-testid={`cms-editor-row-droppable-top-${index}`}\n onDrop={item => onFieldDrop(item, { row: index, index: null })}\n />\n {/* Row start - includes field drop zones and fields */}\n <Row data-testid={\"cms.editor.field-row\"}>\n {row.map((field, fieldIndex) => (\n <ModelFieldProvider field={field} key={field.fieldId}>\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"field\",\n field,\n pos: {\n row: index,\n index: fieldIndex\n }\n }}\n endDrag={onEndDrag}\n >\n {({ drag }) => (\n <div className={fieldContainer} ref={drag}>\n <Vertical\n depth={depth}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex\n })\n }\n isVisible={isVerticalDropzoneVisible(\n noConflict(\n item =>\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n )\n )}\n />\n\n <div className={fieldHandle}>\n <Field\n parent={parent}\n field={field}\n onEdit={editField}\n onDelete={deleteField}\n />\n </div>\n\n {/* Field end */}\n {fieldIndex === row.length - 1 && (\n <Vertical\n last\n depth={depth}\n isVisible={isVerticalDropzoneVisible(\n noConflict(item => {\n return (\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n );\n })\n )}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex + 1\n })\n }\n />\n )}\n </div>\n )}\n </Draggable>\n </ModelFieldProvider>\n ))}\n </Row>\n {/* Row end */}\n {index === fields.length - 1 ? (\n <Horizontal\n data-testid={`cms-editor-row-droppable-bottom-${index}`}\n last\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n onDrop={item =>\n onFieldDrop(item, {\n row: index + 1,\n index: null\n })\n }\n />\n ) : null}\n </RowContainer>\n )}\n </Draggable>\n ))}\n\n {field ? (\n <ModelFieldProvider field={field}>\n <EditFieldDialog\n onClose={() => editField(null)}\n onSubmit={field => {\n if (field.id) {\n updateField(field);\n editField(null);\n return;\n }\n insertField({ field, position: dropTarget });\n\n editField(null);\n }}\n />\n </ModelFieldProvider>\n ) : null}\n </Fragment>\n );\n};\n\nexport interface FieldEditorProps {\n parent?: CmsModelField;\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n onChange: (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }) => void;\n}\n\nexport const FieldEditor: React.FC<FieldEditorProps> = props => {\n return (\n <FieldEditorProvider {...props}>\n <Editor />\n </FieldEditorProvider>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_get","_interopRequireDefault","_Icon","_i18n","_roundDrag_indicator24px","_DropZone","_Draggable","_EditFieldDialog","_Field","_Styled","_useModelFieldEditor2","_FieldEditorContext","_ModelFieldProvider","_templateObject","t","i18n","namespace","fieldTypes","Editor","_useModelFieldEditor","useModelFieldEditor","parent","depth","insertField","updateField","deleteField","fields","noConflict","editField","onFieldDrop","onEndDrag","field","dropTarget","getFieldPlugin","canDropIntoField","draggable","fieldPlugin","type","canAccept","isVerticalDropzoneVisible","cb","item","_fieldPlugin$field$al","allowLayout","isHorizontalDropzoneVisible","default","createElement","Fragment","length","Center","isDroppable","onDrop","row","index","_taggedTemplateLiteral2","map","beginDrag","fieldId","pos","endDrag","key","f","join","_ref","drag","isDragging","RowContainer","style","opacity","className","rowHandle","ref","Icon","icon","ReactComponent","Horizontal","isVisible","concat","Row","fieldIndex","ModelFieldProvider","_ref2","fieldContainer","Vertical","includes","get","fieldHandle","onEdit","onDelete","last","onClose","onSubmit","id","position","FieldEditor","props","FieldEditorProvider","exports"],"sources":["FieldEditor.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ReactComponent as HandleIcon } from \"~/admin/icons/round-drag_indicator-24px.svg\";\nimport { Center, Vertical, Horizontal } from \"../DropZone\";\nimport Draggable from \"../Draggable\";\nimport EditFieldDialog from \"./EditFieldDialog\";\nimport Field from \"./Field\";\nimport { rowHandle, fieldHandle, fieldContainer, Row, RowContainer } from \"./Styled\";\nimport { useModelFieldEditor } from \"./useModelFieldEditor\";\nimport { FieldEditorProvider, IsVisibleCallable } from \"./FieldEditorContext\";\nimport { CmsModelField, CmsEditorFieldsLayout, CmsModelFieldTypePlugin, DragSource } from \"~/types\";\nimport { ModelFieldProvider } from \"~/admin/components/ModelFieldProvider\";\n\nconst t = i18n.namespace(\"app-headless-cms/admin/components/editor\");\n\nconst fieldTypes: string[] = [\"field\", \"newField\"];\n\nconst Editor: React.FC = () => {\n const {\n parent,\n depth,\n insertField,\n updateField,\n deleteField,\n fields,\n noConflict,\n editField,\n onFieldDrop,\n onEndDrag,\n field,\n dropTarget,\n getFieldPlugin\n } = useModelFieldEditor();\n\n const canDropIntoField = (field: CmsModelField, draggable: DragSource) => {\n const fieldPlugin = getFieldPlugin(field.type) as CmsModelFieldTypePlugin;\n const canAccept = fieldPlugin.field.canAccept;\n if (typeof canAccept === \"function\" && !canAccept(field, draggable)) {\n return false;\n }\n\n return true;\n };\n\n const isVerticalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n const fieldPlugin = getFieldPlugin(parent.type) as CmsModelFieldTypePlugin;\n const allowLayout = fieldPlugin.field.allowLayout ?? true;\n if (!allowLayout) {\n return false;\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n const isHorizontalDropzoneVisible = (cb: IsVisibleCallable) => {\n return (item: DragSource) => {\n if (!parent) {\n return cb(item);\n }\n\n if (!canDropIntoField(parent, item)) {\n return false;\n }\n\n return cb(item);\n };\n };\n\n return (\n <Fragment>\n {fields.length === 0 && (\n <Center\n isDroppable={isHorizontalDropzoneVisible(() => true)}\n onDrop={item =>\n onFieldDrop(item, {\n row: 0,\n index: 0\n })\n }\n >\n {t`Drop your first field here`}\n </Center>\n )}\n\n {fields.map((row, index) => (\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"row\",\n fields: row,\n pos: { row: index }\n }}\n endDrag={onEndDrag}\n key={row.map(f => f.fieldId).join(\".\")}\n >\n {(\n {\n drag,\n isDragging\n } /* RowContainer start - includes drag handle, drop zones and the Row itself. */\n ) => (\n <RowContainer style={{ opacity: isDragging ? 0.3 : 1 }}>\n <div className={rowHandle} ref={drag}>\n <Icon icon={<HandleIcon />} />\n </div>\n <Horizontal\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n data-testid={`cms-editor-row-droppable-top-${index}`}\n onDrop={item => onFieldDrop(item, { row: index, index: null })}\n />\n {/* Row start - includes field drop zones and fields */}\n <Row data-testid={\"cms.editor.field-row\"}>\n {row.map((field, fieldIndex) => (\n <ModelFieldProvider field={field} key={field.fieldId}>\n <Draggable\n beginDrag={{\n parent: parent ? parent.fieldId : null,\n type: \"field\",\n field,\n pos: {\n row: index,\n index: fieldIndex\n }\n }}\n endDrag={onEndDrag}\n >\n {({ drag }) => (\n <div className={fieldContainer} ref={drag}>\n <Vertical\n depth={depth}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex\n })\n }\n isVisible={isVerticalDropzoneVisible(\n noConflict(\n item =>\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n )\n )}\n />\n\n <div className={fieldHandle}>\n <Field\n parent={parent}\n field={field}\n onEdit={editField}\n onDelete={deleteField}\n />\n </div>\n\n {/* Field end */}\n {fieldIndex === row.length - 1 && (\n <Vertical\n last\n depth={depth}\n isVisible={isVerticalDropzoneVisible(\n noConflict(item => {\n return (\n fieldTypes.includes(\n item.type\n ) &&\n (row.length < 4 ||\n get(item, \"pos.row\") ===\n index)\n );\n })\n )}\n onDrop={item =>\n onFieldDrop(item, {\n row: index,\n index: fieldIndex + 1\n })\n }\n />\n )}\n </div>\n )}\n </Draggable>\n </ModelFieldProvider>\n ))}\n </Row>\n {/* Row end */}\n {index === fields.length - 1 ? (\n <Horizontal\n data-testid={`cms-editor-row-droppable-bottom-${index}`}\n last\n isVisible={isHorizontalDropzoneVisible(noConflict())}\n onDrop={item =>\n onFieldDrop(item, {\n row: index + 1,\n index: null\n })\n }\n />\n ) : null}\n </RowContainer>\n )}\n </Draggable>\n ))}\n\n {field ? (\n <ModelFieldProvider field={field}>\n <EditFieldDialog\n onClose={() => editField(null)}\n onSubmit={field => {\n if (field.id) {\n updateField(field);\n editField(null);\n return;\n }\n insertField({ field, position: dropTarget });\n\n editField(null);\n }}\n />\n </ModelFieldProvider>\n ) : null}\n </Fragment>\n );\n};\n\nexport interface FieldEditorProps {\n parent?: CmsModelField;\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n onChange: (params: { fields: CmsModelField[]; layout: CmsEditorFieldsLayout }) => void;\n}\n\nexport const FieldEditor: React.FC<FieldEditorProps> = props => {\n return (\n <FieldEditorProvider {...props}>\n <Editor />\n </FieldEditorProvider>\n );\n};\n"],"mappings":"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"}
@@ -1,23 +1,11 @@
1
1
  import React from "react";
2
- import { CmsModelField, CmsEditorFieldId, CmsEditorFieldRendererPlugin, CmsEditorFieldsLayout, CmsEditorFieldTypePlugin, FieldLayoutPosition } from "../../../types";
2
+ import { CmsEditorFieldId, CmsEditorFieldRendererPlugin, CmsEditorFieldsLayout, CmsEditorFieldTypePlugin, CmsModelField, DragSource, FieldLayoutPosition } from "../../../types";
3
3
  import { FieldEditorProps } from "./FieldEditor";
4
- import { DragObjectWithType, DragSourceMonitor } from "react-dnd";
4
+ import { DragSourceMonitor } from "react-dnd";
5
5
  interface DropTarget {
6
6
  row: number;
7
7
  index: number | null;
8
8
  }
9
- interface Position {
10
- row: number;
11
- index: number;
12
- }
13
- export interface DragSource extends DragObjectWithType {
14
- parent?: string;
15
- pos?: Partial<Position>;
16
- type: "row" | "field" | "newField";
17
- fieldType?: string;
18
- field?: CmsModelField | null;
19
- fields?: CmsModelField[];
20
- }
21
9
  /**
22
10
  * Property in GetFieldParams can be any key from CmsEditorField, but TS does not allow union types
23
11
  */
@@ -15,6 +15,10 @@ var _plugins = require("@webiny/plugins");
15
15
  var utils = _interopRequireWildcard(require("./utils"));
16
16
  var _useModelFieldEditor = require("./useModelFieldEditor");
17
17
  var _utils2 = require("@webiny/utils");
18
+ /**
19
+ * Property in GetFieldParams can be any key from CmsEditorField, but TS does not allow union types
20
+ */
21
+
18
22
  var FieldEditorContext = /*#__PURE__*/_react.default.createContext(undefined);
19
23
  /**
20
24
  * We try to generate the random id string but with the check that it does not exist already.
@@ -1 +1 @@
1
- {"version":3,"names":["FieldEditorContext","React","createContext","undefined","maxGenerateIdIterations","generateFieldId","layout","id","generateAlphaNumericLowerCaseId","iteration","includes","Error","FieldEditorProvider","parent","fields","onChange","children","depth","editor","useModelFieldEditor","useState","field","dropTarget","row","index","state","setState","useDeepCompareEffect","editField","useCallback","onDropTarget","fieldId","onFieldDrop","source","pos","type","fieldType","parentId","forEach","insertField","position","moveRow","moveField","plugin","getFieldPlugin","fieldData","createField","canEditSettings","onEndDrag","monitor","didDrop","getDropResult","removeFields","deleteField","getFieldsInLayout","filter","arr","length","map","getField","Boolean","plugins","byType","find","getFieldRendererPlugin","name","renderer","rendererName","query","key","flat","fieldPlugin","prev","next","concat","utils","data","destination","updateField","i","dot","set","noConflict","isVisible","item","sameParent","draggedFields","push","some","f","join","value"],"sources":["FieldEditorContext.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport dot from \"dot-prop-immutable\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport {\n CmsModelField,\n CmsEditorFieldId,\n CmsEditorFieldRendererPlugin,\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 { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\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?: CmsModelField | null;\n fields?: CmsModelField[];\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: CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface MoveFieldParams {\n field: CmsEditorFieldId | CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): CmsModelField[][];\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsEditorFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsModelField | undefined;\n}\ninterface GetFieldRendererCallable {\n (rendererName: string): CmsEditorFieldRendererPlugin | 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: CmsModelField): void;\n}\ninterface DeleteFieldCallable {\n (field: Pick<CmsModelField, \"id\">): void;\n}\nexport interface IsVisibleCallable {\n (item: DragSource): boolean;\n}\ninterface NoConflictCallable {\n (cb?: IsVisibleCallable): (item: DragSource) => boolean;\n}\nexport interface FieldEditorContext {\n fields: CmsModelField[][];\n noConflict: NoConflictCallable;\n layout: CmsEditorFieldsLayout;\n onChange?: (data: any) => void;\n getFieldsInLayout: GetFieldsInLayoutCallable;\n getFieldPlugin: GetFieldPluginCallable;\n getField: GetFieldCallable;\n getFieldRendererPlugin: GetFieldRendererCallable;\n editField: (field: CmsModelField | null) => void;\n field: CmsModelField | null;\n parent?: CmsModelField;\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<FieldEditorContext | undefined>(undefined);\n/**\n * We try to generate the random id string but with the check that it does not exist already.\n * Chances that the same string exists are quite small, but let's check it anyway.\n *\n * In most cases, there will be no iterations anyway...\n */\nconst maxGenerateIdIterations = 100;\nconst generateFieldId = (layout: string[]): string => {\n let id = generateAlphaNumericLowerCaseId(8);\n\n let iteration = 0;\n while (layout.includes(id) && iteration < maxGenerateIdIterations) {\n id = generateAlphaNumericLowerCaseId(8);\n iteration++;\n }\n if (iteration >= maxGenerateIdIterations) {\n throw new Error(`Could not generate field ID in ${maxGenerateIdIterations} iterations.`);\n }\n return id;\n};\n\ninterface State {\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n field: CmsModelField | 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 = useModelFieldEditor();\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: CmsModelField | 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 const fieldData = plugin.field.createField() as CmsModelField;\n\n if (plugin.field.canEditSettings !== false) {\n editField(fieldData);\n setState(state => ({\n ...state,\n dropTarget\n }));\n } else {\n insertField({ field: fieldData, position: 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 CmsModelField[][];\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 const getFieldRendererPlugin: GetFieldRendererCallable = name => {\n return plugins\n .byType<CmsEditorFieldRendererPlugin>(\"cms-editor-field-renderer\")\n .find(plugin => plugin.renderer.rendererName === name);\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 = generateFieldId(layout.flat());\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(`No plugin found for field type \"${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: FieldEditorContext = {\n parent,\n depth,\n getFieldsInLayout,\n getFieldPlugin,\n getFieldRendererPlugin,\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"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_dotPropImmutable","_interopRequireDefault","_useDeepCompareEffect","_plugins","utils","_useModelFieldEditor","_utils2","FieldEditorContext","React","createContext","undefined","exports","maxGenerateIdIterations","generateFieldId","layout","id","generateAlphaNumericLowerCaseId","iteration","includes","Error","concat","FieldEditorProvider","_ref","parent","fields","onChange","children","depth","editor","useModelFieldEditor","_unused","_useState","useState","field","dropTarget","row","index","_useState2","_slicedToArray2","default","state","setState","useDeepCompareEffect","editField","useCallback","_objectSpread2","onDropTarget","fieldId","onFieldDrop","source","pos","type","fieldType","_source$fields","parentId","forEach","insertField","position","moveRow","moveField","plugin","getFieldPlugin","fieldData","createField","canEditSettings","onEndDrag","_ref2","monitor","didDrop","_monitor$getDropResul","getDropResult","removeFields","deleteField","getFieldsInLayout","filter","arr","length","map","getField","Boolean","plugins","byType","find","getFieldRendererPlugin","name","renderer","rendererName","query","key","_ref3","flat","fieldPlugin","prev","next","data","_ref4","destination","updateField","i","dot","set","noConflict","isVisible","item","sameParent","draggedFields","push","some","f","join","value","createElement","Provider"],"sources":["FieldEditorContext.tsx"],"sourcesContent":["import React, { useCallback, useState } from \"react\";\nimport dot from \"dot-prop-immutable\";\nimport useDeepCompareEffect from \"use-deep-compare-effect\";\nimport {\n CmsEditorFieldId,\n CmsEditorFieldRendererPlugin,\n CmsEditorFieldsLayout,\n CmsEditorFieldTypePlugin,\n CmsModelField,\n DragSource,\n FieldLayoutPosition\n} from \"~/types\";\nimport { plugins } from \"@webiny/plugins\";\nimport * as utils from \"./utils\";\nimport { FieldEditorProps } from \"./FieldEditor\";\nimport { DragSourceMonitor } from \"react-dnd\";\nimport { useModelFieldEditor } from \"~/admin/components/FieldEditor/useModelFieldEditor\";\nimport { generateAlphaNumericLowerCaseId } from \"@webiny/utils\";\n\ninterface DropTarget {\n row: number;\n index: number | null;\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: CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface MoveFieldParams {\n field: CmsEditorFieldId | CmsModelField;\n position: FieldLayoutPosition;\n}\ninterface GetFieldsInLayoutCallable {\n (): CmsModelField[][];\n}\ninterface GetFieldPluginCallable {\n (type: string): CmsEditorFieldTypePlugin | undefined;\n}\ninterface GetFieldCallable {\n (query: GetFieldParams): CmsModelField | undefined;\n}\ninterface GetFieldRendererCallable {\n (rendererName: string): CmsEditorFieldRendererPlugin | 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: CmsModelField): void;\n}\ninterface DeleteFieldCallable {\n (field: Pick<CmsModelField, \"id\">): void;\n}\nexport interface IsVisibleCallable {\n (item: DragSource): boolean;\n}\ninterface NoConflictCallable {\n (cb?: IsVisibleCallable): (item: DragSource) => boolean;\n}\nexport interface FieldEditorContext {\n fields: CmsModelField[][];\n noConflict: NoConflictCallable;\n layout: CmsEditorFieldsLayout;\n onChange?: (data: any) => void;\n getFieldsInLayout: GetFieldsInLayoutCallable;\n getFieldPlugin: GetFieldPluginCallable;\n getField: GetFieldCallable;\n getFieldRendererPlugin: GetFieldRendererCallable;\n editField: (field: CmsModelField | null) => void;\n field: CmsModelField | null;\n parent?: CmsModelField;\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<FieldEditorContext | undefined>(undefined);\n/**\n * We try to generate the random id string but with the check that it does not exist already.\n * Chances that the same string exists are quite small, but let's check it anyway.\n *\n * In most cases, there will be no iterations anyway...\n */\nconst maxGenerateIdIterations = 100;\nconst generateFieldId = (layout: string[]): string => {\n let id = generateAlphaNumericLowerCaseId(8);\n\n let iteration = 0;\n while (layout.includes(id) && iteration < maxGenerateIdIterations) {\n id = generateAlphaNumericLowerCaseId(8);\n iteration++;\n }\n if (iteration >= maxGenerateIdIterations) {\n throw new Error(`Could not generate field ID in ${maxGenerateIdIterations} iterations.`);\n }\n return id;\n};\n\ninterface State {\n layout: CmsEditorFieldsLayout;\n fields: CmsModelField[];\n field: CmsModelField | 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 = useModelFieldEditor();\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: CmsModelField | 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 const fieldData = plugin.field.createField() as CmsModelField;\n\n if (plugin.field.canEditSettings !== false) {\n editField(fieldData);\n setState(state => ({\n ...state,\n dropTarget\n }));\n } else {\n insertField({ field: fieldData, position: 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 CmsModelField[][];\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 const getFieldRendererPlugin: GetFieldRendererCallable = name => {\n return plugins\n .byType<CmsEditorFieldRendererPlugin>(\"cms-editor-field-renderer\")\n .find(plugin => plugin.renderer.rendererName === name);\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 = generateFieldId(layout.flat());\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(`No plugin found for field type \"${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: FieldEditorContext = {\n parent,\n depth,\n getFieldsInLayout,\n getFieldPlugin,\n getFieldRendererPlugin,\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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["RowContainer","styled","Row","display","flexDirection","backgroundColor","paddingLeft","paddingRight","position","fieldContainer","css","flex","padding","margin","borderRadius","border","transition","color","cursor","boxShadow","rowHandle","width","left","top","transform","zIndex","fieldHandle"],"sources":["Styled.ts"],"sourcesContent":["import { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const RowContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n margin-bottom: 20px;\n border-radius: 2px;\n background-color: var(--mdc-theme-surface);\n border: 1px solid var(--mdc-theme-on-background);\n box-shadow: var(--mdc-theme-on-background) 1px 1px 1px,\n var(--mdc-theme-on-background) 1px 1px 2px;\n :last-child {\n margin-bottom: 5px;\n }\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: \"2px 15px 2px\",\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"],"mappings":";;;;;;;AAAA;AACA;AAEO,IAAMA,YAAY,oBAAGC,eAAM;EAAA;EAAA;AAAA,0TAajC;AAAC;AAEK,IAAMC,GAAG,oBAAGD,eAAM,EAAC,KAAK;EAAA;EAAA;AAAA,GAAE;EAC7BE,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,0BAA0B;EAC3CC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE,EAAE;EAChBC,QAAQ,EAAE;AACd,CAAC,CAAC;AAAC;AAEI,IAAMC,cAAc,gBAAG,IAAAC,YAAG,EAAC;EAC9BF,QAAQ,EAAE,UAAU;EACpBG,IAAI,EAAE,QAAQ;EACdN,eAAe,EAAE,6BAA6B;EAC9CO,OAAO,EAAE,cAAc;EACvBC,MAAM,EAAE,EAAE;EACVC,YAAY,EAAE,CAAC;EACfC,MAAM,EAAE,0CAA0C;EAClDC,UAAU,EAAE,kBAAkB;EAC9BC,KAAK,EAAE,6BAA6B;EACpCC,MAAM,EAAE,MAAM;EACd,SAAS,EAAE;IACPC,SAAS,EACL;EACR;AACJ,CAAC,0BAAC;AAAC;AAEI,IAAMC,SAAS,gBAAG,IAAAV,YAAG,EAAC;EACzBW,KAAK,EAAE,EAAE;EACTH,MAAM,EAAE,MAAM;EACdV,QAAQ,EAAE,UAAU;EACpBc,IAAI,EAAE,EAAE;EACRC,GAAG,EAAE,KAAK;EACVC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,CAAC;EACTR,KAAK,EAAE;AACX,CAAC,qBAAC;AAAC;AAEI,IAAMS,WAAW,gBAAG,IAAAhB,YAAG,EAAC;EAC3BQ,MAAM,EAAE;AACZ,CAAC,uBAAC;AAAC"}
1
+ {"version":3,"names":["_emotion","require","_styled","_interopRequireDefault","RowContainer","styled","label","target","exports","Row","display","flexDirection","backgroundColor","paddingLeft","paddingRight","position","fieldContainer","css","flex","padding","margin","borderRadius","border","transition","color","cursor","boxShadow","rowHandle","width","left","top","transform","zIndex","fieldHandle"],"sources":["Styled.ts"],"sourcesContent":["import { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\n\nexport const RowContainer = styled.div`\n position: relative;\n display: flex;\n flex-direction: column;\n margin-bottom: 20px;\n border-radius: 2px;\n background-color: var(--mdc-theme-surface);\n border: 1px solid var(--mdc-theme-on-background);\n box-shadow: var(--mdc-theme-on-background) 1px 1px 1px,\n var(--mdc-theme-on-background) 1px 1px 2px;\n :last-child {\n margin-bottom: 5px;\n }\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: \"2px 15px 2px\",\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"],"mappings":";;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEO,IAAMG,YAAY,oBAAGC,eAAM;EAAAC,KAAA;EAAAC,MAAA;AAAA,0TAajC;AAACC,OAAA,CAAAJ,YAAA,GAAAA,YAAA;AAEK,IAAMK,GAAG,oBAAGJ,eAAM,EAAC,KAAK;EAAAE,MAAA;EAAAD,KAAA;AAAA,GAAE;EAC7BI,OAAO,EAAE,MAAM;EACfC,aAAa,EAAE,KAAK;EACpBC,eAAe,EAAE,0BAA0B;EAC3CC,WAAW,EAAE,EAAE;EACfC,YAAY,EAAE,EAAE;EAChBC,QAAQ,EAAE;AACd,CAAC,CAAC;AAACP,OAAA,CAAAC,GAAA,GAAAA,GAAA;AAEI,IAAMO,cAAc,gBAAG,IAAAC,YAAG,EAAC;EAC9BF,QAAQ,EAAE,UAAU;EACpBG,IAAI,EAAE,QAAQ;EACdN,eAAe,EAAE,6BAA6B;EAC9CO,OAAO,EAAE,cAAc;EACvBC,MAAM,EAAE,EAAE;EACVC,YAAY,EAAE,CAAC;EACfC,MAAM,EAAE,0CAA0C;EAClDC,UAAU,EAAE,kBAAkB;EAC9BC,KAAK,EAAE,6BAA6B;EACpCC,MAAM,EAAE,MAAM;EACd,SAAS,EAAE;IACPC,SAAS,EACL;EACR;AACJ,CAAC,0BAAC;AAAClB,OAAA,CAAAQ,cAAA,GAAAA,cAAA;AAEI,IAAMW,SAAS,gBAAG,IAAAV,YAAG,EAAC;EACzBW,KAAK,EAAE,EAAE;EACTH,MAAM,EAAE,MAAM;EACdV,QAAQ,EAAE,UAAU;EACpBc,IAAI,EAAE,EAAE;EACRC,GAAG,EAAE,KAAK;EACVC,SAAS,EAAE,kBAAkB;EAC7BC,MAAM,EAAE,CAAC;EACTR,KAAK,EAAE;AACX,CAAC,qBAAC;AAAChB,OAAA,CAAAmB,SAAA,GAAAA,SAAA;AAEI,IAAMM,WAAW,gBAAG,IAAAhB,YAAG,EAAC;EAC3BQ,MAAM,EAAE;AACZ,CAAC,uBAAC;AAACjB,OAAA,CAAAyB,WAAA,GAAAA,WAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export { FieldEditor } from \"./FieldEditor\";\nexport { useModelFieldEditor } from \"./useModelFieldEditor\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA;AACA"}
1
+ {"version":3,"names":["_FieldEditor","require","_useModelFieldEditor"],"sources":["index.ts"],"sourcesContent":["export { FieldEditor } from \"./FieldEditor\";\nexport { useModelFieldEditor } from \"./useModelFieldEditor\";\n"],"mappings":";;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["useModelFieldEditor","context","useContext","FieldEditorContext","Error"],"sources":["useModelFieldEditor.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { FieldEditorContext } from \"./FieldEditorContext\";\n\nexport function useModelFieldEditor() {\n const context = useContext(FieldEditorContext);\n if (!context) {\n throw Error(\n `FieldEditorContext is missing in the component tree. Are you useing the \"useFieldEditor()\" hook in the right place?`\n );\n }\n\n return context;\n}\n"],"mappings":";;;;;;AAAA;AACA;AAEO,SAASA,mBAAmB,GAAG;EAClC,IAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,sCAAkB,CAAC;EAC9C,IAAI,CAACF,OAAO,EAAE;IACV,MAAMG,KAAK,yHAEV;EACL;EAEA,OAAOH,OAAO;AAClB"}
1
+ {"version":3,"names":["_react","require","_FieldEditorContext","useModelFieldEditor","context","useContext","FieldEditorContext","Error"],"sources":["useModelFieldEditor.ts"],"sourcesContent":["import { useContext } from \"react\";\nimport { FieldEditorContext } from \"./FieldEditorContext\";\n\nexport function useModelFieldEditor() {\n const context = useContext(FieldEditorContext);\n if (!context) {\n throw Error(\n `FieldEditorContext is missing in the component tree. Are you useing the \"useFieldEditor()\" hook in the right place?`\n );\n }\n\n return context;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AAEO,SAASE,mBAAmBA,CAAA,EAAG;EAClC,IAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACC,sCAAkB,CAAC;EAC9C,IAAI,CAACF,OAAO,EAAE;IACV,MAAMG,KAAK,wHAEX,CAAC;EACL;EAEA,OAAOH,OAAO;AAClB"}
@@ -1 +1 @@
1
- {"version":3,"names":["params","field","prev","data","fieldIndex","fields","findIndex","item","id","dot","delete","set","layout","newLayout","currentRowIndex","forEach","row","fieldId","find","Array","isArray","push","length"],"sources":["deleteField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsModelField, CmsModel } from \"~/types\";\n\ntype DeleteFieldParamsData = Pick<CmsModel, \"fields\" | \"layout\">;\ninterface DeleteFieldParams {\n field: Pick<CmsModelField, \"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"],"mappings":";;;;;;;AAAA;AAAqC,eAQtB,kBAACA,MAAyB,EAAK;EAC1C,IAAQC,KAAK,GAAiBD,MAAM,CAA5BC,KAAK;IAAQC,IAAI,GAAKF,MAAM,CAArBG,IAAI;EACnB;EACA,IAAMC,UAAU,GAAGF,IAAI,CAACG,MAAM,CAACC,SAAS,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACC,EAAE,KAAKP,KAAK,CAACO,EAAE;EAAA,EAAC;EACtE,IAAML,IAAI,GAAGM,yBAAG,CAACC,MAAM,CAACR,IAAI,mBAAYE,UAAU,EAA4B;;EAE9E;EACA,OAAOK,yBAAG,CAACE,GAAG,CAACR,IAAI,EAAE,QAAQ,EAAE,UAACS,MAAuC,EAAK;IACxE,IAAI,CAACA,MAAM,EAAE;MACT,OAAO,EAAE;IACb;IACA,IAAMC,SAA0C,GAAG,EAAE;IACrD,IAAIC,eAAe,GAAG,CAAC;IACvBF,MAAM,CAACG,OAAO,CAAC,UAAAC,GAAG,EAAI;MAClBA,GAAG,CAACD,OAAO,CAAC,UAAAE,OAAO,EAAI;QACnB,IAAMhB,KAAK,GAAGE,IAAI,CAACE,MAAM,CAACa,IAAI,CAAC,UAAAX,IAAI;UAAA,OAAIA,IAAI,CAACC,EAAE,KAAKS,OAAO;QAAA,EAAC;QAC3D,IAAI,CAAChB,KAAK,EAAE;UACR;QACJ;QACA,IAAI,CAACkB,KAAK,CAACC,OAAO,CAACP,SAAS,CAACC,eAAe,CAAC,CAAC,EAAE;UAC5CD,SAAS,CAACC,eAAe,CAAC,GAAG,EAAE;QACnC;QAEAD,SAAS,CAACC,eAAe,CAAC,CAACO,IAAI,CAACJ,OAAO,CAAC;MAC5C,CAAC,CAAC;MACFJ,SAAS,CAACC,eAAe,CAAC,IAAID,SAAS,CAACC,eAAe,CAAC,CAACQ,MAAM,IAAIR,eAAe,EAAE;IACxF,CAAC,CAAC;IAEF,OAAOD,SAAS;EACpB,CAAC,CAAC;AACN,CAAC;AAAA"}
1
+ {"version":3,"names":["_dotPropImmutable","_interopRequireDefault","require","_default","params","field","prev","data","fieldIndex","fields","findIndex","item","id","dot","delete","concat","set","layout","newLayout","currentRowIndex","forEach","row","fieldId","find","Array","isArray","push","length","exports","default"],"sources":["deleteField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsModelField, CmsModel } from \"~/types\";\n\ntype DeleteFieldParamsData = Pick<CmsModel, \"fields\" | \"layout\">;\ninterface DeleteFieldParams {\n field: Pick<CmsModelField, \"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"],"mappings":";;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqC,IAAAC,QAAA,GAQtB,SAAAA,SAACC,MAAyB,EAAK;EAC1C,IAAQC,KAAK,GAAiBD,MAAM,CAA5BC,KAAK;IAAQC,IAAI,GAAKF,MAAM,CAArBG,IAAI;EACnB;EACA,IAAMC,UAAU,GAAGF,IAAI,CAACG,MAAM,CAACC,SAAS,CAAC,UAAAC,IAAI;IAAA,OAAIA,IAAI,CAACC,EAAE,KAAKP,KAAK,CAACO,EAAE;EAAA,EAAC;EACtE,IAAML,IAAI,GAAGM,yBAAG,CAACC,MAAM,CAACR,IAAI,YAAAS,MAAA,CAAYP,UAAU,CAAE,CAA0B;;EAE9E;EACA,OAAOK,yBAAG,CAACG,GAAG,CAACT,IAAI,EAAE,QAAQ,EAAE,UAACU,MAAuC,EAAK;IACxE,IAAI,CAACA,MAAM,EAAE;MACT,OAAO,EAAE;IACb;IACA,IAAMC,SAA0C,GAAG,EAAE;IACrD,IAAIC,eAAe,GAAG,CAAC;IACvBF,MAAM,CAACG,OAAO,CAAC,UAAAC,GAAG,EAAI;MAClBA,GAAG,CAACD,OAAO,CAAC,UAAAE,OAAO,EAAI;QACnB,IAAMjB,KAAK,GAAGE,IAAI,CAACE,MAAM,CAACc,IAAI,CAAC,UAAAZ,IAAI;UAAA,OAAIA,IAAI,CAACC,EAAE,KAAKU,OAAO;QAAA,EAAC;QAC3D,IAAI,CAACjB,KAAK,EAAE;UACR;QACJ;QACA,IAAI,CAACmB,KAAK,CAACC,OAAO,CAACP,SAAS,CAACC,eAAe,CAAC,CAAC,EAAE;UAC5CD,SAAS,CAACC,eAAe,CAAC,GAAG,EAAE;QACnC;QAEAD,SAAS,CAACC,eAAe,CAAC,CAACO,IAAI,CAACJ,OAAO,CAAC;MAC5C,CAAC,CAAC;MACFJ,SAAS,CAACC,eAAe,CAAC,IAAID,SAAS,CAACC,eAAe,CAAC,CAACQ,MAAM,IAAIR,eAAe,EAAE;IACxF,CAAC,CAAC;IAEF,OAAOD,SAAS;EACpB,CAAC,CAAC;AACN,CAAC;AAAAU,OAAA,CAAAC,OAAA,GAAA1B,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["params","field","data","id","layout","i","length","row","j","index"],"sources":["getFieldPosition.ts"],"sourcesContent":["import { CmsModelField, CmsModel, FieldLayoutPosition } from \"~/types\";\n\ninterface GetFieldPositionParams {\n field: string | CmsModelField;\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"],"mappings":";;;;;;eAMe,kBAACA,MAA8B,EAAiC;EAC3E,IAAQC,KAAK,GAAWD,MAAM,CAAtBC,KAAK;IAAEC,IAAI,GAAKF,MAAM,CAAfE,IAAI;EACnB,IAAMC,EAAE,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACE,EAAE;EACvD,IAAMC,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAG,EAAE;EAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,IAAME,GAAG,GAAGH,MAAM,CAACC,CAAC,CAAC;IACrB,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,GAAG,CAACD,MAAM,EAAEE,CAAC,EAAE,EAAE;MACjC,IAAID,GAAG,CAACC,CAAC,CAAC,KAAKL,EAAE,EAAE;QACf,OAAO;UAAEI,GAAG,EAAEF,CAAC;UAAEI,KAAK,EAAED;QAAE,CAAC;MAC/B;IACJ;EACJ;EAEA,OAAO,IAAI;AACf,CAAC;AAAA"}
1
+ {"version":3,"names":["_default","params","field","data","id","layout","i","length","row","j","index","exports","default"],"sources":["getFieldPosition.ts"],"sourcesContent":["import { CmsModelField, CmsModel, FieldLayoutPosition } from \"~/types\";\n\ninterface GetFieldPositionParams {\n field: string | CmsModelField;\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"],"mappings":";;;;;;eAMe,SAAAA,SAACC,MAA8B,EAAiC;EAC3E,IAAQC,KAAK,GAAWD,MAAM,CAAtBC,KAAK;IAAEC,IAAI,GAAKF,MAAM,CAAfE,IAAI;EACnB,IAAMC,EAAE,GAAG,OAAOF,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACE,EAAE;EACvD,IAAMC,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACE,MAAM,GAAG,EAAE;EAC7C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,IAAME,GAAG,GAAGH,MAAM,CAACC,CAAC,CAAC;IACrB,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,GAAG,CAACD,MAAM,EAAEE,CAAC,EAAE,EAAE;MACjC,IAAID,GAAG,CAACC,CAAC,CAAC,KAAKL,EAAE,EAAE;QACf,OAAO;UAAEI,GAAG,EAAEF,CAAC;UAAEI,KAAK,EAAED;QAAE,CAAC;MAC/B;IACJ;EACJ;EAEA,OAAO,IAAI;AACf,CAAC;AAAAE,OAAA,CAAAC,OAAA,GAAAZ,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA"}
1
+ {"version":3,"names":["_getFieldPosition","_interopRequireDefault","require","_moveField","_deleteField","_moveRow"],"sources":["index.ts"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,QAAA,GAAAJ,sBAAA,CAAAC,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["moveField","params","field","position","prev","data","row","index","fieldId","id","next","layout","existingPosition","getFieldPosition","dot","delete","set","newLayout","splice","filter","length"],"sources":["moveField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport {\n CmsModelField,\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<CmsModelField, \"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"],"mappings":";;;;;;;;;AAAA;AAOA;AAUA,IAAMA,SAAS,GAAG,SAAZA,SAAS,CAAwBC,MAA0B,EAAK;EAClE,IAAQC,KAAK,GAA2BD,MAAM,CAAtCC,KAAK;IAAEC,QAAQ,GAAiBF,MAAM,CAA/BE,QAAQ;IAAQC,IAAI,GAAKH,MAAM,CAArBI,IAAI;EAC7B,IAAQC,GAAG,GAAYH,QAAQ,CAAvBG,GAAG;IAAEC,KAAK,GAAKJ,QAAQ,CAAlBI,KAAK;EAClB,IAAMC,OAAO,GAAG,OAAON,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACO,EAAE;EAE5D,IAAIC,IAAO,+DACJN,IAAI;IACPO,MAAM,EAAEP,IAAI,CAACO,MAAM,GAAGP,IAAI,CAACO,MAAM,IAAI,EAAE,GAAG;EAAE,EAC/C;EAED,IAAMC,gBAAgB,GAAG,IAAAC,yBAAgB,EAAC;IAAEX,KAAK,EAAEM,OAAO;IAAEH,IAAI,EAAED;EAAK,CAAC,CAAC;EAEzE,IAAIQ,gBAAgB,EAAE;IAClBF,IAAI,GAAGI,yBAAG,CAACC,MAAM,CAACX,IAAI,mBAAYQ,gBAAgB,CAACN,GAAG,cAAIM,gBAAgB,CAACL,KAAK,EAAQ;EAC5F;;EAEA;EACA,IAAI,CAACG,IAAI,CAACC,MAAM,CAACL,GAAG,CAAC,EAAE;IACnB,OAAOQ,yBAAG,CAACE,GAAG,CAACN,IAAI,mBAAYJ,GAAG,GAAI,CAACE,OAAO,CAAC,CAAC;EACpD;;EAEA;EACA,IAAID,KAAK,KAAK,IAAI,EAAE;IAChB;IACA,OAAOO,yBAAG,CAACE,GAAG,CAACN,IAAI,EAAE,QAAQ,EAAE,UAACC,MAAkB,EAAK;MACnD,IAAMM,SAAS,oCAAON,MAAM,CAAC;MAC7BM,SAAS,CAACC,MAAM,CAACZ,GAAG,EAAE,CAAC,EAAE,CAACE,OAAO,CAAC,CAAC;MACnC,OAAOS,SAAS;IACpB,CAAC,CAAC;EACN;EAEA,OAAOH,yBAAG,CAACE,GAAG,CAACN,IAAI,mBAAYJ,GAAG,GAAI,UAACK,MAAgB,EAAK;IACxD,IAAMM,SAAS,oCAAON,MAAM,CAAC;IAC7BM,SAAS,CAACC,MAAM,CAACX,KAAK,EAAE,CAAC,EAAEC,OAAO,CAAC;IACnC,OAAOS,SAAS;EACpB,CAAC,CAAC;AACN,CAAC;AAAC,eAEa,kBAAqBhB,MAA0B,EAAQ;EAClE,OAAOa,yBAAG,CAACE,GAAG,CAAChB,SAAS,CAAIC,MAAM,CAAC,EAAE,QAAQ,EAAE,UAACU,MAAkB,EAAK;IACnE,OAAO,iCAAIA,MAAM,EAAEQ,MAAM,CAAC,UAAAb,GAAG;MAAA,OAAIA,GAAG,CAACc,MAAM,GAAG,CAAC;IAAA,EAAC;EACpD,CAAC,CAAC;AACN,CAAC;AAAA"}
1
+ {"version":3,"names":["_dotPropImmutable","_interopRequireDefault","require","_getFieldPosition","moveField","params","field","position","prev","data","row","index","fieldId","id","next","_objectSpread2","default","layout","existingPosition","getFieldPosition","dot","delete","concat","set","newLayout","_toConsumableArray2","splice","_default","filter","length","exports"],"sources":["moveField.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport {\n CmsModelField,\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<CmsModelField, \"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"],"mappings":";;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAOA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAUA,IAAME,SAAS,GAAG,SAAZA,SAASA,CAAwBC,MAA0B,EAAK;EAClE,IAAQC,KAAK,GAA2BD,MAAM,CAAtCC,KAAK;IAAEC,QAAQ,GAAiBF,MAAM,CAA/BE,QAAQ;IAAQC,IAAI,GAAKH,MAAM,CAArBI,IAAI;EAC7B,IAAQC,GAAG,GAAYH,QAAQ,CAAvBG,GAAG;IAAEC,KAAK,GAAKJ,QAAQ,CAAlBI,KAAK;EAClB,IAAMC,OAAO,GAAG,OAAON,KAAK,KAAK,QAAQ,GAAGA,KAAK,GAAGA,KAAK,CAACO,EAAE;EAE5D,IAAIC,IAAO,OAAAC,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACJR,IAAI;IACPS,MAAM,EAAET,IAAI,CAACS,MAAM,GAAGT,IAAI,CAACS,MAAM,IAAI,EAAE,GAAG;EAAE,EAC/C;EAED,IAAMC,gBAAgB,GAAG,IAAAC,yBAAgB,EAAC;IAAEb,KAAK,EAAEM,OAAO;IAAEH,IAAI,EAAED;EAAK,CAAC,CAAC;EAEzE,IAAIU,gBAAgB,EAAE;IAClBJ,IAAI,GAAGM,yBAAG,CAACC,MAAM,CAACb,IAAI,YAAAc,MAAA,CAAYJ,gBAAgB,CAACR,GAAG,OAAAY,MAAA,CAAIJ,gBAAgB,CAACP,KAAK,CAAE,CAAM;EAC5F;;EAEA;EACA,IAAI,CAACG,IAAI,CAACG,MAAM,CAACP,GAAG,CAAC,EAAE;IACnB,OAAOU,yBAAG,CAACG,GAAG,CAACT,IAAI,YAAAQ,MAAA,CAAYZ,GAAG,GAAI,CAACE,OAAO,CAAC,CAAC;EACpD;;EAEA;EACA,IAAID,KAAK,KAAK,IAAI,EAAE;IAChB;IACA,OAAOS,yBAAG,CAACG,GAAG,CAACT,IAAI,EAAE,QAAQ,EAAE,UAACG,MAAkB,EAAK;MACnD,IAAMO,SAAS,OAAAC,mBAAA,CAAAT,OAAA,EAAOC,MAAM,CAAC;MAC7BO,SAAS,CAACE,MAAM,CAAChB,GAAG,EAAE,CAAC,EAAE,CAACE,OAAO,CAAC,CAAC;MACnC,OAAOY,SAAS;IACpB,CAAC,CAAC;EACN;EAEA,OAAOJ,yBAAG,CAACG,GAAG,CAACT,IAAI,YAAAQ,MAAA,CAAYZ,GAAG,GAAI,UAACO,MAAgB,EAAK;IACxD,IAAMO,SAAS,OAAAC,mBAAA,CAAAT,OAAA,EAAOC,MAAM,CAAC;IAC7BO,SAAS,CAACE,MAAM,CAACf,KAAK,EAAE,CAAC,EAAEC,OAAO,CAAC;IACnC,OAAOY,SAAS;EACpB,CAAC,CAAC;AACN,CAAC;AAAC,IAAAG,QAAA,GAEa,SAAAA,SAAqBtB,MAA0B,EAAQ;EAClE,OAAOe,yBAAG,CAACG,GAAG,CAACnB,SAAS,CAAIC,MAAM,CAAC,EAAE,QAAQ,EAAE,UAACY,MAAkB,EAAK;IACnE,OAAO,IAAAQ,mBAAA,CAAAT,OAAA,EAAIC,MAAM,EAAEW,MAAM,CAAC,UAAAlB,GAAG;MAAA,OAAIA,GAAG,CAACmB,MAAM,GAAG,CAAC;IAAA,EAAC;EACpD,CAAC,CAAC;AACN,CAAC;AAAAC,OAAA,CAAAd,OAAA,GAAAW,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["data","source","destination","dot","set","layout","slice"],"sources":["moveRow.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsModel } from \"~/types\";\n\ninterface Params {\n source: number;\n destination: number;\n data: Pick<CmsModel, \"layout\">;\n}\nexport default ({ data, source, destination }: Params) => {\n return dot.set(data, \"layout\", (layout: string[][]) => {\n return source < destination\n ? [\n ...layout.slice(0, source),\n ...layout.slice(source + 1, destination),\n layout[source],\n ...layout.slice(destination)\n ]\n : [\n ...layout.slice(0, destination),\n layout[source],\n ...layout.slice(destination, source),\n ...layout.slice(source + 1)\n ];\n });\n};\n"],"mappings":";;;;;;;;AAAA;AAAqC,eAQtB,wBAA2C;EAAA,IAAxCA,IAAI,QAAJA,IAAI;IAAEC,MAAM,QAANA,MAAM;IAAEC,WAAW,QAAXA,WAAW;EACvC,OAAOC,yBAAG,CAACC,GAAG,CAACJ,IAAI,EAAE,QAAQ,EAAE,UAACK,MAAkB,EAAK;IACnD,OAAOJ,MAAM,GAAGC,WAAW,8CAEdG,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEL,MAAM,CAAC,oCACvBI,MAAM,CAACC,KAAK,CAACL,MAAM,GAAG,CAAC,EAAEC,WAAW,CAAC,IACxCG,MAAM,CAACJ,MAAM,CAAC,oCACXI,MAAM,CAACC,KAAK,CAACJ,WAAW,CAAC,gDAGzBG,MAAM,CAACC,KAAK,CAAC,CAAC,EAAEJ,WAAW,CAAC,IAC/BG,MAAM,CAACJ,MAAM,CAAC,oCACXI,MAAM,CAACC,KAAK,CAACJ,WAAW,EAAED,MAAM,CAAC,oCACjCI,MAAM,CAACC,KAAK,CAACL,MAAM,GAAG,CAAC,CAAC,EAC9B;EACX,CAAC,CAAC;AACN,CAAC;AAAA"}
1
+ {"version":3,"names":["_dotPropImmutable","_interopRequireDefault","require","_default","_ref","data","source","destination","dot","set","layout","concat","_toConsumableArray2","default","slice","exports"],"sources":["moveRow.ts"],"sourcesContent":["import dot from \"dot-prop-immutable\";\nimport { CmsModel } from \"~/types\";\n\ninterface Params {\n source: number;\n destination: number;\n data: Pick<CmsModel, \"layout\">;\n}\nexport default ({ data, source, destination }: Params) => {\n return dot.set(data, \"layout\", (layout: string[][]) => {\n return source < destination\n ? [\n ...layout.slice(0, source),\n ...layout.slice(source + 1, destination),\n layout[source],\n ...layout.slice(destination)\n ]\n : [\n ...layout.slice(0, destination),\n layout[source],\n ...layout.slice(destination, source),\n ...layout.slice(source + 1)\n ];\n });\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAqC,IAAAC,QAAA,GAQtB,SAAAA,SAAAC,IAAA,EAA2C;EAAA,IAAxCC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;EACvC,OAAOC,yBAAG,CAACC,GAAG,CAACJ,IAAI,EAAE,QAAQ,EAAE,UAACK,MAAkB,EAAK;IACnD,OAAOJ,MAAM,GAAGC,WAAW,MAAAI,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAEdH,MAAM,CAACI,KAAK,CAAC,CAAC,EAAER,MAAM,CAAC,OAAAM,mBAAA,CAAAC,OAAA,EACvBH,MAAM,CAACI,KAAK,CAACR,MAAM,GAAG,CAAC,EAAEC,WAAW,CAAC,IACxCG,MAAM,CAACJ,MAAM,CAAC,OAAAM,mBAAA,CAAAC,OAAA,EACXH,MAAM,CAACI,KAAK,CAACP,WAAW,CAAC,QAAAI,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAGzBH,MAAM,CAACI,KAAK,CAAC,CAAC,EAAEP,WAAW,CAAC,IAC/BG,MAAM,CAACJ,MAAM,CAAC,OAAAM,mBAAA,CAAAC,OAAA,EACXH,MAAM,CAACI,KAAK,CAACP,WAAW,EAAED,MAAM,CAAC,OAAAM,mBAAA,CAAAC,OAAA,EACjCH,MAAM,CAACI,KAAK,CAACR,MAAM,GAAG,CAAC,CAAC,EAC9B;EACX,CAAC,CAAC;AACN,CAAC;AAAAS,OAAA,CAAAF,OAAA,GAAAV,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["iconPickerLabel","css","marginBottom","marginLeft","globalStyles","reactCss","MenuWrapper","NoResultWrapper","width","color","padding","COLUMN_COUNT","gridItem","display","flexDirection","justifyContent","boxSizing","paddingTop","alignItems","textAlign","cursor","transform","borderRadius","transition","boxShadow","content","position","top","left","height","zIndex","opacity","backgroundColor","grid","pickIcon","searchInput","input","IconPicker","value","onChange","label","description","validation","useState","filter","setFilter","mustRenderGrid","setMustRenderGrid","inputRef","useRef","useEffect","setTimeout","current","focus","onFilterChange","useCallback","cb","allIcons","useMemo","iconPlugins","plugins","byType","reduce","icons","pl","concat","getIcons","ic","name","includes","renderCell","closeMenu","columnIndex","key","rowIndex","style","item","id","join","renderGrid","length","Math","ceil","fontAwesomeIconValue","split","validationIsValid","isValid","validationMessage","message"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport { Global, css as reactCss } from \"@emotion/react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Grid } from \"react-virtualized\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport DelayedOnChange from \"./DelayedOnChange\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { GridCellProps } from \"react-virtualized/dist/es/Grid\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst iconPickerLabel = css({ marginBottom: 5, marginLeft: 2 });\n\nconst globalStyles = reactCss`\n #rmwcPortal > .mdc-menu-surface {\n z-index: 1000;\n }\n`;\n\nconst MenuWrapper = css`\n color: var(--mdc-theme-text-secondary-on-background);\n background-color: var(--mdc-theme-on-background);\n border-bottom: 1px solid var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n padding: 16px 8px;\n cursor: pointer;\n :hover {\n border-bottom: 1px solid rgba(0, 0, 0, 1);\n }\n`;\n\nconst NoResultWrapper = css({\n width: 640,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n padding: \"16px 12px\"\n});\n\nconst COLUMN_COUNT = 6;\n\nconst gridItem = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n boxSizing: \"border-box\",\n paddingTop: 15,\n alignItems: \"center\",\n textAlign: \"center\",\n cursor: \"pointer\",\n transform: \"translateZ(0)\",\n borderRadius: 2,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n transition: \"all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n \"&::after\": {\n boxShadow: \"0 0.25rem 0.125rem 0 rgba(0,0,0,0.05)\",\n transition: \"opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: -1,\n opacity: 0\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&::after\": {\n opacity: 1\n }\n },\n \">svg\": {\n width: 42,\n marginBottom: 5\n }\n});\n\nconst grid = css({\n padding: 20\n});\n\nconst pickIcon = css({\n width: 50,\n textAlign: \"center\",\n cursor: \"pointer\"\n});\n\nconst searchInput = css({\n input: {\n padding: \"20px 12px 20px\"\n }\n});\n\nexport interface IconPickerProps extends FormComponentProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const IconPicker: React.FC<IconPickerProps> = ({\n value,\n onChange,\n label,\n description,\n validation\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [mustRenderGrid, setMustRenderGrid] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (mustRenderGrid && inputRef.current) {\n inputRef.current.focus();\n }\n }, 50);\n }, [mustRenderGrid]);\n\n const onFilterChange = useCallback(\n (value, cb) => {\n setFilter(value);\n cb();\n },\n [filter]\n );\n\n const allIcons: CmsIcon[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<CmsIcon>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n const icons = useMemo(() => {\n return filter ? allIcons.filter(ic => ic.name.includes(filter)) : allIcons;\n }, [filter]);\n\n const renderCell = useCallback(\n ({ closeMenu }) => {\n return function renderCell({\n columnIndex,\n key,\n rowIndex,\n style\n }: GridCellProps): React.ReactNode {\n const item = icons[rowIndex * COLUMN_COUNT + columnIndex];\n if (!item) {\n return null;\n }\n\n return (\n <div\n key={key}\n style={style}\n className={gridItem}\n onClick={() => {\n if (onChange) {\n onChange(item.id.join(\"/\"));\n }\n closeMenu();\n }}\n >\n <FontAwesomeIcon icon={item.id} size={\"2x\"} />\n <Typography use={\"body2\"}>{item.name}</Typography>\n </div>\n );\n };\n },\n [icons]\n );\n\n const renderGrid = useCallback(\n ({ closeMenu }) => {\n return (\n <>\n <Global styles={globalStyles} />\n <DelayedOnChange value={filter} onChange={onFilterChange}>\n {({ value, onChange }) => (\n <Input\n inputRef={inputRef}\n className={searchInput}\n value={value}\n onChange={onChange}\n placeholder={\"Search icons...\"}\n />\n )}\n </DelayedOnChange>\n {icons.length === 0 ? (\n <div className={NoResultWrapper}>\n <Typography use=\"body1\">No results found.</Typography>\n </div>\n ) : (\n <Grid\n className={grid}\n cellRenderer={renderCell({ closeMenu })}\n columnCount={COLUMN_COUNT}\n columnWidth={100}\n height={440}\n rowCount={Math.ceil(icons.length / COLUMN_COUNT)}\n rowHeight={100}\n width={640}\n />\n )}\n </>\n );\n },\n [icons]\n );\n\n const fontAwesomeIconValue: any =\n typeof value === \"string\" && value.includes(\"/\") ? value.split(\"/\") : [\"fas\", \"star\"];\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <>\n {label && (\n <div className={iconPickerLabel}>\n <Typography use={\"body1\"}>{label}</Typography>\n </div>\n )}\n\n <Menu\n onOpen={() => setMustRenderGrid(true)}\n onClose={() => setMustRenderGrid(false)}\n renderToPortal={true}\n handle={\n <div className={MenuWrapper}>\n <div className={pickIcon}>\n <FontAwesomeIcon icon={fontAwesomeIconValue} size={\"2x\"} />\n </div>\n </div>\n }\n >\n {mustRenderGrid && renderGrid}\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_emotion","_react2","_plugins","_Typography","_reactVirtualized","_reactFontawesome","_DelayedOnChange","_interopRequireDefault","_Menu","_Input","_FormElementMessage","_templateObject","iconPickerLabel","css","marginBottom","marginLeft","globalStyles","reactCss","_taggedTemplateLiteral2","default","MenuWrapper","NoResultWrapper","width","color","padding","COLUMN_COUNT","gridItem","display","flexDirection","justifyContent","boxSizing","paddingTop","alignItems","textAlign","cursor","transform","borderRadius","transition","boxShadow","content","position","top","left","height","zIndex","opacity","backgroundColor","grid","pickIcon","searchInput","input","IconPicker","_ref","value","onChange","label","description","validation","_useState","useState","_useState2","_slicedToArray2","filter","setFilter","_useState3","_useState4","mustRenderGrid","setMustRenderGrid","inputRef","useRef","useEffect","setTimeout","current","focus","onFilterChange","useCallback","cb","allIcons","useMemo","iconPlugins","plugins","byType","reduce","icons","pl","concat","getIcons","ic","name","includes","renderCell","_ref2","closeMenu","_ref3","columnIndex","key","rowIndex","style","item","createElement","className","onClick","id","join","FontAwesomeIcon","icon","size","Typography","use","renderGrid","_ref4","Fragment","Global","styles","_ref5","Input","placeholder","length","Grid","cellRenderer","columnCount","columnWidth","rowCount","Math","ceil","rowHeight","fontAwesomeIconValue","split","_ref6","validationIsValid","isValid","validationMessage","message","Menu","onOpen","onClose","renderToPortal","handle","FormElementMessage","error","exports"],"sources":["IconPicker.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState, useCallback, useMemo } from \"react\";\nimport { css } from \"emotion\";\nimport { Global, css as reactCss } from \"@emotion/react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { Grid } from \"react-virtualized\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport DelayedOnChange from \"./DelayedOnChange\";\nimport { Menu } from \"@webiny/ui/Menu\";\nimport { Input } from \"@webiny/ui/Input\";\nimport { CmsIcon, CmsIconsPlugin } from \"~/types\";\nimport { FormComponentProps } from \"@webiny/ui/types\";\nimport { FormElementMessage } from \"@webiny/ui/FormElementMessage\";\nimport { GridCellProps } from \"react-virtualized/dist/es/Grid\";\n\n/**\n * Controls the helper text below the checkbox.\n * @type {string}\n */\nconst iconPickerLabel = css({ marginBottom: 5, marginLeft: 2 });\n\nconst globalStyles = reactCss`\n #rmwcPortal > .mdc-menu-surface {\n z-index: 1000;\n }\n`;\n\nconst MenuWrapper = css`\n color: var(--mdc-theme-text-secondary-on-background);\n background-color: var(--mdc-theme-on-background);\n border-bottom: 1px solid var(--mdc-theme-text-secondary-on-background, rgba(0, 0, 0, 0.54));\n padding: 16px 8px;\n cursor: pointer;\n :hover {\n border-bottom: 1px solid rgba(0, 0, 0, 1);\n }\n`;\n\nconst NoResultWrapper = css({\n width: 640,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n padding: \"16px 12px\"\n});\n\nconst COLUMN_COUNT = 6;\n\nconst gridItem = css({\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n boxSizing: \"border-box\",\n paddingTop: 15,\n alignItems: \"center\",\n textAlign: \"center\",\n cursor: \"pointer\",\n transform: \"translateZ(0)\",\n borderRadius: 2,\n color: \"var(--mdc-theme-text-secondary-on-background)\",\n transition: \"all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n \"&::after\": {\n boxShadow: \"0 0.25rem 0.125rem 0 rgba(0,0,0,0.05)\",\n transition: \"opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1)\",\n content: '\"\"',\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: -1,\n opacity: 0\n },\n \"&:hover\": {\n backgroundColor: \"var(--mdc-theme-background)\",\n color: \"var(--mdc-theme-text-primary-on-background)\",\n \"&::after\": {\n opacity: 1\n }\n },\n \">svg\": {\n width: 42,\n marginBottom: 5\n }\n});\n\nconst grid = css({\n padding: 20\n});\n\nconst pickIcon = css({\n width: 50,\n textAlign: \"center\",\n cursor: \"pointer\"\n});\n\nconst searchInput = css({\n input: {\n padding: \"20px 12px 20px\"\n }\n});\n\nexport interface IconPickerProps extends FormComponentProps {\n label?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport const IconPicker: React.FC<IconPickerProps> = ({\n value,\n onChange,\n label,\n description,\n validation\n}) => {\n const [filter, setFilter] = useState(\"\");\n const [mustRenderGrid, setMustRenderGrid] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n setTimeout(() => {\n if (mustRenderGrid && inputRef.current) {\n inputRef.current.focus();\n }\n }, 50);\n }, [mustRenderGrid]);\n\n const onFilterChange = useCallback(\n (value, cb) => {\n setFilter(value);\n cb();\n },\n [filter]\n );\n\n const allIcons: CmsIcon[] = useMemo(() => {\n const iconPlugins = plugins.byType<CmsIconsPlugin>(\"cms-icons\");\n return iconPlugins.reduce((icons: Array<CmsIcon>, pl) => {\n return icons.concat(pl.getIcons());\n }, []);\n }, []);\n\n const icons = useMemo(() => {\n return filter ? allIcons.filter(ic => ic.name.includes(filter)) : allIcons;\n }, [filter]);\n\n const renderCell = useCallback(\n ({ closeMenu }) => {\n return function renderCell({\n columnIndex,\n key,\n rowIndex,\n style\n }: GridCellProps): React.ReactNode {\n const item = icons[rowIndex * COLUMN_COUNT + columnIndex];\n if (!item) {\n return null;\n }\n\n return (\n <div\n key={key}\n style={style}\n className={gridItem}\n onClick={() => {\n if (onChange) {\n onChange(item.id.join(\"/\"));\n }\n closeMenu();\n }}\n >\n <FontAwesomeIcon icon={item.id} size={\"2x\"} />\n <Typography use={\"body2\"}>{item.name}</Typography>\n </div>\n );\n };\n },\n [icons]\n );\n\n const renderGrid = useCallback(\n ({ closeMenu }) => {\n return (\n <>\n <Global styles={globalStyles} />\n <DelayedOnChange value={filter} onChange={onFilterChange}>\n {({ value, onChange }) => (\n <Input\n inputRef={inputRef}\n className={searchInput}\n value={value}\n onChange={onChange}\n placeholder={\"Search icons...\"}\n />\n )}\n </DelayedOnChange>\n {icons.length === 0 ? (\n <div className={NoResultWrapper}>\n <Typography use=\"body1\">No results found.</Typography>\n </div>\n ) : (\n <Grid\n className={grid}\n cellRenderer={renderCell({ closeMenu })}\n columnCount={COLUMN_COUNT}\n columnWidth={100}\n height={440}\n rowCount={Math.ceil(icons.length / COLUMN_COUNT)}\n rowHeight={100}\n width={640}\n />\n )}\n </>\n );\n },\n [icons]\n );\n\n const fontAwesomeIconValue: any =\n typeof value === \"string\" && value.includes(\"/\") ? value.split(\"/\") : [\"fas\", \"star\"];\n\n const { isValid: validationIsValid, message: validationMessage } = validation || {};\n\n return (\n <>\n {label && (\n <div className={iconPickerLabel}>\n <Typography use={\"body1\"}>{label}</Typography>\n </div>\n )}\n\n <Menu\n onOpen={() => setMustRenderGrid(true)}\n onClose={() => setMustRenderGrid(false)}\n renderToPortal={true}\n handle={\n <div className={MenuWrapper}>\n <div className={pickIcon}>\n <FontAwesomeIcon icon={fontAwesomeIconValue} size={\"2x\"} />\n </div>\n </div>\n }\n >\n {mustRenderGrid && renderGrid}\n </Menu>\n\n {validationIsValid === false && (\n <FormElementMessage error>{validationMessage}</FormElementMessage>\n )}\n {validationIsValid !== false && description && (\n <FormElementMessage>{description}</FormElementMessage>\n )}\n </>\n );\n};\n"],"mappings":"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"}