datastake-daf 0.6.737 → 0.6.739

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 (36) hide show
  1. package/dist/components/index.js +16 -9
  2. package/dist/hooks/index.js +4662 -21
  3. package/dist/layouts/index.js +19 -6
  4. package/dist/pages/index.js +1589 -78
  5. package/dist/services/index.js +76 -0
  6. package/dist/utils/index.js +4 -4
  7. package/package.json +1 -1
  8. package/public/assets/favicons/datastake-black.svg +13 -0
  9. package/public/assets/favicons/datastake-white.svg +13 -0
  10. package/src/@daf/core/components/EditForm/components/DataLink/useAjaxModal.js +1 -1
  11. package/src/@daf/core/components/Filters/selectFilters/AjaxSelect.jsx +1 -1
  12. package/src/@daf/core/components/PdfForm/utils/useAjaxModal.js +1 -1
  13. package/src/@daf/core/components/Sidenav/index.jsx +15 -3
  14. package/src/@daf/core/components/ViewForm/components/DataLink/useAjaxModal.js +1 -1
  15. package/src/@daf/hooks/useGetQueryParams.js +2 -2
  16. package/src/@daf/layouts/AppLayout/components/Sidenav/index.js +2 -0
  17. package/src/@daf/layouts/AppLayout/index.jsx +6 -1
  18. package/src/@daf/pages/dashboards/AllInformation/Documents/columns.js +106 -0
  19. package/src/@daf/pages/dashboards/AllInformation/Documents/config.js +31 -0
  20. package/src/@daf/pages/dashboards/AllInformation/Documents/create.jsx +104 -0
  21. package/src/@daf/pages/dashboards/AllInformation/Documents/index.jsx +156 -0
  22. package/src/@daf/pages/dashboards/AllInformation/Events/columns.js +150 -0
  23. package/src/@daf/pages/dashboards/AllInformation/Events/config.js +31 -0
  24. package/src/@daf/pages/dashboards/AllInformation/Events/create.jsx +104 -0
  25. package/src/@daf/pages/dashboards/AllInformation/Events/index.jsx +156 -0
  26. package/src/@daf/pages/dashboards/AllInformation/Locations/index.jsx +1 -2
  27. package/src/@daf/pages/dashboards/Operations/Operators/columns.js +150 -0
  28. package/src/@daf/pages/dashboards/Operations/Operators/config.js +163 -0
  29. package/src/@daf/pages/dashboards/Operations/Operators/create.jsx +104 -0
  30. package/src/@daf/pages/dashboards/Operations/Operators/index.jsx +155 -0
  31. package/src/@daf/pages/pages/TablePageWithTabs/index.jsx +2 -2
  32. package/src/@daf/services/OperatorService.js +90 -0
  33. package/src/helpers/StringHelper.js +4 -4
  34. package/src/pages.js +5 -2
  35. package/src/services.js +2 -1
  36. package/dist/style/datastake/mapbox-gl.css +0 -330
@@ -0,0 +1,150 @@
1
+ import React from 'react';
2
+ import { Tooltip } from 'antd';
3
+ import { findOptions } from '../../../../../helpers/StringHelper.js';
4
+ import { renderDateFormatted } from '../../../../../helpers/Forms.js';
5
+ import CustomIcon from '../../../../core/components/Icon/CustomIcon.jsx';
6
+ import AvatarGroup from '../../../../core/components/AvatarGroup/index.jsx';
7
+
8
+ const getLinkValue = (value, linkingObject) => {
9
+ if(linkingObject && linkingObject?.[value]) {
10
+ return linkingObject?.[value]?.name;
11
+ }
12
+ return null;
13
+ }
14
+
15
+ export const getColumns = ({t, goTo, user, options, activeTab, getRedirectLink, theme, subject, data}) => [
16
+ {
17
+ dataIndex: 'datastakeId',
18
+ title: t('ID'),
19
+ ellipsis: true,
20
+ show: true,
21
+ render: (v, all) => {
22
+ if (all.empty) {
23
+ return <div className="daf-default-cell" />
24
+ }
25
+
26
+ return <Tooltip title={v}>{v}</Tooltip>;
27
+ },
28
+ },
29
+ {
30
+ dataIndex: 'name',
31
+ title: t('Name'),
32
+ ellipsis: true,
33
+ show: true,
34
+ render: (v, all) => {
35
+ if (all.empty) {
36
+ return <div className="daf-default-cell" />
37
+ }
38
+
39
+ return <Tooltip title={v}>{v}</Tooltip>;
40
+ },
41
+ },
42
+ {
43
+ dataIndex: 'category',
44
+ title: t('Category'),
45
+ ellipsis: true,
46
+ show: true,
47
+ render: (v, all) => {
48
+ if (all.empty) {
49
+ return <div className="daf-default-cell" />
50
+ }
51
+
52
+ const category = findOptions(v, data?.options?.locationCategories);
53
+
54
+ return category ? <Tooltip title={category}>{category}</Tooltip> : '-';
55
+ },
56
+ },
57
+ {
58
+ dataIndex: 'country',
59
+ title: t('Country'),
60
+ ellipsis: true,
61
+ show: true,
62
+ render: (v, all) => {
63
+ if (all.empty) {
64
+ return <div className="daf-default-cell" />
65
+ }
66
+
67
+ const country = findOptions(v, options?.countries);
68
+
69
+ return country ? <Tooltip title={country}>{country}</Tooltip> : '-';
70
+ },
71
+ },
72
+ {
73
+ dataIndex: 'administrativeLevel1',
74
+ title: t('Region'),
75
+ ellipsis: true,
76
+ show: true,
77
+ render: (v, all) => {
78
+ if (all.empty) {
79
+ return <div className="daf-default-cell" />
80
+ }
81
+
82
+ const region = getLinkValue(v, all?.linking?.SCL);
83
+
84
+ return region ? <Tooltip title={region}>{region}</Tooltip> : '-';
85
+ },
86
+ },
87
+ {
88
+ dataIndex: 'administrativeLevel2',
89
+ title: t('District'),
90
+ ellipsis: true,
91
+ show: true,
92
+ render: (v, all) => {
93
+ if (all.empty) {
94
+ return <div className="daf-default-cell" />
95
+ }
96
+
97
+ const district = getLinkValue(v, all?.linking?.SCL);
98
+
99
+ return district ? <Tooltip title={district}>{district}</Tooltip> : '-';
100
+ },
101
+ },
102
+ {
103
+ title: t("Last Update"),
104
+ dataIndex: "updatedAt",
105
+ key: "updatedAt",
106
+ width: 125,
107
+ render: (date, all) => {
108
+ if (all.empty) {
109
+ return <div className="daf-default-cell" />;
110
+ }
111
+
112
+ const _date = date ? renderDateFormatted(date, "DD MMM YYYY", user?.language || 'en') : "-";
113
+ return <Tooltip title={_date}>{_date}</Tooltip>;
114
+ },
115
+ ellipsis: true,
116
+ },
117
+ {
118
+ title: t("Sources"),
119
+ dataIndex: "sources",
120
+ key: "sources",
121
+ show: activeTab !== "own",
122
+ render: (val, all) => {
123
+ if (all.empty) {
124
+ return <div className="daf-default-cell" />;
125
+ }
126
+
127
+ console.log({val, all})
128
+
129
+ return <AvatarGroup items={val}></AvatarGroup>;
130
+ },
131
+ },
132
+ {
133
+ id: 'actions',
134
+ title: "",
135
+ width: 60,
136
+ render: (_, all) => {
137
+ if (all.empty) {
138
+ return <div className="daf-default-cell" />;
139
+ }
140
+
141
+ const link = `/app/view/${subject}/${all.datastakeId}`;
142
+
143
+ return <div style={{ display: "flex", justifyContent: "center" }}>
144
+ <a href={getRedirectLink(link)}>
145
+ <CustomIcon name="Link" size={15} color={theme.baseGray70} />
146
+ </a>
147
+ </div>;
148
+ }
149
+ }
150
+ ].filter((column) => column.show !== false);
@@ -0,0 +1,163 @@
1
+ export const checkboxConfig = {
2
+ name: 'Name',
3
+ datastakeId: 'ID'
4
+ }
5
+
6
+ export const getFiltersConfig = ({t}) => {
7
+ return {
8
+ country: {
9
+ type: 'select',
10
+ label: 'Country',
11
+ placeholder: (t) => `${t('Filter by')} ${t('Country').toLowerCase()}`,
12
+ style: { flex: 1 },
13
+ labelStyle: { flex: 1 },
14
+ getLabel: (option) => option.label,
15
+ getValue: (option) => option.value,
16
+ },
17
+ administrativeLevel1: {
18
+ type: 'ajaxSelect',
19
+ label: ({ t = (s) => s, options = {}, filters = {}, language = 'en' }) => {
20
+ const { administrativeLevel1 } = options;
21
+
22
+ if (administrativeLevel1) {
23
+ if (options.country) {
24
+ const _item = administrativeLevel1[filters.country];
25
+ if (_item) {
26
+ if (_item[language]) {
27
+ return _item[language]
28
+ }
29
+ }
30
+ }
31
+ }
32
+
33
+ return t('Province');
34
+ },
35
+ placeholder: (t) => `${t('Filter by')} ${t('Province').toLowerCase()}`,
36
+ filters: (data) => ({
37
+ country: data.country,
38
+ level: 'level_1',
39
+ }),
40
+ show: (data) => !data.country,
41
+ disabled: (data) => !data.country,
42
+ mapper: { label: "name", value: "id" },
43
+ method: 'getOptions',
44
+ entity: 'AdministrativeLevel',
45
+ style: { flex: 1 },
46
+ labelStyle: { flex: 1 },
47
+ },
48
+ administrativeLevel2: {
49
+ type: 'ajaxSelect',
50
+ label: ({ t = (s) => s, options = {}, filters = {}, language = 'en' }) => {
51
+ const { administrativeLevel2 } = options;
52
+
53
+ if (administrativeLevel2) {
54
+ if (options.country) {
55
+ const _item = administrativeLevel2[filters.country];
56
+ if (_item) {
57
+ if (_item[language]) {
58
+ return _item[language]
59
+ }
60
+ }
61
+ }
62
+ }
63
+
64
+ return t('Province');
65
+ },
66
+ show: (data) => !(data.country && data.administrativeLevel1),
67
+ placeholder: (t) => `${t('Filter by')} ${t('Territory').toLowerCase()}`,
68
+ filters: (data) => ({
69
+ country: data.country,
70
+ level: 'level_2',
71
+ administrativeLevel1: data.administrativeLevel1,
72
+ }),
73
+ disabled: (data) => !(data.country && data.administrativeLevel1),
74
+ mapper: { label: "name", value: "id" },
75
+ method: 'getOptions',
76
+ entity: 'AdministrativeLevel',
77
+ style: { flex: 1 },
78
+ labelStyle: { flex: 1 },
79
+ },
80
+ subCategory: {
81
+ type: 'select',
82
+ label: 'Sub Category',
83
+ placeholder: (t) => `${t('Filter by')} ${t('Sub Category').toLowerCase()}`,
84
+ style: { flex: 1 },
85
+ labelStyle: { flex: 1 },
86
+ getLabel: (option) => option.label,
87
+ getValue: (option) => option.value,
88
+ filterOptions: (val) => {
89
+ if (val) {
90
+ const { option, filters } = val
91
+ if (filters && option) {
92
+ const { filters: optionFilters } = option;
93
+ if (Array.isArray(optionFilters) && optionFilters.length) {
94
+ const { value, condition } = optionFilters[0];
95
+ if (condition === 'includes') {
96
+ return value.includes('corporation');
97
+ }
98
+ }
99
+ }
100
+ }
101
+ return true;
102
+ },
103
+ },
104
+ positionInTheMineralSupplyChain: {
105
+ type: 'select',
106
+ label: 'Position',
107
+ placeholder: (t) => `${t('Filter by')} ${t('Position').toLowerCase()}`,
108
+ style: { flex: 1 },
109
+ labelStyle: { flex: 1 },
110
+ getLabel: (option) => option.label,
111
+ getValue: (option) => option.value,
112
+ },
113
+ status: {
114
+ type: "select",
115
+ label: "Status",
116
+ placeholder: (t) => `${t("Filter by")} ${t("Status").toLowerCase()}`,
117
+ style: { flex: 1 },
118
+ labelStyle: { fley: 1 },
119
+ getLabel: (option) => option.label,
120
+ getValue: (option) => option.value,
121
+ },
122
+ }
123
+ }
124
+
125
+ export const filtersConfig = {
126
+ name: '',
127
+ datastakeId: '',
128
+ };
129
+
130
+ export const getFilterOptions = (options, t) => {
131
+ const {
132
+ statusOptions = [],
133
+ categoryOptions = [],
134
+ countries = [],
135
+ subCategory = [],
136
+ subCategoriesOptions,
137
+ stakeholderCategoryOptions,
138
+ stakeholderSubCategoriesOptions,
139
+ administrativeLevel1,
140
+ administrativeLevel2,
141
+ } = options || {};
142
+ console.log({options})
143
+
144
+ const _default = {
145
+ category: stakeholderCategoryOptions || categoryOptions,
146
+ country: countries,
147
+ administrativeLevel1,
148
+ administrativeLevel2,
149
+ subCategory: subCategoriesOptions,
150
+ status: [
151
+ {
152
+ value: "submitted",
153
+ label: "Submitted",
154
+ },
155
+ {
156
+ value: "private",
157
+ label: "Private",
158
+ },
159
+ ],
160
+ }
161
+
162
+ return _default;
163
+ }
@@ -0,0 +1,104 @@
1
+ import React, { useEffect} from 'react'
2
+ import { message } from 'antd';
3
+ import { MessageTypes } from '../../../../../helpers/messages.js';
4
+ import DynamicForm from '../../../../core/components/DynamicForm/index.jsx';
5
+
6
+ const StakeholdersCreate = ({
7
+ namespace = "OPERATOR",
8
+ view = ['scoping', 'new'],
9
+ edit = false,
10
+ formData = {},
11
+ loading = false,
12
+ onSubmitted = () => {},
13
+ onCancel = () => {},
14
+ getData = () => {},
15
+ saveData = () => {},
16
+ form: formConfig = {},
17
+ formValue = {},
18
+ defaultData = {},
19
+ user = {},
20
+ APP,
21
+ query,
22
+ goTo = () => {},
23
+ t = () => {},
24
+ ajaxForms = {},
25
+ changeAjaxForms = () => {},
26
+ ajaxOptions = {},
27
+ changeAjaxOptions = () => {},
28
+ getAppHeader = () => {},
29
+ getApiBaseUrl = () => {},
30
+ }) => {
31
+ let {
32
+ form = {},
33
+ data = defaultData || {},
34
+ } = !edit ? (formData[`${APP}-${view}`] || {}) : {
35
+ form: formConfig,
36
+ data: formValue
37
+ };
38
+
39
+ useEffect(() => {
40
+ if (Object.keys(form).length === 0 && !formData[`${APP}-${view}`]) {
41
+ if (!edit) {
42
+ getData({ namespace, module: APP, view, scope: 'global' });
43
+ } else {
44
+ form = formConfig;
45
+ data = formValue;
46
+ }
47
+ }
48
+ }, [edit, user?.language]);
49
+
50
+ return (
51
+ <div className="daf-create-form">
52
+ <DynamicForm
53
+ form={form}
54
+ data={{...defaultData, ...data}}
55
+ showSaveAndNext={false}
56
+ module={APP}
57
+ onCancel={onCancel}
58
+ isCreate
59
+ t={t}
60
+ excludedKeys={["title"]}
61
+ user={user}
62
+ ajaxForms={ajaxForms}
63
+ ajaxOptions={ajaxOptions}
64
+ getAppHeader={getAppHeader}
65
+ getApiBaseUrl={getApiBaseUrl}
66
+ changeAjaxOptions={changeAjaxOptions}
67
+ app={APP}
68
+ query={query}
69
+ goTo={goTo}
70
+ changeAjaxForms={changeAjaxForms}
71
+ submit={(payload, setSelectedFormNext) => {
72
+ const payloadData = { ...payload, module: APP, namespace };
73
+
74
+ const newPayload = {
75
+ ...defaultData,
76
+ ...payloadData,
77
+ form: 'operator'
78
+ };
79
+
80
+ const callback = (type, m, data) => {
81
+ if (setSelectedFormNext) {
82
+ setSelectedFormNext();
83
+ }
84
+ if (type === MessageTypes.SUCCESS) {
85
+ if (onSubmitted) onSubmitted(type, m, data);
86
+ } else {
87
+ message.error(m);
88
+ }
89
+ };
90
+
91
+ saveData(
92
+ !data && !data.id ? newPayload : Object.assign(newPayload, { id: data.id }),
93
+ callback,
94
+ );
95
+ }}
96
+ isFormDisabled={() => {
97
+ return !data || !data.typeOfEvent;
98
+ }}
99
+ />
100
+ </div>
101
+ )
102
+ }
103
+
104
+ export default StakeholdersCreate
@@ -0,0 +1,155 @@
1
+ import React, { useMemo, useState, useEffect, useCallback } from 'react'
2
+ import TablePageWithTabs from '../../../pages/TablePageWithTabs/index.jsx'
3
+ import { getColumns } from './columns.js';
4
+ import { checkboxConfig, getFiltersConfig, filtersConfig, getFilterOptions } from './config.js';
5
+ import { useGetQueryParams } from '../../../../hooks/useGetQueryParams.js';
6
+ import StakeholdersCreate from './create.jsx';
7
+ import { displayMessage } from '../../../../../helpers/messages.js';
8
+
9
+ const OperatorsTable = ({
10
+ t = () => {},
11
+ goTo = () => {},
12
+ user = {},
13
+ options = {},
14
+ getRedirectLink = () => {},
15
+ theme = {},
16
+ loading = false,
17
+ data = {},
18
+ isMobile,
19
+ APP,
20
+ location,
21
+ getData = () => {},
22
+ getApiBaseUrl = () => {},
23
+ getAppHeader = () => {},
24
+ getFormData = () => {},
25
+ saveFormData = () => {},
26
+ formLoading = false,
27
+ query = {},
28
+ ajaxForms = {},
29
+ changeAjaxForms = () => {},
30
+ ajaxOptions = {},
31
+ changeAjaxOptions = () => {},
32
+ formData = {},
33
+ formValue = {},
34
+ form = {},
35
+ extendingFilters = {},
36
+ createDefaultValues = {},
37
+ }) => {
38
+ const [selectOptions, setSelectOptions] = useState();
39
+ const [activeTab, setActiveTab] = useState();
40
+
41
+ const columns = useMemo(() => getColumns({
42
+ t,
43
+ goTo,
44
+ user,
45
+ options,
46
+ activeTab,
47
+ getRedirectLink,
48
+ theme,
49
+ subject: 'operators',
50
+ data,
51
+ }), [t, goTo, user, options, activeTab, getRedirectLink, theme, data]);
52
+
53
+ const breadCrumbs = [];
54
+
55
+ const { paginationQuery, searchParams, otherParams, sortBy, sortDir } = useGetQueryParams({location});
56
+
57
+ const filters = useMemo(() => {
58
+ return {
59
+ ...otherParams,
60
+ ...extendingFilters
61
+ }
62
+ }, [otherParams, extendingFilters])
63
+
64
+ useEffect(() => {
65
+ getData({
66
+ pagination: paginationQuery,
67
+ ...(Object.keys(searchParams).length > 0 && { search: searchParams }),
68
+ ...otherParams,
69
+ tab: activeTab,
70
+ sortBy: {
71
+ [sortBy || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : -1,
72
+ },
73
+ ...extendingFilters
74
+ }, 'operators')
75
+ }, [location.search, activeTab, JSON.stringify(extendingFilters)]);
76
+
77
+ const selectFiltersConfig = useMemo(() => {
78
+ return getFiltersConfig({t});
79
+ }, [t]);
80
+
81
+ useEffect(() => {
82
+ setSelectOptions((prev) => ({
83
+ ...prev,
84
+ ...getFilterOptions(options, t),
85
+ }))
86
+ }, [options, t])
87
+
88
+ const handleActiveTabChange = useCallback((value) => {
89
+ setActiveTab(value);
90
+ }, []);
91
+
92
+ return (
93
+ <TablePageWithTabs
94
+ t={t}
95
+ title={t("Operators")}
96
+ breadCrumbs={breadCrumbs}
97
+ location={location}
98
+ loading={loading}
99
+ goTo={goTo}
100
+ defaultActiveTab={"all"}
101
+ columns={columns}
102
+ data={data}
103
+ checkboxConfig={checkboxConfig}
104
+ APP={APP}
105
+ getApiBaseUrl={getApiBaseUrl}
106
+ selectOptions={selectOptions}
107
+ selectFiltersConfig={selectFiltersConfig}
108
+ getRedirectLink={getRedirectLink}
109
+ filtersConfig={filtersConfig}
110
+ isMobile={isMobile}
111
+ view="operators"
112
+ getActiveTab={handleActiveTabChange}
113
+ onDownload={() => {
114
+ console.log("download");
115
+ }}
116
+ drawerTitle={t("Create Operator")}
117
+ >
118
+ {({onDrawerClose}) => (
119
+ <StakeholdersCreate
120
+ defaultData={createDefaultValues}
121
+ t={t}
122
+ goTo={goTo}
123
+ user={user}
124
+ APP={APP}
125
+ getApiBaseUrl={getApiBaseUrl}
126
+ getAppHeader={getAppHeader}
127
+ getData={getFormData}
128
+ saveData={saveFormData}
129
+ loading={formLoading}
130
+ onSubmitted={(type, m, data) => {
131
+ if (data.datastakeId) {
132
+ displayMessage(
133
+ type,
134
+ t("affirmations::subject-created-successfully") || m,
135
+ );
136
+ // goTo(`/app/edit/stakeholders/${data.datastakeId}`);
137
+ goTo(`/app/edit/operators/${data.datastakeId}`)
138
+ }
139
+ }}
140
+ onCancel={onDrawerClose}
141
+ query={query}
142
+ ajaxForms={ajaxForms}
143
+ changeAjaxForms={changeAjaxForms}
144
+ ajaxOptions={ajaxOptions}
145
+ changeAjaxOptions={changeAjaxOptions}
146
+ formData={formData}
147
+ formValue={formValue}
148
+ form={form}
149
+ />
150
+ )}
151
+ </TablePageWithTabs>
152
+ )
153
+ }
154
+
155
+ export default OperatorsTable
@@ -31,7 +31,7 @@ const TablePageWithTabs = ({
31
31
  onCreateModalClose = () => {},
32
32
  children
33
33
  }) => {
34
- const params = new URLSearchParams(location.search);
34
+ const params = new URLSearchParams(location?.search);
35
35
  const [activeTab, setActiveTab] = useState(params.get("tab") || defaultActiveTab);
36
36
  const [openCreateModal, setOpenCreateModal] = useState(false);
37
37
 
@@ -75,7 +75,7 @@ const TablePageWithTabs = ({
75
75
 
76
76
  setActiveTab(val);
77
77
 
78
- const newParams = new URLSearchParams(location.search);
78
+ const newParams = new URLSearchParams(location?.search);
79
79
  newParams.set("tab", val);
80
80
  goTo(`${location.pathname}?${newParams.toString()}`);
81
81
  }}
@@ -0,0 +1,90 @@
1
+ import { BaseService } from "./BaseService.js";
2
+ import { createLazyService } from "./helpers/LazyService.js";
3
+ import { filterCreateData } from "../../helpers/Forms.js";
4
+
5
+ const namespaceEnums = {
6
+ scl: "location",
7
+ workers: "worker",
8
+ operators: "operator",
9
+ testimonials: "nashirikiEvent",
10
+ armedGroups: "armed-groups",
11
+ conflictAreas: "location",
12
+ };
13
+
14
+
15
+ class OperatorService extends BaseService {
16
+ get(params) {
17
+ return this.apiGet({
18
+ url: "/stakeholder",
19
+ params,
20
+ isApp: true,
21
+ });
22
+ }
23
+
24
+ getForm(scope = "create", language = "en") {
25
+ return this.apiGet({
26
+ url: `/forms/stakeholder`,
27
+ isApp: true,
28
+ params: { scope, language },
29
+ });
30
+ }
31
+
32
+ getData(id, sourceId) {
33
+ return this.apiGet({
34
+ isApp: true,
35
+ url: `/stakeholder/${id}`,
36
+ params: { authorId: sourceId },
37
+ });
38
+ }
39
+
40
+ submit(payload) {
41
+ if (payload.id) {
42
+ return this.apiPut({
43
+ isApp: true,
44
+ url: `/stakeholder/${payload.id}`,
45
+ data: filterCreateData(payload),
46
+ });
47
+ }
48
+ if (payload?.form) {
49
+ delete payload.form;
50
+ return this.apiPost({
51
+ isApp: true,
52
+ url: "/stakeholder",
53
+ data: filterCreateData(payload),
54
+ });
55
+ }
56
+ return this.apiPost({
57
+ isApp: true,
58
+ url: "/stakeholder",
59
+ data: filterCreateData(payload),
60
+ });
61
+ }
62
+
63
+ submitStep(data, id) {
64
+ return this.apiPut({
65
+ isApp: true,
66
+ url: `/stakeholder/submit/${id}`,
67
+ data: filterCreateData(data),
68
+ });
69
+ }
70
+
71
+ remove(id, data) {
72
+ return this.apiDelete({
73
+ url: `/stakeholder/${id}/remove`,
74
+ isApp: true,
75
+ data: data,
76
+ });
77
+ }
78
+
79
+ getOptions(id = "optionPositionSupplyChain,subCategory,activityAtSite,category,countries") {
80
+ return this.apiGet({
81
+ isApp: true,
82
+ url: `/forms/options`,
83
+ params: {
84
+ id: id,
85
+ },
86
+ });
87
+ }
88
+ }
89
+
90
+ export default createLazyService(OperatorService);