@reltio/dashboard 1.4.1584 → 1.4.1586-mui5

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 (263) hide show
  1. package/.DS_Store +0 -0
  2. package/index.ts +12 -0
  3. package/package.json +42 -25
  4. package/public/bundle.js +205 -0
  5. package/public/bundle.js.LICENSE.txt +59 -0
  6. package/public/package.json +26 -0
  7. package/public/types/components/DashboardConfigItem/styles.d.ts +1 -0
  8. package/{types → public/types}/components/DashboardError/styles.d.ts +1 -1
  9. package/public/types/components/DashboardLayout/styles.d.ts +1 -0
  10. package/public/types/components/DashboardLayoutItem/styles.d.ts +1 -0
  11. package/public/types/components/DashboardLayoutPanel/styles.d.ts +1 -0
  12. package/public/types/components/DashboardLinearLoader/styles.d.ts +1 -0
  13. package/{types → public/types}/components/DashboardNoData/styles.d.ts +1 -1
  14. package/public/types/components/DashboardPerspectiveHeader/styles.d.ts +2 -0
  15. package/{types → public/types}/components/DashboardPopupMenu/DashboardPopupMenu.d.ts +1 -1
  16. package/public/types/components/DashboardPopupMenu/styles.d.ts +1 -0
  17. package/public/types/components/EntityTable/cell-renderers/styles.d.ts +1 -0
  18. package/{types → public/types}/components/EntityTable/styles.d.ts +1 -1
  19. package/public/types/components/LayoutItemContent/styles.d.ts +1 -0
  20. package/public/types/components/LayoutItemHeader/styles.d.ts +1 -0
  21. package/public/types/components/LayoutItemView/styles.d.ts +1 -0
  22. package/public/types/components/StatsChart/customized/styles.d.ts +1 -0
  23. package/public/types/components/WorkflowTaskItem/styles.d.ts +1 -0
  24. package/public/types/perspective/styles.d.ts +1 -0
  25. package/public/types/views/chartBased/styles.d.ts +1 -0
  26. package/public/types/views/custom/styles.d.ts +1 -0
  27. package/public/types/views/tableBased/styles.d.ts +1 -0
  28. package/scripts/build/index.js +21 -0
  29. package/src/HOCs/withPagination.tsx +39 -0
  30. package/src/components/DashboardConfigItem/DashboardConfigItem.tsx +101 -0
  31. package/src/components/DashboardConfigItem/__tests__/DashboardConfigItem.specs.tsx +81 -0
  32. package/src/components/DashboardConfigItem/icons/barChart.svg +12 -0
  33. package/src/components/DashboardConfigItem/icons/bubbleChart.svg +18 -0
  34. package/src/components/DashboardConfigItem/icons/customChart.svg +66 -0
  35. package/src/components/DashboardConfigItem/icons/donutChart.svg +33 -0
  36. package/src/components/DashboardConfigItem/icons/geomap.svg +23 -0
  37. package/src/components/DashboardConfigItem/icons/lineChart.svg +16 -0
  38. package/src/components/DashboardConfigItem/icons/pieChart.svg +27 -0
  39. package/src/components/DashboardConfigItem/icons/tableWithBars.svg +27 -0
  40. package/src/components/DashboardConfigItem/icons/treemap.svg +15 -0
  41. package/src/components/DashboardConfigItem/icons/wordCloud.svg +27 -0
  42. package/src/components/DashboardConfigItem/styles.ts +56 -0
  43. package/src/components/DashboardError/DashboardError.tsx +34 -0
  44. package/src/components/DashboardError/__tests__/DashboardError.test.js +34 -0
  45. package/src/components/DashboardError/icons/error.svg +113 -0
  46. package/src/components/DashboardError/styles.ts +30 -0
  47. package/src/components/DashboardLayout/DashboardLayout.tsx +59 -0
  48. package/src/components/DashboardLayout/__tests__/DashboardLayout.specs.tsx +56 -0
  49. package/src/components/DashboardLayout/styles.ts +30 -0
  50. package/src/components/DashboardLayoutItem/DashboardLayoutItem.tsx +59 -0
  51. package/src/components/DashboardLayoutItem/__tests__/DashboardLayoutItem.specs.tsx +145 -0
  52. package/src/components/DashboardLayoutItem/styles.ts +10 -0
  53. package/src/components/DashboardLayoutPanel/DashboardLayoutPanel.tsx +59 -0
  54. package/src/components/DashboardLayoutPanel/__tests__/DashboardLayoutPanel.specs.tsx +58 -0
  55. package/src/components/DashboardLayoutPanel/styles.ts +43 -0
  56. package/src/components/DashboardLinearLoader/DashboardLinearLoader.tsx +10 -0
  57. package/src/components/DashboardLinearLoader/__tests__/DashboardLinearLoader.test.js +12 -0
  58. package/src/components/DashboardLinearLoader/styles.ts +11 -0
  59. package/src/components/DashboardNoData/.DS_Store +0 -0
  60. package/src/components/DashboardNoData/DashboardNoData.tsx +21 -0
  61. package/src/components/DashboardNoData/__tests__/DashboardNoData.test.js +15 -0
  62. package/src/components/DashboardNoData/icons/noData.svg +68 -0
  63. package/src/components/DashboardNoData/styles.ts +21 -0
  64. package/src/components/DashboardPerspectiveHeader/DashboardPerspectiveHeader.tsx +43 -0
  65. package/src/components/DashboardPerspectiveHeader/__tests__/DashboardPerspectiveHeader.specs.tsx +41 -0
  66. package/src/components/DashboardPerspectiveHeader/styles.ts +24 -0
  67. package/src/components/DashboardPopupMenu/DashboardPopupMenu.tsx +75 -0
  68. package/src/components/DashboardPopupMenu/__tests__/DashboardPopupMenu.test.tsx +51 -0
  69. package/src/components/DashboardPopupMenu/styles.ts +20 -0
  70. package/src/components/EntityTable/EntityTable.tsx +49 -0
  71. package/src/components/EntityTable/__tests__/EntityTable.test.tsx +33 -0
  72. package/src/components/EntityTable/cell-renderers/EntityLabelRenderer.tsx +24 -0
  73. package/src/components/EntityTable/cell-renderers/HeadCellRenderer.tsx +34 -0
  74. package/src/components/EntityTable/cell-renderers/__tests__/EntityLabelRenderer.test.tsx +25 -0
  75. package/src/components/EntityTable/cell-renderers/styles.ts +46 -0
  76. package/src/components/EntityTable/styles.ts +19 -0
  77. package/src/components/LayoutItemContent/LayoutItemContent.tsx +63 -0
  78. package/src/components/LayoutItemContent/__tests__/LayoutItemContent.test.tsx +71 -0
  79. package/src/components/LayoutItemContent/styles.ts +36 -0
  80. package/src/components/LayoutItemHeader/LayoutItemHeader.tsx +86 -0
  81. package/src/components/LayoutItemHeader/__tests__/LayoutItemHeader.specs.tsx +48 -0
  82. package/src/components/LayoutItemHeader/styles.ts +44 -0
  83. package/src/components/LayoutItemView/LayoutItemView.tsx +24 -0
  84. package/src/components/LayoutItemView/styles.ts +11 -0
  85. package/src/components/StatsChart/StatsChart.tsx +77 -0
  86. package/src/components/StatsChart/__tests__/StatsChart.test.tsx +106 -0
  87. package/src/components/StatsChart/customized/CustomAxisTick.tsx +28 -0
  88. package/src/components/StatsChart/customized/CustomLegend.tsx +37 -0
  89. package/src/components/StatsChart/customized/CustomTooltip.tsx +41 -0
  90. package/src/components/StatsChart/customized/styles.ts +53 -0
  91. package/src/components/StatsChart/getStatsChartSettings.ts +65 -0
  92. package/src/components/WorkflowTaskItem/WorkflowTaskItem.tsx +67 -0
  93. package/src/components/WorkflowTaskItem/WorkflowTaskObject.tsx +54 -0
  94. package/src/components/WorkflowTaskItem/__tests__/WorkflowTaskItem.test.tsx +73 -0
  95. package/src/components/WorkflowTaskItem/__tests__/WorkflowTaskObject.test.tsx +95 -0
  96. package/src/components/WorkflowTaskItem/styles.ts +74 -0
  97. package/src/components/WorkflowTasksList/WorkflowTasksList.tsx +34 -0
  98. package/src/components/WorkflowTasksList/__tests__/WorkflowTasksList.test.tsx +98 -0
  99. package/src/components/index.ts +8 -0
  100. package/src/contexts/DashboardViewIdContext/index.ts +5 -0
  101. package/src/hooks/__tests__/useActivititesRequest.specs.tsx +106 -0
  102. package/src/hooks/__tests__/useEntityByTypeRequest.specs.tsx +280 -0
  103. package/src/hooks/__tests__/useFacetRequest.specs.tsx +437 -0
  104. package/src/hooks/__tests__/useFilteredEntitiesRequest.specs.tsx +103 -0
  105. package/src/hooks/__tests__/useSavedSearchesRequest.specs.tsx +201 -0
  106. package/src/hooks/__tests__/useStatsRequest.specs.tsx +212 -0
  107. package/src/hooks/__tests__/useWorkflowTasksRequest.specs.tsx +388 -0
  108. package/src/hooks/useActivitiesRequest.ts +50 -0
  109. package/src/hooks/useEntityByTypeRequest.ts +67 -0
  110. package/src/hooks/useFacetRequest.ts +117 -0
  111. package/src/hooks/useFilteredEntitiesRequest.ts +57 -0
  112. package/src/hooks/useSavedSearchesRequest.ts +82 -0
  113. package/src/hooks/useStatsRequest.ts +47 -0
  114. package/src/hooks/useWorkflowTasksRequest.ts +66 -0
  115. package/src/index.ts +25 -0
  116. package/src/perspective/DashboardPerspectiveView.tsx +132 -0
  117. package/src/perspective/__tests__/DashboardPerspectiveView.specs.tsx +276 -0
  118. package/src/perspective/__tests__/data/metadata.data.ts +33 -0
  119. package/src/perspective/__tests__/data/store.data.ts +15 -0
  120. package/src/perspective/__tests__/helpers.specs.ts +33 -0
  121. package/src/perspective/helpers.ts +19 -0
  122. package/src/perspective/index.tsx +65 -0
  123. package/src/perspective/styles.ts +16 -0
  124. package/src/services/__tests__/facets.specs.ts +42 -0
  125. package/src/services/__tests__/filters.specs.ts +60 -0
  126. package/src/services/__tests__/period.test.ts +33 -0
  127. package/src/services/__tests__/stats.test.ts +319 -0
  128. package/src/services/entityTypes.ts +66 -0
  129. package/src/services/facets.ts +178 -0
  130. package/src/services/filters.ts +87 -0
  131. package/src/services/period.ts +33 -0
  132. package/src/services/savedSearches.ts +20 -0
  133. package/src/services/stats.ts +191 -0
  134. package/src/services/workflowTasks.ts +116 -0
  135. package/src/types/ActivitiesViewFacetConfig.ts +5 -0
  136. package/src/types/CustomActionViewFacetConfig.ts +5 -0
  137. package/src/types/DashboardPerspectiveConfig.ts +18 -0
  138. package/src/types/DashboardSavedState.ts +7 -0
  139. package/src/types/EntityByTypeViewFacetConfig.ts +7 -0
  140. package/src/types/EntityData.ts +4 -0
  141. package/src/types/FilteredEntitiesFacetConfig.ts +6 -0
  142. package/src/types/FilteredSavedSearchesFacetConfig.ts +6 -0
  143. package/src/types/PeriodStep.ts +4 -0
  144. package/src/types/SavedSearchData.ts +6 -0
  145. package/src/types/SearchOptions.ts +10 -0
  146. package/src/types/StatsData.ts +14 -0
  147. package/src/types/WorkflowTasks.ts +26 -0
  148. package/src/types/index.ts +14 -0
  149. package/src/views/ViewsFactory.tsx +79 -0
  150. package/src/views/__tests__/ViewsFactory.specs.tsx +70 -0
  151. package/src/views/chartBased/DashboardFacet.tsx +71 -0
  152. package/src/views/chartBased/EntitiesByTypeViewFacet.tsx +60 -0
  153. package/src/views/chartBased/ProfileStatsFacet.tsx +54 -0
  154. package/src/views/chartBased/__tests__/DashboardFacet.specs.tsx +358 -0
  155. package/src/views/chartBased/__tests__/EntitiesByTypeViewFacet.specs.tsx +101 -0
  156. package/src/views/chartBased/__tests__/ProfileStatsFacet.specs.tsx +106 -0
  157. package/src/views/chartBased/styles.ts +13 -0
  158. package/src/views/custom/CustomActionViewFacet.tsx +36 -0
  159. package/src/views/custom/NotificationInboxFacet.tsx +86 -0
  160. package/src/views/custom/__tests__/CustomActionViewFacet.specs.tsx +35 -0
  161. package/src/views/custom/__tests__/NotificationInboxFacet.specs.tsx +144 -0
  162. package/src/views/custom/styles.ts +31 -0
  163. package/src/views/tableBased/ActivitiesViewFacet.tsx +79 -0
  164. package/src/views/tableBased/FilteredEntitiesViewFacet.tsx +67 -0
  165. package/src/views/tableBased/FilteredSavedSearchesFacet.tsx +85 -0
  166. package/src/views/tableBased/__tests__/ActivitiesViewFacet.specs.tsx +113 -0
  167. package/src/views/tableBased/__tests__/FIlteredEntitiesViewFacet.specs.tsx +90 -0
  168. package/src/views/tableBased/__tests__/FilteredSavedSearchesFacet.specs.tsx +133 -0
  169. package/src/views/tableBased/helpers.ts +8 -0
  170. package/src/views/tableBased/styles.ts +7 -0
  171. package/stories/Dashboards.stories.js +118 -0
  172. package/stories/utils/dashboardPerspectiveConfig.js +78 -0
  173. package/stories/utils/dashboardsViewConfig.js +17 -0
  174. package/stories/utils/mdmStore.js +73 -0
  175. package/stories/utils/responses.js +10 -0
  176. package/tsconfig.json +14 -0
  177. package/webpack.config.js +10 -0
  178. package/bundle.js +0 -2
  179. package/bundle.js.LICENSE.txt +0 -22
  180. package/types/components/DashboardConfigItem/styles.d.ts +0 -1
  181. package/types/components/DashboardLayout/styles.d.ts +0 -1
  182. package/types/components/DashboardLayoutItem/styles.d.ts +0 -1
  183. package/types/components/DashboardLayoutPanel/styles.d.ts +0 -1
  184. package/types/components/DashboardLinearLoader/styles.d.ts +0 -1
  185. package/types/components/DashboardPerspectiveHeader/styles.d.ts +0 -2
  186. package/types/components/DashboardPopupMenu/styles.d.ts +0 -1
  187. package/types/components/EntityTable/cell-renderers/styles.d.ts +0 -1
  188. package/types/components/LayoutItemContent/styles.d.ts +0 -1
  189. package/types/components/LayoutItemHeader/styles.d.ts +0 -1
  190. package/types/components/LayoutItemView/styles.d.ts +0 -1
  191. package/types/components/StatsChart/customized/styles.d.ts +0 -1
  192. package/types/components/WorkflowTaskItem/styles.d.ts +0 -1
  193. package/types/perspective/styles.d.ts +0 -1
  194. package/types/views/chartBased/styles.d.ts +0 -1
  195. package/types/views/custom/styles.d.ts +0 -1
  196. package/types/views/tableBased/styles.d.ts +0 -1
  197. /package/{types → public/types}/HOCs/withPagination.d.ts +0 -0
  198. /package/{types → public/types}/components/DashboardConfigItem/DashboardConfigItem.d.ts +0 -0
  199. /package/{types → public/types}/components/DashboardError/DashboardError.d.ts +0 -0
  200. /package/{types → public/types}/components/DashboardLayout/DashboardLayout.d.ts +0 -0
  201. /package/{types → public/types}/components/DashboardLayoutItem/DashboardLayoutItem.d.ts +0 -0
  202. /package/{types → public/types}/components/DashboardLayoutPanel/DashboardLayoutPanel.d.ts +0 -0
  203. /package/{types → public/types}/components/DashboardLinearLoader/DashboardLinearLoader.d.ts +0 -0
  204. /package/{types → public/types}/components/DashboardNoData/DashboardNoData.d.ts +0 -0
  205. /package/{types → public/types}/components/DashboardPerspectiveHeader/DashboardPerspectiveHeader.d.ts +0 -0
  206. /package/{types → public/types}/components/EntityTable/EntityTable.d.ts +0 -0
  207. /package/{types → public/types}/components/EntityTable/cell-renderers/EntityLabelRenderer.d.ts +0 -0
  208. /package/{types → public/types}/components/EntityTable/cell-renderers/HeadCellRenderer.d.ts +0 -0
  209. /package/{types → public/types}/components/LayoutItemContent/LayoutItemContent.d.ts +0 -0
  210. /package/{types → public/types}/components/LayoutItemHeader/LayoutItemHeader.d.ts +0 -0
  211. /package/{types → public/types}/components/LayoutItemView/LayoutItemView.d.ts +0 -0
  212. /package/{types → public/types}/components/StatsChart/StatsChart.d.ts +0 -0
  213. /package/{types → public/types}/components/StatsChart/customized/CustomAxisTick.d.ts +0 -0
  214. /package/{types → public/types}/components/StatsChart/customized/CustomLegend.d.ts +0 -0
  215. /package/{types → public/types}/components/StatsChart/customized/CustomTooltip.d.ts +0 -0
  216. /package/{types → public/types}/components/StatsChart/getStatsChartSettings.d.ts +0 -0
  217. /package/{types → public/types}/components/WorkflowTaskItem/WorkflowTaskItem.d.ts +0 -0
  218. /package/{types → public/types}/components/WorkflowTaskItem/WorkflowTaskObject.d.ts +0 -0
  219. /package/{types → public/types}/components/WorkflowTasksList/WorkflowTasksList.d.ts +0 -0
  220. /package/{types → public/types}/components/index.d.ts +0 -0
  221. /package/{types → public/types}/contexts/DashboardViewIdContext/index.d.ts +0 -0
  222. /package/{types → public/types}/hooks/useActivitiesRequest.d.ts +0 -0
  223. /package/{types → public/types}/hooks/useEntityByTypeRequest.d.ts +0 -0
  224. /package/{types → public/types}/hooks/useFacetRequest.d.ts +0 -0
  225. /package/{types → public/types}/hooks/useFilteredEntitiesRequest.d.ts +0 -0
  226. /package/{types → public/types}/hooks/useSavedSearchesRequest.d.ts +0 -0
  227. /package/{types → public/types}/hooks/useStatsRequest.d.ts +0 -0
  228. /package/{types → public/types}/hooks/useWorkflowTasksRequest.d.ts +0 -0
  229. /package/{types → public/types}/index.d.ts +0 -0
  230. /package/{types → public/types}/perspective/DashboardPerspectiveView.d.ts +0 -0
  231. /package/{types → public/types}/perspective/helpers.d.ts +0 -0
  232. /package/{types → public/types}/perspective/index.d.ts +0 -0
  233. /package/{types → public/types}/services/entityTypes.d.ts +0 -0
  234. /package/{types → public/types}/services/facets.d.ts +0 -0
  235. /package/{types → public/types}/services/filters.d.ts +0 -0
  236. /package/{types → public/types}/services/period.d.ts +0 -0
  237. /package/{types → public/types}/services/savedSearches.d.ts +0 -0
  238. /package/{types → public/types}/services/stats.d.ts +0 -0
  239. /package/{types → public/types}/services/workflowTasks.d.ts +0 -0
  240. /package/{types → public/types}/types/ActivitiesViewFacetConfig.d.ts +0 -0
  241. /package/{types → public/types}/types/CustomActionViewFacetConfig.d.ts +0 -0
  242. /package/{types → public/types}/types/DashboardPerspectiveConfig.d.ts +0 -0
  243. /package/{types → public/types}/types/DashboardSavedState.d.ts +0 -0
  244. /package/{types → public/types}/types/EntityByTypeViewFacetConfig.d.ts +0 -0
  245. /package/{types → public/types}/types/EntityData.d.ts +0 -0
  246. /package/{types → public/types}/types/FilteredEntitiesFacetConfig.d.ts +0 -0
  247. /package/{types → public/types}/types/FilteredSavedSearchesFacetConfig.d.ts +0 -0
  248. /package/{types → public/types}/types/PeriodStep.d.ts +0 -0
  249. /package/{types → public/types}/types/SavedSearchData.d.ts +0 -0
  250. /package/{types → public/types}/types/SearchOptions.d.ts +0 -0
  251. /package/{types → public/types}/types/StatsData.d.ts +0 -0
  252. /package/{types → public/types}/types/WorkflowTasks.d.ts +0 -0
  253. /package/{types → public/types}/types/index.d.ts +0 -0
  254. /package/{types → public/types}/views/ViewsFactory.d.ts +0 -0
  255. /package/{types → public/types}/views/chartBased/DashboardFacet.d.ts +0 -0
  256. /package/{types → public/types}/views/chartBased/EntitiesByTypeViewFacet.d.ts +0 -0
  257. /package/{types → public/types}/views/chartBased/ProfileStatsFacet.d.ts +0 -0
  258. /package/{types → public/types}/views/custom/CustomActionViewFacet.d.ts +0 -0
  259. /package/{types → public/types}/views/custom/NotificationInboxFacet.d.ts +0 -0
  260. /package/{types → public/types}/views/tableBased/ActivitiesViewFacet.d.ts +0 -0
  261. /package/{types → public/types}/views/tableBased/FilteredEntitiesViewFacet.d.ts +0 -0
  262. /package/{types → public/types}/views/tableBased/FilteredSavedSearchesFacet.d.ts +0 -0
  263. /package/{types → public/types}/views/tableBased/helpers.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ export enum PeriodStep {
2
+ HOUR = 'hour',
3
+ DAY = 'day'
4
+ }
@@ -0,0 +1,6 @@
1
+ export type SavedSearchData = {
2
+ count: number;
3
+ uri: string;
4
+ name: string;
5
+ uiState: Record<string, any>;
6
+ };
@@ -0,0 +1,10 @@
1
+ export type SearchOptions = {
2
+ searchByOv: boolean;
3
+ ovOnly: boolean;
4
+ };
5
+
6
+ export type GlobalSearchRequestOptions = {
7
+ searchOptions: string;
8
+ activityFilter: string;
9
+ globalFilter: string;
10
+ };
@@ -0,0 +1,14 @@
1
+ export type StatsEventData = {
2
+ term: string;
3
+ count: number;
4
+ };
5
+
6
+ export type TimestampedStatsEventData = StatsEventData & {
7
+ term: number;
8
+ };
9
+
10
+ export type StatsData = {
11
+ event: string;
12
+ total: number;
13
+ data: StatsEventData[];
14
+ };
@@ -0,0 +1,26 @@
1
+ import {WorkflowTaskData} from '@reltio/mdm-sdk';
2
+
3
+ export enum WorkflowTasksCategories {
4
+ MY = 'my',
5
+ TEAM = 'team'
6
+ }
7
+
8
+ type WorkflowTaskEntityData = {
9
+ uri: string;
10
+ label: string;
11
+ type: string;
12
+ };
13
+ type WorkflowTaskRelationData = {
14
+ uri: string;
15
+ type: string;
16
+ startObjectUri: string;
17
+ endObjectUri: string;
18
+ startObjectLabel: string;
19
+ endObjectLabel: string;
20
+ };
21
+
22
+ export type WorkflowTaskObjectData = WorkflowTaskEntityData | WorkflowTaskRelationData;
23
+
24
+ export type EnrichedWorkflowTaskData = WorkflowTaskData & {
25
+ objects?: WorkflowTaskObjectData[];
26
+ };
@@ -0,0 +1,14 @@
1
+ export type {CustomActionViewFacetConfig} from './CustomActionViewFacetConfig';
2
+ export type {ActivitiesViewFacetConfig} from './ActivitiesViewFacetConfig';
3
+ export type {DashboardPerspectiveLegacyConfig, DashboardView} from './DashboardPerspectiveConfig';
4
+ export type {DashboardSavedState} from './DashboardSavedState';
5
+ export type {EntityByTypeViewFacetConfig} from './EntityByTypeViewFacetConfig';
6
+ export type {EntityData} from './EntityData';
7
+ export type {FilteredEntitiesFacetConfig} from './FilteredEntitiesFacetConfig';
8
+ export type {FilteredSavedSearchesFacetConfig} from './FilteredSavedSearchesFacetConfig';
9
+ export type {PeriodStep} from './PeriodStep';
10
+ export type {SavedSearchData} from './SavedSearchData';
11
+ export type {SearchOptions, GlobalSearchRequestOptions} from './SearchOptions';
12
+ export type {StatsData, StatsEventData} from './StatsData';
13
+ export type {EnrichedWorkflowTaskData, WorkflowTaskObjectData, WorkflowTasksCategories} from './WorkflowTasks';
14
+ export {ViewStatus} from './DashboardPerspectiveConfig';
@@ -0,0 +1,79 @@
1
+ import React from 'react';
2
+ import FilteredSavedSearchesFacet from './tableBased/FilteredSavedSearchesFacet';
3
+ import DashboardFacet from './chartBased/DashboardFacet';
4
+ import FilteredEntitiesViewFacet from './tableBased/FilteredEntitiesViewFacet';
5
+ import ProfileStatsFacet from './chartBased/ProfileStatsFacet';
6
+ import EntitiesByTypeViewFacet from './chartBased/EntitiesByTypeViewFacet';
7
+ import CustomActionViewFacet from './custom/CustomActionViewFacet';
8
+ import {ChartTypes, DashboardFacetConfig, DashboardView, DashboardViewTypes} from '@reltio/mdm-sdk';
9
+ import NotificationInboxFacet from './custom/NotificationInboxFacet';
10
+ import ActivitiesViewFacet from './tableBased/ActivitiesViewFacet';
11
+ import {
12
+ ActivitiesViewFacetConfig,
13
+ CustomActionViewFacetConfig,
14
+ EntityByTypeViewFacetConfig,
15
+ FilteredSavedSearchesFacetConfig,
16
+ FilteredEntitiesFacetConfig
17
+ } from '../types';
18
+
19
+ type Props = {
20
+ config:
21
+ | ActivitiesViewFacetConfig
22
+ | CustomActionViewFacetConfig
23
+ | DashboardFacetConfig
24
+ | EntityByTypeViewFacetConfig
25
+ | FilteredEntitiesFacetConfig
26
+ | FilteredSavedSearchesFacetConfig
27
+ | DashboardView;
28
+ type: string;
29
+ onToggleFullscreen: (id: string) => void;
30
+ isUpdated?: boolean;
31
+ isFullscreen: boolean;
32
+ onRemove?: (id: string) => void;
33
+ };
34
+ class ViewsFactory {
35
+ static ViewTypes = DashboardViewTypes;
36
+
37
+ static getComponent = ({config, type, isUpdated, isFullscreen, onToggleFullscreen, onRemove}: Props) => {
38
+ const props = {
39
+ isUpdated,
40
+ isFullscreen,
41
+ onToggleFullscreen,
42
+ onRemove
43
+ };
44
+ switch (type) {
45
+ case ViewsFactory.ViewTypes.ActivitiesViewFacet:
46
+ return <ActivitiesViewFacet config={config} {...props} />;
47
+ case ViewsFactory.ViewTypes.CustomActionViewFacet:
48
+ return <CustomActionViewFacet config={config as CustomActionViewFacetConfig} {...props} />;
49
+ case ViewsFactory.ViewTypes.DashboardFacet:
50
+ return <DashboardFacet config={config as DashboardFacetConfig} {...props} />;
51
+ case ViewsFactory.ViewTypes.EntitiesByTypeViewFacet:
52
+ return <EntitiesByTypeViewFacet config={config as EntityByTypeViewFacetConfig} {...props} />;
53
+ case ViewsFactory.ViewTypes.FilteredSavedSearchesFacet:
54
+ return <FilteredSavedSearchesFacet config={config} {...props} />;
55
+ case ViewsFactory.ViewTypes.FilteredEntitiesViewFacet:
56
+ return <FilteredEntitiesViewFacet config={config} {...props} />;
57
+ case ViewsFactory.ViewTypes.NotificationInboxFacet:
58
+ return <NotificationInboxFacet config={config} {...props} />;
59
+ case ViewsFactory.ViewTypes.ProfileStatsFacet:
60
+ return <ProfileStatsFacet config={config} {...props} />;
61
+ default:
62
+ return <div>NOT IMPLEMENTED</div>;
63
+ }
64
+ };
65
+
66
+ static getChartType = (view: DashboardView & {chartType?: string}): string => {
67
+ const typeConverters = {
68
+ [ViewsFactory.ViewTypes.EntitiesByTypeViewFacet]: ChartTypes.TREE,
69
+ [ViewsFactory.ViewTypes.FilteredSavedSearchesFacet]: ChartTypes.TABLE,
70
+ [ViewsFactory.ViewTypes.FilteredEntitiesViewFacet]: ChartTypes.TABLE,
71
+ [ViewsFactory.ViewTypes.ProfileStatsFacet]: ChartTypes.LINE,
72
+ [ViewsFactory.ViewTypes.NotificationInboxFacet]: ChartTypes.TABLE,
73
+ [ViewsFactory.ViewTypes.ActivitiesViewFacet]: ChartTypes.TABLE
74
+ };
75
+ return view.chartType || typeConverters[view.component];
76
+ };
77
+ }
78
+
79
+ export default ViewsFactory;
@@ -0,0 +1,70 @@
1
+ import {ChartTypes} from '@reltio/mdm-sdk';
2
+ import ViewsFactory from '../ViewsFactory';
3
+
4
+ describe('ViewsFactory tests', () => {
5
+ describe('getChartType tests', () => {
6
+ it('should return chartType property if view has chartType', () => {
7
+ const view = {
8
+ id: 'ViewID',
9
+ component: 'DashboardFacet',
10
+ chartType: 'bar',
11
+ title: 'Title'
12
+ };
13
+ expect(ViewsFactory.getChartType(view)).toBe(view.chartType);
14
+ });
15
+
16
+ it('should return ChartTypes.TREE for EntitiesByTypeViewFacet', () => {
17
+ const view = {
18
+ id: 'ViewID',
19
+ component: 'EntitiesByTypeViewFacet',
20
+ title: 'Title'
21
+ };
22
+ expect(ViewsFactory.getChartType(view)).toBe(ChartTypes.TREE);
23
+ });
24
+
25
+ it('should return ChartTypes.TABLE for FilteredSavedSearchesFacet', () => {
26
+ const view = {
27
+ id: 'ViewID',
28
+ component: 'FilteredSavedSearchesFacet',
29
+ title: 'Title'
30
+ };
31
+ expect(ViewsFactory.getChartType(view)).toBe(ChartTypes.TABLE);
32
+ });
33
+
34
+ it('should return ChartTypes.TABLE for FilteredEntitiesViewFacet', () => {
35
+ const view = {
36
+ id: 'ViewID',
37
+ component: 'FilteredEntitiesViewFacet',
38
+ title: 'Title'
39
+ };
40
+ expect(ViewsFactory.getChartType(view)).toBe(ChartTypes.TABLE);
41
+ });
42
+
43
+ it('should return ChartTypes.LINE for ProfileStatsFacet', () => {
44
+ const view = {
45
+ id: 'ViewID',
46
+ component: 'ProfileStatsFacet',
47
+ title: 'Title'
48
+ };
49
+ expect(ViewsFactory.getChartType(view)).toBe(ChartTypes.LINE);
50
+ });
51
+
52
+ it('should return undefined for CustomActionViewFacet', () => {
53
+ const view = {
54
+ id: 'ViewID',
55
+ component: 'CustomActionViewFacet',
56
+ title: 'Title'
57
+ };
58
+ expect(ViewsFactory.getChartType(view)).toBeUndefined();
59
+ });
60
+
61
+ it('should return undefined for unknown facet without chartType property', () => {
62
+ const view = {
63
+ id: 'ViewID',
64
+ component: 'SomeNewFacet',
65
+ title: 'Title'
66
+ };
67
+ expect(ViewsFactory.getChartType(view)).toBeUndefined();
68
+ });
69
+ });
70
+ });
@@ -0,0 +1,71 @@
1
+ import React, {memo, useContext, useMemo} from 'react';
2
+ import {useDispatch, useSelector} from 'react-redux';
3
+ import {ChartsFactory, SearchFiltersContext, useReloadFacet} from '@reltio/components';
4
+ import {useFacetRequest} from '../../hooks/useFacetRequest';
5
+ import {ChartTypes, DashboardFacetConfig, SearchFilter} from '@reltio/mdm-sdk';
6
+ import LayoutItemView from '../../components/LayoutItemView/LayoutItemView';
7
+ import LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';
8
+ import LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';
9
+ import mdmModule, {ui} from '@reltio/mdm-module';
10
+ import {concat, pipe} from 'ramda';
11
+ import {facetFiltersToSearchState, getFiltersForFacet, getFiltersForFacetItem} from '../../services/facets';
12
+ import {convertSearchFilterToDashboardConfigFilter} from '../../services/filters';
13
+
14
+ type DashboardFacetProps = {
15
+ config: DashboardFacetConfig;
16
+ onToggleFullscreen: (id: string) => void;
17
+ isUpdated?: boolean;
18
+ isFullscreen: boolean;
19
+ onRemove?: (id: string) => void;
20
+ };
21
+
22
+ const DashboardFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: DashboardFacetProps) => {
23
+ const {id, title, filters, attributeUri, count, orderType, chartType, showOthers, ...options} = config;
24
+ const pageSize = chartType === ChartTypes.MAP ? 100 : 8;
25
+ const {data, state, reload} = useFacetRequest({
26
+ filters,
27
+ attributeUri,
28
+ pageSize: count || pageSize,
29
+ orderType,
30
+ options: {showOthers}
31
+ });
32
+
33
+ useReloadFacet({state, reload});
34
+
35
+ const dispatch = useDispatch();
36
+ const metadata = useSelector(mdmModule.selectors.getMetadata);
37
+
38
+ const searchFilters = useContext<SearchFilter[]>(SearchFiltersContext);
39
+ const allFilters = useMemo(
40
+ () => searchFilters.map(convertSearchFilterToDashboardConfigFilter).concat(filters || []),
41
+ [searchFilters, filters]
42
+ );
43
+
44
+ const onItemClick = pipe(
45
+ getFiltersForFacetItem(attributeUri, data),
46
+ concat(getFiltersForFacet(attributeUri, allFilters)),
47
+ facetFiltersToSearchState(metadata, attributeUri),
48
+ ui.actions.openSearch,
49
+ dispatch
50
+ );
51
+
52
+ return (
53
+ <LayoutItemView id={id}>
54
+ <LayoutItemHeader
55
+ title={title}
56
+ onToggleFullscreen={onToggleFullscreen}
57
+ isUpdated={isUpdated}
58
+ isFullscreen={isFullscreen}
59
+ onRefresh={reload}
60
+ onRemove={onRemove}
61
+ />
62
+ <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>
63
+ {({data, width = 0, height = 0}) => {
64
+ return ChartsFactory.build(chartType, {data, width, height, options, onItemClick});
65
+ }}
66
+ </LayoutItemContent>
67
+ </LayoutItemView>
68
+ );
69
+ };
70
+
71
+ export default memo(DashboardFacet);
@@ -0,0 +1,60 @@
1
+ import React, {memo} from 'react';
2
+ import {useDispatch, useSelector} from 'react-redux';
3
+ import {TreeChart, useReloadFacet} from '@reltio/components';
4
+ import {useEntityByTypeRequest} from '../../hooks/useEntityByTypeRequest';
5
+ import LayoutItemView from '../../components/LayoutItemView/LayoutItemView';
6
+ import LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';
7
+ import LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';
8
+ import {EntityByTypeViewFacetConfig} from '../../types/EntityByTypeViewFacetConfig';
9
+ import {entityTypeNameToFilters} from '../../services/entityTypes';
10
+ import {facetFiltersToSearchState} from '../../services/facets';
11
+ import mdmModule, {ui} from '@reltio/mdm-module';
12
+ import {pipe} from 'ramda';
13
+
14
+ type Props = {
15
+ config: EntityByTypeViewFacetConfig;
16
+ onToggleFullscreen: (id: string) => void;
17
+ isUpdated?: boolean;
18
+ isFullscreen: boolean;
19
+ onRemove?: (id: string) => void;
20
+ };
21
+
22
+ const EntitiesByTypeViewFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {
23
+ const {id, title, hideEmpty, orderType, inheritChildren} = config;
24
+ const {data, state, reload} = useEntityByTypeRequest({
25
+ hideEmpty,
26
+ orderType,
27
+ inheritChildren
28
+ });
29
+
30
+ useReloadFacet({state, reload});
31
+
32
+ const dispatch = useDispatch();
33
+ const metadata = useSelector(mdmModule.selectors.getMetadata);
34
+ const onTypeClick = pipe(
35
+ entityTypeNameToFilters,
36
+ facetFiltersToSearchState(metadata, 'type'),
37
+ ui.actions.openSearch,
38
+ dispatch
39
+ );
40
+
41
+ return (
42
+ <LayoutItemView id={id}>
43
+ <LayoutItemHeader
44
+ title={title}
45
+ onToggleFullscreen={onToggleFullscreen}
46
+ isUpdated={isUpdated}
47
+ isFullscreen={isFullscreen}
48
+ onRefresh={reload}
49
+ onRemove={onRemove}
50
+ />
51
+ <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>
52
+ {({data, width, height}) => {
53
+ return <TreeChart width={width} height={height} data={data} onItemClick={onTypeClick} />;
54
+ }}
55
+ </LayoutItemContent>
56
+ </LayoutItemView>
57
+ );
58
+ };
59
+
60
+ export default memo(EntitiesByTypeViewFacet);
@@ -0,0 +1,54 @@
1
+ import React, {memo, useState} from 'react';
2
+ import {DashboardView, DatePeriod, DateRangeValue, getDateRangeOptions} from '@reltio/mdm-sdk';
3
+ import {useReloadFacet, DateRangeEditor} from '@reltio/components';
4
+ import LayoutItemView from '../../components/LayoutItemView/LayoutItemView';
5
+ import LayoutItemHeader from '../../components/LayoutItemHeader/LayoutItemHeader';
6
+ import LayoutItemContent from '../../components/LayoutItemContent/LayoutItemContent';
7
+ import StatsChart from '../../components/StatsChart/StatsChart';
8
+ import {useStatsRequest} from '../../hooks/useStatsRequest';
9
+ import {getValuesDateRange} from '../../services/period';
10
+
11
+ import {useStyles} from './styles';
12
+
13
+ type Props = {
14
+ config: DashboardView;
15
+ onToggleFullscreen: (id: string) => void;
16
+ isUpdated?: boolean;
17
+ isFullscreen: boolean;
18
+ onRemove?: (id: string) => void;
19
+ };
20
+
21
+ const ProfileStatsFacet = ({config, onToggleFullscreen, isUpdated, isFullscreen, onRemove}: Props) => {
22
+ const styles = useStyles();
23
+
24
+ const {id, title} = config;
25
+ const [period, setPeriod] = useState<DatePeriod>(DateRangeValue.LAST_WEEK);
26
+ const {state, data, step, reload} = useStatsRequest(period);
27
+ useReloadFacet({state, reload});
28
+
29
+ return (
30
+ <LayoutItemView id={id}>
31
+ <LayoutItemHeader
32
+ title={title}
33
+ onToggleFullscreen={onToggleFullscreen}
34
+ isUpdated={isUpdated}
35
+ isFullscreen={isFullscreen}
36
+ onRefresh={reload}
37
+ onRemove={onRemove}
38
+ >
39
+ <DateRangeEditor
40
+ values={period}
41
+ options={getDateRangeOptions()}
42
+ getValuesDateRange={getValuesDateRange}
43
+ onChange={setPeriod}
44
+ className={styles.periodSelector}
45
+ />
46
+ </LayoutItemHeader>
47
+ <LayoutItemContent loadingState={state} onRefresh={reload} data={data}>
48
+ {({data, width, height}) => <StatsChart data={data} width={width} height={height} step={step} />}
49
+ </LayoutItemContent>
50
+ </LayoutItemView>
51
+ );
52
+ };
53
+
54
+ export default memo(ProfileStatsFacet);