datastake-daf 0.6.846 → 0.6.848
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.
- package/build/favicon.ico +0 -0
- package/build/logo192.png +0 -0
- package/build/logo512.png +0 -0
- package/build/manifest.json +25 -0
- package/build/robots.txt +3 -0
- package/dist/components/index.js +180 -4
- package/dist/hooks/index.js +4 -5
- package/dist/pages/index.js +1028 -866
- package/dist/services/index.js +11 -11
- package/dist/utils/index.js +14 -11
- package/package.json +1 -1
- package/src/@daf/core/components/Screens/TableScreen/StandardTablePage/index.jsx +108 -0
- package/src/@daf/core/components/Screens/TableScreen/TablePageWithTabs/index.jsx +9 -2
- package/src/@daf/core/components/TableScreen/TablePageWithTabs/index.jsx +13 -3
- package/src/@daf/hooks/useWidgetFetch.js +40 -34
- package/src/@daf/pages/Edit/index.jsx +3 -0
- package/src/@daf/pages/Partners/columns.js +2 -2
- package/src/@daf/pages/Partners/config.js +22 -0
- package/src/@daf/pages/Partners/hook.js +7 -11
- package/src/@daf/pages/Partners/index.jsx +128 -140
- package/src/@daf/pages/ResetPassword/index.jsx +2 -3
- package/src/@daf/pages/SelfAssesment/components/OrgInformationTable/columns.js +3 -2
- package/src/@daf/pages/TablePage/hook.js +51 -42
- package/src/@daf/pages/TablePage/index.jsx +95 -61
- package/src/@daf/{core/components/Screens → pages}/Users/columns.js +15 -10
- package/src/@daf/{core/components/Screens → pages}/Users/create.jsx +2 -1
- package/src/@daf/pages/Users/index.jsx +128 -0
- package/src/@daf/pages/View/hooks/useCallToGetData.js +5 -1
- package/src/@daf/pages/View/index.jsx +6 -3
- package/src/@daf/pages/hook.js +26 -7
- package/src/@daf/services/EventsService.js +2 -2
- package/src/@daf/services/MineSiteService.js +2 -2
- package/src/@daf/services/OperatorService.js +2 -2
- package/src/@daf/services/PartnerService.js +2 -2
- package/src/@daf/services/SourceService.js +1 -1
- package/src/@daf/services/WorkersService.js +2 -2
- package/src/@daf/utils/timeFilterUtils.js +250 -233
- package/src/constants/locales/fr/translation.js +14 -11
- package/src/index.js +1 -1
- package/src/pages.js +1 -1
- package/src/@daf/core/components/Screens/Users/index.jsx +0 -173
- /package/src/@daf/{core/components/Screens → pages}/Users/config.js +0 -0
package/dist/pages/index.js
CHANGED
|
@@ -7510,6 +7510,7 @@ var DashboardService$1 = createLazyService(DashboardService);
|
|
|
7510
7510
|
// url: string
|
|
7511
7511
|
// basePath: string,
|
|
7512
7512
|
// }
|
|
7513
|
+
|
|
7513
7514
|
const useWidgetFetch = ({
|
|
7514
7515
|
config,
|
|
7515
7516
|
getData = DashboardService$1.getWidget,
|
|
@@ -7528,7 +7529,7 @@ const useWidgetFetch = ({
|
|
|
7528
7529
|
const {
|
|
7529
7530
|
data
|
|
7530
7531
|
} = await getData(rest);
|
|
7531
|
-
setData(data);
|
|
7532
|
+
setData(data || defaultData);
|
|
7532
7533
|
if (isErrorResponse(data)) {
|
|
7533
7534
|
const errorMessage = getErrorMessage(data);
|
|
7534
7535
|
antd.message.error(errorMessage);
|
|
@@ -7537,13 +7538,11 @@ const useWidgetFetch = ({
|
|
|
7537
7538
|
onFetch();
|
|
7538
7539
|
} catch (err) {
|
|
7539
7540
|
console.log(err);
|
|
7540
|
-
} finally {
|
|
7541
|
-
setLoading(false);
|
|
7542
7541
|
}
|
|
7542
|
+
setLoading(false);
|
|
7543
7543
|
};
|
|
7544
7544
|
React.useEffect(() => {
|
|
7545
7545
|
if (!stop) {
|
|
7546
|
-
console.log('fetching data');
|
|
7547
7546
|
fetchData();
|
|
7548
7547
|
}
|
|
7549
7548
|
}, [JSON.stringify(config), stop]);
|
|
@@ -17268,11 +17267,11 @@ function SelfAssesment({
|
|
|
17268
17267
|
}
|
|
17269
17268
|
|
|
17270
17269
|
class PartnerService extends BaseService {
|
|
17271
|
-
get(
|
|
17270
|
+
get(params) {
|
|
17272
17271
|
return this.apiGet({
|
|
17273
17272
|
url: "/partner",
|
|
17274
17273
|
isApp: true,
|
|
17275
|
-
params
|
|
17274
|
+
params
|
|
17276
17275
|
});
|
|
17277
17276
|
}
|
|
17278
17277
|
create(data) {
|
|
@@ -17338,8 +17337,6 @@ class PartnerService extends BaseService {
|
|
|
17338
17337
|
var PartnerService$1 = createLazyService(PartnerService);
|
|
17339
17338
|
|
|
17340
17339
|
const usePartnersActions = ({
|
|
17341
|
-
activeTab,
|
|
17342
|
-
filters,
|
|
17343
17340
|
setTotalRequests,
|
|
17344
17341
|
t = () => {}
|
|
17345
17342
|
}) => {
|
|
@@ -17347,15 +17344,15 @@ const usePartnersActions = ({
|
|
|
17347
17344
|
const [data, setData] = React.useState([]);
|
|
17348
17345
|
const [requestDataFetch, setRequestDataFetch] = React.useState(false);
|
|
17349
17346
|
const [initFetchDone, setInitFetchDone] = React.useState(false);
|
|
17350
|
-
const fetchData = React.useCallback(async
|
|
17347
|
+
const fetchData = React.useCallback(async params => {
|
|
17351
17348
|
setLoading(true);
|
|
17352
17349
|
setData([]);
|
|
17353
17350
|
try {
|
|
17354
17351
|
const {
|
|
17355
17352
|
data
|
|
17356
|
-
} = await PartnerService$1.get(
|
|
17357
|
-
...
|
|
17358
|
-
type:
|
|
17353
|
+
} = await PartnerService$1.get({
|
|
17354
|
+
...params,
|
|
17355
|
+
type: params?.tab
|
|
17359
17356
|
});
|
|
17360
17357
|
setData(data);
|
|
17361
17358
|
setTotalRequests(data?.meta?.total || 0);
|
|
@@ -17366,7 +17363,7 @@ const usePartnersActions = ({
|
|
|
17366
17363
|
if (!initFetchDone) {
|
|
17367
17364
|
setInitFetchDone(true);
|
|
17368
17365
|
}
|
|
17369
|
-
}, [
|
|
17366
|
+
}, [initFetchDone, setLoading, setTotalRequests, setData, setInitFetchDone]);
|
|
17370
17367
|
const accept = React.useCallback(async id => {
|
|
17371
17368
|
setLoading(true);
|
|
17372
17369
|
try {
|
|
@@ -17412,22 +17409,20 @@ const usePartnersActions = ({
|
|
|
17412
17409
|
setLoading(true);
|
|
17413
17410
|
try {
|
|
17414
17411
|
await PartnerService$1.resendInvite(id);
|
|
17415
|
-
await fetchData();
|
|
17416
17412
|
} catch (err) {
|
|
17417
17413
|
console.log(err);
|
|
17418
17414
|
}
|
|
17419
17415
|
setLoading(false);
|
|
17420
|
-
}, [
|
|
17416
|
+
}, [setLoading]);
|
|
17421
17417
|
const block = React.useCallback(async id => {
|
|
17422
17418
|
setLoading(true);
|
|
17423
17419
|
try {
|
|
17424
17420
|
await PartnerService$1.block(id);
|
|
17425
|
-
await fetchData();
|
|
17426
17421
|
} catch (err) {
|
|
17427
17422
|
console.log(err);
|
|
17428
17423
|
}
|
|
17429
17424
|
setLoading(false);
|
|
17430
|
-
}, [
|
|
17425
|
+
}, [setLoading]);
|
|
17431
17426
|
return {
|
|
17432
17427
|
loading,
|
|
17433
17428
|
setLoading,
|
|
@@ -17505,20 +17500,35 @@ const filtersConfig$1 = {
|
|
|
17505
17500
|
name: "",
|
|
17506
17501
|
datastakeId: ""
|
|
17507
17502
|
};
|
|
17508
|
-
const
|
|
17509
|
-
|
|
17510
|
-
|
|
17511
|
-
|
|
17512
|
-
|
|
17513
|
-
|
|
17514
|
-
|
|
17515
|
-
|
|
17516
|
-
|
|
17517
|
-
|
|
17518
|
-
|
|
17519
|
-
|
|
17520
|
-
|
|
17521
|
-
|
|
17503
|
+
const getSelectFiltersConfig$1 = ({
|
|
17504
|
+
t
|
|
17505
|
+
}) => {
|
|
17506
|
+
return {
|
|
17507
|
+
category: {
|
|
17508
|
+
type: "select",
|
|
17509
|
+
label: "Category",
|
|
17510
|
+
placeholder: t => `${t("Filter by")} ${t("Category").toLowerCase()}`,
|
|
17511
|
+
style: {
|
|
17512
|
+
flex: 1
|
|
17513
|
+
},
|
|
17514
|
+
labelStyle: {
|
|
17515
|
+
flex: 1
|
|
17516
|
+
},
|
|
17517
|
+
getLabel: option => option.label,
|
|
17518
|
+
getValue: option => option.value
|
|
17519
|
+
}
|
|
17520
|
+
};
|
|
17521
|
+
};
|
|
17522
|
+
const getFilterOptions$e = (options, t) => {
|
|
17523
|
+
const {
|
|
17524
|
+
countries,
|
|
17525
|
+
category,
|
|
17526
|
+
categoriesOptions
|
|
17527
|
+
} = options || {};
|
|
17528
|
+
return {
|
|
17529
|
+
country: countries || [],
|
|
17530
|
+
category: categoriesOptions || category || []
|
|
17531
|
+
};
|
|
17522
17532
|
};
|
|
17523
17533
|
const checkboxConfig$1 = {
|
|
17524
17534
|
name: "Name",
|
|
@@ -17556,7 +17566,8 @@ const getColumns$g = ({
|
|
|
17556
17566
|
activate,
|
|
17557
17567
|
activeTab,
|
|
17558
17568
|
setOpen,
|
|
17559
|
-
block
|
|
17569
|
+
block,
|
|
17570
|
+
options
|
|
17560
17571
|
}) => [{
|
|
17561
17572
|
title: t("ID"),
|
|
17562
17573
|
dataIndex: "datastakeId",
|
|
@@ -17568,7 +17579,6 @@ const getColumns$g = ({
|
|
|
17568
17579
|
className: "daf-default-cell"
|
|
17569
17580
|
});
|
|
17570
17581
|
}
|
|
17571
|
-
// THE FALLBACK WAS DEPENDS BEFORE
|
|
17572
17582
|
return v || "-";
|
|
17573
17583
|
}
|
|
17574
17584
|
}, {
|
|
@@ -17654,7 +17664,7 @@ const getColumns$g = ({
|
|
|
17654
17664
|
className: "daf-default-cell"
|
|
17655
17665
|
});
|
|
17656
17666
|
}
|
|
17657
|
-
return v ? findOptions(v,
|
|
17667
|
+
return v ? findOptions(v, options?.categoriesOptions || []) : "-";
|
|
17658
17668
|
}
|
|
17659
17669
|
}, {
|
|
17660
17670
|
title: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -18532,6 +18542,7 @@ const TablePageWithTabs = ({
|
|
|
18532
18542
|
tabs = [],
|
|
18533
18543
|
headerTooltip,
|
|
18534
18544
|
drawerTooltip,
|
|
18545
|
+
externalOpenDrawer = false,
|
|
18535
18546
|
children
|
|
18536
18547
|
}) => {
|
|
18537
18548
|
const params = new URLSearchParams(location?.search);
|
|
@@ -18544,6 +18555,11 @@ const TablePageWithTabs = ({
|
|
|
18544
18555
|
React.useEffect(() => {
|
|
18545
18556
|
getActiveTabRef.current(activeTab);
|
|
18546
18557
|
}, [activeTab]);
|
|
18558
|
+
React.useEffect(() => {
|
|
18559
|
+
if (externalOpenDrawer) {
|
|
18560
|
+
setOpenCreateModal(true);
|
|
18561
|
+
}
|
|
18562
|
+
}, [externalOpenDrawer]);
|
|
18547
18563
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
18548
18564
|
className: "semibold form-input-output daf-create-view",
|
|
18549
18565
|
children: [/*#__PURE__*/jsxRuntime.jsx(DAFHeader, {
|
|
@@ -18586,7 +18602,7 @@ const TablePageWithTabs = ({
|
|
|
18586
18602
|
checkboxConfig: checkboxConfig,
|
|
18587
18603
|
defaultTableFilters: {},
|
|
18588
18604
|
columns: columns,
|
|
18589
|
-
data: data?.data,
|
|
18605
|
+
data: Array.isArray(data?.data) ? data : data?.data,
|
|
18590
18606
|
loading: loading,
|
|
18591
18607
|
location: location,
|
|
18592
18608
|
goTo: goTo,
|
|
@@ -18620,6 +18636,116 @@ const TablePageWithTabs = ({
|
|
|
18620
18636
|
});
|
|
18621
18637
|
};
|
|
18622
18638
|
|
|
18639
|
+
const StandardTablePage = ({
|
|
18640
|
+
t = () => {},
|
|
18641
|
+
title,
|
|
18642
|
+
breadCrumbs,
|
|
18643
|
+
location,
|
|
18644
|
+
loading = false,
|
|
18645
|
+
goTo = () => {},
|
|
18646
|
+
checkboxConfig = {},
|
|
18647
|
+
columns = [],
|
|
18648
|
+
data = {},
|
|
18649
|
+
APP,
|
|
18650
|
+
getApiBaseUrl = () => {},
|
|
18651
|
+
selectOptions = {},
|
|
18652
|
+
selectFiltersConfig = {},
|
|
18653
|
+
getRedirectLink = () => {},
|
|
18654
|
+
filtersConfig = {},
|
|
18655
|
+
isMobile,
|
|
18656
|
+
view,
|
|
18657
|
+
onDownload,
|
|
18658
|
+
downloadDisabled = false,
|
|
18659
|
+
drawerTitle = "",
|
|
18660
|
+
onCreateModalClose = () => {},
|
|
18661
|
+
headerTooltip,
|
|
18662
|
+
drawerTooltip,
|
|
18663
|
+
externalOpenDrawer = false,
|
|
18664
|
+
children
|
|
18665
|
+
}) => {
|
|
18666
|
+
const params = new URLSearchParams(location?.search);
|
|
18667
|
+
const [openCreateModal, setOpenCreateModal] = React.useState(params.has("create"));
|
|
18668
|
+
React.useEffect(() => {
|
|
18669
|
+
if (externalOpenDrawer) {
|
|
18670
|
+
setOpenCreateModal(true);
|
|
18671
|
+
}
|
|
18672
|
+
}, [externalOpenDrawer]);
|
|
18673
|
+
console.log({
|
|
18674
|
+
openCreateModal,
|
|
18675
|
+
externalOpenDrawer
|
|
18676
|
+
});
|
|
18677
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
18678
|
+
className: "semibold form-input-output daf-create-view",
|
|
18679
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DAFHeader, {
|
|
18680
|
+
title: t(title),
|
|
18681
|
+
breadcrumbs: breadCrumbs,
|
|
18682
|
+
actionButtons: [{
|
|
18683
|
+
type: "primary",
|
|
18684
|
+
onClick: () => setOpenCreateModal(true),
|
|
18685
|
+
tooltip: t("New"),
|
|
18686
|
+
icon: "Add"
|
|
18687
|
+
}],
|
|
18688
|
+
onDownload: onDownload && typeof onDownload === 'function' ? onDownload : undefined,
|
|
18689
|
+
downloadDisabled: downloadDisabled,
|
|
18690
|
+
tooltip: headerTooltip
|
|
18691
|
+
}), /*#__PURE__*/jsxRuntime.jsx(BaseScreen, {
|
|
18692
|
+
t: t,
|
|
18693
|
+
checkboxConfig: checkboxConfig,
|
|
18694
|
+
defaultTableFilters: {},
|
|
18695
|
+
columns: columns,
|
|
18696
|
+
data: Array.isArray(data?.data) ? data : data?.data,
|
|
18697
|
+
loading: loading,
|
|
18698
|
+
location: location,
|
|
18699
|
+
goTo: goTo,
|
|
18700
|
+
APP: APP,
|
|
18701
|
+
getApiBaseUrl: getApiBaseUrl,
|
|
18702
|
+
selectOptions: selectOptions,
|
|
18703
|
+
selectFilters: selectFiltersConfig,
|
|
18704
|
+
view: view,
|
|
18705
|
+
getRedirectLink: getRedirectLink,
|
|
18706
|
+
defaultUrlParams: {},
|
|
18707
|
+
module: APP,
|
|
18708
|
+
filtersConfig: filtersConfig,
|
|
18709
|
+
isMobile: isMobile
|
|
18710
|
+
}), openCreateModal && /*#__PURE__*/jsxRuntime.jsx(antd.Drawer, {
|
|
18711
|
+
destroyOnHidden: true,
|
|
18712
|
+
title: /*#__PURE__*/jsxRuntime.jsx(DrawerHeader, {
|
|
18713
|
+
title: t(drawerTitle)
|
|
18714
|
+
}),
|
|
18715
|
+
tooltip: drawerTooltip,
|
|
18716
|
+
open: openCreateModal,
|
|
18717
|
+
onClose: () => setOpenCreateModal(false),
|
|
18718
|
+
width: CREATE_DRAWER_WIDTH,
|
|
18719
|
+
bodyStyle: {
|
|
18720
|
+
padding: 0
|
|
18721
|
+
},
|
|
18722
|
+
children: typeof children === 'function' ? children({
|
|
18723
|
+
onDrawerClose: () => setOpenCreateModal(false),
|
|
18724
|
+
open: openCreateModal
|
|
18725
|
+
}) : children
|
|
18726
|
+
})]
|
|
18727
|
+
});
|
|
18728
|
+
};
|
|
18729
|
+
|
|
18730
|
+
/**
|
|
18731
|
+
* Enum for message types used with Ant Design message component
|
|
18732
|
+
* @enum {string}
|
|
18733
|
+
*/
|
|
18734
|
+
const MessageTypes = {
|
|
18735
|
+
SUCCESS: 'success',
|
|
18736
|
+
ERROR: 'error',
|
|
18737
|
+
WARNING: 'warning'
|
|
18738
|
+
};
|
|
18739
|
+
|
|
18740
|
+
/**
|
|
18741
|
+
* Displays a notification message using Ant Design's message component
|
|
18742
|
+
* @param {string} type - The type of message (success, error, warning)
|
|
18743
|
+
* @param {string} m - The message content to display
|
|
18744
|
+
*/
|
|
18745
|
+
function displayMessage(type, m) {
|
|
18746
|
+
antd.message[type](m);
|
|
18747
|
+
}
|
|
18748
|
+
|
|
18623
18749
|
const countriesPhoneNumberLength = {
|
|
18624
18750
|
AD: 6,
|
|
18625
18751
|
AE: 9,
|
|
@@ -40506,159 +40632,111 @@ function DynamicForm({
|
|
|
40506
40632
|
});
|
|
40507
40633
|
}
|
|
40508
40634
|
|
|
40509
|
-
const data = {};
|
|
40510
40635
|
const Create$1 = ({
|
|
40636
|
+
namespace,
|
|
40637
|
+
view,
|
|
40638
|
+
edit = false,
|
|
40639
|
+
formData = {},
|
|
40640
|
+
loading = false,
|
|
40641
|
+
onSubmitted = () => {},
|
|
40642
|
+
onCancel = () => {},
|
|
40643
|
+
getData = () => {},
|
|
40644
|
+
saveData = () => {},
|
|
40645
|
+
form: formConfig = {},
|
|
40646
|
+
formValue = {},
|
|
40647
|
+
defaultData = {},
|
|
40648
|
+
user = {},
|
|
40649
|
+
APP,
|
|
40511
40650
|
query,
|
|
40512
40651
|
goTo = () => {},
|
|
40513
|
-
user,
|
|
40514
40652
|
t = () => {},
|
|
40515
|
-
ajaxForms,
|
|
40653
|
+
ajaxForms = {},
|
|
40516
40654
|
changeAjaxForms = () => {},
|
|
40517
|
-
ajaxOptions,
|
|
40655
|
+
ajaxOptions = {},
|
|
40518
40656
|
changeAjaxOptions = () => {},
|
|
40519
|
-
onClose = () => {},
|
|
40520
|
-
fetchData = () => {},
|
|
40521
|
-
APP,
|
|
40522
40657
|
getAppHeader = () => {},
|
|
40523
|
-
getApiBaseUrl = () => {}
|
|
40658
|
+
getApiBaseUrl = () => {},
|
|
40659
|
+
scope,
|
|
40660
|
+
formType
|
|
40524
40661
|
}) => {
|
|
40525
|
-
|
|
40526
|
-
|
|
40527
|
-
|
|
40528
|
-
|
|
40529
|
-
|
|
40530
|
-
|
|
40531
|
-
|
|
40532
|
-
|
|
40533
|
-
|
|
40534
|
-
|
|
40535
|
-
|
|
40536
|
-
|
|
40537
|
-
|
|
40538
|
-
|
|
40539
|
-
|
|
40540
|
-
|
|
40541
|
-
|
|
40542
|
-
|
|
40543
|
-
|
|
40544
|
-
|
|
40545
|
-
|
|
40546
|
-
|
|
40547
|
-
|
|
40548
|
-
|
|
40549
|
-
|
|
40550
|
-
|
|
40551
|
-
|
|
40552
|
-
|
|
40553
|
-
dataId: "partnerType",
|
|
40554
|
-
options: partnerTypes.map(o => ({
|
|
40555
|
-
...o,
|
|
40556
|
-
label: t(o.label)
|
|
40557
|
-
})),
|
|
40558
|
-
rules: [{
|
|
40559
|
-
required: true,
|
|
40560
|
-
message: "errors::field is required"
|
|
40561
|
-
}]
|
|
40562
|
-
},
|
|
40563
|
-
nickName: {
|
|
40564
|
-
label: {
|
|
40565
|
-
"partnerType is individual": t("Person name"),
|
|
40566
|
-
"partnerType is organisation": t("Organisation name")
|
|
40567
|
-
},
|
|
40568
|
-
type: "text",
|
|
40569
|
-
position: 3,
|
|
40570
|
-
showIf: "partnerType notEmpty true",
|
|
40571
|
-
dataId: "nickName",
|
|
40572
|
-
rules: [{
|
|
40573
|
-
required: true,
|
|
40574
|
-
message: "errors::field is required"
|
|
40575
|
-
}]
|
|
40576
|
-
},
|
|
40577
|
-
invitationType: {
|
|
40578
|
-
label: t("Invitation type"),
|
|
40579
|
-
type: "select",
|
|
40580
|
-
position: 3,
|
|
40581
|
-
dataId: "invitationType",
|
|
40582
|
-
options: [{
|
|
40583
|
-
label: "Email",
|
|
40584
|
-
value: "email"
|
|
40585
|
-
}, {
|
|
40586
|
-
label: "Application ID",
|
|
40587
|
-
value: "id"
|
|
40588
|
-
}],
|
|
40589
|
-
rules: [{
|
|
40590
|
-
required: true,
|
|
40591
|
-
message: "errors::field is required"
|
|
40592
|
-
}]
|
|
40593
|
-
},
|
|
40594
|
-
email: {
|
|
40595
|
-
label: t("Email"),
|
|
40596
|
-
type: "text",
|
|
40597
|
-
position: 4,
|
|
40598
|
-
showIf: "invitationType is email",
|
|
40599
|
-
dataId: "email",
|
|
40600
|
-
rules: [{
|
|
40601
|
-
required: true,
|
|
40602
|
-
message: "errors::field is required"
|
|
40603
|
-
}, {
|
|
40604
|
-
type: "email",
|
|
40605
|
-
message: "errors::field must be email"
|
|
40606
|
-
}]
|
|
40662
|
+
let {
|
|
40663
|
+
form = {},
|
|
40664
|
+
data = defaultData || {}
|
|
40665
|
+
} = !edit ? formData[`${APP}-${view}`] || {} : {
|
|
40666
|
+
form: formConfig,
|
|
40667
|
+
data: formValue
|
|
40668
|
+
};
|
|
40669
|
+
const language = React.useMemo(() => user?.language, [user?.language]);
|
|
40670
|
+
React.useEffect(() => {
|
|
40671
|
+
if (!edit) {
|
|
40672
|
+
getData({
|
|
40673
|
+
namespace,
|
|
40674
|
+
module: APP,
|
|
40675
|
+
view,
|
|
40676
|
+
scope
|
|
40677
|
+
});
|
|
40678
|
+
} else {
|
|
40679
|
+
form = formConfig;
|
|
40680
|
+
data = formValue;
|
|
40681
|
+
}
|
|
40682
|
+
}, [edit, language, scope, namespace, APP, view]);
|
|
40683
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
40684
|
+
className: "daf-create-form",
|
|
40685
|
+
children: /*#__PURE__*/jsxRuntime.jsx(DynamicForm, {
|
|
40686
|
+
form: form,
|
|
40687
|
+
data: {
|
|
40688
|
+
...defaultData,
|
|
40689
|
+
...data
|
|
40607
40690
|
},
|
|
40608
|
-
|
|
40609
|
-
|
|
40610
|
-
|
|
40611
|
-
|
|
40612
|
-
|
|
40613
|
-
|
|
40614
|
-
|
|
40615
|
-
|
|
40616
|
-
|
|
40617
|
-
|
|
40691
|
+
showSaveAndNext: false,
|
|
40692
|
+
module: APP,
|
|
40693
|
+
onCancel: onCancel,
|
|
40694
|
+
isCreate: true,
|
|
40695
|
+
t: t,
|
|
40696
|
+
excludedKeys: ["title"],
|
|
40697
|
+
user: user,
|
|
40698
|
+
ajaxForms: ajaxForms,
|
|
40699
|
+
ajaxOptions: ajaxOptions,
|
|
40700
|
+
getAppHeader: getAppHeader,
|
|
40701
|
+
getApiBaseUrl: getApiBaseUrl,
|
|
40702
|
+
changeAjaxOptions: changeAjaxOptions,
|
|
40703
|
+
app: APP,
|
|
40704
|
+
query: query,
|
|
40705
|
+
goTo: goTo,
|
|
40706
|
+
changeAjaxForms: changeAjaxForms,
|
|
40707
|
+
submit: (payload, setSelectedFormNext) => {
|
|
40708
|
+
const payloadData = {
|
|
40709
|
+
...payload,
|
|
40710
|
+
module: APP,
|
|
40711
|
+
namespace
|
|
40712
|
+
};
|
|
40713
|
+
const newPayload = {
|
|
40714
|
+
...defaultData,
|
|
40715
|
+
...payloadData,
|
|
40716
|
+
form: formType
|
|
40717
|
+
};
|
|
40718
|
+
const {
|
|
40719
|
+
datastakeId,
|
|
40720
|
+
...finalPayload
|
|
40721
|
+
} = newPayload;
|
|
40722
|
+
const callback = (type, m, data) => {
|
|
40723
|
+
if (setSelectedFormNext) {
|
|
40724
|
+
setSelectedFormNext();
|
|
40725
|
+
}
|
|
40726
|
+
if (type === MessageTypes.SUCCESS) {
|
|
40727
|
+
if (onSubmitted) onSubmitted(type, m, data);
|
|
40728
|
+
} else {
|
|
40729
|
+
antd.message.error(m);
|
|
40730
|
+
}
|
|
40731
|
+
};
|
|
40732
|
+
saveData(!data && !data.id ? finalPayload : Object.assign(finalPayload, {
|
|
40733
|
+
id: data.id
|
|
40734
|
+
}), callback);
|
|
40618
40735
|
},
|
|
40619
|
-
|
|
40620
|
-
|
|
40621
|
-
position: 4,
|
|
40622
|
-
label: t("If the user you are inviting is part of an existing organisation, the invitation will be shared with the account administrator of that organisation."),
|
|
40623
|
-
showIf: "partnerType is individual",
|
|
40624
|
-
dataId: "partnerMessage"
|
|
40736
|
+
isFormDisabled: () => {
|
|
40737
|
+
return !data || !data.typeOfEvent;
|
|
40625
40738
|
}
|
|
40626
|
-
}
|
|
40627
|
-
}), [t]);
|
|
40628
|
-
const submit = async data => {
|
|
40629
|
-
try {
|
|
40630
|
-
const {
|
|
40631
|
-
form,
|
|
40632
|
-
...rest
|
|
40633
|
-
} = data;
|
|
40634
|
-
await PartnerService$1.create(rest);
|
|
40635
|
-
fetchData();
|
|
40636
|
-
onClose();
|
|
40637
|
-
} catch (err) {
|
|
40638
|
-
onClose();
|
|
40639
|
-
antd.message.error(t(err?.response?.data?.message || "Error occured"));
|
|
40640
|
-
console.log(err);
|
|
40641
|
-
}
|
|
40642
|
-
};
|
|
40643
|
-
return /*#__PURE__*/jsxRuntime.jsx(DynamicForm, {
|
|
40644
|
-
form: form,
|
|
40645
|
-
data: data,
|
|
40646
|
-
showSaveAndNext: false,
|
|
40647
|
-
module: APP,
|
|
40648
|
-
t: t,
|
|
40649
|
-
isCreate: true,
|
|
40650
|
-
user: user,
|
|
40651
|
-
ajaxForms: ajaxForms,
|
|
40652
|
-
ajaxOptions: ajaxOptions,
|
|
40653
|
-
getAppHeader: getAppHeader,
|
|
40654
|
-
getApiBaseUrl: getApiBaseUrl,
|
|
40655
|
-
changeAjaxOptions: changeAjaxOptions,
|
|
40656
|
-
app: APP,
|
|
40657
|
-
query: query,
|
|
40658
|
-
goTo: () => {},
|
|
40659
|
-
changeAjaxForms: changeAjaxForms,
|
|
40660
|
-
onCancel: onClose,
|
|
40661
|
-
submit: submit
|
|
40739
|
+
})
|
|
40662
40740
|
});
|
|
40663
40741
|
};
|
|
40664
40742
|
|
|
@@ -40708,483 +40786,6 @@ const useGetQueryParams = ({
|
|
|
40708
40786
|
return params;
|
|
40709
40787
|
};
|
|
40710
40788
|
|
|
40711
|
-
const Style$3 = styled__default["default"].div`
|
|
40712
|
-
display: flex;
|
|
40713
|
-
gap: 8px;
|
|
40714
|
-
justify-content: center;
|
|
40715
|
-
margin-top: var(--size-lg);
|
|
40716
|
-
|
|
40717
|
-
&.mt-0 {
|
|
40718
|
-
margin-top: 0;
|
|
40719
|
-
}
|
|
40720
|
-
|
|
40721
|
-
.ant-btn {
|
|
40722
|
-
width: 75px;
|
|
40723
|
-
}
|
|
40724
|
-
`;
|
|
40725
|
-
function Footer({
|
|
40726
|
-
onClose = () => {},
|
|
40727
|
-
onSubmit = () => {},
|
|
40728
|
-
t = s => s,
|
|
40729
|
-
loading,
|
|
40730
|
-
className,
|
|
40731
|
-
disabledFooterText,
|
|
40732
|
-
disabledFooter
|
|
40733
|
-
}) {
|
|
40734
|
-
return /*#__PURE__*/jsxRuntime.jsxs(Style$3, {
|
|
40735
|
-
className: className,
|
|
40736
|
-
children: [disabledFooterText ? /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
40737
|
-
title: t(disabledFooterText),
|
|
40738
|
-
children: /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
|
|
40739
|
-
type: "primary",
|
|
40740
|
-
onClick: onSubmit,
|
|
40741
|
-
disabled: true,
|
|
40742
|
-
children: t(loading ? 'Loading...' : 'Save')
|
|
40743
|
-
})
|
|
40744
|
-
}) : /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
|
|
40745
|
-
type: "primary",
|
|
40746
|
-
onClick: onSubmit,
|
|
40747
|
-
disabled: disabledFooter,
|
|
40748
|
-
children: t(loading ? 'Loading...' : 'Save')
|
|
40749
|
-
}), /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
|
|
40750
|
-
onClick: onClose,
|
|
40751
|
-
children: t('Cancel')
|
|
40752
|
-
})]
|
|
40753
|
-
});
|
|
40754
|
-
}
|
|
40755
|
-
|
|
40756
|
-
const licensingOptions = [{
|
|
40757
|
-
label: 'Open without citation',
|
|
40758
|
-
value: 'no_citation'
|
|
40759
|
-
}, {
|
|
40760
|
-
label: 'Open with citation',
|
|
40761
|
-
value: 'citation'
|
|
40762
|
-
}, {
|
|
40763
|
-
label: 'Conditional re-use',
|
|
40764
|
-
value: 'conditional',
|
|
40765
|
-
disabled: true
|
|
40766
|
-
}, {
|
|
40767
|
-
label: 'Private use',
|
|
40768
|
-
value: 'private'
|
|
40769
|
-
}];
|
|
40770
|
-
|
|
40771
|
-
const Edit$1 = ({
|
|
40772
|
-
partner,
|
|
40773
|
-
onClose = () => {},
|
|
40774
|
-
fetchData = () => {},
|
|
40775
|
-
t = () => {}
|
|
40776
|
-
}) => {
|
|
40777
|
-
const [MainForm] = antd.Form.useForm();
|
|
40778
|
-
const [loading, setLoading] = React.useState(false);
|
|
40779
|
-
React.useMemo(() => getPartnerTypes(t), [t]);
|
|
40780
|
-
const partnershipTypes = React.useMemo(() => getPartnershipTypes(t), [t]);
|
|
40781
|
-
React.useEffect(() => {
|
|
40782
|
-
MainForm.setFieldsValue({
|
|
40783
|
-
...partner,
|
|
40784
|
-
licensing: 'no_citation'
|
|
40785
|
-
});
|
|
40786
|
-
}, [partner]);
|
|
40787
|
-
const onSubmit = async () => {
|
|
40788
|
-
setLoading(true);
|
|
40789
|
-
try {
|
|
40790
|
-
const val = await MainForm.validateFields();
|
|
40791
|
-
await PartnerService$1.update(partner.id, val);
|
|
40792
|
-
onClose();
|
|
40793
|
-
fetchData();
|
|
40794
|
-
} catch (err) {
|
|
40795
|
-
console.log(err);
|
|
40796
|
-
}
|
|
40797
|
-
setLoading(false);
|
|
40798
|
-
};
|
|
40799
|
-
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
40800
|
-
children: [loading ? /*#__PURE__*/jsxRuntime.jsx(Loading, {}) : null, /*#__PURE__*/jsxRuntime.jsxs(antd.Form, {
|
|
40801
|
-
form: MainForm,
|
|
40802
|
-
layout: "vertical",
|
|
40803
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
40804
|
-
required: true,
|
|
40805
|
-
name: "nickName",
|
|
40806
|
-
rules: [{
|
|
40807
|
-
required: true
|
|
40808
|
-
}],
|
|
40809
|
-
label: t('Name'),
|
|
40810
|
-
children: /*#__PURE__*/jsxRuntime.jsx(antd.Input, {
|
|
40811
|
-
name: "name"
|
|
40812
|
-
})
|
|
40813
|
-
}), /*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
40814
|
-
required: true,
|
|
40815
|
-
name: "partnershipType",
|
|
40816
|
-
label: t('Partner Type'),
|
|
40817
|
-
children: /*#__PURE__*/jsxRuntime.jsx(antd.Select, {
|
|
40818
|
-
children: partnershipTypes.map(type => /*#__PURE__*/jsxRuntime.jsx(antd.Select.Option, {
|
|
40819
|
-
value: type.value,
|
|
40820
|
-
children: type.label
|
|
40821
|
-
}, type.value))
|
|
40822
|
-
})
|
|
40823
|
-
}), /*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
40824
|
-
required: true,
|
|
40825
|
-
name: "email",
|
|
40826
|
-
label: t('Email address'),
|
|
40827
|
-
rules: [{
|
|
40828
|
-
type: 'email',
|
|
40829
|
-
required: true
|
|
40830
|
-
}],
|
|
40831
|
-
children: /*#__PURE__*/jsxRuntime.jsx(antd.Input, {
|
|
40832
|
-
disabled: true
|
|
40833
|
-
})
|
|
40834
|
-
}), /*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
40835
|
-
required: true,
|
|
40836
|
-
name: "licensing",
|
|
40837
|
-
label: t('Licensing'),
|
|
40838
|
-
children: /*#__PURE__*/jsxRuntime.jsx(antd.Select, {
|
|
40839
|
-
disabled: true,
|
|
40840
|
-
children: licensingOptions.map(option => /*#__PURE__*/jsxRuntime.jsx(antd.Select.Option, {
|
|
40841
|
-
value: option.value,
|
|
40842
|
-
children: t(option.label)
|
|
40843
|
-
}, option.value))
|
|
40844
|
-
})
|
|
40845
|
-
})]
|
|
40846
|
-
}), /*#__PURE__*/jsxRuntime.jsx(Footer, {
|
|
40847
|
-
t: t,
|
|
40848
|
-
loading: loading,
|
|
40849
|
-
onClose: onClose,
|
|
40850
|
-
onSubmit: onSubmit
|
|
40851
|
-
})]
|
|
40852
|
-
});
|
|
40853
|
-
};
|
|
40854
|
-
|
|
40855
|
-
const PartnersTable = ({
|
|
40856
|
-
t = () => {},
|
|
40857
|
-
goTo = () => {},
|
|
40858
|
-
user = {},
|
|
40859
|
-
options = {},
|
|
40860
|
-
getRedirectLink = () => {},
|
|
40861
|
-
theme = {},
|
|
40862
|
-
isMobile,
|
|
40863
|
-
APP,
|
|
40864
|
-
location,
|
|
40865
|
-
breadcrumbs = [],
|
|
40866
|
-
getApiBaseUrl = () => {},
|
|
40867
|
-
getAppHeader = () => {},
|
|
40868
|
-
query = {},
|
|
40869
|
-
ajaxForms = {},
|
|
40870
|
-
changeAjaxForms = () => {},
|
|
40871
|
-
ajaxOptions = {},
|
|
40872
|
-
changeAjaxOptions = () => {},
|
|
40873
|
-
applications = [],
|
|
40874
|
-
extendingFilters = {},
|
|
40875
|
-
searchLocationParams
|
|
40876
|
-
}) => {
|
|
40877
|
-
const [totalRequests, setTotalRequests] = React.useState(0);
|
|
40878
|
-
const [selectOptions, setSelectOptions] = React.useState();
|
|
40879
|
-
const [activeTab, setActiveTab] = React.useState();
|
|
40880
|
-
const [pendingEditId, setPendingEditId] = React.useState(null);
|
|
40881
|
-
const [openModal, setOpenModal] = React.useState(false);
|
|
40882
|
-
const tabs = React.useMemo(() => [{
|
|
40883
|
-
label: t("List"),
|
|
40884
|
-
key: "partners"
|
|
40885
|
-
}, {
|
|
40886
|
-
label: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
40887
|
-
className: "tab-cont",
|
|
40888
|
-
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
40889
|
-
className: "flex flex-column justify-content-center",
|
|
40890
|
-
children: t('Requests')
|
|
40891
|
-
}), typeof totalRequests === 'number' ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
40892
|
-
className: "flex flex-column justify-content-center",
|
|
40893
|
-
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
40894
|
-
className: "bubble",
|
|
40895
|
-
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
40896
|
-
className: "flex flex-column justify-content-center",
|
|
40897
|
-
children: totalRequests
|
|
40898
|
-
})
|
|
40899
|
-
})
|
|
40900
|
-
}) : null]
|
|
40901
|
-
}),
|
|
40902
|
-
key: "requests"
|
|
40903
|
-
}], [t, totalRequests]);
|
|
40904
|
-
const {
|
|
40905
|
-
paginationQuery,
|
|
40906
|
-
searchParams,
|
|
40907
|
-
otherParams,
|
|
40908
|
-
sortBy,
|
|
40909
|
-
sortDir
|
|
40910
|
-
} = useGetQueryParams({
|
|
40911
|
-
location
|
|
40912
|
-
});
|
|
40913
|
-
const filters = React.useMemo(() => {
|
|
40914
|
-
const cleanSearchParams = Object.fromEntries(Object.entries(searchParams).filter(([_, value]) => value != null && value !== ''));
|
|
40915
|
-
return {
|
|
40916
|
-
pagination: paginationQuery,
|
|
40917
|
-
...(Object.keys(otherParams).length > 0 && otherParams),
|
|
40918
|
-
...(Object.keys(cleanSearchParams).length > 0 && {
|
|
40919
|
-
search: cleanSearchParams
|
|
40920
|
-
}),
|
|
40921
|
-
tab: activeTab,
|
|
40922
|
-
sortBy: {
|
|
40923
|
-
[sortBy || "updatedAt"]: sortDir ? sortDir === "ascend" ? 1 : -1 : -1
|
|
40924
|
-
},
|
|
40925
|
-
...extendingFilters
|
|
40926
|
-
};
|
|
40927
|
-
}, [location.search, activeTab, JSON.stringify(extendingFilters)]);
|
|
40928
|
-
const {
|
|
40929
|
-
loading,
|
|
40930
|
-
data,
|
|
40931
|
-
requestDataFetch,
|
|
40932
|
-
fetchData,
|
|
40933
|
-
accept,
|
|
40934
|
-
decline,
|
|
40935
|
-
activate,
|
|
40936
|
-
suspend,
|
|
40937
|
-
resendInvite,
|
|
40938
|
-
block,
|
|
40939
|
-
setRequestDataFetch,
|
|
40940
|
-
initFetchDone,
|
|
40941
|
-
setInitFetchDone
|
|
40942
|
-
} = usePartnersActions({
|
|
40943
|
-
activeTab,
|
|
40944
|
-
filters,
|
|
40945
|
-
setTotalRequests,
|
|
40946
|
-
t
|
|
40947
|
-
});
|
|
40948
|
-
const columns = React.useMemo(() => getColumns$g({
|
|
40949
|
-
t,
|
|
40950
|
-
accept,
|
|
40951
|
-
decline,
|
|
40952
|
-
suspend,
|
|
40953
|
-
resendInvite,
|
|
40954
|
-
activate,
|
|
40955
|
-
activeTab,
|
|
40956
|
-
selectOptions,
|
|
40957
|
-
block,
|
|
40958
|
-
setOpen: setOpenModal
|
|
40959
|
-
}), [t, accept, decline, suspend, resendInvite, activate, activeTab, selectOptions, block, setOpenModal]);
|
|
40960
|
-
const handleActiveTabChange = React.useCallback(value => {
|
|
40961
|
-
setActiveTab(value);
|
|
40962
|
-
}, []);
|
|
40963
|
-
React.useEffect(() => {
|
|
40964
|
-
if (requestDataFetch) {
|
|
40965
|
-
fetchData();
|
|
40966
|
-
setRequestDataFetch(false);
|
|
40967
|
-
}
|
|
40968
|
-
}, [requestDataFetch, fetchData, setRequestDataFetch]);
|
|
40969
|
-
React.useEffect(() => {
|
|
40970
|
-
if (searchLocationParams.has("datastakeId") && !pendingEditId) {
|
|
40971
|
-
setPendingEditId(searchLocationParams.get("datastakeId"));
|
|
40972
|
-
}
|
|
40973
|
-
}, [searchLocationParams, pendingEditId]);
|
|
40974
|
-
React.useEffect(() => {
|
|
40975
|
-
if (pendingEditId) {
|
|
40976
|
-
const partner = data.find(partner => partner.datastakeId === pendingEditId);
|
|
40977
|
-
if (partner) {
|
|
40978
|
-
setOpenModal(partner);
|
|
40979
|
-
setPendingEditId(null);
|
|
40980
|
-
}
|
|
40981
|
-
}
|
|
40982
|
-
}, [data, pendingEditId]);
|
|
40983
|
-
React.useEffect(() => {
|
|
40984
|
-
fetchData();
|
|
40985
|
-
}, [filters]);
|
|
40986
|
-
const headerTooltip = React.useMemo(() => ({
|
|
40987
|
-
title: t("Partners"),
|
|
40988
|
-
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
40989
|
-
className: "max-w-250",
|
|
40990
|
-
children: [t("Partners are organisations sharing their information with you, or receiving your information."), /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Only authorised users can create partnerships.")]
|
|
40991
|
-
})
|
|
40992
|
-
}), [t]);
|
|
40993
|
-
const drawerTooltip = React.useMemo(() => ({
|
|
40994
|
-
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
40995
|
-
className: "max-w-250",
|
|
40996
|
-
children: [t("Source: This partner will share information with you."), ",", /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Client: You will share information with this partner."), ",", /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Exchange: You will both share information with each other.")]
|
|
40997
|
-
})
|
|
40998
|
-
}), [t]);
|
|
40999
|
-
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
41000
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(TablePageWithTabs, {
|
|
41001
|
-
t: t,
|
|
41002
|
-
tabs: tabs,
|
|
41003
|
-
title: t("Partners"),
|
|
41004
|
-
breadCrumbs: breadcrumbs,
|
|
41005
|
-
location: location,
|
|
41006
|
-
loading: loading,
|
|
41007
|
-
goTo: goTo,
|
|
41008
|
-
defaultActiveTab: "partners",
|
|
41009
|
-
columns: columns,
|
|
41010
|
-
data: data,
|
|
41011
|
-
checkboxConfig: checkboxConfig$1,
|
|
41012
|
-
APP: APP,
|
|
41013
|
-
getApiBaseUrl: getApiBaseUrl,
|
|
41014
|
-
selectOptions: selectOptions,
|
|
41015
|
-
selectFiltersConfig: selectFiltersConfig,
|
|
41016
|
-
getRedirectLink: getRedirectLink,
|
|
41017
|
-
filtersConfig: filtersConfig$1,
|
|
41018
|
-
isMobile: isMobile,
|
|
41019
|
-
view: "partners",
|
|
41020
|
-
getActiveTab: handleActiveTabChange,
|
|
41021
|
-
headerTooltip: headerTooltip,
|
|
41022
|
-
drawerTitle: t("Create Partner"),
|
|
41023
|
-
drawerTooltip: drawerTooltip,
|
|
41024
|
-
children: ({
|
|
41025
|
-
onDrawerClose
|
|
41026
|
-
}) => /*#__PURE__*/jsxRuntime.jsx(Create$1, {
|
|
41027
|
-
query: query,
|
|
41028
|
-
goTo: goTo,
|
|
41029
|
-
user: user,
|
|
41030
|
-
t: t,
|
|
41031
|
-
ajaxForms: ajaxForms,
|
|
41032
|
-
changeAjaxForms: changeAjaxForms,
|
|
41033
|
-
ajaxOptions: ajaxOptions,
|
|
41034
|
-
changeAjaxOptions: changeAjaxOptions,
|
|
41035
|
-
onClose: onDrawerClose,
|
|
41036
|
-
fetchData: () => setRequestDataFetch(true),
|
|
41037
|
-
APP: APP,
|
|
41038
|
-
getAppHeader: getAppHeader,
|
|
41039
|
-
getApiBaseUrl: getApiBaseUrl
|
|
41040
|
-
})
|
|
41041
|
-
}), /*#__PURE__*/jsxRuntime.jsx(antd.Modal, {
|
|
41042
|
-
open: !!openModal,
|
|
41043
|
-
onCancel: () => setOpenModal(false),
|
|
41044
|
-
footer: null,
|
|
41045
|
-
title: /*#__PURE__*/jsxRuntime.jsx(ModalHeader, {
|
|
41046
|
-
title: t("Edit Settings")
|
|
41047
|
-
}),
|
|
41048
|
-
children: openModal ? /*#__PURE__*/jsxRuntime.jsx(Edit$1, {
|
|
41049
|
-
partner: openModal,
|
|
41050
|
-
fetchData: () => setRequestDataFetch(true),
|
|
41051
|
-
onClose: () => setOpenModal(false),
|
|
41052
|
-
t: t
|
|
41053
|
-
}) : null
|
|
41054
|
-
}), /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
41055
|
-
id: "myInput",
|
|
41056
|
-
hidden: true
|
|
41057
|
-
})]
|
|
41058
|
-
});
|
|
41059
|
-
};
|
|
41060
|
-
|
|
41061
|
-
/**
|
|
41062
|
-
* Enum for message types used with Ant Design message component
|
|
41063
|
-
* @enum {string}
|
|
41064
|
-
*/
|
|
41065
|
-
const MessageTypes = {
|
|
41066
|
-
SUCCESS: 'success',
|
|
41067
|
-
ERROR: 'error',
|
|
41068
|
-
WARNING: 'warning'
|
|
41069
|
-
};
|
|
41070
|
-
|
|
41071
|
-
/**
|
|
41072
|
-
* Displays a notification message using Ant Design's message component
|
|
41073
|
-
* @param {string} type - The type of message (success, error, warning)
|
|
41074
|
-
* @param {string} m - The message content to display
|
|
41075
|
-
*/
|
|
41076
|
-
function displayMessage(type, m) {
|
|
41077
|
-
antd.message[type](m);
|
|
41078
|
-
}
|
|
41079
|
-
|
|
41080
|
-
const Create = ({
|
|
41081
|
-
namespace,
|
|
41082
|
-
view,
|
|
41083
|
-
edit = false,
|
|
41084
|
-
formData = {},
|
|
41085
|
-
loading = false,
|
|
41086
|
-
onSubmitted = () => {},
|
|
41087
|
-
onCancel = () => {},
|
|
41088
|
-
getData = () => {},
|
|
41089
|
-
saveData = () => {},
|
|
41090
|
-
form: formConfig = {},
|
|
41091
|
-
formValue = {},
|
|
41092
|
-
defaultData = {},
|
|
41093
|
-
user = {},
|
|
41094
|
-
APP,
|
|
41095
|
-
query,
|
|
41096
|
-
goTo = () => {},
|
|
41097
|
-
t = () => {},
|
|
41098
|
-
ajaxForms = {},
|
|
41099
|
-
changeAjaxForms = () => {},
|
|
41100
|
-
ajaxOptions = {},
|
|
41101
|
-
changeAjaxOptions = () => {},
|
|
41102
|
-
getAppHeader = () => {},
|
|
41103
|
-
getApiBaseUrl = () => {},
|
|
41104
|
-
scope,
|
|
41105
|
-
formType
|
|
41106
|
-
}) => {
|
|
41107
|
-
let {
|
|
41108
|
-
form = {},
|
|
41109
|
-
data = defaultData || {}
|
|
41110
|
-
} = !edit ? formData[`${APP}-${view}`] || {} : {
|
|
41111
|
-
form: formConfig,
|
|
41112
|
-
data: formValue
|
|
41113
|
-
};
|
|
41114
|
-
const language = React.useMemo(() => user?.language, [user?.language]);
|
|
41115
|
-
React.useEffect(() => {
|
|
41116
|
-
if (!edit) {
|
|
41117
|
-
getData({
|
|
41118
|
-
namespace,
|
|
41119
|
-
module: APP,
|
|
41120
|
-
view,
|
|
41121
|
-
scope
|
|
41122
|
-
});
|
|
41123
|
-
} else {
|
|
41124
|
-
form = formConfig;
|
|
41125
|
-
data = formValue;
|
|
41126
|
-
}
|
|
41127
|
-
}, [edit, language, scope, namespace, APP, view]);
|
|
41128
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
41129
|
-
className: "daf-create-form",
|
|
41130
|
-
children: /*#__PURE__*/jsxRuntime.jsx(DynamicForm, {
|
|
41131
|
-
form: form,
|
|
41132
|
-
data: {
|
|
41133
|
-
...defaultData,
|
|
41134
|
-
...data
|
|
41135
|
-
},
|
|
41136
|
-
showSaveAndNext: false,
|
|
41137
|
-
module: APP,
|
|
41138
|
-
onCancel: onCancel,
|
|
41139
|
-
isCreate: true,
|
|
41140
|
-
t: t,
|
|
41141
|
-
excludedKeys: ["title"],
|
|
41142
|
-
user: user,
|
|
41143
|
-
ajaxForms: ajaxForms,
|
|
41144
|
-
ajaxOptions: ajaxOptions,
|
|
41145
|
-
getAppHeader: getAppHeader,
|
|
41146
|
-
getApiBaseUrl: getApiBaseUrl,
|
|
41147
|
-
changeAjaxOptions: changeAjaxOptions,
|
|
41148
|
-
app: APP,
|
|
41149
|
-
query: query,
|
|
41150
|
-
goTo: goTo,
|
|
41151
|
-
changeAjaxForms: changeAjaxForms,
|
|
41152
|
-
submit: (payload, setSelectedFormNext) => {
|
|
41153
|
-
const payloadData = {
|
|
41154
|
-
...payload,
|
|
41155
|
-
module: APP,
|
|
41156
|
-
namespace
|
|
41157
|
-
};
|
|
41158
|
-
const newPayload = {
|
|
41159
|
-
...defaultData,
|
|
41160
|
-
...payloadData,
|
|
41161
|
-
form: formType
|
|
41162
|
-
};
|
|
41163
|
-
const {
|
|
41164
|
-
datastakeId,
|
|
41165
|
-
...finalPayload
|
|
41166
|
-
} = newPayload;
|
|
41167
|
-
const callback = (type, m, data) => {
|
|
41168
|
-
if (setSelectedFormNext) {
|
|
41169
|
-
setSelectedFormNext();
|
|
41170
|
-
}
|
|
41171
|
-
if (type === MessageTypes.SUCCESS) {
|
|
41172
|
-
if (onSubmitted) onSubmitted(type, m, data);
|
|
41173
|
-
} else {
|
|
41174
|
-
antd.message.error(m);
|
|
41175
|
-
}
|
|
41176
|
-
};
|
|
41177
|
-
saveData(!data && !data.id ? finalPayload : Object.assign(finalPayload, {
|
|
41178
|
-
id: data.id
|
|
41179
|
-
}), callback);
|
|
41180
|
-
},
|
|
41181
|
-
isFormDisabled: () => {
|
|
41182
|
-
return !data || !data.typeOfEvent;
|
|
41183
|
-
}
|
|
41184
|
-
})
|
|
41185
|
-
});
|
|
41186
|
-
};
|
|
41187
|
-
|
|
41188
40789
|
const getFiltersConfig$d = ({
|
|
41189
40790
|
t
|
|
41190
40791
|
}) => {
|
|
@@ -45581,7 +45182,8 @@ const useFetchData = ({
|
|
|
45581
45182
|
getData,
|
|
45582
45183
|
activeTab,
|
|
45583
45184
|
extendingFilters,
|
|
45584
|
-
subject
|
|
45185
|
+
subject,
|
|
45186
|
+
refetchTrigger
|
|
45585
45187
|
}) => {
|
|
45586
45188
|
const {
|
|
45587
45189
|
paginationQuery,
|
|
@@ -45608,19 +45210,71 @@ const useFetchData = ({
|
|
|
45608
45210
|
...(Object.keys(cleanSearchParams).length > 0 && {
|
|
45609
45211
|
search: cleanSearchParams
|
|
45610
45212
|
}),
|
|
45611
|
-
|
|
45213
|
+
...(activeTab && {
|
|
45214
|
+
tab: activeTab
|
|
45215
|
+
}),
|
|
45612
45216
|
sortBy: {
|
|
45613
45217
|
[sortBy || extendingSortKey || "updatedAt"]: sortDir ? sortDir === "ascend" ? 1 : -1 : extendingSortDir || -1
|
|
45614
45218
|
}
|
|
45615
45219
|
};
|
|
45616
45220
|
const currentParamsString = JSON.stringify(currentParams);
|
|
45617
|
-
|
|
45221
|
+
const paramsChanged = prevParamsRef.current !== currentParamsString;
|
|
45222
|
+
const shouldFetch = paramsChanged || refetchTrigger;
|
|
45223
|
+
if (!shouldFetch) {
|
|
45618
45224
|
return;
|
|
45619
45225
|
}
|
|
45620
45226
|
prevParamsRef.current = currentParamsString;
|
|
45621
45227
|
getData(currentParams, subject);
|
|
45622
|
-
}, [location.search, JSON.stringify(extendingFilters), activeTab]);
|
|
45623
|
-
};
|
|
45228
|
+
}, [location.search, JSON.stringify(extendingFilters), activeTab, refetchTrigger]);
|
|
45229
|
+
};
|
|
45230
|
+
|
|
45231
|
+
// export const useFetchData = ({
|
|
45232
|
+
// location,
|
|
45233
|
+
// getData,
|
|
45234
|
+
// activeTab,
|
|
45235
|
+
// extendingFilters,
|
|
45236
|
+
// subject,
|
|
45237
|
+
// }) => {
|
|
45238
|
+
// const { paginationQuery, searchParams, otherParams, sortBy, sortDir, } = useGetQueryParams({location});
|
|
45239
|
+
|
|
45240
|
+
// const prevParamsRef = useRef();
|
|
45241
|
+
|
|
45242
|
+
// useEffect(() => {
|
|
45243
|
+
// const cleanSearchParams = Object.fromEntries(
|
|
45244
|
+
// Object.entries(searchParams).filter(([_, value]) => value != null && value !== '')
|
|
45245
|
+
// );
|
|
45246
|
+
|
|
45247
|
+
// const hasPagination = paginationQuery.skip != null || paginationQuery.take != null;
|
|
45248
|
+
|
|
45249
|
+
// if (!hasPagination) {
|
|
45250
|
+
// return;
|
|
45251
|
+
// }
|
|
45252
|
+
|
|
45253
|
+
// const extendingSortKey = extendingFilters?.sortBy ? Object.keys(extendingFilters.sortBy)[0] : null;
|
|
45254
|
+
// const extendingSortDir = extendingFilters?.sortBy && extendingSortKey ? extendingFilters.sortBy[extendingSortKey] : null;
|
|
45255
|
+
|
|
45256
|
+
// const currentParams = {
|
|
45257
|
+
// ...extendingFilters,
|
|
45258
|
+
// pagination: paginationQuery,
|
|
45259
|
+
// ...(Object.keys(otherParams).length > 0 && otherParams ),
|
|
45260
|
+
// ...(Object.keys(cleanSearchParams).length > 0 && { search: cleanSearchParams }),
|
|
45261
|
+
// tab: activeTab,
|
|
45262
|
+
// sortBy: {
|
|
45263
|
+
// [sortBy || extendingSortKey || "updatedAt"]: sortDir ? (sortDir === "ascend" ? 1 : -1) : (extendingSortDir || -1),
|
|
45264
|
+
// },
|
|
45265
|
+
// };
|
|
45266
|
+
|
|
45267
|
+
// const currentParamsString = JSON.stringify(currentParams);
|
|
45268
|
+
// if (prevParamsRef.current === currentParamsString) {
|
|
45269
|
+
// return;
|
|
45270
|
+
// }
|
|
45271
|
+
|
|
45272
|
+
// prevParamsRef.current = currentParamsString;
|
|
45273
|
+
|
|
45274
|
+
// getData(currentParams, subject);
|
|
45275
|
+
// }, [location.search, JSON.stringify(extendingFilters), activeTab]);
|
|
45276
|
+
// }
|
|
45277
|
+
|
|
45624
45278
|
const useTablePage = ({
|
|
45625
45279
|
subject,
|
|
45626
45280
|
location,
|
|
@@ -45635,16 +45289,21 @@ const useTablePage = ({
|
|
|
45635
45289
|
data,
|
|
45636
45290
|
applications,
|
|
45637
45291
|
subjectClear,
|
|
45638
|
-
APP
|
|
45292
|
+
APP,
|
|
45293
|
+
defaultActiveTab = "own",
|
|
45294
|
+
getActiveTab,
|
|
45295
|
+
refetchTrigger,
|
|
45296
|
+
noTabs = false
|
|
45639
45297
|
}) => {
|
|
45640
45298
|
const [selectOptions, setSelectOptions] = React.useState();
|
|
45641
|
-
const [activeTab, setActiveTab] = React.useState(
|
|
45299
|
+
const [activeTab, setActiveTab] = React.useState(noTabs ? null : defaultActiveTab);
|
|
45642
45300
|
useFetchData({
|
|
45643
45301
|
location,
|
|
45644
45302
|
getData,
|
|
45645
45303
|
activeTab,
|
|
45646
45304
|
extendingFilters: extendingFilters,
|
|
45647
|
-
subject
|
|
45305
|
+
subject,
|
|
45306
|
+
refetchTrigger
|
|
45648
45307
|
});
|
|
45649
45308
|
const columns = React.useMemo(() => getColumns$3({
|
|
45650
45309
|
t,
|
|
@@ -45689,6 +45348,9 @@ const useTablePage = ({
|
|
|
45689
45348
|
}), [subject, getViewConfig]);
|
|
45690
45349
|
const handleActiveTabChange = React.useCallback(value => {
|
|
45691
45350
|
setActiveTab(value);
|
|
45351
|
+
if (getActiveTab && typeof getActiveTab === 'function' && !noTabs) {
|
|
45352
|
+
getActiveTab(value);
|
|
45353
|
+
}
|
|
45692
45354
|
}, []);
|
|
45693
45355
|
React.useEffect(() => () => {
|
|
45694
45356
|
if (subjectClear && typeof subjectClear === 'function') {
|
|
@@ -45743,7 +45405,19 @@ const TablePage = ({
|
|
|
45743
45405
|
subjectClear,
|
|
45744
45406
|
subject,
|
|
45745
45407
|
breadcrumbs = [],
|
|
45746
|
-
onDownload
|
|
45408
|
+
onDownload,
|
|
45409
|
+
customCreate,
|
|
45410
|
+
customModal,
|
|
45411
|
+
customTabs,
|
|
45412
|
+
defaultActiveTab = "own",
|
|
45413
|
+
customColumns,
|
|
45414
|
+
customCheckboxConfig,
|
|
45415
|
+
customFiltersConfig,
|
|
45416
|
+
customSelectFiltersConfig,
|
|
45417
|
+
getActiveTab,
|
|
45418
|
+
noTabs = false,
|
|
45419
|
+
refetchTrigger,
|
|
45420
|
+
externalOpenDrawer = false
|
|
45747
45421
|
}) => {
|
|
45748
45422
|
const {
|
|
45749
45423
|
activeTab,
|
|
@@ -45756,6 +45430,7 @@ const TablePage = ({
|
|
|
45756
45430
|
formInfo,
|
|
45757
45431
|
viewConfig
|
|
45758
45432
|
} = useTablePage({
|
|
45433
|
+
defaultActiveTab,
|
|
45759
45434
|
subject,
|
|
45760
45435
|
location,
|
|
45761
45436
|
getData,
|
|
@@ -45769,63 +45444,573 @@ const TablePage = ({
|
|
|
45769
45444
|
data,
|
|
45770
45445
|
applications,
|
|
45771
45446
|
subjectClear,
|
|
45772
|
-
APP
|
|
45447
|
+
APP,
|
|
45448
|
+
getActiveTab,
|
|
45449
|
+
refetchTrigger
|
|
45773
45450
|
});
|
|
45774
|
-
|
|
45775
|
-
|
|
45451
|
+
const TableComponent = noTabs ? StandardTablePage : TablePageWithTabs;
|
|
45452
|
+
const commonProps = {
|
|
45453
|
+
t,
|
|
45776
45454
|
title: t(headerInfo?.title || viewConfig?.title || ""),
|
|
45777
45455
|
breadCrumbs: breadcrumbs,
|
|
45778
|
-
location
|
|
45779
|
-
loading
|
|
45780
|
-
goTo
|
|
45781
|
-
|
|
45782
|
-
|
|
45456
|
+
location,
|
|
45457
|
+
loading,
|
|
45458
|
+
goTo,
|
|
45459
|
+
columns: customColumns || columns,
|
|
45460
|
+
data,
|
|
45461
|
+
checkboxConfig: customCheckboxConfig || checkboxConfig,
|
|
45462
|
+
APP,
|
|
45463
|
+
getApiBaseUrl,
|
|
45464
|
+
selectOptions,
|
|
45465
|
+
selectFiltersConfig: customSelectFiltersConfig || selectFiltersConfig,
|
|
45466
|
+
getRedirectLink,
|
|
45467
|
+
filtersConfig: customFiltersConfig || _filtersConfig,
|
|
45468
|
+
isMobile,
|
|
45469
|
+
view: subject,
|
|
45470
|
+
onDownload: onDownload && typeof onDownload === 'function' ? onDownload : undefined,
|
|
45471
|
+
drawerTitle: t(headerInfo?.createTitle || viewConfig?.createTitle || ""),
|
|
45472
|
+
headerTooltip: headerInfo?.tooltip,
|
|
45473
|
+
drawerTooltip: headerInfo?.drawerTooltip,
|
|
45474
|
+
externalOpenDrawer
|
|
45475
|
+
};
|
|
45476
|
+
const tabsOnlyProps = noTabs ? {} : {
|
|
45477
|
+
tabs: customTabs,
|
|
45478
|
+
defaultActiveTab,
|
|
45479
|
+
getActiveTab: handleActiveTabChange
|
|
45480
|
+
};
|
|
45481
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
45482
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(TableComponent, {
|
|
45483
|
+
...commonProps,
|
|
45484
|
+
...tabsOnlyProps,
|
|
45485
|
+
children: ({
|
|
45486
|
+
onDrawerClose,
|
|
45487
|
+
setOpenCreateDrawer
|
|
45488
|
+
}) => customCreate ? customCreate({
|
|
45489
|
+
onDrawerClose,
|
|
45490
|
+
setOpenCreateDrawer
|
|
45491
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(Create$1, {
|
|
45492
|
+
t: t,
|
|
45493
|
+
goTo: goTo,
|
|
45494
|
+
user: user,
|
|
45495
|
+
APP: APP,
|
|
45496
|
+
getApiBaseUrl: getApiBaseUrl,
|
|
45497
|
+
getAppHeader: getAppHeader,
|
|
45498
|
+
getData: formConfig.getFormData,
|
|
45499
|
+
saveData: formConfig.saveFormData,
|
|
45500
|
+
loading: formConfig.formLoading,
|
|
45501
|
+
onSubmitted: (type, m, data) => {
|
|
45502
|
+
if (data.datastakeId) {
|
|
45503
|
+
displayMessage(type, t("affirmations::subject-created-successfully") || m);
|
|
45504
|
+
goTo(`/app/edit/${subject}/${data.datastakeId}`);
|
|
45505
|
+
}
|
|
45506
|
+
},
|
|
45507
|
+
onCancel: onDrawerClose,
|
|
45508
|
+
query: formConfig.query,
|
|
45509
|
+
ajaxForms: formConfig.ajaxForms,
|
|
45510
|
+
changeAjaxForms: formConfig.changeAjaxForms,
|
|
45511
|
+
ajaxOptions: formConfig.ajaxOptions,
|
|
45512
|
+
changeAjaxOptions: formConfig.changeAjaxOptions,
|
|
45513
|
+
formData: formConfig.formData,
|
|
45514
|
+
formValue: formConfig.formValue,
|
|
45515
|
+
form: formConfig.form,
|
|
45516
|
+
namespace: formConfig?.namespace || formInfo?.namespace,
|
|
45517
|
+
view: formConfig?.view || formInfo.view,
|
|
45518
|
+
scope: formConfig?.scope || formInfo.scope,
|
|
45519
|
+
formType: formConfig?.formType || formInfo.formType,
|
|
45520
|
+
defaultData: defaultValues
|
|
45521
|
+
})
|
|
45522
|
+
}), customModal]
|
|
45523
|
+
});
|
|
45524
|
+
};
|
|
45525
|
+
|
|
45526
|
+
const data = {};
|
|
45527
|
+
const Create = ({
|
|
45528
|
+
query,
|
|
45529
|
+
goTo = () => {},
|
|
45530
|
+
user,
|
|
45531
|
+
t = () => {},
|
|
45532
|
+
ajaxForms,
|
|
45533
|
+
changeAjaxForms = () => {},
|
|
45534
|
+
ajaxOptions,
|
|
45535
|
+
changeAjaxOptions = () => {},
|
|
45536
|
+
onClose = () => {},
|
|
45537
|
+
fetchData = () => {},
|
|
45538
|
+
APP,
|
|
45539
|
+
getAppHeader = () => {},
|
|
45540
|
+
getApiBaseUrl = () => {}
|
|
45541
|
+
}) => {
|
|
45542
|
+
const partnerTypes = React.useMemo(() => getPartnerTypes(t), [t]);
|
|
45543
|
+
const partnershipTypes = React.useMemo(() => getPartnershipTypes(t), [t]);
|
|
45544
|
+
const form = React.useMemo(() => ({
|
|
45545
|
+
identification: {
|
|
45546
|
+
partnershipType: {
|
|
45547
|
+
label: t("Type of partnership"),
|
|
45548
|
+
type: "select",
|
|
45549
|
+
position: 1,
|
|
45550
|
+
dataId: "partnershipType",
|
|
45551
|
+
tooltip: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45552
|
+
style: {
|
|
45553
|
+
maxWidth: 296
|
|
45554
|
+
},
|
|
45555
|
+
children: [t("Source: This partner will share information with you."), /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Client: You will share information with this partner."), /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Exchange: You will both share information with each other.")]
|
|
45556
|
+
}),
|
|
45557
|
+
options: partnershipTypes.map(o => ({
|
|
45558
|
+
...o,
|
|
45559
|
+
label: t(o.label)
|
|
45560
|
+
})),
|
|
45561
|
+
rules: [{
|
|
45562
|
+
required: true,
|
|
45563
|
+
message: "errors::field is required"
|
|
45564
|
+
}]
|
|
45565
|
+
},
|
|
45566
|
+
partnerType: {
|
|
45567
|
+
label: t("Type of partner"),
|
|
45568
|
+
type: "select",
|
|
45569
|
+
position: 2,
|
|
45570
|
+
dataId: "partnerType",
|
|
45571
|
+
options: partnerTypes.map(o => ({
|
|
45572
|
+
...o,
|
|
45573
|
+
label: t(o.label)
|
|
45574
|
+
})),
|
|
45575
|
+
rules: [{
|
|
45576
|
+
required: true,
|
|
45577
|
+
message: "errors::field is required"
|
|
45578
|
+
}]
|
|
45579
|
+
},
|
|
45580
|
+
nickName: {
|
|
45581
|
+
label: {
|
|
45582
|
+
"partnerType is individual": t("Person name"),
|
|
45583
|
+
"partnerType is organisation": t("Organisation name")
|
|
45584
|
+
},
|
|
45585
|
+
type: "text",
|
|
45586
|
+
position: 3,
|
|
45587
|
+
showIf: "partnerType notEmpty true",
|
|
45588
|
+
dataId: "nickName",
|
|
45589
|
+
rules: [{
|
|
45590
|
+
required: true,
|
|
45591
|
+
message: "errors::field is required"
|
|
45592
|
+
}]
|
|
45593
|
+
},
|
|
45594
|
+
invitationType: {
|
|
45595
|
+
label: t("Invitation type"),
|
|
45596
|
+
type: "select",
|
|
45597
|
+
position: 3,
|
|
45598
|
+
dataId: "invitationType",
|
|
45599
|
+
options: [{
|
|
45600
|
+
label: "Email",
|
|
45601
|
+
value: "email"
|
|
45602
|
+
}, {
|
|
45603
|
+
label: "Application ID",
|
|
45604
|
+
value: "id"
|
|
45605
|
+
}],
|
|
45606
|
+
rules: [{
|
|
45607
|
+
required: true,
|
|
45608
|
+
message: "errors::field is required"
|
|
45609
|
+
}]
|
|
45610
|
+
},
|
|
45611
|
+
email: {
|
|
45612
|
+
label: t("Email"),
|
|
45613
|
+
type: "text",
|
|
45614
|
+
position: 4,
|
|
45615
|
+
showIf: "invitationType is email",
|
|
45616
|
+
dataId: "email",
|
|
45617
|
+
rules: [{
|
|
45618
|
+
required: true,
|
|
45619
|
+
message: "errors::field is required"
|
|
45620
|
+
}, {
|
|
45621
|
+
type: "email",
|
|
45622
|
+
message: "errors::field must be email"
|
|
45623
|
+
}]
|
|
45624
|
+
},
|
|
45625
|
+
datastakeId: {
|
|
45626
|
+
label: t("Application ID"),
|
|
45627
|
+
type: "text",
|
|
45628
|
+
position: 4,
|
|
45629
|
+
showIf: "invitationType is id",
|
|
45630
|
+
dataId: "datastakeId",
|
|
45631
|
+
rules: [{
|
|
45632
|
+
required: true,
|
|
45633
|
+
message: "errors::field is required"
|
|
45634
|
+
}]
|
|
45635
|
+
},
|
|
45636
|
+
partnerMessage: {
|
|
45637
|
+
type: "message",
|
|
45638
|
+
position: 4,
|
|
45639
|
+
label: t("If the user you are inviting is part of an existing organisation, the invitation will be shared with the account administrator of that organisation."),
|
|
45640
|
+
showIf: "partnerType is individual",
|
|
45641
|
+
dataId: "partnerMessage"
|
|
45642
|
+
}
|
|
45643
|
+
}
|
|
45644
|
+
}), [t]);
|
|
45645
|
+
const submit = async data => {
|
|
45646
|
+
try {
|
|
45647
|
+
const {
|
|
45648
|
+
form,
|
|
45649
|
+
...rest
|
|
45650
|
+
} = data;
|
|
45651
|
+
await PartnerService$1.create(rest);
|
|
45652
|
+
fetchData();
|
|
45653
|
+
onClose();
|
|
45654
|
+
} catch (err) {
|
|
45655
|
+
onClose();
|
|
45656
|
+
antd.message.error(t(err?.response?.data?.message || "Error occured"));
|
|
45657
|
+
console.log(err);
|
|
45658
|
+
}
|
|
45659
|
+
};
|
|
45660
|
+
return /*#__PURE__*/jsxRuntime.jsx(DynamicForm, {
|
|
45661
|
+
form: form,
|
|
45783
45662
|
data: data,
|
|
45784
|
-
|
|
45785
|
-
|
|
45663
|
+
showSaveAndNext: false,
|
|
45664
|
+
module: APP,
|
|
45665
|
+
t: t,
|
|
45666
|
+
isCreate: true,
|
|
45667
|
+
user: user,
|
|
45668
|
+
ajaxForms: ajaxForms,
|
|
45669
|
+
ajaxOptions: ajaxOptions,
|
|
45670
|
+
getAppHeader: getAppHeader,
|
|
45786
45671
|
getApiBaseUrl: getApiBaseUrl,
|
|
45787
|
-
|
|
45788
|
-
|
|
45672
|
+
changeAjaxOptions: changeAjaxOptions,
|
|
45673
|
+
app: APP,
|
|
45674
|
+
query: query,
|
|
45675
|
+
goTo: () => {},
|
|
45676
|
+
changeAjaxForms: changeAjaxForms,
|
|
45677
|
+
onCancel: onClose,
|
|
45678
|
+
submit: submit
|
|
45679
|
+
});
|
|
45680
|
+
};
|
|
45681
|
+
|
|
45682
|
+
const Style$3 = styled__default["default"].div`
|
|
45683
|
+
display: flex;
|
|
45684
|
+
gap: 8px;
|
|
45685
|
+
justify-content: center;
|
|
45686
|
+
margin-top: var(--size-lg);
|
|
45687
|
+
|
|
45688
|
+
&.mt-0 {
|
|
45689
|
+
margin-top: 0;
|
|
45690
|
+
}
|
|
45691
|
+
|
|
45692
|
+
.ant-btn {
|
|
45693
|
+
width: 75px;
|
|
45694
|
+
}
|
|
45695
|
+
`;
|
|
45696
|
+
function Footer({
|
|
45697
|
+
onClose = () => {},
|
|
45698
|
+
onSubmit = () => {},
|
|
45699
|
+
t = s => s,
|
|
45700
|
+
loading,
|
|
45701
|
+
className,
|
|
45702
|
+
disabledFooterText,
|
|
45703
|
+
disabledFooter
|
|
45704
|
+
}) {
|
|
45705
|
+
return /*#__PURE__*/jsxRuntime.jsxs(Style$3, {
|
|
45706
|
+
className: className,
|
|
45707
|
+
children: [disabledFooterText ? /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
45708
|
+
title: t(disabledFooterText),
|
|
45709
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
|
|
45710
|
+
type: "primary",
|
|
45711
|
+
onClick: onSubmit,
|
|
45712
|
+
disabled: true,
|
|
45713
|
+
children: t(loading ? 'Loading...' : 'Save')
|
|
45714
|
+
})
|
|
45715
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
|
|
45716
|
+
type: "primary",
|
|
45717
|
+
onClick: onSubmit,
|
|
45718
|
+
disabled: disabledFooter,
|
|
45719
|
+
children: t(loading ? 'Loading...' : 'Save')
|
|
45720
|
+
}), /*#__PURE__*/jsxRuntime.jsx(antd.Button, {
|
|
45721
|
+
onClick: onClose,
|
|
45722
|
+
children: t('Cancel')
|
|
45723
|
+
})]
|
|
45724
|
+
});
|
|
45725
|
+
}
|
|
45726
|
+
|
|
45727
|
+
const licensingOptions = [{
|
|
45728
|
+
label: 'Open without citation',
|
|
45729
|
+
value: 'no_citation'
|
|
45730
|
+
}, {
|
|
45731
|
+
label: 'Open with citation',
|
|
45732
|
+
value: 'citation'
|
|
45733
|
+
}, {
|
|
45734
|
+
label: 'Conditional re-use',
|
|
45735
|
+
value: 'conditional',
|
|
45736
|
+
disabled: true
|
|
45737
|
+
}, {
|
|
45738
|
+
label: 'Private use',
|
|
45739
|
+
value: 'private'
|
|
45740
|
+
}];
|
|
45741
|
+
|
|
45742
|
+
const Edit$1 = ({
|
|
45743
|
+
partner,
|
|
45744
|
+
onClose = () => {},
|
|
45745
|
+
fetchData = () => {},
|
|
45746
|
+
t = () => {}
|
|
45747
|
+
}) => {
|
|
45748
|
+
const [MainForm] = antd.Form.useForm();
|
|
45749
|
+
const [loading, setLoading] = React.useState(false);
|
|
45750
|
+
React.useMemo(() => getPartnerTypes(t), [t]);
|
|
45751
|
+
const partnershipTypes = React.useMemo(() => getPartnershipTypes(t), [t]);
|
|
45752
|
+
React.useEffect(() => {
|
|
45753
|
+
MainForm.setFieldsValue({
|
|
45754
|
+
...partner,
|
|
45755
|
+
licensing: 'no_citation'
|
|
45756
|
+
});
|
|
45757
|
+
}, [partner]);
|
|
45758
|
+
const onSubmit = async () => {
|
|
45759
|
+
setLoading(true);
|
|
45760
|
+
try {
|
|
45761
|
+
const val = await MainForm.validateFields();
|
|
45762
|
+
await PartnerService$1.update(partner.id, val);
|
|
45763
|
+
onClose();
|
|
45764
|
+
fetchData();
|
|
45765
|
+
} catch (err) {
|
|
45766
|
+
console.log(err);
|
|
45767
|
+
}
|
|
45768
|
+
setLoading(false);
|
|
45769
|
+
};
|
|
45770
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45771
|
+
children: [loading ? /*#__PURE__*/jsxRuntime.jsx(Loading, {}) : null, /*#__PURE__*/jsxRuntime.jsxs(antd.Form, {
|
|
45772
|
+
form: MainForm,
|
|
45773
|
+
layout: "vertical",
|
|
45774
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
45775
|
+
required: true,
|
|
45776
|
+
name: "nickName",
|
|
45777
|
+
rules: [{
|
|
45778
|
+
required: true
|
|
45779
|
+
}],
|
|
45780
|
+
label: t('Name'),
|
|
45781
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.Input, {
|
|
45782
|
+
name: "name"
|
|
45783
|
+
})
|
|
45784
|
+
}), /*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
45785
|
+
required: true,
|
|
45786
|
+
name: "partnershipType",
|
|
45787
|
+
label: t('Partner Type'),
|
|
45788
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.Select, {
|
|
45789
|
+
children: partnershipTypes.map(type => /*#__PURE__*/jsxRuntime.jsx(antd.Select.Option, {
|
|
45790
|
+
value: type.value,
|
|
45791
|
+
children: type.label
|
|
45792
|
+
}, type.value))
|
|
45793
|
+
})
|
|
45794
|
+
}), /*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
45795
|
+
required: true,
|
|
45796
|
+
name: "email",
|
|
45797
|
+
label: t('Email address'),
|
|
45798
|
+
rules: [{
|
|
45799
|
+
type: 'email',
|
|
45800
|
+
required: true
|
|
45801
|
+
}],
|
|
45802
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.Input, {
|
|
45803
|
+
disabled: true
|
|
45804
|
+
})
|
|
45805
|
+
}), /*#__PURE__*/jsxRuntime.jsx(antd.Form.Item, {
|
|
45806
|
+
required: true,
|
|
45807
|
+
name: "licensing",
|
|
45808
|
+
label: t('Licensing'),
|
|
45809
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.Select, {
|
|
45810
|
+
disabled: true,
|
|
45811
|
+
children: licensingOptions.map(option => /*#__PURE__*/jsxRuntime.jsx(antd.Select.Option, {
|
|
45812
|
+
value: option.value,
|
|
45813
|
+
children: t(option.label)
|
|
45814
|
+
}, option.value))
|
|
45815
|
+
})
|
|
45816
|
+
})]
|
|
45817
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Footer, {
|
|
45818
|
+
t: t,
|
|
45819
|
+
loading: loading,
|
|
45820
|
+
onClose: onClose,
|
|
45821
|
+
onSubmit: onSubmit
|
|
45822
|
+
})]
|
|
45823
|
+
});
|
|
45824
|
+
};
|
|
45825
|
+
|
|
45826
|
+
const PartnersTable = ({
|
|
45827
|
+
t = () => {},
|
|
45828
|
+
goTo = () => {},
|
|
45829
|
+
user = {},
|
|
45830
|
+
options = {},
|
|
45831
|
+
getRedirectLink = () => {},
|
|
45832
|
+
theme = {},
|
|
45833
|
+
isMobile,
|
|
45834
|
+
APP,
|
|
45835
|
+
location,
|
|
45836
|
+
breadcrumbs = [],
|
|
45837
|
+
getApiBaseUrl = () => {},
|
|
45838
|
+
getAppHeader = () => {},
|
|
45839
|
+
query = {},
|
|
45840
|
+
ajaxForms = {},
|
|
45841
|
+
changeAjaxForms = () => {},
|
|
45842
|
+
ajaxOptions = {},
|
|
45843
|
+
changeAjaxOptions = () => {},
|
|
45844
|
+
applications = [],
|
|
45845
|
+
extendingFilters = {},
|
|
45846
|
+
searchLocationParams
|
|
45847
|
+
}) => {
|
|
45848
|
+
const [totalRequests, setTotalRequests] = React.useState(0);
|
|
45849
|
+
const [selectOptions, setSelectOptions] = React.useState();
|
|
45850
|
+
const [activeTab, setActiveTab] = React.useState();
|
|
45851
|
+
const [pendingEditId, setPendingEditId] = React.useState(null);
|
|
45852
|
+
const [openModal, setOpenModal] = React.useState(false);
|
|
45853
|
+
const {
|
|
45854
|
+
loading,
|
|
45855
|
+
data,
|
|
45856
|
+
requestDataFetch,
|
|
45857
|
+
fetchData,
|
|
45858
|
+
accept,
|
|
45859
|
+
decline,
|
|
45860
|
+
activate,
|
|
45861
|
+
suspend,
|
|
45862
|
+
resendInvite,
|
|
45863
|
+
block,
|
|
45864
|
+
setRequestDataFetch,
|
|
45865
|
+
initFetchDone,
|
|
45866
|
+
setInitFetchDone
|
|
45867
|
+
} = usePartnersActions({
|
|
45868
|
+
setTotalRequests,
|
|
45869
|
+
t
|
|
45870
|
+
});
|
|
45871
|
+
const columns = React.useMemo(() => getColumns$g({
|
|
45872
|
+
t,
|
|
45873
|
+
accept,
|
|
45874
|
+
decline,
|
|
45875
|
+
suspend,
|
|
45876
|
+
resendInvite,
|
|
45877
|
+
activate,
|
|
45878
|
+
activeTab,
|
|
45879
|
+
selectOptions,
|
|
45880
|
+
block,
|
|
45881
|
+
setOpen: setOpenModal,
|
|
45882
|
+
options
|
|
45883
|
+
}), [t, accept, decline, suspend, resendInvite, activate, activeTab, selectOptions, block, setOpenModal, options]);
|
|
45884
|
+
React.useEffect(() => {
|
|
45885
|
+
if (searchLocationParams.has("datastakeId") && !pendingEditId) {
|
|
45886
|
+
setPendingEditId(searchLocationParams.get("datastakeId"));
|
|
45887
|
+
}
|
|
45888
|
+
}, [searchLocationParams, pendingEditId]);
|
|
45889
|
+
React.useEffect(() => {
|
|
45890
|
+
if (pendingEditId) {
|
|
45891
|
+
const partner = data.find(partner => partner.datastakeId === pendingEditId);
|
|
45892
|
+
if (partner) {
|
|
45893
|
+
setOpenModal(partner);
|
|
45894
|
+
setPendingEditId(null);
|
|
45895
|
+
}
|
|
45896
|
+
}
|
|
45897
|
+
}, [data, pendingEditId]);
|
|
45898
|
+
const tabs = React.useMemo(() => [{
|
|
45899
|
+
label: t("List"),
|
|
45900
|
+
key: "partners"
|
|
45901
|
+
}, {
|
|
45902
|
+
label: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45903
|
+
className: "tab-cont",
|
|
45904
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
45905
|
+
className: "flex flex-column justify-content-center",
|
|
45906
|
+
children: t('Requests')
|
|
45907
|
+
}), typeof totalRequests === 'number' ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
45908
|
+
className: "flex flex-column justify-content-center",
|
|
45909
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
45910
|
+
className: "bubble",
|
|
45911
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
45912
|
+
className: "flex flex-column justify-content-center",
|
|
45913
|
+
children: totalRequests
|
|
45914
|
+
})
|
|
45915
|
+
})
|
|
45916
|
+
}) : null]
|
|
45917
|
+
}),
|
|
45918
|
+
key: "requests"
|
|
45919
|
+
}], [t, totalRequests]);
|
|
45920
|
+
const selectFiltersConfig = React.useMemo(() => {
|
|
45921
|
+
return getSelectFiltersConfig$1({
|
|
45922
|
+
t
|
|
45923
|
+
});
|
|
45924
|
+
}, [t]);
|
|
45925
|
+
const filterOptions = React.useMemo(() => {
|
|
45926
|
+
return getFilterOptions$e(options);
|
|
45927
|
+
}, [options, t]);
|
|
45928
|
+
const headerInfo = React.useMemo(() => ({
|
|
45929
|
+
title: "Partners",
|
|
45930
|
+
createTitle: "Create Partner",
|
|
45931
|
+
tooltip: {
|
|
45932
|
+
title: t("Partners"),
|
|
45933
|
+
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45934
|
+
className: "max-w-250",
|
|
45935
|
+
children: [t("Partners are organisations sharing their information with you, or receiving your information."), /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Only authorised users can create partnerships.")]
|
|
45936
|
+
})
|
|
45937
|
+
},
|
|
45938
|
+
drawerTooltip: {
|
|
45939
|
+
content: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
45940
|
+
className: "max-w-250",
|
|
45941
|
+
children: [t("Source: This partner will share information with you."), ",", /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Client: You will share information with this partner."), ",", /*#__PURE__*/jsxRuntime.jsx("br", {}), t("Exchange: You will both share information with each other.")]
|
|
45942
|
+
})
|
|
45943
|
+
}
|
|
45944
|
+
}), [t]);
|
|
45945
|
+
const customCreate = React.useCallback(({
|
|
45946
|
+
onDrawerClose
|
|
45947
|
+
}) => /*#__PURE__*/jsxRuntime.jsx(Create, {
|
|
45948
|
+
query: query,
|
|
45949
|
+
goTo: goTo,
|
|
45950
|
+
user: user,
|
|
45951
|
+
t: t,
|
|
45952
|
+
ajaxForms: ajaxForms,
|
|
45953
|
+
changeAjaxForms: changeAjaxForms,
|
|
45954
|
+
ajaxOptions: ajaxOptions,
|
|
45955
|
+
changeAjaxOptions: changeAjaxOptions,
|
|
45956
|
+
onClose: onDrawerClose,
|
|
45957
|
+
fetchData: () => setRequestDataFetch(true),
|
|
45958
|
+
APP: APP,
|
|
45959
|
+
getAppHeader: getAppHeader,
|
|
45960
|
+
getApiBaseUrl: getApiBaseUrl
|
|
45961
|
+
}), [query, goTo, user, t, ajaxForms, changeAjaxForms, ajaxOptions, changeAjaxOptions, APP, getAppHeader, getApiBaseUrl, setRequestDataFetch]);
|
|
45962
|
+
const customModal = React.useMemo(() => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
45963
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(antd.Modal, {
|
|
45964
|
+
open: !!openModal,
|
|
45965
|
+
onCancel: () => setOpenModal(false),
|
|
45966
|
+
footer: null,
|
|
45967
|
+
title: /*#__PURE__*/jsxRuntime.jsx(ModalHeader, {
|
|
45968
|
+
title: t("Edit Settings")
|
|
45969
|
+
}),
|
|
45970
|
+
children: openModal ? /*#__PURE__*/jsxRuntime.jsx(Edit$1, {
|
|
45971
|
+
partner: openModal,
|
|
45972
|
+
fetchData: () => setRequestDataFetch(true),
|
|
45973
|
+
onClose: () => setOpenModal(false),
|
|
45974
|
+
t: t
|
|
45975
|
+
}) : null
|
|
45976
|
+
}), /*#__PURE__*/jsxRuntime.jsx("input", {
|
|
45977
|
+
id: "myInput",
|
|
45978
|
+
hidden: true
|
|
45979
|
+
})]
|
|
45980
|
+
}), [openModal, t, setRequestDataFetch]);
|
|
45981
|
+
const handleActiveTabChange = React.useCallback(value => {
|
|
45982
|
+
setActiveTab(value);
|
|
45983
|
+
}, []);
|
|
45984
|
+
return /*#__PURE__*/jsxRuntime.jsx(TablePage, {
|
|
45985
|
+
t: t,
|
|
45986
|
+
goTo: goTo,
|
|
45987
|
+
user: user,
|
|
45988
|
+
options: filterOptions,
|
|
45789
45989
|
getRedirectLink: getRedirectLink,
|
|
45790
|
-
|
|
45990
|
+
theme: theme,
|
|
45991
|
+
loading: loading,
|
|
45992
|
+
data: data,
|
|
45791
45993
|
isMobile: isMobile,
|
|
45792
|
-
|
|
45994
|
+
APP: APP,
|
|
45995
|
+
location: location,
|
|
45996
|
+
headerInfo: headerInfo,
|
|
45997
|
+
extendingFilters: extendingFilters,
|
|
45998
|
+
getData: fetchData,
|
|
45999
|
+
getApiBaseUrl: getApiBaseUrl,
|
|
46000
|
+
getAppHeader: getAppHeader,
|
|
46001
|
+
applications: applications,
|
|
46002
|
+
subject: "partners",
|
|
46003
|
+
breadcrumbs: breadcrumbs,
|
|
46004
|
+
customCreate: customCreate,
|
|
46005
|
+
customModal: customModal,
|
|
46006
|
+
customTabs: tabs,
|
|
46007
|
+
defaultActiveTab: "partners",
|
|
46008
|
+
customColumns: columns,
|
|
46009
|
+
customCheckboxConfig: checkboxConfig$1,
|
|
46010
|
+
customFiltersConfig: filtersConfig$1,
|
|
46011
|
+
customSelectFiltersConfig: selectFiltersConfig,
|
|
45793
46012
|
getActiveTab: handleActiveTabChange,
|
|
45794
|
-
|
|
45795
|
-
drawerTitle: t(headerInfo?.createTitle || viewConfig?.createTitle || ""),
|
|
45796
|
-
children: ({
|
|
45797
|
-
onDrawerClose
|
|
45798
|
-
}) => /*#__PURE__*/jsxRuntime.jsx(Create, {
|
|
45799
|
-
t: t,
|
|
45800
|
-
goTo: goTo,
|
|
45801
|
-
user: user,
|
|
45802
|
-
APP: APP,
|
|
45803
|
-
getApiBaseUrl: getApiBaseUrl,
|
|
45804
|
-
getAppHeader: getAppHeader,
|
|
45805
|
-
getData: formConfig.getFormData,
|
|
45806
|
-
saveData: formConfig.saveFormData,
|
|
45807
|
-
loading: formConfig.formLoading,
|
|
45808
|
-
onSubmitted: (type, m, data) => {
|
|
45809
|
-
if (data.datastakeId) {
|
|
45810
|
-
displayMessage(type, t("affirmations::subject-created-successfully") || m);
|
|
45811
|
-
goTo(`/app/edit/${subject}/${data.datastakeId}`);
|
|
45812
|
-
}
|
|
45813
|
-
},
|
|
45814
|
-
onCancel: onDrawerClose,
|
|
45815
|
-
query: formConfig.query,
|
|
45816
|
-
ajaxForms: formConfig.ajaxForms,
|
|
45817
|
-
changeAjaxForms: formConfig.changeAjaxForms,
|
|
45818
|
-
ajaxOptions: formConfig.ajaxOptions,
|
|
45819
|
-
changeAjaxOptions: formConfig.changeAjaxOptions,
|
|
45820
|
-
formData: formConfig.formData,
|
|
45821
|
-
formValue: formConfig.formValue,
|
|
45822
|
-
form: formConfig.form,
|
|
45823
|
-
namespace: formConfig?.namespace || formInfo?.namespace,
|
|
45824
|
-
view: formConfig?.view || formInfo.view,
|
|
45825
|
-
scope: formConfig?.scope || formInfo.scope,
|
|
45826
|
-
formType: formConfig?.formType || formInfo.formType,
|
|
45827
|
-
defaultData: defaultValues
|
|
45828
|
-
})
|
|
46013
|
+
refetchTrigger: requestDataFetch
|
|
45829
46014
|
});
|
|
45830
46015
|
};
|
|
45831
46016
|
|
|
@@ -51116,7 +51301,7 @@ class SourceService extends BaseService {
|
|
|
51116
51301
|
...rest
|
|
51117
51302
|
} = filters;
|
|
51118
51303
|
const params = {
|
|
51119
|
-
|
|
51304
|
+
...rest,
|
|
51120
51305
|
pagination: {
|
|
51121
51306
|
skip: page,
|
|
51122
51307
|
take: pageSize
|
|
@@ -55442,13 +55627,6 @@ const PlantingLocations = ({
|
|
|
55442
55627
|
});
|
|
55443
55628
|
};
|
|
55444
55629
|
|
|
55445
|
-
/**
|
|
55446
|
-
* Formats a date based on the time filter
|
|
55447
|
-
* @param {dayjs.Dayjs} date - The date to format
|
|
55448
|
-
* @param {boolean} breakLine - Whether to add a line break (for tooltips)
|
|
55449
|
-
* @param {string} timeFilter - The time filter ('daily', 'weekly', 'monthly', 'yearly')
|
|
55450
|
-
* @returns {string} Formatted date string
|
|
55451
|
-
*/
|
|
55452
55630
|
const getFormatDate = (date, breakLine = false, timeFilter = 'monthly') => {
|
|
55453
55631
|
switch (timeFilter) {
|
|
55454
55632
|
case "daily":
|
|
@@ -55462,12 +55640,6 @@ const getFormatDate = (date, breakLine = false, timeFilter = 'monthly') => {
|
|
|
55462
55640
|
return breakLine ? `${capitalize(date.format("MMM"))}\n${date.format("YY")}` : `${capitalize(date.format("MMM"))} ${date.format("YY")}`;
|
|
55463
55641
|
}
|
|
55464
55642
|
};
|
|
55465
|
-
|
|
55466
|
-
/**
|
|
55467
|
-
* Gets the time quantity string for dayjs operations
|
|
55468
|
-
* @param {string} timeFilter - The time filter ('daily', 'weekly', 'monthly', 'yearly')
|
|
55469
|
-
* @returns {string} Time quantity string ('days', 'weeks', 'months', 'years')
|
|
55470
|
-
*/
|
|
55471
55643
|
const getTimeQuantity = (timeFilter = 'monthly') => {
|
|
55472
55644
|
switch (timeFilter) {
|
|
55473
55645
|
case "daily":
|
|
@@ -55480,15 +55652,6 @@ const getTimeQuantity = (timeFilter = 'monthly') => {
|
|
|
55480
55652
|
return "months";
|
|
55481
55653
|
}
|
|
55482
55654
|
};
|
|
55483
|
-
|
|
55484
|
-
/**
|
|
55485
|
-
* Gets previous cumulative score from data before start date
|
|
55486
|
-
* @param {Array} dates - Array of data objects with date field
|
|
55487
|
-
* @param {dayjs.Dayjs} startDate - The start date
|
|
55488
|
-
* @param {string} timeFilter - The time filter
|
|
55489
|
-
* @param {string} valueField - The field name to extract value from (default: 'total')
|
|
55490
|
-
* @returns {Object} Object with hasPreviousData, previousCumulativeScore, previousMaxScore
|
|
55491
|
-
*/
|
|
55492
55655
|
const getPreviousGraphData = (dates, startDate, timeFilter, valueField = 'total') => {
|
|
55493
55656
|
let previousCumulativeScore = 0;
|
|
55494
55657
|
let previousMaxScore = 0;
|
|
@@ -55524,17 +55687,6 @@ const getPreviousGraphData = (dates, startDate, timeFilter, valueField = 'total'
|
|
|
55524
55687
|
previousMaxScore
|
|
55525
55688
|
};
|
|
55526
55689
|
};
|
|
55527
|
-
|
|
55528
|
-
/**
|
|
55529
|
-
* Processes chart data with time filtering support
|
|
55530
|
-
* @param {Object} params - Parameters object
|
|
55531
|
-
* @param {Array} params.mainData - Array of data objects with date and value fields
|
|
55532
|
-
* @param {string} params.timeFilter - Time filter ('daily', 'weekly', 'monthly', 'yearly')
|
|
55533
|
-
* @param {Object} params.filters - Optional filters object with timeframe
|
|
55534
|
-
* @param {boolean} params.isCumulative - Whether to calculate cumulative values (default: false)
|
|
55535
|
-
* @param {string} params.valueField - Field name to extract value from (default: 'total', also checks 'count', 'jobs', 'value')
|
|
55536
|
-
* @returns {Array} Processed chart data array
|
|
55537
|
-
*/
|
|
55538
55690
|
const processChartDateData = ({
|
|
55539
55691
|
mainData,
|
|
55540
55692
|
timeFilter: filter,
|
|
@@ -55546,8 +55698,35 @@ const processChartDateData = ({
|
|
|
55546
55698
|
const dates = mainData || [];
|
|
55547
55699
|
const isEmpty = !mainData || !Array.isArray(mainData) || mainData.length === 0;
|
|
55548
55700
|
const _data = [];
|
|
55549
|
-
|
|
55550
|
-
|
|
55701
|
+
|
|
55702
|
+
// Derive date range from actual data if no filters provided and data exists
|
|
55703
|
+
let end, start;
|
|
55704
|
+
if (filters?.timeframe?.endDate) {
|
|
55705
|
+
end = filters.timeframe.endDate;
|
|
55706
|
+
} else if (!isEmpty) {
|
|
55707
|
+
// Find the latest date in the data
|
|
55708
|
+
const sortedDates = dates.map(d => dayjs__default["default"](d.date, "YYYY-MM-DD")).filter(d => d.isValid()).sort((a, b) => b.valueOf() - a.valueOf());
|
|
55709
|
+
end = sortedDates.length > 0 ? sortedDates[0] : dayjs__default["default"]();
|
|
55710
|
+
} else {
|
|
55711
|
+
end = dayjs__default["default"]();
|
|
55712
|
+
}
|
|
55713
|
+
if (filters?.timeframe?.startDate) {
|
|
55714
|
+
start = filters.timeframe.startDate;
|
|
55715
|
+
} else if (!isEmpty) {
|
|
55716
|
+
// Find the earliest date in the data
|
|
55717
|
+
const sortedDates = dates.map(d => dayjs__default["default"](d.date, "YYYY-MM-DD")).filter(d => d.isValid()).sort((a, b) => a.valueOf() - b.valueOf());
|
|
55718
|
+
start = sortedDates.length > 0 ? sortedDates[0] : dayjs__default["default"]().add(-12, timeQuantity);
|
|
55719
|
+
|
|
55720
|
+
// For daily filter, limit to last 14 days to avoid overcrowded x-axis
|
|
55721
|
+
if (filter === "daily" && end) {
|
|
55722
|
+
const maxDailyStart = end.subtract(13, 'days'); // 14 days total including end date
|
|
55723
|
+
if (start.isBefore(maxDailyStart)) {
|
|
55724
|
+
start = maxDailyStart;
|
|
55725
|
+
}
|
|
55726
|
+
}
|
|
55727
|
+
} else {
|
|
55728
|
+
start = dayjs__default["default"]().add(-12, timeQuantity);
|
|
55729
|
+
}
|
|
55551
55730
|
|
|
55552
55731
|
// Normalize start and end to period boundaries
|
|
55553
55732
|
if (filter === "daily") {
|
|
@@ -55563,6 +55742,30 @@ const processChartDateData = ({
|
|
|
55563
55742
|
start = start.startOf('month');
|
|
55564
55743
|
end = end.startOf('month');
|
|
55565
55744
|
}
|
|
55745
|
+
|
|
55746
|
+
// Ensure minimum number of periods to fill the x-axis properly
|
|
55747
|
+
const getMinPeriods = f => {
|
|
55748
|
+
switch (f) {
|
|
55749
|
+
case "daily":
|
|
55750
|
+
return 14;
|
|
55751
|
+
// At least 14 days
|
|
55752
|
+
case "weekly":
|
|
55753
|
+
return 8;
|
|
55754
|
+
// At least 8 weeks
|
|
55755
|
+
case "yearly":
|
|
55756
|
+
return 5;
|
|
55757
|
+
// At least 5 years
|
|
55758
|
+
default:
|
|
55759
|
+
return 12;
|
|
55760
|
+
// At least 12 months
|
|
55761
|
+
}
|
|
55762
|
+
};
|
|
55763
|
+
const minPeriods = getMinPeriods(filter);
|
|
55764
|
+
const periodsDiff = end.diff(start, timeQuantity);
|
|
55765
|
+
if (periodsDiff < minPeriods - 1) {
|
|
55766
|
+
const periodsToAdd = minPeriods - 1 - periodsDiff;
|
|
55767
|
+
start = start.subtract(periodsToAdd, timeQuantity);
|
|
55768
|
+
}
|
|
55566
55769
|
let i = 0;
|
|
55567
55770
|
let cumulativeScore = 0;
|
|
55568
55771
|
|
|
@@ -55629,13 +55832,6 @@ const processChartDateData = ({
|
|
|
55629
55832
|
}
|
|
55630
55833
|
return _data;
|
|
55631
55834
|
};
|
|
55632
|
-
|
|
55633
|
-
/**
|
|
55634
|
-
* Formats date axis labels, checking if already formatted
|
|
55635
|
-
* @param {string} label - The label to format
|
|
55636
|
-
* @param {Function} getFormatDateFn - Function to format dates
|
|
55637
|
-
* @returns {string} Formatted date string
|
|
55638
|
-
*/
|
|
55639
55835
|
const formatDateAxis = (label, getFormatDateFn) => {
|
|
55640
55836
|
if (!label) return label;
|
|
55641
55837
|
|
|
@@ -61023,7 +61219,7 @@ const getColumns$1 = ({
|
|
|
61023
61219
|
userRoles = [],
|
|
61024
61220
|
company = {},
|
|
61025
61221
|
canCreate = false,
|
|
61026
|
-
|
|
61222
|
+
APP
|
|
61027
61223
|
}) => [
|
|
61028
61224
|
// {
|
|
61029
61225
|
// dataIndex: 'datastakeId',
|
|
@@ -61196,7 +61392,7 @@ const getColumns$1 = ({
|
|
|
61196
61392
|
key: "copyLink",
|
|
61197
61393
|
onClick: () => {
|
|
61198
61394
|
if (location.pathname.includes(`/${APP}`)) {
|
|
61199
|
-
navigator.clipboard.writeText(`${window.location.host}/${
|
|
61395
|
+
navigator.clipboard.writeText(`${window.location.host}/${APP}/r/${company.inviteToken}/${all.invitationToken}`);
|
|
61200
61396
|
} else {
|
|
61201
61397
|
navigator.clipboard.writeText(`${window.location.host}/r/${company.inviteToken}/${all.invitationToken}`);
|
|
61202
61398
|
}
|
|
@@ -61457,6 +61653,7 @@ const UsersCreate = ({
|
|
|
61457
61653
|
}
|
|
61458
61654
|
}
|
|
61459
61655
|
});
|
|
61656
|
+
onCancel();
|
|
61460
61657
|
}
|
|
61461
61658
|
})
|
|
61462
61659
|
});
|
|
@@ -61485,11 +61682,12 @@ const UsersTable = ({
|
|
|
61485
61682
|
ajaxOptions = {},
|
|
61486
61683
|
changeAjaxOptions = () => {},
|
|
61487
61684
|
extendingFilters = {},
|
|
61488
|
-
userRoles = []
|
|
61685
|
+
userRoles = [],
|
|
61686
|
+
breadCrumbs = []
|
|
61489
61687
|
}) => {
|
|
61490
61688
|
const [selectOptions, setSelectOptions] = React.useState();
|
|
61491
61689
|
const params = new URLSearchParams(location?.search);
|
|
61492
|
-
|
|
61690
|
+
React.useState(params.has("create"));
|
|
61493
61691
|
const [userToEdit, setUserToEdit] = React.useState(null);
|
|
61494
61692
|
const columns = React.useMemo(() => getColumns$1({
|
|
61495
61693
|
t,
|
|
@@ -61500,35 +61698,9 @@ const UsersTable = ({
|
|
|
61500
61698
|
theme,
|
|
61501
61699
|
subject: 'user',
|
|
61502
61700
|
data,
|
|
61503
|
-
setUserToEdit
|
|
61701
|
+
setUserToEdit,
|
|
61702
|
+
APP
|
|
61504
61703
|
}), [t, goTo, user, options, getRedirectLink, theme, data]);
|
|
61505
|
-
const breadCrumbs = [];
|
|
61506
|
-
const {
|
|
61507
|
-
paginationQuery,
|
|
61508
|
-
searchParams,
|
|
61509
|
-
otherParams,
|
|
61510
|
-
sortBy,
|
|
61511
|
-
sortDir
|
|
61512
|
-
} = useGetQueryParams({
|
|
61513
|
-
location
|
|
61514
|
-
});
|
|
61515
|
-
React.useMemo(() => ({
|
|
61516
|
-
...otherParams,
|
|
61517
|
-
...extendingFilters
|
|
61518
|
-
}), [otherParams, extendingFilters]);
|
|
61519
|
-
React.useEffect(() => {
|
|
61520
|
-
getData({
|
|
61521
|
-
pagination: paginationQuery,
|
|
61522
|
-
...(Object.keys(searchParams).length > 0 && {
|
|
61523
|
-
search: searchParams
|
|
61524
|
-
}),
|
|
61525
|
-
...otherParams,
|
|
61526
|
-
sortBy: {
|
|
61527
|
-
[sortBy || 'updatedAt']: sortDir ? sortDir === 'ascend' ? 1 : -1 : -1
|
|
61528
|
-
},
|
|
61529
|
-
...extendingFilters
|
|
61530
|
-
}, 'users');
|
|
61531
|
-
}, [location.search, JSON.stringify(extendingFilters)]);
|
|
61532
61704
|
const selectFiltersConfig = React.useMemo(() => getFiltersConfig({
|
|
61533
61705
|
t
|
|
61534
61706
|
}), [t]);
|
|
@@ -61538,84 +61710,65 @@ const UsersTable = ({
|
|
|
61538
61710
|
...getFilterOptions(options)
|
|
61539
61711
|
}));
|
|
61540
61712
|
}, [options, t]);
|
|
61541
|
-
|
|
61542
|
-
|
|
61543
|
-
|
|
61544
|
-
|
|
61545
|
-
breadcrumbs: breadCrumbs,
|
|
61546
|
-
actionButtons: [{
|
|
61547
|
-
type: "primary",
|
|
61548
|
-
onClick: () => setOpenCreateModal(true),
|
|
61549
|
-
tooltip: t("New"),
|
|
61550
|
-
icon: "Add"
|
|
61551
|
-
}]
|
|
61552
|
-
// onDownload={() => {
|
|
61553
|
-
// console.log("download");
|
|
61554
|
-
// }}
|
|
61555
|
-
// downloadDisabled={false}
|
|
61556
|
-
}), /*#__PURE__*/jsxRuntime.jsx(BaseScreen, {
|
|
61713
|
+
const customCreate = ({
|
|
61714
|
+
onDrawerClose
|
|
61715
|
+
}) => {
|
|
61716
|
+
return /*#__PURE__*/jsxRuntime.jsx(UsersCreate, {
|
|
61557
61717
|
t: t,
|
|
61558
|
-
checkboxConfig: checkboxConfig,
|
|
61559
|
-
defaultTableFilters: {},
|
|
61560
|
-
columns: columns,
|
|
61561
|
-
data: data,
|
|
61562
|
-
loading: loading,
|
|
61563
|
-
location: location,
|
|
61564
61718
|
goTo: goTo,
|
|
61719
|
+
user: user,
|
|
61565
61720
|
APP: APP,
|
|
61566
61721
|
getApiBaseUrl: getApiBaseUrl,
|
|
61567
|
-
|
|
61568
|
-
|
|
61569
|
-
|
|
61570
|
-
|
|
61571
|
-
|
|
61572
|
-
|
|
61573
|
-
|
|
61574
|
-
|
|
61575
|
-
}), (openCreateModal || !!userToEdit) && /*#__PURE__*/jsxRuntime.jsx(antd.Drawer, {
|
|
61576
|
-
destroyOnClose: true,
|
|
61577
|
-
title: /*#__PURE__*/jsxRuntime.jsx(DrawerHeader, {
|
|
61578
|
-
title: t(userToEdit ? "Edit User" : "New User")
|
|
61579
|
-
}),
|
|
61580
|
-
open: openCreateModal || !!userToEdit,
|
|
61581
|
-
onClose: () => {
|
|
61582
|
-
setOpenCreateModal(false);
|
|
61583
|
-
setUserToEdit(null);
|
|
61722
|
+
getAppHeader: getAppHeader,
|
|
61723
|
+
onSubmitted: payload => {
|
|
61724
|
+
if (userToEdit) {
|
|
61725
|
+
onEditUser(payload);
|
|
61726
|
+
} else {
|
|
61727
|
+
onInviteUser(payload);
|
|
61728
|
+
}
|
|
61729
|
+
onDrawerClose();
|
|
61584
61730
|
},
|
|
61585
|
-
|
|
61586
|
-
|
|
61587
|
-
padding: 0
|
|
61731
|
+
onCancel: () => {
|
|
61732
|
+
onDrawerClose();
|
|
61588
61733
|
},
|
|
61589
|
-
|
|
61590
|
-
|
|
61591
|
-
|
|
61592
|
-
|
|
61593
|
-
|
|
61594
|
-
|
|
61595
|
-
|
|
61596
|
-
|
|
61597
|
-
|
|
61598
|
-
|
|
61599
|
-
|
|
61600
|
-
|
|
61601
|
-
|
|
61602
|
-
|
|
61603
|
-
|
|
61604
|
-
|
|
61605
|
-
|
|
61606
|
-
|
|
61607
|
-
|
|
61608
|
-
|
|
61609
|
-
|
|
61610
|
-
|
|
61611
|
-
|
|
61612
|
-
|
|
61613
|
-
|
|
61614
|
-
|
|
61615
|
-
|
|
61616
|
-
|
|
61617
|
-
|
|
61618
|
-
|
|
61734
|
+
query: query,
|
|
61735
|
+
ajaxForms: ajaxForms,
|
|
61736
|
+
changeAjaxForms: changeAjaxForms,
|
|
61737
|
+
ajaxOptions: ajaxOptions,
|
|
61738
|
+
changeAjaxOptions: changeAjaxOptions,
|
|
61739
|
+
userRoles: userRoles,
|
|
61740
|
+
userToEdit: userToEdit
|
|
61741
|
+
});
|
|
61742
|
+
};
|
|
61743
|
+
return /*#__PURE__*/jsxRuntime.jsx(TablePage, {
|
|
61744
|
+
t: t,
|
|
61745
|
+
goTo: goTo,
|
|
61746
|
+
user: user,
|
|
61747
|
+
options: options,
|
|
61748
|
+
getRedirectLink: getRedirectLink,
|
|
61749
|
+
theme: theme,
|
|
61750
|
+
loading: loading,
|
|
61751
|
+
data: data,
|
|
61752
|
+
isMobile: isMobile,
|
|
61753
|
+
APP: APP,
|
|
61754
|
+
location: location,
|
|
61755
|
+
getData: getData,
|
|
61756
|
+
getApiBaseUrl: getApiBaseUrl,
|
|
61757
|
+
getAppHeader: getAppHeader,
|
|
61758
|
+
extendingFilters: extendingFilters,
|
|
61759
|
+
subject: "users",
|
|
61760
|
+
breadcrumbs: breadCrumbs,
|
|
61761
|
+
headerInfo: {
|
|
61762
|
+
title: "users",
|
|
61763
|
+
createTitle: "New User"
|
|
61764
|
+
},
|
|
61765
|
+
noTabs: true,
|
|
61766
|
+
customCreate: customCreate,
|
|
61767
|
+
customColumns: columns,
|
|
61768
|
+
customCheckboxConfig: checkboxConfig,
|
|
61769
|
+
customFiltersConfig: filtersConfig,
|
|
61770
|
+
customSelectFiltersConfig: selectFiltersConfig,
|
|
61771
|
+
externalOpenDrawer: !!userToEdit
|
|
61619
61772
|
});
|
|
61620
61773
|
};
|
|
61621
61774
|
|
|
@@ -61924,10 +62077,14 @@ const useCallToGetData = ({
|
|
|
61924
62077
|
version,
|
|
61925
62078
|
user,
|
|
61926
62079
|
setLoading,
|
|
61927
|
-
APP
|
|
62080
|
+
APP,
|
|
62081
|
+
selectedPartners
|
|
61928
62082
|
}) => {
|
|
61929
62083
|
const isFirstRender = React.useRef(true);
|
|
61930
62084
|
const callToGetData = (_doCall = false) => {
|
|
62085
|
+
if (selectedPartners?.loading) {
|
|
62086
|
+
return;
|
|
62087
|
+
}
|
|
61931
62088
|
const dKey = namespaceConfig?.dataKey;
|
|
61932
62089
|
const nKey = `${APP}-${getNkey(namespace || "")}`;
|
|
61933
62090
|
const doCall = _doCall ? true : hasKeyInObject(allData, dKey) && hasKeyInObject(allData[dKey], nKey) ? allData[dKey][nKey]?.data?.datastakeId !== id : true;
|
|
@@ -61943,7 +62100,7 @@ const useCallToGetData = ({
|
|
|
61943
62100
|
return;
|
|
61944
62101
|
}
|
|
61945
62102
|
callToGetData(true);
|
|
61946
|
-
}, [source, version]);
|
|
62103
|
+
}, [source, version, selectedPartners?.partners]);
|
|
61947
62104
|
React.useEffect(() => {
|
|
61948
62105
|
callToGetData(true);
|
|
61949
62106
|
}, [id, namespace, user.language]);
|
|
@@ -62494,6 +62651,7 @@ const View = ({
|
|
|
62494
62651
|
APP,
|
|
62495
62652
|
viewConfig,
|
|
62496
62653
|
partners,
|
|
62654
|
+
selectedPartners,
|
|
62497
62655
|
setSelectedPartners,
|
|
62498
62656
|
user,
|
|
62499
62657
|
serviceMap,
|
|
@@ -62656,7 +62814,7 @@ const View = ({
|
|
|
62656
62814
|
}),
|
|
62657
62815
|
datastakeId: id ? id : 'user',
|
|
62658
62816
|
version,
|
|
62659
|
-
source
|
|
62817
|
+
sources: source || selectedPartners?.partners
|
|
62660
62818
|
});
|
|
62661
62819
|
}
|
|
62662
62820
|
};
|
|
@@ -62671,7 +62829,8 @@ const View = ({
|
|
|
62671
62829
|
version,
|
|
62672
62830
|
user,
|
|
62673
62831
|
setLoading,
|
|
62674
|
-
APP
|
|
62832
|
+
APP,
|
|
62833
|
+
selectedPartners
|
|
62675
62834
|
});
|
|
62676
62835
|
const extraLinking = React.useMemo(() => {
|
|
62677
62836
|
return null;
|
|
@@ -62701,7 +62860,7 @@ const View = ({
|
|
|
62701
62860
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
62702
62861
|
className: "daf-view-form",
|
|
62703
62862
|
children: [/*#__PURE__*/jsxRuntime.jsx(DAFHeader, {
|
|
62704
|
-
title: (namespace === 'kyc' ?
|
|
62863
|
+
title: (namespace === 'kyc' ? `${user?.firstName} ${user?.lastName} - KYC` : data?.name) || "",
|
|
62705
62864
|
breadcrumbs: breadcrumbs,
|
|
62706
62865
|
goBackTo: goBack,
|
|
62707
62866
|
actionButtons: actionButtons,
|
|
@@ -63001,6 +63160,7 @@ const Edit = ({
|
|
|
63001
63160
|
params,
|
|
63002
63161
|
clear,
|
|
63003
63162
|
getRedirectLink,
|
|
63163
|
+
selectedPartners,
|
|
63004
63164
|
pathname,
|
|
63005
63165
|
search,
|
|
63006
63166
|
viewConfig,
|
|
@@ -63117,7 +63277,8 @@ const Edit = ({
|
|
|
63117
63277
|
...(namespaceConfig?.scope && {
|
|
63118
63278
|
scope: namespaceConfig.scope
|
|
63119
63279
|
}),
|
|
63120
|
-
datastakeId: id ? id : 'user'
|
|
63280
|
+
datastakeId: id ? id : 'user',
|
|
63281
|
+
sources: selectedPartners?.partners
|
|
63121
63282
|
});
|
|
63122
63283
|
}
|
|
63123
63284
|
};
|
|
@@ -63132,7 +63293,8 @@ const Edit = ({
|
|
|
63132
63293
|
version: null,
|
|
63133
63294
|
user,
|
|
63134
63295
|
setLoading,
|
|
63135
|
-
APP
|
|
63296
|
+
APP,
|
|
63297
|
+
selectedPartners
|
|
63136
63298
|
});
|
|
63137
63299
|
const callback = (type, m) => {
|
|
63138
63300
|
localStorage.removeItem(`${id}-loading`);
|