@webiny/app-headless-cms 6.5.0-beta.0 → 6.5.0-beta.10

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 (208) hide show
  1. package/ContentEntriesModule.js +14 -2
  2. package/ContentEntriesModule.js.map +1 -1
  3. package/admin/components/ContentEntries/BulkActions/ActionDelete.d.ts +2 -2
  4. package/admin/components/ContentEntries/BulkActions/ActionDelete.js.map +1 -1
  5. package/admin/components/ContentEntries/BulkActions/ActionMove.d.ts +2 -2
  6. package/admin/components/ContentEntries/BulkActions/ActionMove.js.map +1 -1
  7. package/admin/components/ContentEntries/BulkActions/ActionPublish.d.ts +2 -2
  8. package/admin/components/ContentEntries/BulkActions/ActionPublish.js.map +1 -1
  9. package/admin/components/ContentEntries/BulkActions/ActionUnpublish.d.ts +2 -2
  10. package/admin/components/ContentEntries/BulkActions/ActionUnpublish.js.map +1 -1
  11. package/admin/components/ContentEntries/Filters/RefFieldRenderer.d.ts +2 -0
  12. package/admin/components/ContentEntries/Filters/RefFieldRenderer.js +84 -0
  13. package/admin/components/ContentEntries/Filters/RefFieldRenderer.js.map +1 -0
  14. package/admin/components/ContentEntries/Table/Actions/DuplicateEntry.d.ts +2 -0
  15. package/admin/components/ContentEntries/Table/Actions/DuplicateEntry.js +34 -0
  16. package/admin/components/ContentEntries/Table/Actions/DuplicateEntry.js.map +1 -0
  17. package/admin/components/ContentEntries/Table/Actions/index.d.ts +1 -0
  18. package/admin/components/ContentEntries/Table/Actions/index.js +1 -0
  19. package/admin/components/ContentModelEditor/ContentModelEditor.js +1 -1
  20. package/admin/components/ContentModelEditor/ContentModelEditor.js.map +1 -1
  21. package/admin/components/Dialogs/DuplicateEntryConfirmDialog.d.ts +2 -0
  22. package/admin/components/Dialogs/DuplicateEntryConfirmDialog.js +22 -0
  23. package/admin/components/Dialogs/DuplicateEntryConfirmDialog.js.map +1 -0
  24. package/admin/components/FieldEditor/EditFieldDialog.d.ts +2 -2
  25. package/admin/components/FieldEditor/Field.js +4 -4
  26. package/admin/components/FieldEditor/Field.js.map +1 -1
  27. package/features/contentEntry/CmsEntryError.d.ts +10 -0
  28. package/features/contentEntry/CmsEntryError.js +11 -0
  29. package/features/contentEntry/CmsEntryError.js.map +1 -0
  30. package/features/contentEntry/createEntry/CreateEntryGateway.d.ts +0 -1
  31. package/features/contentEntry/createEntry/CreateEntryGateway.js +3 -10
  32. package/features/contentEntry/createEntry/CreateEntryGateway.js.map +1 -1
  33. package/features/contentEntry/createRevisionFrom/CreateRevisionFromGateway.d.ts +3 -1
  34. package/features/contentEntry/createRevisionFrom/CreateRevisionFromGateway.js +8 -3
  35. package/features/contentEntry/createRevisionFrom/CreateRevisionFromGateway.js.map +1 -1
  36. package/features/contentEntry/duplicateEntry/DuplicateEntryGateway.d.ts +14 -0
  37. package/features/contentEntry/duplicateEntry/DuplicateEntryGateway.js +43 -0
  38. package/features/contentEntry/duplicateEntry/DuplicateEntryGateway.js.map +1 -0
  39. package/features/contentEntry/duplicateEntry/DuplicateEntryRepository.d.ts +15 -0
  40. package/features/contentEntry/duplicateEntry/DuplicateEntryRepository.js +34 -0
  41. package/features/contentEntry/duplicateEntry/DuplicateEntryRepository.js.map +1 -0
  42. package/features/contentEntry/duplicateEntry/DuplicateEntryUseCase.d.ts +11 -0
  43. package/features/contentEntry/duplicateEntry/DuplicateEntryUseCase.js +18 -0
  44. package/features/contentEntry/duplicateEntry/DuplicateEntryUseCase.js.map +1 -0
  45. package/features/contentEntry/duplicateEntry/abstractions.d.ts +26 -0
  46. package/features/contentEntry/duplicateEntry/abstractions.js +7 -0
  47. package/features/contentEntry/duplicateEntry/abstractions.js.map +1 -0
  48. package/features/contentEntry/duplicateEntry/feature.d.ts +3 -0
  49. package/features/contentEntry/duplicateEntry/feature.js +21 -0
  50. package/features/contentEntry/duplicateEntry/feature.js.map +1 -0
  51. package/features/contentEntry/entryValueGateways.test.d.ts +1 -0
  52. package/features/contentEntry/entryValueGateways.test.js +106 -0
  53. package/features/contentEntry/entryValueGateways.test.js.map +1 -0
  54. package/features/contentEntry/feature.js +2 -0
  55. package/features/contentEntry/feature.js.map +1 -1
  56. package/features/contentEntry/singletonEntry/UpdateSingletonEntryGateway.d.ts +0 -1
  57. package/features/contentEntry/singletonEntry/UpdateSingletonEntryGateway.js +3 -10
  58. package/features/contentEntry/singletonEntry/UpdateSingletonEntryGateway.js.map +1 -1
  59. package/features/contentEntry/updateEntry/UpdateEntryGateway.d.ts +0 -1
  60. package/features/contentEntry/updateEntry/UpdateEntryGateway.js +3 -10
  61. package/features/contentEntry/updateEntry/UpdateEntryGateway.js.map +1 -1
  62. package/features/contentEntry/valueTransformers/EntryDataPreparer.d.ts +9 -0
  63. package/features/contentEntry/valueTransformers/EntryDataPreparer.js +8 -0
  64. package/features/contentEntry/valueTransformers/EntryDataPreparer.js.map +1 -1
  65. package/features/contentEntry/valueTransformers/EntryDataPreparer.test.d.ts +1 -0
  66. package/features/contentEntry/valueTransformers/EntryDataPreparer.test.js +113 -0
  67. package/features/contentEntry/valueTransformers/EntryDataPreparer.test.js.map +1 -0
  68. package/features/contentEntry/valueTransformers/entryValueFixtures.d.ts +146 -0
  69. package/features/contentEntry/valueTransformers/entryValueFixtures.js +171 -0
  70. package/features/contentEntry/valueTransformers/entryValueFixtures.js.map +1 -0
  71. package/features/formModel/CmsFormModelBuilder.d.ts +9 -1
  72. package/features/formModel/CmsFormModelBuilder.js +26 -15
  73. package/features/formModel/CmsFormModelBuilder.js.map +1 -1
  74. package/features/formModel/CmsFormModelBuilder.test.d.ts +1 -0
  75. package/features/formModel/CmsFormModelBuilder.test.js +252 -0
  76. package/features/formModel/CmsFormModelBuilder.test.js.map +1 -0
  77. package/features/formModel/CmsLayoutMapper.d.ts +8 -1
  78. package/features/formModel/CmsLayoutMapper.js +23 -1
  79. package/features/formModel/CmsLayoutMapper.js.map +1 -1
  80. package/features/formModel/mappers/DynamicZoneFieldMapper.js +4 -0
  81. package/features/formModel/mappers/DynamicZoneFieldMapper.js.map +1 -1
  82. package/features/formModel/mappers/ObjectFieldMapper.js +11 -6
  83. package/features/formModel/mappers/ObjectFieldMapper.js.map +1 -1
  84. package/features/model/exportModels/ExportModelsGateway.d.ts +1 -1
  85. package/features/model/exportModels/ExportModelsGateway.js.map +1 -1
  86. package/features/model/exportModels/ExportModelsUseCase.js +7 -1
  87. package/features/model/exportModels/ExportModelsUseCase.js.map +1 -1
  88. package/features/model/exportModels/abstractions.d.ts +8 -2
  89. package/features/model/exportModels/abstractions.js.map +1 -1
  90. package/package.json +26 -26
  91. package/presentation/cloneContentModel/CloneContentModelPresenter.d.ts +1 -0
  92. package/presentation/cloneContentModel/CloneContentModelPresenter.js +8 -6
  93. package/presentation/cloneContentModel/CloneContentModelPresenter.js.map +1 -1
  94. package/presentation/contentEntries/form/ContentEntryFormPresenter.js +34 -29
  95. package/presentation/contentEntries/form/ContentEntryFormPresenter.js.map +1 -1
  96. package/presentation/contentEntries/form/ContentEntryFormPresenter.test.d.ts +1 -0
  97. package/presentation/contentEntries/form/ContentEntryFormPresenter.test.js +210 -0
  98. package/presentation/contentEntries/form/ContentEntryFormPresenter.test.js.map +1 -0
  99. package/presentation/contentEntries/form/toFormErrors.d.ts +7 -0
  100. package/presentation/contentEntries/form/toFormErrors.js +49 -0
  101. package/presentation/contentEntries/form/toFormErrors.js.map +1 -0
  102. package/presentation/contentEntries/form/toFormErrors.test.d.ts +1 -0
  103. package/presentation/contentEntries/form/toFormErrors.test.js +175 -0
  104. package/presentation/contentEntries/form/toFormErrors.test.js.map +1 -0
  105. package/presentation/contentEntries/list/ContentEntriesDataSource.d.ts +5 -0
  106. package/presentation/contentEntries/list/ContentEntriesDataSource.js +11 -2
  107. package/presentation/contentEntries/list/ContentEntriesDataSource.js.map +1 -1
  108. package/presentation/contentEntries/list/ContentEntriesPresenter.d.ts +6 -2
  109. package/presentation/contentEntries/list/ContentEntriesPresenter.js +27 -2
  110. package/presentation/contentEntries/list/ContentEntriesPresenter.js.map +1 -1
  111. package/presentation/contentEntries/list/ContentEntriesPresenter.test.js +130 -5
  112. package/presentation/contentEntries/list/ContentEntriesPresenter.test.js.map +1 -1
  113. package/presentation/contentEntries/list/abstractions.d.ts +12 -0
  114. package/presentation/contentEntries/list/abstractions.js.map +1 -1
  115. package/presentation/contentEntries/preview/LivePreviewPresenter.d.ts +12 -1
  116. package/presentation/contentEntries/preview/LivePreviewPresenter.js +48 -5
  117. package/presentation/contentEntries/preview/LivePreviewPresenter.js.map +1 -1
  118. package/presentation/contentEntries/preview/LivePreviewPresenter.test.d.ts +1 -0
  119. package/presentation/contentEntries/preview/LivePreviewPresenter.test.js +81 -0
  120. package/presentation/contentEntries/preview/LivePreviewPresenter.test.js.map +1 -0
  121. package/presentation/contentEntries/preview/ModelEditorComponentDiscovery.js +1 -1
  122. package/presentation/contentEntries/preview/ModelEditorComponentDiscovery.js.map +1 -1
  123. package/presentation/contentEntries/preview/PreviewDecorator.js +25 -6
  124. package/presentation/contentEntries/preview/PreviewDecorator.js.map +1 -1
  125. package/presentation/contentEntries/preview/PreviewDomainStatus.d.ts +10 -0
  126. package/presentation/contentEntries/preview/PreviewDomainStatus.js +19 -0
  127. package/presentation/contentEntries/preview/PreviewDomainStatus.js.map +1 -0
  128. package/presentation/contentEntries/preview/PreviewPane.d.ts +10 -1
  129. package/presentation/contentEntries/preview/PreviewPane.js +81 -45
  130. package/presentation/contentEntries/preview/PreviewPane.js.map +1 -1
  131. package/presentation/contentEntries/preview/abstractions.d.ts +8 -0
  132. package/presentation/contentEntries/preview/abstractions.js.map +1 -1
  133. package/presentation/contentEntries/preview/resolvePreviewUrl.d.ts +21 -0
  134. package/presentation/contentEntries/preview/resolvePreviewUrl.js +50 -1
  135. package/presentation/contentEntries/preview/resolvePreviewUrl.js.map +1 -1
  136. package/presentation/contentEntries/preview/resolvePreviewUrl.test.d.ts +1 -0
  137. package/presentation/contentEntries/preview/resolvePreviewUrl.test.js +127 -0
  138. package/presentation/contentEntries/preview/resolvePreviewUrl.test.js.map +1 -0
  139. package/presentation/contentEntries/singleEntry/SingleEntryPresenter.js +9 -4
  140. package/presentation/contentEntries/singleEntry/SingleEntryPresenter.js.map +1 -1
  141. package/presentation/contentEntries/singleEntry/SingleEntryPresenter.test.d.ts +1 -0
  142. package/presentation/contentEntries/singleEntry/SingleEntryPresenter.test.js +122 -0
  143. package/presentation/contentEntries/singleEntry/SingleEntryPresenter.test.js.map +1 -0
  144. package/presentation/contentEntries/trashBin/CmsTrashBin.d.ts +2 -2
  145. package/presentation/contentEntries/views/CmsAdvancedSearch.d.ts +2 -2
  146. package/presentation/contentEntries/views/ContentEntriesListLayout.d.ts +2 -2
  147. package/presentation/contentEntries/views/ContentEntryFormView.d.ts +2 -2
  148. package/presentation/contentEntries/views/OlderRevisionAlert.d.ts +2 -2
  149. package/presentation/contentEntries/views/RevisionDrawer.d.ts +2 -2
  150. package/presentation/contentEntries/views/RevisionsList.d.ts +2 -2
  151. package/presentation/contentEntries/views/SingleEntryLayout.d.ts +2 -2
  152. package/presentation/contentEntries/views/Table/Table.d.ts +2 -2
  153. package/presentation/contentEntries/views/actions/CreateNewRevisionButton.d.ts +2 -2
  154. package/presentation/contentEntries/views/actions/DeleteEntryMenuItem.d.ts +2 -2
  155. package/presentation/contentEntries/views/actions/PublishOnlyButton.d.ts +2 -2
  156. package/presentation/contentEntries/views/actions/RevisionSelector.d.ts +2 -2
  157. package/presentation/contentEntries/views/actions/SaveAndPublishButton.d.ts +2 -2
  158. package/presentation/contentEntries/views/actions/SaveContentButton.d.ts +2 -2
  159. package/presentation/contentEntries/views/actions/ShowRevisionListMenuItem.d.ts +2 -2
  160. package/presentation/contentEntries/views/layout/ContentEntryForm.d.ts +12 -12
  161. package/presentation/contentModels/ContentModelsPresenter.d.ts +5 -5
  162. package/presentation/contentModels/ContentModelsPresenter.js +1 -1
  163. package/presentation/contentModels/ContentModelsPresenter.js.map +1 -1
  164. package/presentation/contentModels/abstractions.d.ts +7 -2
  165. package/presentation/contentModels/abstractions.js.map +1 -1
  166. package/presentation/contentModels/components/CloneContentModelDialog.d.ts +2 -2
  167. package/presentation/contentModels/components/ContentModels.d.ts +2 -2
  168. package/presentation/contentModels/components/ContentModelsDataList.d.ts +2 -2
  169. package/presentation/contentModels/components/ContentModelsDataList.js +6 -5
  170. package/presentation/contentModels/components/ContentModelsDataList.js.map +1 -1
  171. package/presentation/contentModels/components/NewContentModelDialog.d.ts +2 -2
  172. package/presentation/contentModels/components/fullDelete/dialog/Content.js +2 -2
  173. package/presentation/contentModels/components/fullDelete/dialog/Content.js.map +1 -1
  174. package/presentation/contentModels/components/fullDelete/types.js.map +1 -1
  175. package/presentation/fieldRenderers/ref/autocomplete/RefAutocompletePresenters.test.d.ts +1 -0
  176. package/presentation/fieldRenderers/ref/autocomplete/RefAutocompletePresenters.test.js +133 -0
  177. package/presentation/fieldRenderers/ref/autocomplete/RefAutocompletePresenters.test.js.map +1 -0
  178. package/presentation/fieldRenderers/ref/autocomplete/multi/RefMultiAutocompletePresenter.js +1 -1
  179. package/presentation/fieldRenderers/ref/autocomplete/multi/RefMultiAutocompletePresenter.js.map +1 -1
  180. package/presentation/fieldRenderers/ref/autocomplete/single/RefSingleAutocompletePresenter.js +1 -1
  181. package/presentation/fieldRenderers/ref/autocomplete/single/RefSingleAutocompletePresenter.js.map +1 -1
  182. package/presentation/fieldRenderers/ref/components/RefFieldOptions.d.ts +2 -2
  183. package/presentation/fieldRenderers/ref/components/RefFieldOptions.js +3 -2
  184. package/presentation/fieldRenderers/ref/components/RefFieldOptions.js.map +1 -1
  185. package/presentation/importContentModels/ImportContentModelsDialog.d.ts +2 -2
  186. package/presentation/importContentModels/ImportContentModelsPresenter.js +1 -1
  187. package/presentation/importContentModels/ImportContentModelsPresenter.js.map +1 -1
  188. package/presentation/importContentModels/components/DataList.d.ts +2 -2
  189. package/presentation/importContentModels/components/FileUpload.d.ts +2 -2
  190. package/presentation/importContentModels/components/FileUpload.js +1 -1
  191. package/presentation/importContentModels/components/FileUpload.js.map +1 -1
  192. package/presentation/importContentModels/components/Model/DataListModelItem.js +3 -3
  193. package/presentation/importContentModels/components/Model/DataListModelItem.js.map +1 -1
  194. package/presentation/importContentModels/components/Model/DataListModelItemInfo.js +2 -2
  195. package/presentation/importContentModels/components/Model/DataListModelItemInfo.js.map +1 -1
  196. package/presentation/importContentModels/components/Model/DataListModels.d.ts +2 -2
  197. package/presentation/menus/ContentGroupsMenuItems.d.ts +2 -2
  198. package/presentation/modelGroup/ModelGroupPresenter.js +1 -2
  199. package/presentation/modelGroup/ModelGroupPresenter.js.map +1 -1
  200. package/presentation/modelGroup/components/ContentModelGroups.d.ts +2 -2
  201. package/presentation/modelGroup/components/ContentModelGroupsDataList.d.ts +6 -2
  202. package/presentation/modelGroup/components/ContentModelGroupsForm.d.ts +8 -2
  203. package/presentation/newContentModel/NewContentModelPresenter.d.ts +1 -0
  204. package/presentation/newContentModel/NewContentModelPresenter.js +8 -6
  205. package/presentation/newContentModel/NewContentModelPresenter.js.map +1 -1
  206. package/utils/normalizeIcon.d.ts +4 -0
  207. package/utils/normalizeIcon.js +9 -6
  208. package/utils/normalizeIcon.js.map +1 -1
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const OlderRevisionAlert: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const OlderRevisionAlert: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const RevisionDrawer: (() => React.JSX.Element) & {
3
- displayName: string;
2
+ export declare const RevisionDrawer: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const RevisionsList: (() => React.JSX.Element) & {
3
- displayName: string;
2
+ export declare const RevisionsList: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element;
4
4
  };
@@ -4,7 +4,7 @@ interface SingleEntryLayoutProps {
4
4
  presenter: ISingleEntryPresenter;
5
5
  modelName: string;
6
6
  }
7
- export declare const SingleEntryLayout: (({ presenter, modelName }: SingleEntryLayoutProps) => React.JSX.Element | null) & {
8
- displayName: string;
7
+ export declare const SingleEntryLayout: (({ presenter, modelName }: SingleEntryLayoutProps) => React.JSX.Element | null) & React.NamedExoticComponent<SingleEntryLayoutProps> & {
8
+ readonly type: ({ presenter, modelName }: SingleEntryLayoutProps) => React.JSX.Element | null;
9
9
  };
10
10
  export {};
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const Table: (() => React.JSX.Element) & {
3
- displayName: string;
2
+ export declare const Table: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const CreateNewRevisionButton: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const CreateNewRevisionButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const DeleteEntryMenuItem: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const DeleteEntryMenuItem: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const PublishOnlyButton: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const PublishOnlyButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const RevisionSelector: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const RevisionSelector: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const SaveAndPublishButton: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const SaveAndPublishButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const SaveContentButton: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const SaveContentButton: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  };
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
- export declare const ShowRevisionListMenuItem: (() => React.JSX.Element) & {
3
- displayName: string;
2
+ export declare const ShowRevisionListMenuItem: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element;
4
4
  };
@@ -1,18 +1,18 @@
1
1
  import React from "react";
2
- export declare const ContentEntryForm: (() => React.JSX.Element | null) & {
3
- displayName: string;
2
+ export declare const ContentEntryForm: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element | null;
4
4
  } & {
5
- original: (() => React.JSX.Element | null) & {
6
- displayName: string;
5
+ original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
6
+ readonly type: () => React.JSX.Element | null;
7
7
  };
8
8
  originalName: string;
9
9
  displayName: string;
10
10
  } & {
11
- original: (() => React.JSX.Element | null) & {
12
- displayName: string;
11
+ original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
12
+ readonly type: () => React.JSX.Element | null;
13
13
  } & {
14
- original: (() => React.JSX.Element | null) & {
15
- displayName: string;
14
+ original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
15
+ readonly type: () => React.JSX.Element | null;
16
16
  };
17
17
  originalName: string;
18
18
  displayName: string;
@@ -20,11 +20,11 @@ export declare const ContentEntryForm: (() => React.JSX.Element | null) & {
20
20
  originalName: string;
21
21
  displayName: string;
22
22
  } & {
23
- createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(() => React.JSX.Element | null) & {
24
- displayName: string;
23
+ createDecorator: (decorator: import("@webiny/react-composition").ComponentDecorator<(() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
24
+ readonly type: () => React.JSX.Element | null;
25
25
  } & {
26
- original: (() => React.JSX.Element | null) & {
27
- displayName: string;
26
+ original: (() => React.JSX.Element | null) & React.NamedExoticComponent<unknown> & {
27
+ readonly type: () => React.JSX.Element | null;
28
28
  };
29
29
  originalName: string;
30
30
  displayName: string;
@@ -5,8 +5,8 @@ import { DeleteModelUseCase } from "../../features/model/deleteModel/abstraction
5
5
  import { CancelDeleteModelUseCase } from "../../features/model/cancelDeleteModel/abstractions.js";
6
6
  import { ExportModelsUseCase } from "../../features/model/exportModels/abstractions.js";
7
7
  import { ModelsCache } from "../../features/model/abstractions.js";
8
- import { type IContentModelsPresenter, type IContentModelsPresenterViewModel } from "./abstractions.js";
9
- declare class ContentModelsPresenterImpl implements IContentModelsPresenter {
8
+ import { ContentModelsPresenter as Abstraction } from "./abstractions.js";
9
+ declare class ContentModelsPresenterImpl implements Abstraction.Interface {
10
10
  private listPresenter;
11
11
  private listModelsUseCase;
12
12
  private deleteModelUseCase;
@@ -15,14 +15,14 @@ declare class ContentModelsPresenterImpl implements IContentModelsPresenter {
15
15
  private cache;
16
16
  private loading;
17
17
  constructor(listPresenter: ListPresenter.Interface<CmsModel>, listModelsUseCase: ListModelsUseCase.Interface, deleteModelUseCase: DeleteModelUseCase.Interface, cancelDeleteModelUseCase: CancelDeleteModelUseCase.Interface, exportModelsUseCase: ExportModelsUseCase.Interface, cache: ModelsCache.Interface);
18
- get vm(): IContentModelsPresenterViewModel;
18
+ get vm(): Abstraction.ViewModel;
19
19
  get list(): ListPresenter.Interface<CmsModel>;
20
20
  init(): void;
21
21
  deleteModel(modelId: string, confirmation: string): Promise<import("~/features/model/deleteModel/abstractions.js").DeleteModelResult>;
22
22
  cancelDelete(modelId: string): Promise<void>;
23
- exportModels(modelIds?: string[]): Promise<any>;
23
+ exportModels(modelIds?: string[]): Promise<Abstraction.ExportModelResponse | null>;
24
24
  }
25
25
  export declare const ContentModelsPresenter: typeof ContentModelsPresenterImpl & {
26
- __abstraction: import("@webiny/di").Abstraction<IContentModelsPresenter>;
26
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IContentModelsPresenter>;
27
27
  };
28
28
  export {};
@@ -59,7 +59,7 @@ class ContentModelsPresenterImpl {
59
59
  return this.cancelDeleteModelUseCase.execute(modelId);
60
60
  }
61
61
  async exportModels(modelIds) {
62
- return this.exportModelsUseCase.execute(modelIds);
62
+ return await this.exportModelsUseCase.execute(modelIds);
63
63
  }
64
64
  }
65
65
  const ContentModelsPresenter_ContentModelsPresenter = ContentModelsPresenter.createImplementation({
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/contentModels/ContentModelsPresenter.js","sources":["../../../src/presentation/contentModels/ContentModelsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport { ListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { ListModelsUseCase } from \"~/features/model/listModels/abstractions.js\";\nimport { DeleteModelUseCase } from \"~/features/model/deleteModel/abstractions.js\";\nimport { CancelDeleteModelUseCase } from \"~/features/model/cancelDeleteModel/abstractions.js\";\nimport { ExportModelsUseCase } from \"~/features/model/exportModels/abstractions.js\";\nimport { ModelsCache } from \"~/features/model/abstractions.js\";\nimport {\n ContentModelsPresenter as Abstraction,\n type IContentModelsPresenter,\n type IContentModelsPresenterViewModel\n} from \"./abstractions.js\";\nimport { ContentModelsDataSource } from \"./ContentModelsDataSource.js\";\n\nclass ContentModelsPresenterImpl implements IContentModelsPresenter {\n private loading = true;\n\n constructor(\n private listPresenter: ListPresenter.Interface<CmsModel>,\n private listModelsUseCase: ListModelsUseCase.Interface,\n private deleteModelUseCase: DeleteModelUseCase.Interface,\n private cancelDeleteModelUseCase: CancelDeleteModelUseCase.Interface,\n private exportModelsUseCase: ExportModelsUseCase.Interface,\n private cache: ModelsCache.Interface\n ) {\n makeAutoObservable<\n ContentModelsPresenterImpl,\n | \"listModelsUseCase\"\n | \"deleteModelUseCase\"\n | \"cancelDeleteModelUseCase\"\n | \"exportModelsUseCase\"\n | \"cache\"\n >(this, {\n listModelsUseCase: false,\n deleteModelUseCase: false,\n cancelDeleteModelUseCase: false,\n exportModelsUseCase: false,\n cache: false,\n vm: computed\n });\n }\n\n get vm(): IContentModelsPresenterViewModel {\n const models = this.cache.getItems().filter(model => {\n if (!model.tags || model.tags.length === 0) {\n return true;\n }\n return !model.tags.includes(\"$hidden:true\");\n });\n\n return {\n loading: this.loading,\n models\n };\n }\n\n get list(): ListPresenter.Interface<CmsModel> {\n return this.listPresenter;\n }\n\n init(): void {\n const dataSource = new ContentModelsDataSource(this.listModelsUseCase, this.cache);\n\n this.listPresenter.init({\n dataSource,\n initialSort: { field: \"savedOn\", direction: \"DESC\" },\n limit: 1000\n });\n\n runInAction(() => {\n this.loading = false;\n });\n }\n\n async deleteModel(modelId: string, confirmation: string) {\n return this.deleteModelUseCase.execute(modelId, confirmation);\n }\n\n async cancelDelete(modelId: string) {\n return this.cancelDeleteModelUseCase.execute(modelId);\n }\n\n async exportModels(modelIds?: string[]) {\n return this.exportModelsUseCase.execute(modelIds);\n }\n}\n\nexport const ContentModelsPresenter = Abstraction.createImplementation({\n implementation: ContentModelsPresenterImpl,\n dependencies: [\n ListPresenter,\n ListModelsUseCase,\n DeleteModelUseCase,\n CancelDeleteModelUseCase,\n ExportModelsUseCase,\n ModelsCache\n ]\n});\n"],"names":["ContentModelsPresenterImpl","listPresenter","listModelsUseCase","deleteModelUseCase","cancelDeleteModelUseCase","exportModelsUseCase","cache","makeAutoObservable","computed","models","model","dataSource","ContentModelsDataSource","runInAction","modelId","confirmation","modelIds","ContentModelsPresenter","Abstraction","ListPresenter","ListModelsUseCase","DeleteModelUseCase","CancelDeleteModelUseCase","ExportModelsUseCase","ModelsCache"],"mappings":";;;;;;;;;AAeA,MAAMA;IAGF,YACYC,aAAgD,EAChDC,iBAA8C,EAC9CC,kBAAgD,EAChDC,wBAA4D,EAC5DC,mBAAkD,EAClDC,KAA4B,CACtC;aANUL,aAAa,GAAbA;aACAC,iBAAiB,GAAjBA;aACAC,kBAAkB,GAAlBA;aACAC,wBAAwB,GAAxBA;aACAC,mBAAmB,GAAnBA;aACAC,KAAK,GAALA;aARJ,OAAO,GAAG;QAUdC,mBAOE,IAAI,EAAE;YACJ,mBAAmB;YACnB,oBAAoB;YACpB,0BAA0B;YAC1B,qBAAqB;YACrB,OAAO;YACP,IAAIC;QACR;IACJ;IAEA,IAAI,KAAuC;QACvC,MAAMC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAACC,CAAAA;YACxC,IAAI,CAACA,MAAM,IAAI,IAAIA,AAAsB,MAAtBA,MAAM,IAAI,CAAC,MAAM,EAChC,OAAO;YAEX,OAAO,CAACA,MAAM,IAAI,CAAC,QAAQ,CAAC;QAChC;QAEA,OAAO;YACH,SAAS,IAAI,CAAC,OAAO;YACrBD;QACJ;IACJ;IAEA,IAAI,OAA0C;QAC1C,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,OAAa;QACT,MAAME,aAAa,IAAIC,wBAAwB,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK;QAEjF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpBD;YACA,aAAa;gBAAE,OAAO;gBAAW,WAAW;YAAO;YACnD,OAAO;QACX;QAEAE,YAAY;YACR,IAAI,CAAC,OAAO,GAAG;QACnB;IACJ;IAEA,MAAM,YAAYC,OAAe,EAAEC,YAAoB,EAAE;QACrD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD,SAASC;IACpD;IAEA,MAAM,aAAaD,OAAe,EAAE;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAACA;IACjD;IAEA,MAAM,aAAaE,QAAmB,EAAE;QACpC,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA;IAC5C;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAAgC,CAAC;IACnE,gBAAgBlB;IAChB,cAAc;QACVmB;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
1
+ {"version":3,"file":"presentation/contentModels/ContentModelsPresenter.js","sources":["../../../src/presentation/contentModels/ContentModelsPresenter.ts"],"sourcesContent":["import { makeAutoObservable, runInAction, computed } from \"mobx\";\nimport { ListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { ListModelsUseCase } from \"~/features/model/listModels/abstractions.js\";\nimport { DeleteModelUseCase } from \"~/features/model/deleteModel/abstractions.js\";\nimport { CancelDeleteModelUseCase } from \"~/features/model/cancelDeleteModel/abstractions.js\";\nimport { ExportModelsUseCase } from \"~/features/model/exportModels/abstractions.js\";\nimport { ModelsCache } from \"~/features/model/abstractions.js\";\nimport { ContentModelsPresenter as Abstraction } from \"./abstractions.js\";\nimport { ContentModelsDataSource } from \"./ContentModelsDataSource.js\";\n\nclass ContentModelsPresenterImpl implements Abstraction.Interface {\n private loading = true;\n\n constructor(\n private listPresenter: ListPresenter.Interface<CmsModel>,\n private listModelsUseCase: ListModelsUseCase.Interface,\n private deleteModelUseCase: DeleteModelUseCase.Interface,\n private cancelDeleteModelUseCase: CancelDeleteModelUseCase.Interface,\n private exportModelsUseCase: ExportModelsUseCase.Interface,\n private cache: ModelsCache.Interface\n ) {\n makeAutoObservable<\n ContentModelsPresenterImpl,\n | \"listModelsUseCase\"\n | \"deleteModelUseCase\"\n | \"cancelDeleteModelUseCase\"\n | \"exportModelsUseCase\"\n | \"cache\"\n >(this, {\n listModelsUseCase: false,\n deleteModelUseCase: false,\n cancelDeleteModelUseCase: false,\n exportModelsUseCase: false,\n cache: false,\n vm: computed\n });\n }\n\n get vm(): Abstraction.ViewModel {\n const models = this.cache.getItems().filter(model => {\n if (!model.tags || model.tags.length === 0) {\n return true;\n }\n return !model.tags.includes(\"$hidden:true\");\n });\n\n return {\n loading: this.loading,\n models\n };\n }\n\n get list(): ListPresenter.Interface<CmsModel> {\n return this.listPresenter;\n }\n\n init(): void {\n const dataSource = new ContentModelsDataSource(this.listModelsUseCase, this.cache);\n\n this.listPresenter.init({\n dataSource,\n initialSort: { field: \"savedOn\", direction: \"DESC\" },\n limit: 1000\n });\n\n runInAction(() => {\n this.loading = false;\n });\n }\n\n async deleteModel(modelId: string, confirmation: string) {\n return this.deleteModelUseCase.execute(modelId, confirmation);\n }\n\n async cancelDelete(modelId: string) {\n return this.cancelDeleteModelUseCase.execute(modelId);\n }\n\n async exportModels(modelIds?: string[]): Promise<Abstraction.ExportModelResponse | null> {\n return await this.exportModelsUseCase.execute(modelIds);\n }\n}\n\nexport const ContentModelsPresenter = Abstraction.createImplementation({\n implementation: ContentModelsPresenterImpl,\n dependencies: [\n ListPresenter,\n ListModelsUseCase,\n DeleteModelUseCase,\n CancelDeleteModelUseCase,\n ExportModelsUseCase,\n ModelsCache\n ]\n});\n"],"names":["ContentModelsPresenterImpl","listPresenter","listModelsUseCase","deleteModelUseCase","cancelDeleteModelUseCase","exportModelsUseCase","cache","makeAutoObservable","computed","models","model","dataSource","ContentModelsDataSource","runInAction","modelId","confirmation","modelIds","ContentModelsPresenter","Abstraction","ListPresenter","ListModelsUseCase","DeleteModelUseCase","CancelDeleteModelUseCase","ExportModelsUseCase","ModelsCache"],"mappings":";;;;;;;;;AAWA,MAAMA;IAGF,YACYC,aAAgD,EAChDC,iBAA8C,EAC9CC,kBAAgD,EAChDC,wBAA4D,EAC5DC,mBAAkD,EAClDC,KAA4B,CACtC;aANUL,aAAa,GAAbA;aACAC,iBAAiB,GAAjBA;aACAC,kBAAkB,GAAlBA;aACAC,wBAAwB,GAAxBA;aACAC,mBAAmB,GAAnBA;aACAC,KAAK,GAALA;aARJ,OAAO,GAAG;QAUdC,mBAOE,IAAI,EAAE;YACJ,mBAAmB;YACnB,oBAAoB;YACpB,0BAA0B;YAC1B,qBAAqB;YACrB,OAAO;YACP,IAAIC;QACR;IACJ;IAEA,IAAI,KAA4B;QAC5B,MAAMC,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAACC,CAAAA;YACxC,IAAI,CAACA,MAAM,IAAI,IAAIA,AAAsB,MAAtBA,MAAM,IAAI,CAAC,MAAM,EAChC,OAAO;YAEX,OAAO,CAACA,MAAM,IAAI,CAAC,QAAQ,CAAC;QAChC;QAEA,OAAO;YACH,SAAS,IAAI,CAAC,OAAO;YACrBD;QACJ;IACJ;IAEA,IAAI,OAA0C;QAC1C,OAAO,IAAI,CAAC,aAAa;IAC7B;IAEA,OAAa;QACT,MAAME,aAAa,IAAIC,wBAAwB,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,KAAK;QAEjF,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpBD;YACA,aAAa;gBAAE,OAAO;gBAAW,WAAW;YAAO;YACnD,OAAO;QACX;QAEAE,YAAY;YACR,IAAI,CAAC,OAAO,GAAG;QACnB;IACJ;IAEA,MAAM,YAAYC,OAAe,EAAEC,YAAoB,EAAE;QACrD,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAACD,SAASC;IACpD;IAEA,MAAM,aAAaD,OAAe,EAAE;QAChC,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAACA;IACjD;IAEA,MAAM,aAAaE,QAAmB,EAAmD;QACrF,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA;IAClD;AACJ;AAEO,MAAMC,gDAAyBC,uBAAAA,oBAAgC,CAAC;IACnE,gBAAgBlB;IAChB,cAAc;QACVmB;QACAC;QACAC;QACAC;QACAC;QACAC;KACH;AACL"}
@@ -1,20 +1,25 @@
1
1
  import type { IListPresenter } from "@webiny/app-admin/presentation/listPresenter/abstractions.js";
2
- import type { CmsModel } from "../../types.js";
2
+ import type { CmsGroup, CmsModel } from "../../types.js";
3
3
  import type { DeleteModelResult } from "../../features/model/deleteModel/abstractions.js";
4
4
  export interface IContentModelsPresenterViewModel {
5
5
  loading: boolean;
6
6
  models: CmsModel[];
7
7
  }
8
+ export interface IContentModelsPresenterExportModelsResponse {
9
+ groups: CmsGroup[];
10
+ models: CmsModel[];
11
+ }
8
12
  export interface IContentModelsPresenter {
9
13
  readonly vm: IContentModelsPresenterViewModel;
10
14
  readonly list: IListPresenter<CmsModel>;
11
15
  init(): void;
12
16
  deleteModel(modelId: string, confirmation: string): Promise<DeleteModelResult>;
13
17
  cancelDelete(modelId: string): Promise<void>;
14
- exportModels(modelIds?: string[]): Promise<any>;
18
+ exportModels(modelIds?: string[]): Promise<IContentModelsPresenterExportModelsResponse | null>;
15
19
  }
16
20
  export declare const ContentModelsPresenter: import("@webiny/di").Abstraction<IContentModelsPresenter>;
17
21
  export declare namespace ContentModelsPresenter {
18
22
  type Interface = IContentModelsPresenter;
19
23
  type ViewModel = IContentModelsPresenterViewModel;
24
+ type ExportModelResponse = IContentModelsPresenterExportModelsResponse;
20
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/contentModels/abstractions.js","sources":["../../../src/presentation/contentModels/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport type { DeleteModelResult } from \"~/features/model/deleteModel/abstractions.js\";\n\nexport interface IContentModelsPresenterViewModel {\n loading: boolean;\n models: CmsModel[];\n}\n\nexport interface IContentModelsPresenter {\n readonly vm: IContentModelsPresenterViewModel;\n readonly list: IListPresenter<CmsModel>;\n init(): void;\n deleteModel(modelId: string, confirmation: string): Promise<DeleteModelResult>;\n cancelDelete(modelId: string): Promise<void>;\n exportModels(modelIds?: string[]): Promise<any>;\n}\n\nexport const ContentModelsPresenter = createAbstraction<IContentModelsPresenter>(\n \"CmsContentModels/Presenter\"\n);\n\nexport namespace ContentModelsPresenter {\n export type Interface = IContentModelsPresenter;\n export type ViewModel = IContentModelsPresenterViewModel;\n}\n"],"names":["ContentModelsPresenter","createAbstraction"],"mappings":";AAmBO,MAAMA,yBAAyBC,kBAClC"}
1
+ {"version":3,"file":"presentation/contentModels/abstractions.js","sources":["../../../src/presentation/contentModels/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/admin\";\nimport type { IListPresenter } from \"@webiny/app-admin/presentation/listPresenter/abstractions.js\";\nimport type { CmsGroup, CmsModel } from \"~/types.js\";\nimport type { DeleteModelResult } from \"~/features/model/deleteModel/abstractions.js\";\n\nexport interface IContentModelsPresenterViewModel {\n loading: boolean;\n models: CmsModel[];\n}\n\nexport interface IContentModelsPresenterExportModelsResponse {\n groups: CmsGroup[];\n models: CmsModel[];\n}\n\nexport interface IContentModelsPresenter {\n readonly vm: IContentModelsPresenterViewModel;\n readonly list: IListPresenter<CmsModel>;\n init(): void;\n deleteModel(modelId: string, confirmation: string): Promise<DeleteModelResult>;\n cancelDelete(modelId: string): Promise<void>;\n exportModels(modelIds?: string[]): Promise<IContentModelsPresenterExportModelsResponse | null>;\n}\n\nexport const ContentModelsPresenter = createAbstraction<IContentModelsPresenter>(\n \"CmsContentModels/Presenter\"\n);\n\nexport namespace ContentModelsPresenter {\n export type Interface = IContentModelsPresenter;\n export type ViewModel = IContentModelsPresenterViewModel;\n export type ExportModelResponse = IContentModelsPresenterExportModelsResponse;\n}\n"],"names":["ContentModelsPresenter","createAbstraction"],"mappings":";AAwBO,MAAMA,yBAAyBC,kBAClC"}
@@ -5,7 +5,7 @@ interface CloneContentModelDialogProps {
5
5
  contentModel: CmsModel;
6
6
  closeModal: () => void;
7
7
  }
8
- export declare const CloneContentModelDialog: (({ onClose, contentModel, closeModal }: CloneContentModelDialogProps) => React.JSX.Element) & {
9
- displayName: string;
8
+ export declare const CloneContentModelDialog: (({ onClose, contentModel, closeModal }: CloneContentModelDialogProps) => React.JSX.Element) & React.NamedExoticComponent<CloneContentModelDialogProps> & {
9
+ readonly type: ({ onClose, contentModel, closeModal }: CloneContentModelDialogProps) => React.JSX.Element;
10
10
  };
11
11
  export {};
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- declare const ContentModels: (() => React.JSX.Element) & {
3
- displayName: string;
2
+ declare const ContentModels: (() => React.JSX.Element) & React.NamedExoticComponent<unknown> & {
3
+ readonly type: () => React.JSX.Element;
4
4
  };
5
5
  export default ContentModels;
@@ -6,7 +6,7 @@ interface ContentModelsDataListProps {
6
6
  onClone: (contentModel: CmsModel) => void;
7
7
  showImportModelModal: () => void;
8
8
  }
9
- declare const ContentModelsDataList: (({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => React.JSX.Element) & {
10
- displayName: string;
9
+ declare const ContentModelsDataList: (({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => React.JSX.Element) & React.NamedExoticComponent<ContentModelsDataListProps> & {
10
+ readonly type: ({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => React.JSX.Element;
11
11
  };
12
12
  export default ContentModelsDataList;
@@ -48,7 +48,8 @@ const deserializeSorters = (data)=>{
48
48
  ];
49
49
  };
50
50
  const DisplayIcon = ({ model })=>{
51
- if (!model.icon) return null;
51
+ const icon = normalizeIcon(model.icon);
52
+ if (!icon) return null;
52
53
  return /*#__PURE__*/ react.createElement("div", {
53
54
  className: "text-neutral-muted"
54
55
  }, /*#__PURE__*/ react.createElement(Icon, {
@@ -56,7 +57,7 @@ const DisplayIcon = ({ model })=>{
56
57
  color: "inherit",
57
58
  label: "Content model icon",
58
59
  icon: /*#__PURE__*/ react.createElement(FontAwesomeIcon, {
59
- icon: normalizeIcon(model.icon)
60
+ icon: icon
60
61
  })
61
62
  }));
62
63
  };
@@ -104,10 +105,10 @@ const ContentModelsDataList = observer(({ canCreate, onCreate, onClone, showImpo
104
105
  (async ()=>{
105
106
  try {
106
107
  const data = await presenter.exportModels(modelIds);
107
- if (!data || !data.models || 0 === data.models.length) return void showSnackbar("No data returned from the export query.");
108
+ if (!data?.models?.length) return void showSnackbar("No data returned from the export query.");
108
109
  download(data);
109
- } catch (e) {
110
- showSnackbar(e.message);
110
+ } catch (ex) {
111
+ showSnackbar(ex.message);
111
112
  }
112
113
  })();
113
114
  }, [
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/contentModels/components/ContentModelsDataList.js","sources":["../../../../src/presentation/contentModels/components/ContentModelsDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport orderBy from \"lodash/orderBy.js\";\nimport { TimeAgo } from \"@webiny/admin-ui\";\nimport { SearchUI, useRouter, useSnackbar } from \"@webiny/app-admin\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport {\n ReactComponent as DownloadFileIcon,\n ReactComponent as ExportIcon\n} from \"@webiny/icons/file_download.svg\";\nimport { ReactComponent as UploadFileIcon } from \"@webiny/icons/file_upload.svg\";\nimport { ReactComponent as ListIcon } from \"@webiny/icons/list.svg\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as MoreVertIcon } from \"@webiny/icons/more_vert.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as CloneIcon } from \"@webiny/icons/flip_to_front.svg\";\nimport { DataList, DataListModal, List } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { usePermission } from \"~/admin/hooks/usePermission.js\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport type { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { ModelIsBeingDeleted } from \"./fullDelete/ModelIsBeingDeleted.js\";\nimport { FullyDeleteModelDialog } from \"./fullDelete/FullyDeleteModelDialog.js\";\nimport { Button, DropdownMenu, Icon, IconButton, Select, Tooltip } from \"@webiny/admin-ui\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/app-headless-cms-common\";\nimport { Routes } from \"~/routes.js\";\nimport { normalizeIcon } from \"~/utils/normalizeIcon.js\";\nimport { useContentModelsPresenter } from \"../useContentModelsPresenter.js\";\nimport { download } from \"../utils/download.js\";\n\nconst t = i18n.namespace(\"FormsApp.ContentModelsDataList\");\n\nconst SORTERS = [\n { label: \"Newest to oldest\", sorter: \"savedOn_DESC\" },\n { label: \"Oldest to newest\", sorter: \"savedOn_ASC\" },\n { label: \"Name A-Z\", sorter: \"name_ASC\" },\n { label: \"Name Z-A\", sorter: \"name_DESC\" }\n];\n\nconst deserializeSorters = (data: string): [string, \"asc\" | \"desc\"] => {\n const [field, order] = data.split(\"_\");\n return [field, order.toLowerCase() === \"asc\" ? \"asc\" : \"desc\"];\n};\n\ninterface ContentModelsDataListProps {\n canCreate: boolean;\n onCreate: () => void;\n onClone: (contentModel: CmsModel) => void;\n showImportModelModal: () => void;\n}\n\ninterface IconProps {\n model: Pick<CmsModel, \"icon\">;\n}\n\nconst DisplayIcon = ({ model }: IconProps) => {\n if (!model.icon) {\n return null;\n }\n return (\n <div className={\"text-neutral-muted\"}>\n <Icon\n size={\"lg\"}\n color={\"inherit\"}\n label={\"Content model icon\"}\n icon={<FontAwesomeIcon icon={normalizeIcon(model.icon) as IconProp} />}\n />\n </div>\n );\n};\n\nconst ContentModelsDataList = observer(\n ({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => {\n const presenter = useContentModelsPresenter();\n const { goToRoute } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { canDelete, canEdit } = usePermission();\n\n const [filter, setFilter] = useState(\"\");\n const [sort, setSort] = useState(SORTERS[0].sorter);\n const [modelToBeDeleted, setModelToBeDeleted] = useState<CmsModel | null>(null);\n\n const models = presenter.vm.models;\n const loading = presenter.vm.loading;\n\n const filteredData = useMemo(() => {\n if (filter === \"\") {\n return models;\n }\n const lc = filter.toLowerCase();\n return models.filter((m: CmsModel) => m.name.toLowerCase().includes(lc));\n }, [models, filter]);\n\n const sortedData = useMemo(() => {\n if (!sort) {\n return filteredData;\n }\n const [key, order] = deserializeSorters(sort);\n return orderBy(filteredData, [key], [order]);\n }, [filteredData, sort]);\n\n const editRecord = (contentModel: CmsModel): void => {\n goToRoute(Routes.ContentModels.Editor, { modelId: contentModel.modelId });\n };\n\n const viewContentEntries = useCallback((contentModel: Pick<CmsModel, \"modelId\">) => {\n return () => {\n goToRoute(Routes.ContentEntries.List, { modelId: contentModel.modelId });\n };\n }, []);\n\n const handleModelsExport = useCallback(\n (modelIds?: string[]) => {\n (async () => {\n try {\n const data = await presenter.exportModels(modelIds);\n if (!data || !data.models || data.models.length === 0) {\n showSnackbar(\"No data returned from the export query.\");\n return;\n }\n download(data);\n } catch (e: any) {\n showSnackbar(e.message);\n }\n })();\n },\n [presenter]\n );\n\n const handleModelExport = useCallback(\n (model: CmsModel) => {\n return () => {\n handleModelsExport([model.modelId]);\n };\n },\n [handleModelsExport]\n );\n\n return (\n <>\n <DataList\n loading={loading}\n data={sortedData}\n title={t`Content Models`}\n actions={\n <div className={\"flex items-center justify-end gap-xs\"}>\n <Tooltip\n content={\"Export all models\"}\n trigger={\n <IconButton\n icon={<DownloadFileIcon />}\n size={\"sm\"}\n variant={\"ghost\"}\n onClick={() => handleModelsExport()}\n />\n }\n />\n <Tooltip\n content={\"Import models\"}\n trigger={\n <IconButton\n icon={<UploadFileIcon />}\n size={\"sm\"}\n variant={\"ghost\"}\n onClick={() => showImportModelModal()}\n />\n }\n />\n {canCreate ? (\n <Button\n data-testid=\"new-record-button\"\n onClick={onCreate}\n text={t`New`}\n icon={<AddIcon />}\n size={\"sm\"}\n className={\"ml-xs\"}\n />\n ) : null}\n </div>\n }\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search content model...`}\n />\n }\n modalOverlay={\n <DataListModal.Content>\n <Select\n value={sort}\n onChange={setSort}\n label={t`Sort by`}\n options={SORTERS.map(({ label, sorter: value }) => ({\n label,\n value\n }))}\n />\n </DataListModal.Content>\n }\n modalOverlayAction={\n <DataListModal.Trigger data-testid={\"default-data-list.filter\"} />\n }\n refresh={null}\n >\n {({ data = [] }: { data: CmsModel[] }) => {\n return (\n <List data-testid=\"default-data-list\">\n {data.map(contentModel => {\n const disableViewContent = contentModel.fields.length === 0;\n const getMessage = () => {\n if (disableViewContent) {\n return \"To view the entries, you first need to add a field and save the model\";\n }\n if (contentModel.tags.includes(CMS_MODEL_SINGLETON_TAG)) {\n return \"View\";\n }\n return \"View entries\";\n };\n\n const canDeleteModel = canDelete(\n contentModel,\n \"cms.contentModel\"\n );\n const canEditModel = canEdit(contentModel, \"cms.contentModel\");\n\n return (\n <List.Item\n key={contentModel.modelId}\n className={\"group/item\"}\n icon={<DisplayIcon model={contentModel} />}\n title={contentModel.name}\n description={t`Last modified: {time}.`({\n time: contentModel.savedOn ? (\n <TimeAgo datetime={contentModel.savedOn} />\n ) : (\n \"N/A\"\n )\n })}\n actions={\n <>\n <ModelIsBeingDeleted model={contentModel}>\n <span\n className={\n \"invisible group-hover/item:visible\"\n }\n >\n <Tooltip\n side={\"top\"}\n content={getMessage()}\n trigger={\n <Button\n text={\"View entries\"}\n icon={<ListIcon />}\n variant={\"secondary\"}\n size={\"sm\"}\n data-testid={\n \"cms-view-content-model-button\"\n }\n onClick={viewContentEntries(\n contentModel\n )}\n disabled={\n disableViewContent\n }\n />\n }\n />\n </span>\n\n {canEditModel && (\n <span\n className={\n \"invisible group-hover/item:visible\"\n }\n >\n <Tooltip\n side={\"top\"}\n content={\n contentModel.plugin\n ? t`Content model is registered via a plugin.`\n : t`Edit content model`\n }\n trigger={\n <Button\n text={\"Edit\"}\n icon={<EditIcon />}\n variant={\"secondary\"}\n size={\"sm\"}\n disabled={\n contentModel.plugin\n }\n onClick={() =>\n editRecord(\n contentModel\n )\n }\n data-testid={\n \"cms-edit-content-model-button\"\n }\n />\n }\n />\n </span>\n )}\n\n <DropdownMenu\n trigger={\n <IconButton\n icon={<MoreVertIcon />}\n size={\"sm\"}\n variant={\"ghost\"}\n />\n }\n >\n {canEditModel && (\n <DropdownMenu.Item\n text={\"Clone\"}\n icon={\n <DropdownMenu.Item.Icon\n label={\"Clone\"}\n element={<CloneIcon />}\n />\n }\n data-testid={\n \"cms-clone-content-model-button\"\n }\n onClick={() =>\n onClone(contentModel)\n }\n />\n )}\n\n <DropdownMenu.Item\n text={\"Export\"}\n icon={\n <DropdownMenu.Item.Icon\n label={\"Export\"}\n element={<ExportIcon />}\n />\n }\n data-testid={\n \"cms-export-content-model-button\"\n }\n onClick={handleModelExport(\n contentModel\n )}\n />\n\n {canDeleteModel && (\n <DropdownMenu.Item\n text={\"Delete\"}\n icon={\n <DropdownMenu.Item.Icon\n label={\"Delete\"}\n element={<DeleteIcon />}\n />\n }\n onClick={() => {\n setModelToBeDeleted(\n contentModel\n );\n }}\n data-testid={\n \"cms-delete-content-model-button\"\n }\n className={\n \"text-destructive-primary! [&_svg]:fill-destructive\"\n }\n />\n )}\n </DropdownMenu>\n </ModelIsBeingDeleted>\n </>\n }\n />\n );\n })}\n </List>\n );\n }}\n </DataList>\n {modelToBeDeleted ? (\n <FullyDeleteModelDialog\n model={modelToBeDeleted}\n onClose={() => {\n setModelToBeDeleted(null);\n }}\n />\n ) : null}\n </>\n );\n }\n);\n\nexport default ContentModelsDataList;\n"],"names":["t","i18n","SORTERS","deserializeSorters","data","field","order","DisplayIcon","model","Icon","FontAwesomeIcon","normalizeIcon","ContentModelsDataList","observer","canCreate","onCreate","onClone","showImportModelModal","presenter","useContentModelsPresenter","goToRoute","useRouter","showSnackbar","useSnackbar","canDelete","canEdit","usePermission","filter","setFilter","useState","sort","setSort","modelToBeDeleted","setModelToBeDeleted","models","loading","filteredData","useMemo","lc","m","sortedData","key","orderBy","editRecord","contentModel","Routes","viewContentEntries","useCallback","handleModelsExport","modelIds","download","e","handleModelExport","DataList","Tooltip","IconButton","DownloadFileIcon","UploadFileIcon","Button","AddIcon","SearchUI","DataListModal","Select","label","value","List","disableViewContent","getMessage","CMS_MODEL_SINGLETON_TAG","canDeleteModel","canEditModel","TimeAgo","ModelIsBeingDeleted","ListIcon","EditIcon","DropdownMenu","MoreVertIcon","CloneIcon","ExportIcon","DeleteIcon","FullyDeleteModelDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA+BA,MAAMA,IAAIC,KAAK,SAAS,CAAC;AAEzB,MAAMC,UAAU;IACZ;QAAE,OAAO;QAAoB,QAAQ;IAAe;IACpD;QAAE,OAAO;QAAoB,QAAQ;IAAc;IACnD;QAAE,OAAO;QAAY,QAAQ;IAAW;IACxC;QAAE,OAAO;QAAY,QAAQ;IAAY;CAC5C;AAED,MAAMC,qBAAqB,CAACC;IACxB,MAAM,CAACC,OAAOC,MAAM,GAAGF,KAAK,KAAK,CAAC;IAClC,OAAO;QAACC;QAA+B,UAAxBC,MAAM,WAAW,KAAe,QAAQ;KAAO;AAClE;AAaA,MAAMC,cAAc,CAAC,EAAEC,KAAK,EAAa;IACrC,IAAI,CAACA,MAAM,IAAI,EACX,OAAO;IAEX,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACC,MAAIA;QACD,MAAM;QACN,OAAO;QACP,OAAO;QACP,oBAAM,oBAACC,iBAAeA;YAAC,MAAMC,cAAcH,MAAM,IAAI;;;AAIrE;AAEA,MAAMI,wBAAwBC,SAC1B,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,oBAAoB,EAA8B;IAC/E,MAAMC,YAAYC;IAClB,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAM,EAAEC,YAAY,EAAE,GAAGC;IACzB,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGC;IAE/B,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAAS;IACrC,MAAM,CAACC,MAAMC,QAAQ,GAAGF,SAAS3B,OAAO,CAAC,EAAE,CAAC,MAAM;IAClD,MAAM,CAAC8B,kBAAkBC,oBAAoB,GAAGJ,SAA0B;IAE1E,MAAMK,SAAShB,UAAU,EAAE,CAAC,MAAM;IAClC,MAAMiB,UAAUjB,UAAU,EAAE,CAAC,OAAO;IAEpC,MAAMkB,eAAeC,QAAQ;QACzB,IAAIV,AAAW,OAAXA,QACA,OAAOO;QAEX,MAAMI,KAAKX,OAAO,WAAW;QAC7B,OAAOO,OAAO,MAAM,CAAC,CAACK,IAAgBA,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAACD;IACxE,GAAG;QAACJ;QAAQP;KAAO;IAEnB,MAAMa,aAAaH,QAAQ;QACvB,IAAI,CAACP,MACD,OAAOM;QAEX,MAAM,CAACK,KAAKnC,MAAM,GAAGH,mBAAmB2B;QACxC,OAAOY,QAAQN,cAAc;YAACK;SAAI,EAAE;YAACnC;SAAM;IAC/C,GAAG;QAAC8B;QAAcN;KAAK;IAEvB,MAAMa,aAAa,CAACC;QAChBxB,UAAUyB,OAAO,aAAa,CAAC,MAAM,EAAE;YAAE,SAASD,aAAa,OAAO;QAAC;IAC3E;IAEA,MAAME,qBAAqBC,YAAY,CAACH,eAC7B;YACHxB,UAAUyB,OAAO,cAAc,CAAC,IAAI,EAAE;gBAAE,SAASD,aAAa,OAAO;YAAC;QAC1E,GACD,EAAE;IAEL,MAAMI,qBAAqBD,YACvB,CAACE;QACI;YACG,IAAI;gBACA,MAAM7C,OAAO,MAAMc,UAAU,YAAY,CAAC+B;gBAC1C,IAAI,CAAC7C,QAAQ,CAACA,KAAK,MAAM,IAAIA,AAAuB,MAAvBA,KAAK,MAAM,CAAC,MAAM,EAAQ,YACnDkB,aAAa;gBAGjB4B,SAAS9C;YACb,EAAE,OAAO+C,GAAQ;gBACb7B,aAAa6B,EAAE,OAAO;YAC1B;QACJ;IACJ,GACA;QAACjC;KAAU;IAGf,MAAMkC,oBAAoBL,YACtB,CAACvC,QACU;YACHwC,mBAAmB;gBAACxC,MAAM,OAAO;aAAC;QACtC,GAEJ;QAACwC;KAAmB;IAGxB,OAAO,WAAP,GACI,wDACI,oBAACK,UAAQA;QACL,SAASlB;QACT,MAAMK;QACN,OAAOxC,CAAC,CAAC,cAAc,CAAC;QACxB,uBACI,oBAAC;YAAI,WAAW;yBACZ,oBAACsD,SAAOA;YACJ,SAAS;YACT,uBACI,oBAACC,YAAUA;gBACP,oBAAM,oBAACC,kCAAgBA;gBACvB,MAAM;gBACN,SAAS;gBACT,SAAS,IAAMR;;0BAI3B,oBAACM,SAAOA;YACJ,SAAS;YACT,uBACI,oBAACC,YAAUA;gBACP,oBAAM,oBAACE,gCAAcA;gBACrB,MAAM;gBACN,SAAS;gBACT,SAAS,IAAMxC;;YAI1BH,YAAY,WAAZA,GACG,oBAAC4C,QAAMA;YACH,eAAY;YACZ,SAAS3C;YACT,MAAMf,CAAC,CAAC,GAAG,CAAC;YACZ,oBAAM,oBAAC2D,gBAAOA;YACd,MAAM;YACN,WAAW;aAEf;QAGZ,sBACI,oBAACC,UAAQA;YACL,OAAOjC;YACP,UAAUC;YACV,kBAAkB5B,CAAC,CAAC,uBAAuB,CAAC;;QAGpD,4BACI,oBAAC6D,cAAc,OAAO,sBAClB,oBAACC,QAAMA;YACH,OAAOhC;YACP,UAAUC;YACV,OAAO/B,CAAC,CAAC,OAAO,CAAC;YACjB,SAASE,QAAQ,GAAG,CAAC,CAAC,EAAE6D,KAAK,EAAE,QAAQC,KAAK,EAAE,GAAM;oBAChDD;oBACAC;gBACJ;;QAIZ,kCACI,oBAACH,cAAc,OAAO;YAAC,eAAa;;QAExC,SAAS;OAER,CAAC,EAAEzD,OAAO,EAAE,EAAwB,GAC1B,WAAP,GACI,oBAAC6D,MAAIA;YAAC,eAAY;WACb7D,KAAK,GAAG,CAACwC,CAAAA;YACN,MAAMsB,qBAAqBtB,AAA+B,MAA/BA,aAAa,MAAM,CAAC,MAAM;YACrD,MAAMuB,aAAa;gBACf,IAAID,oBACA,OAAO;gBAEX,IAAItB,aAAa,IAAI,CAAC,QAAQ,CAACwB,0BAC3B,OAAO;gBAEX,OAAO;YACX;YAEA,MAAMC,iBAAiB7C,UACnBoB,cACA;YAEJ,MAAM0B,eAAe7C,QAAQmB,cAAc;YAE3C,OAAO,WAAP,GACI,oBAACqB,KAAK,IAAI;gBACN,KAAKrB,aAAa,OAAO;gBACzB,WAAW;gBACX,oBAAM,oBAACrC,aAAWA;oBAAC,OAAOqC;;gBAC1B,OAAOA,aAAa,IAAI;gBACxB,aAAa5C,CAAC,CAAC,sBAAsB,CAAC,CAAC;oBACnC,MAAM4C,aAAa,OAAO,GAAG,WAAH,GACtB,oBAAC2B,SAAOA;wBAAC,UAAU3B,aAAa,OAAO;yBAEvC;gBAER;gBACA,uBACI,wDACI,oBAAC4B,qBAAmBA;oBAAC,OAAO5B;iCACxB,oBAAC;oBACG,WACI;iCAGJ,oBAACU,SAAOA;oBACJ,MAAM;oBACN,SAASa;oBACT,uBACI,oBAACT,QAAMA;wBACH,MAAM;wBACN,oBAAM,oBAACe,yBAAQA;wBACf,SAAS;wBACT,MAAM;wBACN,eACI;wBAEJ,SAAS3B,mBACLF;wBAEJ,UACIsB;;qBAOnBI,gBAAgB,WAAhBA,GACG,oBAAC;oBACG,WACI;iCAGJ,oBAAChB,SAAOA;oBACJ,MAAM;oBACN,SACIV,aAAa,MAAM,GACb5C,CAAC,CAAC,yCAAyC,CAAC,GAC5CA,CAAC,CAAC,kBAAkB,CAAC;oBAE/B,uBACI,oBAAC0D,QAAMA;wBACH,MAAM;wBACN,oBAAM,oBAACgB,yBAAQA;wBACf,SAAS;wBACT,MAAM;wBACN,UACI9B,aAAa,MAAM;wBAEvB,SAAS,IACLD,WACIC;wBAGR,eACI;;mCAQxB,oBAAC+B,cAAYA;oBACT,uBACI,oBAACpB,YAAUA;wBACP,oBAAM,oBAACqB,8BAAYA;wBACnB,MAAM;wBACN,SAAS;;mBAIhBN,gBAAgB,WAAhBA,GACG,oBAACK,aAAa,IAAI;oBACd,MAAM;oBACN,oBACI,oBAACA,aAAa,IAAI,CAAC,IAAI;wBACnB,OAAO;wBACP,uBAAS,oBAACE,kCAASA;;oBAG3B,eACI;oBAEJ,SAAS,IACL7D,QAAQ4B;kCAKpB,oBAAC+B,aAAa,IAAI;oBACd,MAAM;oBACN,oBACI,oBAACA,aAAa,IAAI,CAAC,IAAI;wBACnB,OAAO;wBACP,uBAAS,oBAACG,kCAAUA;;oBAG5B,eACI;oBAEJ,SAAS1B,kBACLR;oBAIPyB,kBAAkB,WAAlBA,GACG,oBAACM,aAAa,IAAI;oBACd,MAAM;oBACN,oBACI,oBAACA,aAAa,IAAI,CAAC,IAAI;wBACnB,OAAO;wBACP,uBAAS,oBAACI,2BAAUA;;oBAG5B,SAAS;wBACL9C,oBACIW;oBAER;oBACA,eACI;oBAEJ,WACI;;;QAUxC,MAKfZ,mBAAmB,WAAnBA,GACG,oBAACgD,wBAAsBA;QACnB,OAAOhD;QACP,SAAS;YACLC,oBAAoB;QACxB;SAEJ;AAGhB;AAGJ,yCAAerB"}
1
+ {"version":3,"file":"presentation/contentModels/components/ContentModelsDataList.js","sources":["../../../../src/presentation/contentModels/components/ContentModelsDataList.tsx"],"sourcesContent":["import React, { useCallback, useMemo, useState } from \"react\";\nimport { observer } from \"mobx-react-lite\";\nimport orderBy from \"lodash/orderBy.js\";\nimport { TimeAgo } from \"@webiny/admin-ui\";\nimport { SearchUI, useRouter, useSnackbar } from \"@webiny/app-admin\";\nimport { ReactComponent as AddIcon } from \"@webiny/icons/add.svg\";\nimport {\n ReactComponent as DownloadFileIcon,\n ReactComponent as ExportIcon\n} from \"@webiny/icons/file_download.svg\";\nimport { ReactComponent as UploadFileIcon } from \"@webiny/icons/file_upload.svg\";\nimport { ReactComponent as ListIcon } from \"@webiny/icons/list.svg\";\nimport { ReactComponent as EditIcon } from \"@webiny/icons/edit.svg\";\nimport { ReactComponent as MoreVertIcon } from \"@webiny/icons/more_vert.svg\";\nimport { ReactComponent as DeleteIcon } from \"@webiny/icons/delete.svg\";\nimport { ReactComponent as CloneIcon } from \"@webiny/icons/flip_to_front.svg\";\nimport { DataList, DataListModal, List } from \"@webiny/admin-ui\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport type { CmsModel } from \"~/types.js\";\nimport { usePermission } from \"~/admin/hooks/usePermission.js\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { ModelIsBeingDeleted } from \"./fullDelete/ModelIsBeingDeleted.js\";\nimport { FullyDeleteModelDialog } from \"./fullDelete/FullyDeleteModelDialog.js\";\nimport { Button, DropdownMenu, Icon, IconButton, Select, Tooltip } from \"@webiny/admin-ui\";\nimport { CMS_MODEL_SINGLETON_TAG } from \"@webiny/app-headless-cms-common\";\nimport { Routes } from \"~/routes.js\";\nimport { normalizeIcon } from \"~/utils/normalizeIcon.js\";\nimport { useContentModelsPresenter } from \"../useContentModelsPresenter.js\";\nimport { download } from \"../utils/download.js\";\n\nconst t = i18n.namespace(\"FormsApp.ContentModelsDataList\");\n\nconst SORTERS = [\n { label: \"Newest to oldest\", sorter: \"savedOn_DESC\" },\n { label: \"Oldest to newest\", sorter: \"savedOn_ASC\" },\n { label: \"Name A-Z\", sorter: \"name_ASC\" },\n { label: \"Name Z-A\", sorter: \"name_DESC\" }\n];\n\nconst deserializeSorters = (data: string): [string, \"asc\" | \"desc\"] => {\n const [field, order] = data.split(\"_\");\n return [field, order.toLowerCase() === \"asc\" ? \"asc\" : \"desc\"];\n};\n\ninterface ContentModelsDataListProps {\n canCreate: boolean;\n onCreate: () => void;\n onClone: (contentModel: CmsModel) => void;\n showImportModelModal: () => void;\n}\n\ninterface IconProps {\n model: Pick<CmsModel, \"icon\">;\n}\n\nconst DisplayIcon = ({ model }: IconProps) => {\n const icon = normalizeIcon(model.icon);\n if (!icon) {\n return null;\n }\n return (\n <div className={\"text-neutral-muted\"}>\n <Icon\n size={\"lg\"}\n color={\"inherit\"}\n label={\"Content model icon\"}\n icon={<FontAwesomeIcon icon={icon} />}\n />\n </div>\n );\n};\n\nconst ContentModelsDataList = observer(\n ({ canCreate, onCreate, onClone, showImportModelModal }: ContentModelsDataListProps) => {\n const presenter = useContentModelsPresenter();\n const { goToRoute } = useRouter();\n const { showSnackbar } = useSnackbar();\n const { canDelete, canEdit } = usePermission();\n\n const [filter, setFilter] = useState(\"\");\n const [sort, setSort] = useState(SORTERS[0].sorter);\n const [modelToBeDeleted, setModelToBeDeleted] = useState<CmsModel | null>(null);\n\n const models = presenter.vm.models;\n const loading = presenter.vm.loading;\n\n const filteredData = useMemo(() => {\n if (filter === \"\") {\n return models;\n }\n const lc = filter.toLowerCase();\n return models.filter((m: CmsModel) => m.name.toLowerCase().includes(lc));\n }, [models, filter]);\n\n const sortedData = useMemo(() => {\n if (!sort) {\n return filteredData;\n }\n const [key, order] = deserializeSorters(sort);\n return orderBy(filteredData, [key], [order]);\n }, [filteredData, sort]);\n\n const editRecord = (contentModel: CmsModel): void => {\n goToRoute(Routes.ContentModels.Editor, { modelId: contentModel.modelId });\n };\n\n const viewContentEntries = useCallback((contentModel: Pick<CmsModel, \"modelId\">) => {\n return () => {\n goToRoute(Routes.ContentEntries.List, { modelId: contentModel.modelId });\n };\n }, []);\n\n const handleModelsExport = useCallback(\n (modelIds?: string[]) => {\n (async () => {\n try {\n const data = await presenter.exportModels(modelIds);\n if (!data?.models?.length) {\n showSnackbar(\"No data returned from the export query.\");\n return;\n }\n download(data);\n } catch (ex: any) {\n showSnackbar(ex.message);\n }\n })();\n },\n [presenter]\n );\n\n const handleModelExport = useCallback(\n (model: CmsModel) => {\n return () => {\n handleModelsExport([model.modelId]);\n };\n },\n [handleModelsExport]\n );\n\n return (\n <>\n <DataList\n loading={loading}\n data={sortedData}\n title={t`Content Models`}\n actions={\n <div className={\"flex items-center justify-end gap-xs\"}>\n <Tooltip\n content={\"Export all models\"}\n trigger={\n <IconButton\n icon={<DownloadFileIcon />}\n size={\"sm\"}\n variant={\"ghost\"}\n onClick={() => handleModelsExport()}\n />\n }\n />\n <Tooltip\n content={\"Import models\"}\n trigger={\n <IconButton\n icon={<UploadFileIcon />}\n size={\"sm\"}\n variant={\"ghost\"}\n onClick={() => showImportModelModal()}\n />\n }\n />\n {canCreate ? (\n <Button\n data-testid=\"new-record-button\"\n onClick={onCreate}\n text={t`New`}\n icon={<AddIcon />}\n size={\"sm\"}\n className={\"ml-xs\"}\n />\n ) : null}\n </div>\n }\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search content model...`}\n />\n }\n modalOverlay={\n <DataListModal.Content>\n <Select\n value={sort}\n onChange={setSort}\n label={t`Sort by`}\n options={SORTERS.map(({ label, sorter: value }) => ({\n label,\n value\n }))}\n />\n </DataListModal.Content>\n }\n modalOverlayAction={\n <DataListModal.Trigger data-testid={\"default-data-list.filter\"} />\n }\n refresh={null}\n >\n {({ data = [] }: { data: CmsModel[] }) => {\n return (\n <List data-testid=\"default-data-list\">\n {data.map(contentModel => {\n const disableViewContent = contentModel.fields.length === 0;\n const getMessage = () => {\n if (disableViewContent) {\n return \"To view the entries, you first need to add a field and save the model\";\n }\n if (contentModel.tags.includes(CMS_MODEL_SINGLETON_TAG)) {\n return \"View\";\n }\n return \"View entries\";\n };\n\n const canDeleteModel = canDelete(\n contentModel,\n \"cms.contentModel\"\n );\n const canEditModel = canEdit(contentModel, \"cms.contentModel\");\n\n return (\n <List.Item\n key={contentModel.modelId}\n className={\"group/item\"}\n icon={<DisplayIcon model={contentModel} />}\n title={contentModel.name}\n description={t`Last modified: {time}.`({\n time: contentModel.savedOn ? (\n <TimeAgo datetime={contentModel.savedOn} />\n ) : (\n \"N/A\"\n )\n })}\n actions={\n <>\n <ModelIsBeingDeleted model={contentModel}>\n <span\n className={\n \"invisible group-hover/item:visible\"\n }\n >\n <Tooltip\n side={\"top\"}\n content={getMessage()}\n trigger={\n <Button\n text={\"View entries\"}\n icon={<ListIcon />}\n variant={\"secondary\"}\n size={\"sm\"}\n data-testid={\n \"cms-view-content-model-button\"\n }\n onClick={viewContentEntries(\n contentModel\n )}\n disabled={\n disableViewContent\n }\n />\n }\n />\n </span>\n\n {canEditModel && (\n <span\n className={\n \"invisible group-hover/item:visible\"\n }\n >\n <Tooltip\n side={\"top\"}\n content={\n contentModel.plugin\n ? t`Content model is registered via a plugin.`\n : t`Edit content model`\n }\n trigger={\n <Button\n text={\"Edit\"}\n icon={<EditIcon />}\n variant={\"secondary\"}\n size={\"sm\"}\n disabled={\n contentModel.plugin\n }\n onClick={() =>\n editRecord(\n contentModel\n )\n }\n data-testid={\n \"cms-edit-content-model-button\"\n }\n />\n }\n />\n </span>\n )}\n\n <DropdownMenu\n trigger={\n <IconButton\n icon={<MoreVertIcon />}\n size={\"sm\"}\n variant={\"ghost\"}\n />\n }\n >\n {canEditModel && (\n <DropdownMenu.Item\n text={\"Clone\"}\n icon={\n <DropdownMenu.Item.Icon\n label={\"Clone\"}\n element={<CloneIcon />}\n />\n }\n data-testid={\n \"cms-clone-content-model-button\"\n }\n onClick={() =>\n onClone(contentModel)\n }\n />\n )}\n\n <DropdownMenu.Item\n text={\"Export\"}\n icon={\n <DropdownMenu.Item.Icon\n label={\"Export\"}\n element={<ExportIcon />}\n />\n }\n data-testid={\n \"cms-export-content-model-button\"\n }\n onClick={handleModelExport(\n contentModel\n )}\n />\n\n {canDeleteModel && (\n <DropdownMenu.Item\n text={\"Delete\"}\n icon={\n <DropdownMenu.Item.Icon\n label={\"Delete\"}\n element={<DeleteIcon />}\n />\n }\n onClick={() => {\n setModelToBeDeleted(\n contentModel\n );\n }}\n data-testid={\n \"cms-delete-content-model-button\"\n }\n className={\n \"text-destructive-primary! [&_svg]:fill-destructive\"\n }\n />\n )}\n </DropdownMenu>\n </ModelIsBeingDeleted>\n </>\n }\n />\n );\n })}\n </List>\n );\n }}\n </DataList>\n {modelToBeDeleted ? (\n <FullyDeleteModelDialog\n model={modelToBeDeleted}\n onClose={() => {\n setModelToBeDeleted(null);\n }}\n />\n ) : null}\n </>\n );\n }\n);\n\nexport default ContentModelsDataList;\n"],"names":["t","i18n","SORTERS","deserializeSorters","data","field","order","DisplayIcon","model","icon","normalizeIcon","Icon","FontAwesomeIcon","ContentModelsDataList","observer","canCreate","onCreate","onClone","showImportModelModal","presenter","useContentModelsPresenter","goToRoute","useRouter","showSnackbar","useSnackbar","canDelete","canEdit","usePermission","filter","setFilter","useState","sort","setSort","modelToBeDeleted","setModelToBeDeleted","models","loading","filteredData","useMemo","lc","m","sortedData","key","orderBy","editRecord","contentModel","Routes","viewContentEntries","useCallback","handleModelsExport","modelIds","download","ex","handleModelExport","DataList","Tooltip","IconButton","DownloadFileIcon","UploadFileIcon","Button","AddIcon","SearchUI","DataListModal","Select","label","value","List","disableViewContent","getMessage","CMS_MODEL_SINGLETON_TAG","canDeleteModel","canEditModel","TimeAgo","ModelIsBeingDeleted","ListIcon","EditIcon","DropdownMenu","MoreVertIcon","CloneIcon","ExportIcon","DeleteIcon","FullyDeleteModelDialog"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AA8BA,MAAMA,IAAIC,KAAK,SAAS,CAAC;AAEzB,MAAMC,UAAU;IACZ;QAAE,OAAO;QAAoB,QAAQ;IAAe;IACpD;QAAE,OAAO;QAAoB,QAAQ;IAAc;IACnD;QAAE,OAAO;QAAY,QAAQ;IAAW;IACxC;QAAE,OAAO;QAAY,QAAQ;IAAY;CAC5C;AAED,MAAMC,qBAAqB,CAACC;IACxB,MAAM,CAACC,OAAOC,MAAM,GAAGF,KAAK,KAAK,CAAC;IAClC,OAAO;QAACC;QAA+B,UAAxBC,MAAM,WAAW,KAAe,QAAQ;KAAO;AAClE;AAaA,MAAMC,cAAc,CAAC,EAAEC,KAAK,EAAa;IACrC,MAAMC,OAAOC,cAAcF,MAAM,IAAI;IACrC,IAAI,CAACC,MACD,OAAO;IAEX,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACE,MAAIA;QACD,MAAM;QACN,OAAO;QACP,OAAO;QACP,oBAAM,oBAACC,iBAAeA;YAAC,MAAMH;;;AAI7C;AAEA,MAAMI,wBAAwBC,SAC1B,CAAC,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,oBAAoB,EAA8B;IAC/E,MAAMC,YAAYC;IAClB,MAAM,EAAEC,SAAS,EAAE,GAAGC;IACtB,MAAM,EAAEC,YAAY,EAAE,GAAGC;IACzB,MAAM,EAAEC,SAAS,EAAEC,OAAO,EAAE,GAAGC;IAE/B,MAAM,CAACC,QAAQC,UAAU,GAAGC,SAAS;IACrC,MAAM,CAACC,MAAMC,QAAQ,GAAGF,SAAS5B,OAAO,CAAC,EAAE,CAAC,MAAM;IAClD,MAAM,CAAC+B,kBAAkBC,oBAAoB,GAAGJ,SAA0B;IAE1E,MAAMK,SAAShB,UAAU,EAAE,CAAC,MAAM;IAClC,MAAMiB,UAAUjB,UAAU,EAAE,CAAC,OAAO;IAEpC,MAAMkB,eAAeC,QAAQ;QACzB,IAAIV,AAAW,OAAXA,QACA,OAAOO;QAEX,MAAMI,KAAKX,OAAO,WAAW;QAC7B,OAAOO,OAAO,MAAM,CAAC,CAACK,IAAgBA,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAACD;IACxE,GAAG;QAACJ;QAAQP;KAAO;IAEnB,MAAMa,aAAaH,QAAQ;QACvB,IAAI,CAACP,MACD,OAAOM;QAEX,MAAM,CAACK,KAAKpC,MAAM,GAAGH,mBAAmB4B;QACxC,OAAOY,QAAQN,cAAc;YAACK;SAAI,EAAE;YAACpC;SAAM;IAC/C,GAAG;QAAC+B;QAAcN;KAAK;IAEvB,MAAMa,aAAa,CAACC;QAChBxB,UAAUyB,OAAO,aAAa,CAAC,MAAM,EAAE;YAAE,SAASD,aAAa,OAAO;QAAC;IAC3E;IAEA,MAAME,qBAAqBC,YAAY,CAACH,eAC7B;YACHxB,UAAUyB,OAAO,cAAc,CAAC,IAAI,EAAE;gBAAE,SAASD,aAAa,OAAO;YAAC;QAC1E,GACD,EAAE;IAEL,MAAMI,qBAAqBD,YACvB,CAACE;QACI;YACG,IAAI;gBACA,MAAM9C,OAAO,MAAMe,UAAU,YAAY,CAAC+B;gBAC1C,IAAI,CAAC9C,MAAM,QAAQ,QAAQ,YACvBmB,aAAa;gBAGjB4B,SAAS/C;YACb,EAAE,OAAOgD,IAAS;gBACd7B,aAAa6B,GAAG,OAAO;YAC3B;QACJ;IACJ,GACA;QAACjC;KAAU;IAGf,MAAMkC,oBAAoBL,YACtB,CAACxC,QACU;YACHyC,mBAAmB;gBAACzC,MAAM,OAAO;aAAC;QACtC,GAEJ;QAACyC;KAAmB;IAGxB,OAAO,WAAP,GACI,wDACI,oBAACK,UAAQA;QACL,SAASlB;QACT,MAAMK;QACN,OAAOzC,CAAC,CAAC,cAAc,CAAC;QACxB,uBACI,oBAAC;YAAI,WAAW;yBACZ,oBAACuD,SAAOA;YACJ,SAAS;YACT,uBACI,oBAACC,YAAUA;gBACP,oBAAM,oBAACC,kCAAgBA;gBACvB,MAAM;gBACN,SAAS;gBACT,SAAS,IAAMR;;0BAI3B,oBAACM,SAAOA;YACJ,SAAS;YACT,uBACI,oBAACC,YAAUA;gBACP,oBAAM,oBAACE,gCAAcA;gBACrB,MAAM;gBACN,SAAS;gBACT,SAAS,IAAMxC;;YAI1BH,YAAY,WAAZA,GACG,oBAAC4C,QAAMA;YACH,eAAY;YACZ,SAAS3C;YACT,MAAMhB,CAAC,CAAC,GAAG,CAAC;YACZ,oBAAM,oBAAC4D,gBAAOA;YACd,MAAM;YACN,WAAW;aAEf;QAGZ,sBACI,oBAACC,UAAQA;YACL,OAAOjC;YACP,UAAUC;YACV,kBAAkB7B,CAAC,CAAC,uBAAuB,CAAC;;QAGpD,4BACI,oBAAC8D,cAAc,OAAO,sBAClB,oBAACC,QAAMA;YACH,OAAOhC;YACP,UAAUC;YACV,OAAOhC,CAAC,CAAC,OAAO,CAAC;YACjB,SAASE,QAAQ,GAAG,CAAC,CAAC,EAAE8D,KAAK,EAAE,QAAQC,KAAK,EAAE,GAAM;oBAChDD;oBACAC;gBACJ;;QAIZ,kCACI,oBAACH,cAAc,OAAO;YAAC,eAAa;;QAExC,SAAS;OAER,CAAC,EAAE1D,OAAO,EAAE,EAAwB,GAC1B,WAAP,GACI,oBAAC8D,MAAIA;YAAC,eAAY;WACb9D,KAAK,GAAG,CAACyC,CAAAA;YACN,MAAMsB,qBAAqBtB,AAA+B,MAA/BA,aAAa,MAAM,CAAC,MAAM;YACrD,MAAMuB,aAAa;gBACf,IAAID,oBACA,OAAO;gBAEX,IAAItB,aAAa,IAAI,CAAC,QAAQ,CAACwB,0BAC3B,OAAO;gBAEX,OAAO;YACX;YAEA,MAAMC,iBAAiB7C,UACnBoB,cACA;YAEJ,MAAM0B,eAAe7C,QAAQmB,cAAc;YAE3C,OAAO,WAAP,GACI,oBAACqB,KAAK,IAAI;gBACN,KAAKrB,aAAa,OAAO;gBACzB,WAAW;gBACX,oBAAM,oBAACtC,aAAWA;oBAAC,OAAOsC;;gBAC1B,OAAOA,aAAa,IAAI;gBACxB,aAAa7C,CAAC,CAAC,sBAAsB,CAAC,CAAC;oBACnC,MAAM6C,aAAa,OAAO,GAAG,WAAH,GACtB,oBAAC2B,SAAOA;wBAAC,UAAU3B,aAAa,OAAO;yBAEvC;gBAER;gBACA,uBACI,wDACI,oBAAC4B,qBAAmBA;oBAAC,OAAO5B;iCACxB,oBAAC;oBACG,WACI;iCAGJ,oBAACU,SAAOA;oBACJ,MAAM;oBACN,SAASa;oBACT,uBACI,oBAACT,QAAMA;wBACH,MAAM;wBACN,oBAAM,oBAACe,yBAAQA;wBACf,SAAS;wBACT,MAAM;wBACN,eACI;wBAEJ,SAAS3B,mBACLF;wBAEJ,UACIsB;;qBAOnBI,gBAAgB,WAAhBA,GACG,oBAAC;oBACG,WACI;iCAGJ,oBAAChB,SAAOA;oBACJ,MAAM;oBACN,SACIV,aAAa,MAAM,GACb7C,CAAC,CAAC,yCAAyC,CAAC,GAC5CA,CAAC,CAAC,kBAAkB,CAAC;oBAE/B,uBACI,oBAAC2D,QAAMA;wBACH,MAAM;wBACN,oBAAM,oBAACgB,yBAAQA;wBACf,SAAS;wBACT,MAAM;wBACN,UACI9B,aAAa,MAAM;wBAEvB,SAAS,IACLD,WACIC;wBAGR,eACI;;mCAQxB,oBAAC+B,cAAYA;oBACT,uBACI,oBAACpB,YAAUA;wBACP,oBAAM,oBAACqB,8BAAYA;wBACnB,MAAM;wBACN,SAAS;;mBAIhBN,gBAAgB,WAAhBA,GACG,oBAACK,aAAa,IAAI;oBACd,MAAM;oBACN,oBACI,oBAACA,aAAa,IAAI,CAAC,IAAI;wBACnB,OAAO;wBACP,uBAAS,oBAACE,kCAASA;;oBAG3B,eACI;oBAEJ,SAAS,IACL7D,QAAQ4B;kCAKpB,oBAAC+B,aAAa,IAAI;oBACd,MAAM;oBACN,oBACI,oBAACA,aAAa,IAAI,CAAC,IAAI;wBACnB,OAAO;wBACP,uBAAS,oBAACG,kCAAUA;;oBAG5B,eACI;oBAEJ,SAAS1B,kBACLR;oBAIPyB,kBAAkB,WAAlBA,GACG,oBAACM,aAAa,IAAI;oBACd,MAAM;oBACN,oBACI,oBAACA,aAAa,IAAI,CAAC,IAAI;wBACnB,OAAO;wBACP,uBAAS,oBAACI,2BAAUA;;oBAG5B,SAAS;wBACL9C,oBACIW;oBAER;oBACA,eACI;oBAEJ,WACI;;;QAUxC,MAKfZ,mBAAmB,WAAnBA,GACG,oBAACgD,wBAAsBA;QACnB,OAAOhD;QACP,SAAS;YACLC,oBAAoB;QACxB;SAEJ;AAGhB;AAGJ,yCAAerB"}
@@ -4,7 +4,7 @@ export interface NewContentModelDialogProps {
4
4
  open: boolean;
5
5
  onClose: DialogProps["onClose"];
6
6
  }
7
- declare const NewContentModelDialog: (({ open, onClose }: NewContentModelDialogProps) => React.JSX.Element) & {
8
- displayName: string;
7
+ declare const NewContentModelDialog: (({ open, onClose }: NewContentModelDialogProps) => React.JSX.Element) & React.NamedExoticComponent<NewContentModelDialogProps> & {
8
+ readonly type: ({ open, onClose }: NewContentModelDialogProps) => React.JSX.Element;
9
9
  };
10
10
  export default NewContentModelDialog;
@@ -6,10 +6,10 @@ import { OverlayLoader } from "@webiny/admin-ui";
6
6
  import { Processed } from "./Processed.js";
7
7
  const Content = ({ confirmation, setConfirmation, error, model, status })=>{
8
8
  if (!model) return /*#__PURE__*/ react.createElement("p", null, "Model not found.");
9
- if (status === FullyDeleteModelStateStatus.NONE) return /*#__PURE__*/ react.createElement(Information, {
9
+ else if (status === FullyDeleteModelStateStatus.NONE) return /*#__PURE__*/ react.createElement(Information, {
10
10
  model: model
11
11
  });
12
- if (status === FullyDeleteModelStateStatus.PROCESSED) return /*#__PURE__*/ react.createElement(Processed, {
12
+ else if (status === FullyDeleteModelStateStatus.PROCESSED) return /*#__PURE__*/ react.createElement(Processed, {
13
13
  model: model
14
14
  });
15
15
  return /*#__PURE__*/ react.createElement(react.Fragment, null, status === FullyDeleteModelStateStatus.CONFIRMED && /*#__PURE__*/ react.createElement(OverlayLoader, {
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/contentModels/components/fullDelete/dialog/Content.js","sources":["../../../../../../src/presentation/contentModels/components/fullDelete/dialog/Content.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsErrorResponse, CmsModel } from \"~/types.js\";\nimport { FullyDeleteModelStateStatus } from \"../types.js\";\nimport { Information } from \"./Information.js\";\nimport { Confirmation } from \"./Confirmation.js\";\nimport { OverlayLoader } from \"@webiny/admin-ui\";\nimport { Processed } from \"./Processed.js\";\n\nexport interface IContentProps {\n model: CmsModel | null;\n confirmation: string;\n setConfirmation: (value: string) => void;\n error: CmsErrorResponse | null;\n status: FullyDeleteModelStateStatus;\n}\n\nexport const Content = ({ confirmation, setConfirmation, error, model, status }: IContentProps) => {\n if (!model) {\n return <p>Model not found.</p>;\n } else if (status === FullyDeleteModelStateStatus.NONE) {\n return <Information model={model} />;\n } else if (status === FullyDeleteModelStateStatus.PROCESSED) {\n return <Processed model={model} />;\n }\n\n return (\n <>\n {status === FullyDeleteModelStateStatus.CONFIRMED && (\n <OverlayLoader text={\"Starting the deletion process...\"} />\n )}\n <Confirmation\n model={model}\n setConfirmation={setConfirmation}\n confirmation={confirmation}\n error={error}\n />\n </>\n );\n};\n"],"names":["Content","confirmation","setConfirmation","error","model","status","FullyDeleteModelStateStatus","Information","Processed","OverlayLoader","Confirmation"],"mappings":";;;;;;AAgBO,MAAMA,UAAU,CAAC,EAAEC,YAAY,EAAEC,eAAe,EAAEC,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAiB;IAC1F,IAAI,CAACD,OACD,OAAO,WAAP,GAAO,oBAAC,WAAE;IACP,IAAIC,WAAWC,4BAA4B,IAAI,EAClD,OAAO,WAAP,GAAO,oBAACC,aAAWA;QAAC,OAAOH;;IACxB,IAAIC,WAAWC,4BAA4B,SAAS,EACvD,OAAO,WAAP,GAAO,oBAACE,WAASA;QAAC,OAAOJ;;IAG7B,OAAO,WAAP,GACI,0CACKC,WAAWC,4BAA4B,SAAS,IAAI,WAAJ,GAC7C,oBAACG,eAAaA;QAAC,MAAM;sBAEzB,oBAACC,cAAYA;QACT,OAAON;QACP,iBAAiBF;QACjB,cAAcD;QACd,OAAOE;;AAIvB"}
1
+ {"version":3,"file":"presentation/contentModels/components/fullDelete/dialog/Content.js","sources":["../../../../../../src/presentation/contentModels/components/fullDelete/dialog/Content.tsx"],"sourcesContent":["import React from \"react\";\nimport type { CmsErrorResponse, CmsModel } from \"~/types.js\";\nimport { FullyDeleteModelStateStatus } from \"../types.js\";\nimport { Information } from \"./Information.js\";\nimport { Confirmation } from \"./Confirmation.js\";\nimport { OverlayLoader } from \"@webiny/admin-ui\";\nimport { Processed } from \"./Processed.js\";\n\nexport interface IContentProps {\n model: CmsModel | null;\n confirmation: string;\n setConfirmation: (value: string) => void;\n error: CmsErrorResponse | null;\n status: FullyDeleteModelStateStatus;\n}\n\nexport const Content = ({ confirmation, setConfirmation, error, model, status }: IContentProps) => {\n if (!model) {\n return <p>Model not found.</p>;\n } else if (status === FullyDeleteModelStateStatus.NONE) {\n return <Information model={model} />;\n } else if (status === FullyDeleteModelStateStatus.PROCESSED) {\n return <Processed model={model} />;\n }\n\n return (\n <>\n {status === FullyDeleteModelStateStatus.CONFIRMED && (\n <OverlayLoader text={\"Starting the deletion process...\"} />\n )}\n <Confirmation\n model={model}\n setConfirmation={setConfirmation}\n confirmation={confirmation}\n error={error}\n />\n </>\n );\n};\n"],"names":["Content","confirmation","setConfirmation","error","model","status","FullyDeleteModelStateStatus","Information","Processed","OverlayLoader","Confirmation"],"mappings":";;;;;;AAgBO,MAAMA,UAAU,CAAC,EAAEC,YAAY,EAAEC,eAAe,EAAEC,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAiB;IAC1F,IAAI,CAACD,OACD,OAAO,WAAP,GAAO,oBAAC,WAAE;SACP,IAAIC,WAAWC,4BAA4B,IAAI,EAClD,OAAO,WAAP,GAAO,oBAACC,aAAWA;QAAC,OAAOH;;SACxB,IAAIC,WAAWC,4BAA4B,SAAS,EACvD,OAAO,WAAP,GAAO,oBAACE,WAASA;QAAC,OAAOJ;;IAG7B,OAAO,WAAP,GACI,0CACKC,WAAWC,4BAA4B,SAAS,IAAI,WAAJ,GAC7C,oBAACG,eAAaA;QAAC,MAAM;sBAEzB,oBAACC,cAAYA;QACT,OAAON;QACP,iBAAiBF;QACjB,cAAcD;QACd,OAAOE;;AAIvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"presentation/contentModels/components/fullDelete/types.js","sources":["../../../../../src/presentation/contentModels/components/fullDelete/types.ts"],"sourcesContent":["import type { CmsErrorResponse, CmsModel } from \"~/types.js\";\nimport type { IDeleteCmsModelTask } from \"~/admin/viewsGraphql.js\";\n\nexport enum FullyDeleteModelStateStatus {\n NONE = 0,\n UNDERSTOOD = 1,\n CONFIRMED = 2,\n PROCESSED = 3,\n ERROR = 999\n}\n\nexport interface IFullyDeleteModelState {\n status: FullyDeleteModelStateStatus;\n confirmation: string;\n model: CmsModel;\n error: CmsErrorResponse | null;\n task: IDeleteCmsModelTask | null;\n}\n"],"names":["FullyDeleteModelStateStatus"],"mappings":"AAGO,IAAKA,oCAA2BA,WAAAA,GAAAA,SAA3BA,2BAA2B;;;;;;WAA3BA"}
1
+ {"version":3,"file":"presentation/contentModels/components/fullDelete/types.js","sources":["../../../../../src/presentation/contentModels/components/fullDelete/types.ts"],"sourcesContent":["import type { CmsErrorResponse, CmsModel } from \"~/types.js\";\nimport type { IDeleteCmsModelTask } from \"~/admin/viewsGraphql.js\";\n\nexport enum FullyDeleteModelStateStatus {\n NONE = 0,\n UNDERSTOOD = 1,\n CONFIRMED = 2,\n PROCESSED = 3,\n ERROR = 999\n}\n\nexport interface IFullyDeleteModelState {\n status: FullyDeleteModelStateStatus;\n confirmation: string;\n model: CmsModel;\n error: CmsErrorResponse | null;\n task: IDeleteCmsModelTask | null;\n}\n"],"names":["FullyDeleteModelStateStatus"],"mappings":"AAGO,IAAKA,oCAA2BA,WAAAA,GAAAA,SAA3BA,2BAA2B;sEAC5B;4EACM;2EACD;2EACA;uEACJ;WALAA"}