datastake-daf 0.6.720 → 0.6.722

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 (38) hide show
  1. package/dist/components/index.js +458 -437
  2. package/dist/context/index.js +7 -1
  3. package/dist/hooks/index.js +4660 -20
  4. package/dist/layouts/index.js +455 -432
  5. package/dist/pages/index.js +2014 -452
  6. package/dist/services/index.js +7 -1
  7. package/dist/utils/index.js +455 -432
  8. package/package.json +1 -1
  9. package/src/@daf/core/components/EditForm/form.jsx +3 -6
  10. package/src/@daf/core/components/EditForm/storyConfig2.js +23477 -10904
  11. package/src/@daf/core/components/Icon/configs/index.js +4 -0
  12. package/src/@daf/core/components/Icon/configs/partnerIcon.js +8 -0
  13. package/src/@daf/core/components/Icon/configs/userIcon.js +8 -0
  14. package/src/@daf/core/components/Screens/Admin/AdminViews/components/Users/helper.js +1 -1
  15. package/src/@daf/hooks/useWidgetFetch.js +1 -0
  16. package/src/@daf/pages/dashboards/SupplyChain/components/ChartsContainer/components/Identification/hook.js +1 -1
  17. package/src/@daf/pages/dashboards/UserDashboard/components/AccumulationGraph/hook.js +139 -0
  18. package/src/@daf/pages/dashboards/UserDashboard/components/AccumulationGraph/index.jsx +78 -0
  19. package/src/@daf/pages/dashboards/UserDashboard/components/ContributionsGraph/helper.js +75 -0
  20. package/src/@daf/pages/dashboards/UserDashboard/components/ContributionsGraph/hook.js +46 -0
  21. package/src/@daf/pages/dashboards/UserDashboard/components/ContributionsGraph/index.jsx +49 -0
  22. package/src/@daf/pages/dashboards/UserDashboard/components/CustomSegment/index.jsx +26 -0
  23. package/src/@daf/pages/dashboards/UserDashboard/components/DataChainOfCustody/index.jsx +18 -0
  24. package/src/@daf/pages/dashboards/UserDashboard/components/DataCompilation/index.jsx +69 -0
  25. package/src/@daf/pages/dashboards/UserDashboard/components/DataConsilidation/index.jsx +72 -0
  26. package/src/@daf/pages/dashboards/UserDashboard/components/KeyIndicators/config.js +120 -0
  27. package/src/@daf/pages/dashboards/UserDashboard/components/KeyIndicators/index.jsx +52 -0
  28. package/src/@daf/pages/dashboards/UserDashboard/components/MineSites/config.js +22 -0
  29. package/src/@daf/pages/dashboards/UserDashboard/components/MineSites/helper.js +142 -0
  30. package/src/@daf/pages/dashboards/UserDashboard/components/MineSites/index.jsx +209 -0
  31. package/src/@daf/pages/dashboards/UserDashboard/components/Triangulation/config.js +20 -0
  32. package/src/@daf/pages/dashboards/UserDashboard/components/Triangulation/hook.js +87 -0
  33. package/src/@daf/pages/dashboards/UserDashboard/components/Triangulation/index.jsx +68 -0
  34. package/src/@daf/pages/dashboards/UserDashboard/config.js +24 -24
  35. package/src/@daf/pages/dashboards/UserDashboard/index.jsx +56 -0
  36. package/src/@daf/services/AuthenticationService.js +7 -1
  37. package/src/pages.js +2 -1
  38. package/dist/style/datastake/mapbox-gl.css +0 -330
@@ -0,0 +1,68 @@
1
+ import React, { useMemo, useCallback } from 'react'
2
+ import { useWidgetFetch } from '../../../../../hooks/useWidgetFetch.js'
3
+ import { getConfig } from './config.js'
4
+ import { renderTooltipJsx } from '../../../../../utils/tooltip.js'
5
+ import Widget from '../../../../../core/components/Dashboard/Widget/index.jsx'
6
+ import PieChart from '../../../../../core/components/Charts/PieChart/chart.jsx'
7
+ import { useTriangulation } from './hook.js'
8
+
9
+ const defaultFetchConfig = {
10
+ basepath: "analytics",
11
+ url: "/widgets/triangulation",
12
+ defaultData: [],
13
+ filters: {},
14
+ };
15
+
16
+ function Triangulation({
17
+ section = "data-compilation",
18
+ tabSelected = "dataFlow",
19
+ t=() => {},
20
+ user = {},
21
+ theme = {}
22
+ }) {
23
+ const fetchConfig = useMemo(
24
+ () => ({
25
+ ...defaultFetchConfig,
26
+ filters: {
27
+ section: section,
28
+ tabSelected: tabSelected,
29
+ },
30
+ stop: false,
31
+ }),
32
+ [tabSelected],
33
+ );
34
+
35
+ const { data: widgetData, loading } = useWidgetFetch({config: fetchConfig});
36
+
37
+ const { pieData, isEmpty, getTooltipChildren } = useTriangulation({ widgetData, theme, t, section });
38
+
39
+ return (
40
+ <Widget
41
+ loading={loading}
42
+ title={t(
43
+ section === "data-compilation"
44
+ ? "Information Sharing"
45
+ : "Triangulation",
46
+ )}
47
+ className="with-border-header flex-1 h-w-btn-header"
48
+ >
49
+ <div className="flex flex-1 flex-column justify-content-center pl-4 pr-4">
50
+ <div className="flex justify-content-center">
51
+ <PieChart
52
+ mouseXOffset={10}
53
+ mouseYOffset={10}
54
+ changeOpacityOnHover={false}
55
+ data={pieData}
56
+ doConstraints={false}
57
+ isPie
58
+ t={t}
59
+ isEmpty={isEmpty}
60
+ getTooltipChildren={getTooltipChildren}
61
+ />
62
+ </div>
63
+ </div>
64
+ </Widget>
65
+ )
66
+ }
67
+
68
+ export default Triangulation
@@ -1,27 +1,27 @@
1
1
  export const getActionWidgetsConfig = ({ goTo, getRedirectLink, APP, t }) => [
2
2
  ...(APP === 'nashiriki' ? [{
3
3
  icon: "MineSite",
4
- title: t("nashiriki::create-mine-site"),
5
- onClick: () => goTo(getRedirectLink("/app/scl?create=true")),
6
- }] : null),
7
- {
8
- icon: "FileEdit",
9
- title: t("nashiriki::report-activity"),
10
- onClick: () => goTo(getRedirectLink("/app/corrective-actions?create=true")),
11
- },
12
- {
13
- icon: "ReportIncidents",
14
- title: t("nashiriki::report-incident"),
15
- onClick: () => goTo(getRedirectLink("/app/incident?create=true")),
16
- },
17
- {
18
- icon: "Search",
19
- title: t("nashiriki::find-information"),
20
- onClick: () => goTo(getRedirectLink("/app/find-information")),
21
- },
22
- {
23
- icon: "Share",
24
- title: t("nashiriki::share-information"),
25
- onClick: () => goTo(getRedirectLink("/app/partners")),
26
- },
27
- ];
4
+ title: t("nashiriki::create-mine-site"),
5
+ onClick: () => goTo(getRedirectLink("/app/scl?create=true")),
6
+ }] : []),
7
+ {
8
+ icon: "FileEdit",
9
+ title: "Report Activity",
10
+ onClick: () => goTo(getRedirectLink("/app/corrective-actions?create=true")),
11
+ },
12
+ {
13
+ icon: "ReportIncidents",
14
+ title: "Report Incident",
15
+ onClick: () => goTo(getRedirectLink("/app/incident?create=true")),
16
+ },
17
+ {
18
+ icon: "Search",
19
+ title: "Find Information",
20
+ onClick: () => goTo(getRedirectLink("/app/find-information")),
21
+ },
22
+ {
23
+ icon: "Share",
24
+ title: "Share Information",
25
+ onClick: () => goTo(getRedirectLink("/app/partners")),
26
+ },
27
+ ];
@@ -3,12 +3,23 @@ import { getActionWidgetsConfig } from './config'
3
3
  import ActionWidget from '../../../core/components/Dashboard/Widget/ActionWidget/index.jsx'
4
4
  import Header from '../../../core/components/Header/index.jsx'
5
5
  import DashboardLayout from '../../../core/components/Dashboard/DashboardLayout/index.jsx'
6
+ import KeyIndicators from './components/KeyIndicators/index.jsx'
7
+ import MineSites from './components/MineSites/index.jsx'
8
+ import DataCompilation from './components/DataCompilation/index.jsx'
9
+ import DataConsilidation from './components/DataConsilidation/index.jsx'
6
10
 
7
11
  function UserDashboard({
8
12
  t = () => {},
9
13
  goTo = () => {},
10
14
  getRedirectLink = () => {},
11
15
  APP,
16
+ theme = {},
17
+ partners,
18
+ selectedPartners,
19
+ setSelectedPartners,
20
+ informationSources,
21
+ user = {},
22
+ options = {},
12
23
  }) {
13
24
 
14
25
  const actionsWidgetsConfig = useMemo(
@@ -16,6 +27,14 @@ function UserDashboard({
16
27
  [t, getRedirectLink, APP, t],
17
28
  );
18
29
 
30
+ const informationSourcesCount = useMemo(() => {
31
+ return informationSources > 0
32
+ ? informationSources
33
+ : selectedPartners?.partners?.length > 0
34
+ ? selectedPartners?.partners?.length
35
+ : 0
36
+ }, [informationSources, selectedPartners]);
37
+
19
38
  return (
20
39
  <DashboardLayout
21
40
  header={
@@ -35,6 +54,43 @@ function UserDashboard({
35
54
  />
36
55
  ))}
37
56
  </section>
57
+ <section>
58
+ <KeyIndicators
59
+ theme={theme}
60
+ partners={informationSourcesCount}
61
+ t={t}
62
+ goTo={goTo}
63
+ getRedirectLink={getRedirectLink}
64
+ />
65
+ </section>
66
+ <section>
67
+ <MineSites
68
+ t={t}
69
+ goTo={goTo}
70
+ getRedirectLink={getRedirectLink}
71
+ theme={theme}
72
+ selectedPartners={selectedPartners}
73
+ setSelectedPartners={setSelectedPartners}
74
+ partners={partners}
75
+ user={user}
76
+ options={options}
77
+ APP={APP}
78
+ />
79
+ </section>
80
+ <section>
81
+ <DataCompilation
82
+ t={t}
83
+ user={user}
84
+ theme={theme}
85
+ />
86
+ </section>
87
+ <section>
88
+ <DataConsilidation
89
+ t={t}
90
+ user={user}
91
+ theme={theme}
92
+ />
93
+ </section>
38
94
 
39
95
  </DashboardLayout>
40
96
  )
@@ -128,7 +128,13 @@ class AuthenticationService extends BaseService {
128
128
  });
129
129
  }
130
130
 
131
- inviteUser(payload) {
131
+ inviteUser(payload, id) {
132
+ if(id) {
133
+ return this.apiPost({
134
+ url: `/companies/${id}/invite`,
135
+ data: payload,
136
+ });
137
+ }
132
138
  return this.apiPost({
133
139
  url: '/companies/invite',
134
140
  data: payload,
package/src/pages.js CHANGED
@@ -1 +1,2 @@
1
- export { default as SupplyChainDashboard } from './@daf/pages/dashboards/SupplyChain/index.jsx';
1
+ export { default as SupplyChainDashboard } from './@daf/pages/dashboards/SupplyChain/index.jsx';
2
+ export { default as UserDashboard } from './@daf/pages/dashboards/UserDashboard/index.jsx';
@@ -1,330 +0,0 @@
1
- /* Isolated Mapbox GL CSS - Scoped to prevent Leaflet conflicts */
2
-
3
- /* Mapbox GL Core Styles - Scoped with .mapbox-gl-scope */
4
- .mapbox-gl-scope .mapboxgl-map {
5
- font: 12px/20px Helvetica Neue, Arial, Helvetica, sans-serif;
6
- overflow: hidden;
7
- position: relative;
8
- -webkit-tap-highlight-color: rgb(0 0 0/0);
9
- }
10
-
11
- .mapbox-gl-scope .mapboxgl-canvas {
12
- left: 0;
13
- position: absolute;
14
- top: 0;
15
- }
16
-
17
- .mapbox-gl-scope .mapboxgl-map:-webkit-full-screen {
18
- height: 100%;
19
- width: 100%;
20
- }
21
-
22
- .mapbox-gl-scope .mapboxgl-canary {
23
- background-color: salmon;
24
- }
25
-
26
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-interactive,
27
- .mapbox-gl-scope .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass {
28
- cursor: grab;
29
- -webkit-user-select: none;
30
- user-select: none;
31
- }
32
-
33
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer {
34
- cursor: pointer;
35
- }
36
-
37
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-interactive:active,
38
- .mapbox-gl-scope .mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active {
39
- cursor: grabbing;
40
- }
41
-
42
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,
43
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas {
44
- touch-action: pan-x pan-y;
45
- }
46
-
47
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-drag-pan,
48
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas {
49
- touch-action: pinch-zoom;
50
- }
51
-
52
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,
53
- .mapbox-gl-scope .mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas {
54
- touch-action: none;
55
- }
56
-
57
- /* Control positioning */
58
- .mapbox-gl-scope .mapboxgl-ctrl-bottom,
59
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-left,
60
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-right,
61
- .mapbox-gl-scope .mapboxgl-ctrl-left,
62
- .mapbox-gl-scope .mapboxgl-ctrl-right,
63
- .mapbox-gl-scope .mapboxgl-ctrl-top,
64
- .mapbox-gl-scope .mapboxgl-ctrl-top-left,
65
- .mapbox-gl-scope .mapboxgl-ctrl-top-right {
66
- pointer-events: none;
67
- position: absolute;
68
- z-index: 2;
69
- }
70
-
71
- .mapbox-gl-scope .mapboxgl-ctrl-top-left {
72
- left: 0;
73
- top: 0;
74
- }
75
-
76
- .mapbox-gl-scope .mapboxgl-ctrl-top {
77
- left: 50%;
78
- top: 0;
79
- transform: translateX(-50%);
80
- }
81
-
82
- .mapbox-gl-scope .mapboxgl-ctrl-top-right {
83
- right: 0;
84
- top: 0;
85
- }
86
-
87
- .mapbox-gl-scope .mapboxgl-ctrl-right {
88
- right: 0;
89
- top: 50%;
90
- transform: translateY(-50%);
91
- }
92
-
93
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-right {
94
- bottom: 0;
95
- right: 0;
96
- }
97
-
98
- .mapbox-gl-scope .mapboxgl-ctrl-bottom {
99
- bottom: 0;
100
- left: 50%;
101
- transform: translateX(-50%);
102
- }
103
-
104
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-left {
105
- bottom: 0;
106
- left: 0;
107
- }
108
-
109
- .mapbox-gl-scope .mapboxgl-ctrl-left {
110
- left: 0;
111
- top: 50%;
112
- transform: translateY(-50%);
113
- }
114
-
115
- .mapbox-gl-scope .mapboxgl-ctrl {
116
- clear: both;
117
- pointer-events: auto;
118
- transform: translate(0);
119
- }
120
-
121
- .mapbox-gl-scope .mapboxgl-ctrl-top-left .mapboxgl-ctrl {
122
- float: left;
123
- margin: 10px 0 0 10px;
124
- }
125
-
126
- .mapbox-gl-scope .mapboxgl-ctrl-top .mapboxgl-ctrl {
127
- float: left;
128
- margin: 10px 0;
129
- }
130
-
131
- .mapbox-gl-scope .mapboxgl-ctrl-top-right .mapboxgl-ctrl {
132
- float: right;
133
- margin: 10px 10px 0 0;
134
- }
135
-
136
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-right .mapboxgl-ctrl,
137
- .mapbox-gl-scope .mapboxgl-ctrl-right .mapboxgl-ctrl {
138
- float: right;
139
- margin: 0 10px 10px 0;
140
- }
141
-
142
- .mapbox-gl-scope .mapboxgl-ctrl-bottom .mapboxgl-ctrl {
143
- float: left;
144
- margin: 10px 0;
145
- }
146
-
147
- .mapbox-gl-scope .mapboxgl-ctrl-bottom-left .mapboxgl-ctrl,
148
- .mapbox-gl-scope .mapboxgl-ctrl-left .mapboxgl-ctrl {
149
- float: left;
150
- margin: 0 0 10px 10px;
151
- }
152
-
153
- /* Control group styling */
154
- .mapbox-gl-scope .mapboxgl-ctrl-group {
155
- background: #fff;
156
- border-radius: 4px;
157
- }
158
-
159
- .mapbox-gl-scope .mapboxgl-ctrl-group:not(:empty) {
160
- box-shadow: 0 0 0 2px #0000001a;
161
- }
162
-
163
- .mapbox-gl-scope .mapboxgl-ctrl-group button {
164
- background-color: initial;
165
- border: 0;
166
- box-sizing: border-box;
167
- cursor: pointer;
168
- display: block;
169
- height: 29px;
170
- outline: none;
171
- overflow: hidden;
172
- padding: 0;
173
- width: 29px;
174
- }
175
-
176
- .mapbox-gl-scope .mapboxgl-ctrl-group button+button {
177
- border-top: 1px solid #ddd;
178
- }
179
-
180
- .mapbox-gl-scope .mapboxgl-ctrl button .mapboxgl-ctrl-icon {
181
- background-position: 50%;
182
- background-repeat: no-repeat;
183
- display: block;
184
- height: 100%;
185
- width: 100%;
186
- }
187
-
188
- .mapbox-gl-scope .mapboxgl-ctrl-attrib-button:focus,
189
- .mapbox-gl-scope .mapboxgl-ctrl-group button:focus {
190
- box-shadow: 0 0 2px 2px #0096ff;
191
- }
192
-
193
- .mapbox-gl-scope .mapboxgl-ctrl button:disabled {
194
- cursor: not-allowed;
195
- }
196
-
197
- .mapbox-gl-scope .mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon {
198
- opacity: .25;
199
- }
200
-
201
- .mapbox-gl-scope .mapboxgl-ctrl-group button:first-child {
202
- border-radius: 4px 4px 0 0;
203
- }
204
-
205
- .mapbox-gl-scope .mapboxgl-ctrl-group button:last-child {
206
- border-radius: 0 0 4px 4px;
207
- }
208
-
209
- .mapbox-gl-scope .mapboxgl-ctrl-group button:only-child {
210
- border-radius: inherit;
211
- }
212
-
213
- .mapbox-gl-scope .mapboxgl-ctrl button:not(:disabled):hover {
214
- background-color: #0000000d;
215
- }
216
-
217
- /* Marker styles */
218
- .mapbox-gl-scope .mapboxgl-marker {
219
- position: absolute;
220
- z-index: 1;
221
- }
222
-
223
- .mapbox-gl-scope .mapboxgl-marker svg {
224
- display: block;
225
- }
226
-
227
- /* Popup styles */
228
- .mapbox-gl-scope .mapboxgl-popup {
229
- position: absolute;
230
- text-align: center;
231
- margin-bottom: 20px;
232
- }
233
-
234
- .mapbox-gl-scope .mapboxgl-popup-content-wrapper {
235
- padding: 1px;
236
- text-align: left;
237
- border-radius: 12px;
238
- }
239
-
240
- .mapbox-gl-scope .mapboxgl-popup-content {
241
- margin: 13px 24px 13px 20px;
242
- line-height: 1.3;
243
- font-size: 13px;
244
- min-height: 1px;
245
- }
246
-
247
- .mapbox-gl-scope .mapboxgl-popup-content p {
248
- margin: 17px 0;
249
- }
250
-
251
- .mapbox-gl-scope .mapboxgl-popup-tip-container {
252
- width: 40px;
253
- height: 20px;
254
- position: absolute;
255
- left: 50%;
256
- margin-top: -1px;
257
- margin-left: -20px;
258
- overflow: hidden;
259
- pointer-events: none;
260
- }
261
-
262
- .mapbox-gl-scope .mapboxgl-popup-tip {
263
- width: 17px;
264
- height: 17px;
265
- padding: 1px;
266
- margin: -10px auto 0;
267
- pointer-events: auto;
268
- -webkit-transform: rotate(45deg);
269
- -moz-transform: rotate(45deg);
270
- -ms-transform: rotate(45deg);
271
- transform: rotate(45deg);
272
- }
273
-
274
- .mapbox-gl-scope .mapboxgl-popup-content-wrapper,
275
- .mapbox-gl-scope .mapboxgl-popup-tip {
276
- background: white;
277
- color: #333;
278
- box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4);
279
- }
280
-
281
- .mapbox-gl-scope .mapboxgl-popup-close-button {
282
- position: absolute;
283
- top: 0;
284
- right: 0;
285
- border: none;
286
- text-align: center;
287
- width: 24px;
288
- height: 24px;
289
- font: 16px/24px Tahoma, Verdana, sans-serif;
290
- color: #757575;
291
- text-decoration: none;
292
- background: transparent;
293
- }
294
-
295
- .mapbox-gl-scope .mapboxgl-popup-close-button:hover,
296
- .mapbox-gl-scope .mapboxgl-popup-close-button:focus {
297
- color: #585858;
298
- }
299
-
300
- /* Attribution */
301
- .mapbox-gl-scope .mapboxgl-ctrl-attribution {
302
- background: #fff;
303
- background: rgba(255, 255, 255, 0.8);
304
- margin: 0;
305
- }
306
-
307
- .mapbox-gl-scope .mapboxgl-ctrl-attribution,
308
- .mapbox-gl-scope .mapboxgl-ctrl-scale-line {
309
- padding: 0 5px;
310
- color: #333;
311
- line-height: 1.4;
312
- }
313
-
314
- .mapbox-gl-scope .mapboxgl-ctrl-attribution a {
315
- text-decoration: none;
316
- }
317
-
318
- .mapbox-gl-scope .mapboxgl-ctrl-attribution a:hover,
319
- .mapbox-gl-scope .mapboxgl-ctrl-attribution a:focus {
320
- text-decoration: underline;
321
- }
322
-
323
- /* Hide attribution by default */
324
- .mapbox-gl-scope .mapboxgl-ctrl-attribution {
325
- display: none !important;
326
- }
327
-
328
- .mapbox-gl-scope .mapboxgl-ctrl-logo {
329
- display: none !important;
330
- }