datastake-daf 0.6.110 → 0.6.111
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/dist/components/index.js +89 -181
- package/package.json +1 -1
- package/src/@daf/core/components/Dashboard/Widget/SDGWidget/SDGWidget.stories.jsx +1 -19
- package/src/@daf/core/components/Dashboard/Widget/SDGWidget/config.js +66 -32
- package/src/@daf/core/components/Dashboard/Widget/SDGWidget/index.jsx +43 -41
- package/src/@daf/core/components/PdfForm/components/AjaxSubGroup.js +0 -3
- package/src/@daf/core/components/PdfForm/components/dataLinkGroupHandler.js +41 -14
- package/src/@daf/core/components/PdfForm/components/dataLinkHandler.js +2 -4
- package/src/@daf/core/components/PdfForm/utils/fieldData.js +8 -0
- package/src/@daf/core/components/PdfForm/utils/fieldRenderer.js +1 -1
- package/src/index.js +8 -6
- package/.vscode/settings.json +0 -13
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-1.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-10.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-11.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-12.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-13.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-14.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-15.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-16.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-17.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-18.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-19.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-2.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-20.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-21.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-22.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-23.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-24.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-25.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-26.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-27.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-28.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-29.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-3.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-30.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-31.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-32.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-33.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-4.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-5.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-6.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-7.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-8.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-9.svg +0 -0
- /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs.svg +0 -0
package/dist/components/index.js
CHANGED
|
@@ -3065,7 +3065,7 @@ const config$3 = {
|
|
|
3065
3065
|
Integration: config$4
|
|
3066
3066
|
};
|
|
3067
3067
|
|
|
3068
|
-
const _excluded$
|
|
3068
|
+
const _excluded$o = ["width", "height", "size", "name", "fill"];
|
|
3069
3069
|
const CustomIcon = _ref => {
|
|
3070
3070
|
let {
|
|
3071
3071
|
width = 14,
|
|
@@ -3074,7 +3074,7 @@ const CustomIcon = _ref => {
|
|
|
3074
3074
|
name = "",
|
|
3075
3075
|
fill = "none"
|
|
3076
3076
|
} = _ref,
|
|
3077
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
3077
|
+
props = _objectWithoutProperties(_ref, _excluded$o);
|
|
3078
3078
|
const conf = config$3[name];
|
|
3079
3079
|
if (conf) {
|
|
3080
3080
|
return /*#__PURE__*/jsxRuntime.jsx("svg", _objectSpread2(_objectSpread2({}, props), {}, {
|
|
@@ -9276,7 +9276,7 @@ createCommonjsModule(function (module, exports) {
|
|
|
9276
9276
|
!function(e,n){module.exports=n();}(commonjsGlobal,(function(){return {name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var n=["th","st","nd","rd"],t=e%100;return "["+e+(n[(t-20)%10]||n[t]||n[0])+"]"}}}));
|
|
9277
9277
|
});
|
|
9278
9278
|
|
|
9279
|
-
const _excluded$
|
|
9279
|
+
const _excluded$n = ["view", "module", "scope", "form", "meta"];
|
|
9280
9280
|
dayjs__default["default"].extend(customParseFormat);
|
|
9281
9281
|
dayjs__default["default"].extend(utc);
|
|
9282
9282
|
dayjs__default["default"].extend(utc);
|
|
@@ -9650,7 +9650,7 @@ const filterCreateData = data => {
|
|
|
9650
9650
|
form,
|
|
9651
9651
|
meta
|
|
9652
9652
|
} = data,
|
|
9653
|
-
rest = _objectWithoutProperties(data, _excluded$
|
|
9653
|
+
rest = _objectWithoutProperties(data, _excluded$n);
|
|
9654
9654
|
const _meta = isObjectEmpty(meta) ? undefined : meta;
|
|
9655
9655
|
return _objectSpread2(_objectSpread2({}, rest), {}, {
|
|
9656
9656
|
meta: _meta
|
|
@@ -10035,7 +10035,7 @@ SelectFilters.propTypes = {
|
|
|
10035
10035
|
apiUrl: PropTypes__default["default"].string
|
|
10036
10036
|
};
|
|
10037
10037
|
|
|
10038
|
-
const _excluded$
|
|
10038
|
+
const _excluded$m = ["columns", "data", "defaultFilters", "style", "pagination", "loading", "onChange", "onFilterChange", "selectOptions", "filtersConfig", "rowSelection", "setShowFilters", "rowKey", "showFilters", "hideOnLoading", "sourcesKey", "className", "projects", "t", "selectedProject", "sourceId", "projectSources", "language", "scrollX", "apiUrl", "app", "doEmptyRows"];
|
|
10039
10039
|
function DAFTable(_ref) {
|
|
10040
10040
|
let {
|
|
10041
10041
|
columns = [],
|
|
@@ -10066,7 +10066,7 @@ function DAFTable(_ref) {
|
|
|
10066
10066
|
app,
|
|
10067
10067
|
doEmptyRows
|
|
10068
10068
|
} = _ref,
|
|
10069
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
10069
|
+
rest = _objectWithoutProperties(_ref, _excluded$m);
|
|
10070
10070
|
const [source, setSource] = React.useState([]);
|
|
10071
10071
|
const projectData = (projects || []).find(p => p.id === selectedProject);
|
|
10072
10072
|
const [filtersInit, setFiltersInit] = React.useState(!loading);
|
|
@@ -10788,7 +10788,7 @@ Pagination.propTypes = {
|
|
|
10788
10788
|
isMobile: PropTypes__default["default"].bool
|
|
10789
10789
|
};
|
|
10790
10790
|
|
|
10791
|
-
const _excluded$
|
|
10791
|
+
const _excluded$l = ["size", "maxHeight", "dataSource", "columns", "pagination"];
|
|
10792
10792
|
function StickyTable(_ref) {
|
|
10793
10793
|
let {
|
|
10794
10794
|
size = null,
|
|
@@ -10797,7 +10797,7 @@ function StickyTable(_ref) {
|
|
|
10797
10797
|
columns = {},
|
|
10798
10798
|
pagination = false
|
|
10799
10799
|
} = _ref,
|
|
10800
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
10800
|
+
props = _objectWithoutProperties(_ref, _excluded$l);
|
|
10801
10801
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
10802
10802
|
className: "daf-sticky-table",
|
|
10803
10803
|
children: /*#__PURE__*/jsxRuntime.jsx(antd.Table, _objectSpread2(_objectSpread2({}, props), {}, {
|
|
@@ -11489,12 +11489,12 @@ const Style$H = dt.div`
|
|
|
11489
11489
|
}
|
|
11490
11490
|
`;
|
|
11491
11491
|
|
|
11492
|
-
const _excluded$
|
|
11492
|
+
const _excluded$k = ["children"];
|
|
11493
11493
|
const BorderedButton = _ref => {
|
|
11494
11494
|
let {
|
|
11495
11495
|
children
|
|
11496
11496
|
} = _ref,
|
|
11497
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
11497
|
+
props = _objectWithoutProperties(_ref, _excluded$k);
|
|
11498
11498
|
return /*#__PURE__*/jsxRuntime.jsx(Style$H, {
|
|
11499
11499
|
className: "d-btn-cont",
|
|
11500
11500
|
children: /*#__PURE__*/jsxRuntime.jsx(antd.Button, _objectSpread2(_objectSpread2({}, props), {}, {
|
|
@@ -11503,7 +11503,7 @@ const BorderedButton = _ref => {
|
|
|
11503
11503
|
});
|
|
11504
11504
|
};
|
|
11505
11505
|
|
|
11506
|
-
var _templateObject$
|
|
11506
|
+
var _templateObject$b;
|
|
11507
11507
|
const variantConfig = {
|
|
11508
11508
|
default: {
|
|
11509
11509
|
className: "default-badge",
|
|
@@ -11621,7 +11621,7 @@ function Badge(_ref) {
|
|
|
11621
11621
|
})
|
|
11622
11622
|
});
|
|
11623
11623
|
}
|
|
11624
|
-
const Style$G = dt.div(_templateObject$
|
|
11624
|
+
const Style$G = dt.div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n\tdisplay: inline-flex;\n\talign-items: center;\n\tjustify-content: center;\n\tgap: 4px;\n\tpadding: 4px;\n\tmax-width: 100%;\n\n\toverflow: hidden;\n\twhite-space: nowrap;\n\ttext-overflow: ellipsis;\n\n\t> svg {\n\t\tflex-shrink: 0;\n\t}\n\n\t> span {\n\t\tall: unset;\n\t\tmargin-left: 4px;\n\t\tfont-weight: 600;\n\t\tfont-size: 12px;\n\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\twhite-space: nowrap;\n\t\tdisplay: block;\n\t\tmax-width: 100%;\n\t}\n"])));
|
|
11625
11625
|
Badge.propTypes = {
|
|
11626
11626
|
children: PropTypes__default["default"].node,
|
|
11627
11627
|
className: PropTypes__default["default"].string,
|
|
@@ -11634,12 +11634,12 @@ Badge.propTypes = {
|
|
|
11634
11634
|
props: PropTypes__default["default"].object
|
|
11635
11635
|
};
|
|
11636
11636
|
|
|
11637
|
-
const _excluded$
|
|
11637
|
+
const _excluded$j = ["icon"];
|
|
11638
11638
|
function GetIcon(_ref) {
|
|
11639
11639
|
let {
|
|
11640
11640
|
icon
|
|
11641
11641
|
} = _ref,
|
|
11642
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
11642
|
+
props = _objectWithoutProperties(_ref, _excluded$j);
|
|
11643
11643
|
let Icon = Icons__namespace.CloseOutlined;
|
|
11644
11644
|
if (Icons__namespace[icon]) {
|
|
11645
11645
|
Icon = Icons__namespace[icon];
|
|
@@ -11961,7 +11961,7 @@ GoToSelect.propTypes = {
|
|
|
11961
11961
|
t: PropTypes__default["default"].func
|
|
11962
11962
|
};
|
|
11963
11963
|
|
|
11964
|
-
const _excluded$
|
|
11964
|
+
const _excluded$i = ["options", "defaultSelected", "onChange", "textWhenMultiple", "withCount", "oneAlwaysSelected", "canUnselectLast", "isAvatarGroup", "maxAvatarCount", "dropDownWidth", "topAvatarValue", "isSingle", "selectionType"];
|
|
11965
11965
|
const {
|
|
11966
11966
|
useToken: useToken$i
|
|
11967
11967
|
} = antd.theme;
|
|
@@ -12054,7 +12054,7 @@ function Multiselect(_ref) {
|
|
|
12054
12054
|
isSingle = false,
|
|
12055
12055
|
selectionType = SELECTION_TYPES.DEFAULT
|
|
12056
12056
|
} = _ref,
|
|
12057
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
12057
|
+
restProps = _objectWithoutProperties(_ref, _excluded$i);
|
|
12058
12058
|
const {
|
|
12059
12059
|
token
|
|
12060
12060
|
} = useToken$i();
|
|
@@ -12721,7 +12721,7 @@ DAFHeader.propTypes = {
|
|
|
12721
12721
|
downloadDisabled: PropTypes__default["default"].any
|
|
12722
12722
|
};
|
|
12723
12723
|
|
|
12724
|
-
const _excluded$
|
|
12724
|
+
const _excluded$h = ["tabs", "onChange", "value", "className"];
|
|
12725
12725
|
function TabsHeader(_ref) {
|
|
12726
12726
|
let {
|
|
12727
12727
|
tabs = [],
|
|
@@ -12729,7 +12729,7 @@ function TabsHeader(_ref) {
|
|
|
12729
12729
|
value = '',
|
|
12730
12730
|
className = 'mt-2'
|
|
12731
12731
|
} = _ref,
|
|
12732
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
12732
|
+
rest = _objectWithoutProperties(_ref, _excluded$h);
|
|
12733
12733
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
12734
12734
|
className: formatClassname(['daf-tabs-header pl-6 pr-6', className]),
|
|
12735
12735
|
children: /*#__PURE__*/jsxRuntime.jsx(antd.Tabs, _objectSpread2({
|
|
@@ -12826,7 +12826,7 @@ DrawerHeader.propTypes = {
|
|
|
12826
12826
|
tabsConfig: PropTypes__default["default"].any
|
|
12827
12827
|
};
|
|
12828
12828
|
|
|
12829
|
-
const _excluded$
|
|
12829
|
+
const _excluded$g = ["label", "onClick", "icon", "type", "tooltip", "disabled", "loading", "style", "className"];
|
|
12830
12830
|
const useFooter = _ref => {
|
|
12831
12831
|
let {
|
|
12832
12832
|
leftContent,
|
|
@@ -12861,7 +12861,7 @@ const useFooter = _ref => {
|
|
|
12861
12861
|
style = {},
|
|
12862
12862
|
className = ""
|
|
12863
12863
|
} = button,
|
|
12864
|
-
restProps = _objectWithoutProperties(button, _excluded$
|
|
12864
|
+
restProps = _objectWithoutProperties(button, _excluded$g);
|
|
12865
12865
|
return /*#__PURE__*/jsxRuntime.jsx(DafButton, _objectSpread2({
|
|
12866
12866
|
content: label,
|
|
12867
12867
|
type: type,
|
|
@@ -12888,8 +12888,8 @@ const useFooter = _ref => {
|
|
|
12888
12888
|
};
|
|
12889
12889
|
};
|
|
12890
12890
|
|
|
12891
|
-
var _templateObject$
|
|
12892
|
-
const FooterContainer = dt.div(_templateObject$
|
|
12891
|
+
var _templateObject$a;
|
|
12892
|
+
const FooterContainer = dt.div(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n\t.daf-footer {\n\t\tbackground: #ffffff;\n\t\tborder-top: 1px solid #e8e8e8;\n\t\tborder-left: none;\n\t\tborder-right: none;\n\t\tborder-bottom: none;\n\t\tborder-radius: 0;\n\t\tpadding: 24px;\n\t\tmargin: 0;\n\t\tbox-shadow: none;\n\t\tz-index: 100;\n\t\tposition: relative;\n\t\tmin-height: 80px;\n\n\t\t&.daf-footer-fixed {\n\t\t\tposition: fixed;\n\t\t\tbottom: 0;\n\t\t\tleft: 0;\n\t\t\tright: 0;\n\t\t\tz-index: 1000;\n\t\t}\n\n\t\t.daf-footer-content {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: space-between;\n\t\t\twidth: 100%;\n\t\t\tmin-height: 32px;\n\n\t\t\t.daf-footer-left {\n\t\t\t\tflex: 1;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: flex-start;\n\t\t\t}\n\n\t\t\t.daf-footer-center {\n\t\t\t\tflex: 1;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t}\n\n\t\t\t.daf-footer-right {\n\t\t\t\tflex: 1;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: flex-end;\n\t\t\t\tgap: 12px;\n\n\t\t\t\t.daf-footer-actions {\n\t\t\t\t\t.ant-btn {\n\t\t\t\t\t\theight: 40px;\n\t\t\t\t\t\tpadding: 0 24px;\n\t\t\t\t\t\tborder-radius: 6px;\n\t\t\t\t\t\tfont-weight: 500;\n\t\t\t\t\t\tfont-size: 14px;\n\t\t\t\t\t\ttransition: all 0.3s ease;\n\t\t\t\t\t\tborder: 1px solid transparent;\n\n\t\t\t\t\t\t&.ant-btn-primary {\n\t\t\t\t\t\t\tbackground-color: var(--color-primary-70);\n\t\t\t\t\t\t\tcolor: #ffffff;\n\t\t\t\t\t\t\tborder-color: var(--color-primary-70);\n\n\t\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t\tbackground-color: var(--color-primary-60);\n\t\t\t\t\t\t\t\tborder-color: var(--color-primary-60);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t&:active {\n\t\t\t\t\t\t\t\tbackground-color: var(--color-primary-80);\n\t\t\t\t\t\t\t\tborder-color: var(--color-primary-80);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t&:disabled {\n\t\t\t\t\t\t\t\tbackground-color: #f5f5f5;\n\t\t\t\t\t\t\t\tcolor: #bfbfbf;\n\t\t\t\t\t\t\t\tborder-color: #d9d9d9;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.ant-btn-default {\n\t\t\t\t\t\t\tbackground: #ffffff;\n\t\t\t\t\t\t\tcolor: #666666;\n\t\t\t\t\t\t\tborder-color: #d9d9d9;\n\n\t\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t\tborder-color: var(--color-primary-70);\n\t\t\t\t\t\t\t\tcolor: var(--color-primary-70);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t&:active {\n\t\t\t\t\t\t\t\tborder-color: var(--color-primary-80);\n\t\t\t\t\t\t\t\tcolor: var(--color-primary-80);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t&:disabled {\n\t\t\t\t\t\t\t\tbackground-color: #f5f5f5;\n\t\t\t\t\t\t\t\tcolor: #bfbfbf;\n\t\t\t\t\t\t\t\tborder-color: #d9d9d9;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t&.ant-btn-ghost {\n\t\t\t\t\t\t\tbackground: transparent;\n\t\t\t\t\t\t\tcolor: #666666;\n\t\t\t\t\t\t\tborder-color: #d9d9d9;\n\n\t\t\t\t\t\t\t&:hover {\n\t\t\t\t\t\t\t\tborder-color: var(--color-primary-70);\n\t\t\t\t\t\t\t\tcolor: var(--color-primary-70);\n\t\t\t\t\t\t\t\tbackground: rgba(0, 0, 0, 0.02);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t&:active {\n\t\t\t\t\t\t\t\tborder-color: var(--color-primary-80);\n\t\t\t\t\t\t\t\tcolor: var(--color-primary-80);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t&:disabled {\n\t\t\t\t\t\t\t\tcolor: #bfbfbf;\n\t\t\t\t\t\t\t\tborder-color: #d9d9d9;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/* Responsive design */\n\t@media (max-width: 768px) {\n\t\t.daf-footer {\n\t\t\tmargin: 0;\n\t\t\tpadding: 16px;\n\n\t\t\t.daf-footer-content {\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 16px;\n\t\t\t\talign-items: stretch;\n\n\t\t\t\t.daf-footer-left,\n\t\t\t\t.daf-footer-center,\n\t\t\t\t.daf-footer-right {\n\t\t\t\t\tflex: none;\n\t\t\t\t\tjustify-content: center;\n\t\t\t\t}\n\n\t\t\t\t.daf-footer-right {\n\t\t\t\t\t.daf-footer-actions {\n\t\t\t\t\t\tjustify-content: center;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/* App-specific styling */\n\t&.sbg-app {\n\t\t.daf-footer {\n\t\t\tbackground: #f8f9fa;\n\t\t\tborder-color: #e9ecef;\n\t\t}\n\t}\n\n\t&.nashiriki-app {\n\t\t.daf-footer {\n\t\t\tbackground: #fff;\n\t\t\tborder-color: #d9d9d9;\n\t\t}\n\t}\n"])));
|
|
12893
12893
|
|
|
12894
12894
|
function DAFFooter(_ref) {
|
|
12895
12895
|
let {
|
|
@@ -13548,6 +13548,13 @@ function Geolocation$2({
|
|
|
13548
13548
|
|
|
13549
13549
|
const evaluateShowIfCondition = (condition, item) => {
|
|
13550
13550
|
if (!condition || !item) return false;
|
|
13551
|
+
if (condition.includes(' notEmpty ')) {
|
|
13552
|
+
const parts = condition.split(' notEmpty ');
|
|
13553
|
+
if (parts.length === 2) {
|
|
13554
|
+
const [field, expectedValue] = parts.map(p => p.trim());
|
|
13555
|
+
return item[field] !== '' || item[field] !== null || item[field] !== undefined;
|
|
13556
|
+
}
|
|
13557
|
+
}
|
|
13551
13558
|
|
|
13552
13559
|
// Handle boolean AND operations
|
|
13553
13560
|
if (condition.includes(' && ')) {
|
|
@@ -13711,7 +13718,7 @@ const renderValue = ({
|
|
|
13711
13718
|
displayValue = '-';
|
|
13712
13719
|
} else if (typeof value === 'object' && value !== null) {
|
|
13713
13720
|
if (Array.isArray(value)) {
|
|
13714
|
-
displayValue = value.length > 0 ? value.join(', ') : '-';
|
|
13721
|
+
displayValue = value.length > 0 ? value.join(', ') : '-';
|
|
13715
13722
|
} else if (value.name || value.fullName) {
|
|
13716
13723
|
displayValue = value.name || value.fullName;
|
|
13717
13724
|
} else if (value.label) {
|
|
@@ -14015,6 +14022,20 @@ function useAjaxModal$2({
|
|
|
14015
14022
|
};
|
|
14016
14023
|
}
|
|
14017
14024
|
|
|
14025
|
+
const mergeObject = obj => {
|
|
14026
|
+
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
14027
|
+
if (typeof value === "object" && !Array.isArray(value) && value !== null) {
|
|
14028
|
+
return {
|
|
14029
|
+
...acc,
|
|
14030
|
+
...value
|
|
14031
|
+
};
|
|
14032
|
+
}
|
|
14033
|
+
return {
|
|
14034
|
+
...acc,
|
|
14035
|
+
[key]: value
|
|
14036
|
+
};
|
|
14037
|
+
}, {});
|
|
14038
|
+
};
|
|
14018
14039
|
const handleDataLinkGroupWithTableKeys = ({
|
|
14019
14040
|
config,
|
|
14020
14041
|
inputConfig,
|
|
@@ -14039,9 +14060,9 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14039
14060
|
const otherConfig = config.inputs[otherInputKey];
|
|
14040
14061
|
if (otherConfig?.type === 'dataLink') {
|
|
14041
14062
|
const siblingTableKeys = otherConfig?.meta?.tableKeys || [];
|
|
14042
|
-
const
|
|
14043
|
-
const
|
|
14044
|
-
return
|
|
14063
|
+
const additionalTableKeys = config.meta?.additionalTableKeys || [];
|
|
14064
|
+
const allSiblingKeys = [...siblingTableKeys, ...additionalTableKeys];
|
|
14065
|
+
return allSiblingKeys.includes(inputKey) && otherInputKey !== inputKey;
|
|
14045
14066
|
}
|
|
14046
14067
|
return false;
|
|
14047
14068
|
});
|
|
@@ -14054,8 +14075,9 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14054
14075
|
}
|
|
14055
14076
|
const tableKeys = inputConfig.meta.tableKeys;
|
|
14056
14077
|
const additionalTableKeys = config.meta?.additionalTableKeys || [];
|
|
14057
|
-
|
|
14058
|
-
|
|
14078
|
+
const parentInputKeys = Object.keys(config.inputs || {});
|
|
14079
|
+
const siblingInputsMatchingTableKeys = parentInputKeys.filter(siblingKey => siblingKey !== inputKey).filter(siblingKey => tableKeys.includes(siblingKey) || additionalTableKeys.includes(siblingKey));
|
|
14080
|
+
[...new Set([...tableKeys, ...siblingInputsMatchingTableKeys])];
|
|
14059
14081
|
const isAjaxModal = React.useMemo(() => !!inputConfig?.meta?.namespace, [inputConfig]);
|
|
14060
14082
|
const ajaxModalValues = useAjaxModal$2({
|
|
14061
14083
|
name: inputKey,
|
|
@@ -14110,6 +14132,16 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14110
14132
|
values[tableKey] = item?.[tableKey];
|
|
14111
14133
|
}
|
|
14112
14134
|
});
|
|
14135
|
+
siblingInputsMatchingTableKeys.forEach(siblingKey => {
|
|
14136
|
+
const siblingConfig = config.inputs[siblingKey];
|
|
14137
|
+
if (siblingConfig) {
|
|
14138
|
+
inputs[siblingKey] = {
|
|
14139
|
+
...siblingConfig,
|
|
14140
|
+
label: siblingConfig.label || siblingKey
|
|
14141
|
+
};
|
|
14142
|
+
values[siblingKey] = item?.[siblingKey];
|
|
14143
|
+
}
|
|
14144
|
+
});
|
|
14113
14145
|
if (dataLinkForm?.identification && typeof dataLinkForm.identification === 'object') {
|
|
14114
14146
|
Object.keys(dataLinkForm.identification).filter(fieldKey => fieldKey !== 'datastakeId' && !tableKeys.includes(fieldKey)).filter(fieldKey => {
|
|
14115
14147
|
const formInputConfig = dataLinkForm.identification[fieldKey];
|
|
@@ -14120,14 +14152,17 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14120
14152
|
...formInputConfig,
|
|
14121
14153
|
label: uploadTypeFields.includes(fieldKey) ? uploadTypeLabels[fieldKey] : formInputConfig.label || formInputConfig.tableLabel || fieldKey
|
|
14122
14154
|
};
|
|
14123
|
-
if (formInputConfig
|
|
14124
|
-
const dynamicLabelKeys = Object.keys(formInputConfig
|
|
14155
|
+
if (formInputConfig?.label && typeof formInputConfig?.label === 'object') {
|
|
14156
|
+
const dynamicLabelKeys = Object.keys(formInputConfig?.label);
|
|
14125
14157
|
let resolvedLabel = null;
|
|
14126
14158
|
for (const labelKey of dynamicLabelKeys) {
|
|
14127
14159
|
const parts = labelKey.split(' is ');
|
|
14128
14160
|
if (parts.length === 2) {
|
|
14129
14161
|
const [conditionKey, conditionValue] = parts;
|
|
14130
|
-
|
|
14162
|
+
const flattenedItem = Object.assign({}, item.location, {
|
|
14163
|
+
address: item.address
|
|
14164
|
+
});
|
|
14165
|
+
if (flattenedItem?.[conditionKey] === conditionValue) {
|
|
14131
14166
|
resolvedLabel = formInputConfig.label[labelKey];
|
|
14132
14167
|
break;
|
|
14133
14168
|
}
|
|
@@ -14135,7 +14170,7 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14135
14170
|
}
|
|
14136
14171
|
inputs[fieldKey].label = resolvedLabel || Object.values(formInputConfig.label)[0] || (uploadTypeFields.includes(fieldKey) ? uploadTypeLabels[fieldKey] : fieldKey);
|
|
14137
14172
|
}
|
|
14138
|
-
values[fieldKey] = item?.[fieldKey];
|
|
14173
|
+
values[fieldKey] = item?.linking?.SCL?.[item?.[fieldKey]]?.name || item?.[fieldKey];
|
|
14139
14174
|
});
|
|
14140
14175
|
}
|
|
14141
14176
|
return {
|
|
@@ -14145,11 +14180,12 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14145
14180
|
};
|
|
14146
14181
|
if (Array.isArray(value)) {
|
|
14147
14182
|
return value.map((item, itemIndex) => {
|
|
14148
|
-
const
|
|
14183
|
+
const merged = mergeObject(item);
|
|
14184
|
+
const datastakeIdValue = merged?.[inputKey]?.datastakeId || merged?.datastakeId;
|
|
14149
14185
|
const {
|
|
14150
14186
|
inputs,
|
|
14151
14187
|
values
|
|
14152
|
-
} = createInputsAndValues(
|
|
14188
|
+
} = createInputsAndValues(merged);
|
|
14153
14189
|
return /*#__PURE__*/jsxRuntime.jsx(TreeNodeComponent, {
|
|
14154
14190
|
nodeKey: datastakeIdValue || t(`No ID ${itemIndex + 1}`),
|
|
14155
14191
|
config: {
|
|
@@ -14170,11 +14206,12 @@ const handleDataLinkGroupWithTableKeys = ({
|
|
|
14170
14206
|
}, `${inputKey}-${itemIndex}`);
|
|
14171
14207
|
});
|
|
14172
14208
|
} else {
|
|
14173
|
-
const
|
|
14209
|
+
const merged = mergeObject(value);
|
|
14210
|
+
const datastakeIdValue = merged?.[inputKey]?.datastakeId || merged?.datastakeId;
|
|
14174
14211
|
const {
|
|
14175
14212
|
inputs,
|
|
14176
14213
|
values
|
|
14177
|
-
} = createInputsAndValues(
|
|
14214
|
+
} = createInputsAndValues(merged);
|
|
14178
14215
|
return /*#__PURE__*/jsxRuntime.jsx(TreeNodeComponent, {
|
|
14179
14216
|
nodeKey: datastakeIdValue || t('No ID'),
|
|
14180
14217
|
config: {
|
|
@@ -14267,7 +14304,7 @@ const handleDataLinkWithTableKeys = ({
|
|
|
14267
14304
|
}
|
|
14268
14305
|
inputs[tableKey].label = resolvedLabel || Object.values(formInputConfig.label)[0] || (uploadTypeFields.includes(tableKey) ? uploadTypeLabels[tableKey] : tableKey);
|
|
14269
14306
|
}
|
|
14270
|
-
values[tableKey] = item?.[tableKey];
|
|
14307
|
+
values[tableKey] = item?.[formInputConfig?.tableLabel?.toLowerCase()] || item?.[tableKey];
|
|
14271
14308
|
} else {
|
|
14272
14309
|
inputs[tableKey] = {
|
|
14273
14310
|
label: uploadTypeFields.includes(tableKey) ? uploadTypeLabels[tableKey] : tableKey,
|
|
@@ -14306,7 +14343,7 @@ const handleDataLinkWithTableKeys = ({
|
|
|
14306
14343
|
}
|
|
14307
14344
|
inputs[fieldKey].label = resolvedLabel || Object.values(formInputConfig.label)[0] || (uploadTypeFields.includes(fieldKey) ? uploadTypeLabels[fieldKey] : fieldKey);
|
|
14308
14345
|
}
|
|
14309
|
-
values[fieldKey] = item?.[fieldKey];
|
|
14346
|
+
values[fieldKey] = item?.[formInputConfig?.tableLabel?.toLowerCase()] || item?.[fieldKey];
|
|
14310
14347
|
});
|
|
14311
14348
|
}
|
|
14312
14349
|
return {
|
|
@@ -14486,9 +14523,6 @@ const AjaxSubGroup$2 = ({
|
|
|
14486
14523
|
_getAppHeader: getAppHeader
|
|
14487
14524
|
});
|
|
14488
14525
|
const ajaxForm = ajaxModalValues?.form;
|
|
14489
|
-
console.log({
|
|
14490
|
-
ajaxForm
|
|
14491
|
-
});
|
|
14492
14526
|
if (ajaxModalValues.isFetching) {
|
|
14493
14527
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
14494
14528
|
className: "ajax-subgroup-loading",
|
|
@@ -14502,9 +14536,6 @@ const AjaxSubGroup$2 = ({
|
|
|
14502
14536
|
});
|
|
14503
14537
|
}
|
|
14504
14538
|
const formInputs = Object.values(ajaxForm || {})[0] || {};
|
|
14505
|
-
console.log({
|
|
14506
|
-
formInputs
|
|
14507
|
-
});
|
|
14508
14539
|
const sortedRecords = value.sort((a, b) => {
|
|
14509
14540
|
const yearA = parseInt(a.meta?.year || '0');
|
|
14510
14541
|
const yearB = parseInt(b.meta?.year || '0');
|
|
@@ -15299,7 +15330,7 @@ Widget.propTypes = {
|
|
|
15299
15330
|
onExpandChange: PropTypes__default["default"].func
|
|
15300
15331
|
};
|
|
15301
15332
|
|
|
15302
|
-
const _excluded$
|
|
15333
|
+
const _excluded$f = ["loading", "title", "image", "description", "imgAlt", "noDescriptionText"];
|
|
15303
15334
|
function ImageWidget(_ref) {
|
|
15304
15335
|
let {
|
|
15305
15336
|
loading = false,
|
|
@@ -15309,7 +15340,7 @@ function ImageWidget(_ref) {
|
|
|
15309
15340
|
imgAlt,
|
|
15310
15341
|
noDescriptionText
|
|
15311
15342
|
} = _ref,
|
|
15312
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
15343
|
+
props = _objectWithoutProperties(_ref, _excluded$f);
|
|
15313
15344
|
return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
|
|
15314
15345
|
loading: loading,
|
|
15315
15346
|
title: title,
|
|
@@ -15365,8 +15396,8 @@ function ImageWidget(_ref) {
|
|
|
15365
15396
|
}));
|
|
15366
15397
|
}
|
|
15367
15398
|
|
|
15368
|
-
var _templateObject$
|
|
15369
|
-
const _excluded$
|
|
15399
|
+
var _templateObject$9;
|
|
15400
|
+
const _excluded$e = ["title", "loading", "data", "current", "defaultActiveTab", "widgetClassname", "className", "direction"];
|
|
15370
15401
|
function FlowWidget(_ref) {
|
|
15371
15402
|
let {
|
|
15372
15403
|
title,
|
|
@@ -15378,7 +15409,7 @@ function FlowWidget(_ref) {
|
|
|
15378
15409
|
className,
|
|
15379
15410
|
direction = "horizontal"
|
|
15380
15411
|
} = _ref,
|
|
15381
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
15412
|
+
rest = _objectWithoutProperties(_ref, _excluded$e);
|
|
15382
15413
|
const [activeTab, setActiveTab] = React.useState();
|
|
15383
15414
|
React.useEffect(() => {
|
|
15384
15415
|
if (defaultActiveTab) {
|
|
@@ -15515,7 +15546,7 @@ function Icon(_ref2) {
|
|
|
15515
15546
|
return icon(status);
|
|
15516
15547
|
}
|
|
15517
15548
|
}
|
|
15518
|
-
const Style$F = dt.div(_templateObject$
|
|
15549
|
+
const Style$F = dt.div(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n\toverflow-x: auto;\n\toverflow-y: hidden;\n\n\t::-webkit-scrollbar {\n\t\tdisplay: none;\n\t}\n\n\tscrollbar-width: none;\n\n\t-ms-overflow-style: none;\n\n\t@media (max-width: 532px) {\n\t\toverflow-x: hidden;\n\t}\n\n\t:where(.ant-steps-horizontal):not(.ant-steps-label-vertical) {\n\t\t.ant-steps-item-content {\n\t\t\twidth: 100%;\n\n\t\t\t.ant-steps-item-description {\n\t\t\t\tmin-width: 205px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t}\n"])));
|
|
15519
15550
|
FlowWidget.propTypes = {
|
|
15520
15551
|
title: PropTypes__default["default"].string,
|
|
15521
15552
|
loading: PropTypes__default["default"].bool,
|
|
@@ -18063,8 +18094,8 @@ const useMap$1 = ({
|
|
|
18063
18094
|
};
|
|
18064
18095
|
};
|
|
18065
18096
|
|
|
18066
|
-
var _templateObject$
|
|
18067
|
-
const Style$B = dt.div(_templateObject$
|
|
18097
|
+
var _templateObject$8;
|
|
18098
|
+
const Style$B = dt.div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n\n\t.p-placeholder {\n\t\tposition: absolute;\n\t\ttop: 0px;\n\t\tleft: 0px;\n\t\twidth: 100%;\n\t\theight: 100%;\n\t\tbackground: transparent;\n\t\tz-index: 100;\n\t}\n"])));
|
|
18068
18099
|
|
|
18069
18100
|
/**
|
|
18070
18101
|
* ComponentWithFocus
|
|
@@ -19954,14 +19985,14 @@ const MapConfig = ({
|
|
|
19954
19985
|
});
|
|
19955
19986
|
};
|
|
19956
19987
|
|
|
19957
|
-
const _excluded$
|
|
19988
|
+
const _excluded$d = ["config", "title", "loading"];
|
|
19958
19989
|
const Details = _ref => {
|
|
19959
19990
|
let {
|
|
19960
19991
|
config = [],
|
|
19961
19992
|
title,
|
|
19962
19993
|
loading = false
|
|
19963
19994
|
} = _ref,
|
|
19964
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
19995
|
+
rest = _objectWithoutProperties(_ref, _excluded$d);
|
|
19965
19996
|
return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
|
|
19966
19997
|
className: "with-border-header h-w-btn-header card",
|
|
19967
19998
|
loading: loading,
|
|
@@ -19977,14 +20008,14 @@ const Details = _ref => {
|
|
|
19977
20008
|
}));
|
|
19978
20009
|
};
|
|
19979
20010
|
|
|
19980
|
-
const _excluded$
|
|
20011
|
+
const _excluded$c = ["config", "title", "loading"];
|
|
19981
20012
|
const KeyIndicatorsDetails = _ref => {
|
|
19982
20013
|
let {
|
|
19983
20014
|
config,
|
|
19984
20015
|
title,
|
|
19985
20016
|
loading = false
|
|
19986
20017
|
} = _ref,
|
|
19987
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
20018
|
+
rest = _objectWithoutProperties(_ref, _excluded$c);
|
|
19988
20019
|
return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
|
|
19989
20020
|
className: "with-border-header h-w-btn-header",
|
|
19990
20021
|
title: title,
|
|
@@ -20014,7 +20045,7 @@ const Style$x = dt.div`
|
|
|
20014
20045
|
}
|
|
20015
20046
|
`;
|
|
20016
20047
|
|
|
20017
|
-
const _excluded$
|
|
20048
|
+
const _excluded$b = ["children", "config", "detailsTitle", "firstColumnWidth"];
|
|
20018
20049
|
const DetailsSection = _ref => {
|
|
20019
20050
|
let {
|
|
20020
20051
|
children,
|
|
@@ -20022,7 +20053,7 @@ const DetailsSection = _ref => {
|
|
|
20022
20053
|
detailsTitle,
|
|
20023
20054
|
firstColumnWidth = "250px"
|
|
20024
20055
|
} = _ref,
|
|
20025
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
20056
|
+
rest = _objectWithoutProperties(_ref, _excluded$b);
|
|
20026
20057
|
return /*#__PURE__*/jsxRuntime.jsx(Style$x, {
|
|
20027
20058
|
firstColumnWidth: firstColumnWidth,
|
|
20028
20059
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
@@ -20231,128 +20262,6 @@ function WidgetCatalogue(_ref2) {
|
|
|
20231
20262
|
});
|
|
20232
20263
|
}
|
|
20233
20264
|
|
|
20234
|
-
// SVG paths moved to public folder
|
|
20235
|
-
|
|
20236
|
-
const KEYS = {
|
|
20237
|
-
NO_POVERTY: "noPoverty",
|
|
20238
|
-
ZERO_HUNGER: "zeroHunger",
|
|
20239
|
-
GOOD_HEALTH_WELL_BEING: "goodHealthWellbeing",
|
|
20240
|
-
QUALITY_EDUCATION: "qualityEducation",
|
|
20241
|
-
GENDER_EQUALITY: "genderEquality",
|
|
20242
|
-
CLEAN_WATER_SANITATION: "cleanWaterSanitation",
|
|
20243
|
-
AFFORDABLE_CLEAN_ENERGY: "affordableCleanEnergy",
|
|
20244
|
-
DECENT_WORK_ECONOMIC_GROWTH: "decentWorkEconomicGrowth",
|
|
20245
|
-
INDUSTRY_INNOVATION_INFRASTRUCTURE: "industryInnovationInfrastructure",
|
|
20246
|
-
REDUCED_INEQUALITIES: "reducedInequalities",
|
|
20247
|
-
SUSTAINABLE_CITIES_COMMUNITIES: "sustainableCitiesCommunities",
|
|
20248
|
-
RESPONSIBLE_CONSUMPTION_PRODUCTION: "responsibleConsumptionProduction",
|
|
20249
|
-
CLIMATE_ACTION: "climateAction",
|
|
20250
|
-
LIFE_BELOW_WATER: "lifeBelowWater",
|
|
20251
|
-
LIFE_ON_LAND: "lifeOnLand",
|
|
20252
|
-
PEACE_JUSTICE_STRONG_INSTITUTIONS: "peaceJusticeStrongInstitutions",
|
|
20253
|
-
PARTNERSHIPS_FOR_GOALS: "partnershipsForGoals"
|
|
20254
|
-
};
|
|
20255
|
-
const getGoalConfig = () => {
|
|
20256
|
-
return [{
|
|
20257
|
-
img: "/SDGs/SDGs.svg",
|
|
20258
|
-
key: KEYS.NO_POVERTY,
|
|
20259
|
-
disabled: "/SDGs/SDGs-17.svg"
|
|
20260
|
-
}, {
|
|
20261
|
-
img: "/SDGs/SDGs-1.svg",
|
|
20262
|
-
key: KEYS.ZERO_HUNGER,
|
|
20263
|
-
disabled: "/SDGs/SDGs-18.svg"
|
|
20264
|
-
}, {
|
|
20265
|
-
img: "/SDGs/SDGs-2.svg",
|
|
20266
|
-
key: KEYS.GOOD_HEALTH_WELL_BEING,
|
|
20267
|
-
disabled: "/SDGs/SDGs-19.svg"
|
|
20268
|
-
}, {
|
|
20269
|
-
img: "/SDGs/SDGs-3.svg",
|
|
20270
|
-
key: KEYS.QUALITY_EDUCATION,
|
|
20271
|
-
disabled: "/SDGs/SDGs-20.svg"
|
|
20272
|
-
}, {
|
|
20273
|
-
img: "/SDGs/SDGs-4.svg",
|
|
20274
|
-
key: KEYS.GENDER_EQUALITY,
|
|
20275
|
-
disabled: "/SDGs/SDGs-21.svg"
|
|
20276
|
-
}, {
|
|
20277
|
-
img: "/SDGs/SDGs-5.svg",
|
|
20278
|
-
key: KEYS.CLEAN_WATER_SANITATION,
|
|
20279
|
-
disabled: "/SDGs/SDGs-22.svg"
|
|
20280
|
-
}, {
|
|
20281
|
-
img: "/SDGs/SDGs-6.svg",
|
|
20282
|
-
key: KEYS.AFFORDABLE_CLEAN_ENERGY,
|
|
20283
|
-
disabled: "/SDGs/SDGs-23.svg"
|
|
20284
|
-
}, {
|
|
20285
|
-
img: "/SDGs/SDGs-7.svg",
|
|
20286
|
-
key: KEYS.DECENT_WORK_ECONOMIC_GROWTH,
|
|
20287
|
-
disabled: "/SDGs/SDGs-24.svg"
|
|
20288
|
-
}, {
|
|
20289
|
-
img: "/SDGs/SDGs-8.svg",
|
|
20290
|
-
key: KEYS.INDUSTRY_INNOVATION_INFRASTRUCTURE,
|
|
20291
|
-
disabled: "/SDGs/SDGs-25.svg"
|
|
20292
|
-
}, {
|
|
20293
|
-
img: "/SDGs/SDGs-9.svg",
|
|
20294
|
-
key: KEYS.REDUCED_INEQUALITIES,
|
|
20295
|
-
disabled: "/SDGs/SDGs-26.svg"
|
|
20296
|
-
}, {
|
|
20297
|
-
img: "/SDGs/SDGs-10.svg",
|
|
20298
|
-
key: KEYS.PARTNERSHIPS_FOR_GOALS,
|
|
20299
|
-
disabled: "/SDGs/SDGs-27.svg"
|
|
20300
|
-
}, {
|
|
20301
|
-
img: "/SDGs/SDGs-11.svg",
|
|
20302
|
-
key: KEYS.SUSTAINABLE_CITIES_COMMUNITIES,
|
|
20303
|
-
disabled: "/SDGs/SDGs-28.svg"
|
|
20304
|
-
}, {
|
|
20305
|
-
img: "/SDGs/SDGs-12.svg",
|
|
20306
|
-
key: KEYS.RESPONSIBLE_CONSUMPTION_PRODUCTION,
|
|
20307
|
-
disabled: "/SDGs/SDGs-29.svg"
|
|
20308
|
-
}, {
|
|
20309
|
-
img: "/SDGs/SDGs-13.svg",
|
|
20310
|
-
key: KEYS.CLIMATE_ACTION,
|
|
20311
|
-
disabled: "/SDGs/SDGs-30.svg"
|
|
20312
|
-
}, {
|
|
20313
|
-
img: "/SDGs/SDGs-14.svg",
|
|
20314
|
-
key: KEYS.LIFE_BELOW_WATER,
|
|
20315
|
-
disabled: "/SDGs/SDGs-31.svg"
|
|
20316
|
-
}, {
|
|
20317
|
-
img: "/SDGs/SDGs-15.svg",
|
|
20318
|
-
key: KEYS.LIFE_ON_LAND,
|
|
20319
|
-
disabled: "/SDGs/SDGs-32.svg"
|
|
20320
|
-
}, {
|
|
20321
|
-
img: "/SDGs/SDGs-16.svg",
|
|
20322
|
-
disabled: "/SDGs/SDGs-33.svg",
|
|
20323
|
-
key: KEYS.PEACE_JUSTICE_STRONG_INSTITUTIONS
|
|
20324
|
-
}];
|
|
20325
|
-
};
|
|
20326
|
-
|
|
20327
|
-
var _templateObject$8;
|
|
20328
|
-
const _excluded$b = ["title", "activeSdgGoals", "t"];
|
|
20329
|
-
function SDGWidget(_ref) {
|
|
20330
|
-
let {
|
|
20331
|
-
title = "Sustainable Development Goals",
|
|
20332
|
-
activeSdgGoals = [],
|
|
20333
|
-
t = key => key
|
|
20334
|
-
} = _ref,
|
|
20335
|
-
props = _objectWithoutProperties(_ref, _excluded$b);
|
|
20336
|
-
const sdgConfig = getGoalConfig();
|
|
20337
|
-
return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
|
|
20338
|
-
title: title,
|
|
20339
|
-
className: "with-border-header"
|
|
20340
|
-
}, props), {}, {
|
|
20341
|
-
children: /*#__PURE__*/jsxRuntime.jsx(SDGContainer, {
|
|
20342
|
-
children: sdgConfig.map(item => {
|
|
20343
|
-
const isDisabled = !activeSdgGoals.includes(item.key);
|
|
20344
|
-
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
20345
|
-
className: "sdg-item",
|
|
20346
|
-
style: {
|
|
20347
|
-
backgroundImage: "url(".concat(isDisabled ? item.disabled : item.img, ")")
|
|
20348
|
-
}
|
|
20349
|
-
}, item.key);
|
|
20350
|
-
})
|
|
20351
|
-
})
|
|
20352
|
-
}));
|
|
20353
|
-
}
|
|
20354
|
-
const SDGContainer = dt.div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(50px, 1fr));\n\tgap: 8px;\n\n\t.sdg-item {\n\t\theight: 50px;\n\t\twidth: 50px;\n\t\tborder-radius: 8px;\n\t\tbackground-size: cover;\n\t\tbackground-position: center;\n\t\tbackground-repeat: no-repeat;\n\t}\n\n\t.sdg-item-content {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\theight: 100%;\n\t\tcolor: white;\n\t\ttext-align: center;\n\t}\n"])));
|
|
20355
|
-
|
|
20356
20265
|
var Style$w = dt.div`
|
|
20357
20266
|
border: 1px solid var(--base-gray-40);
|
|
20358
20267
|
padding: 12px;
|
|
@@ -59642,7 +59551,6 @@ exports.ProjectVisualisationHeader = Header;
|
|
|
59642
59551
|
exports.ProjectVisualisationSelect = CustomSelect;
|
|
59643
59552
|
exports.RadarChart = RadarChart;
|
|
59644
59553
|
exports.RadialBarChart = RadialBarChart;
|
|
59645
|
-
exports.SDGWidget = SDGWidget;
|
|
59646
59554
|
exports.SearchFilters = SearchFilters;
|
|
59647
59555
|
exports.Segment = Segment;
|
|
59648
59556
|
exports.SelectFilters = SelectFilters;
|
package/package.json
CHANGED
|
@@ -20,24 +20,6 @@ export const Primary = {
|
|
|
20
20
|
name: "SDGWidget",
|
|
21
21
|
args: {
|
|
22
22
|
title: "Sustainable Development Goals",
|
|
23
|
-
activeSdgGoals: [
|
|
24
|
-
"noPoverty",
|
|
25
|
-
"zeroHunger",
|
|
26
|
-
"goodHealthWellbeing",
|
|
27
|
-
|
|
28
|
-
"genderEquality",
|
|
29
|
-
"cleanWaterSanitation",
|
|
30
|
-
"affordableCleanEnergy",
|
|
31
|
-
"decentWorkEconomicGrowth",
|
|
32
|
-
"industryInnovationInfrastructure",
|
|
33
|
-
"reducedInequalities",
|
|
34
|
-
"sustainableCitiesCommunities",
|
|
35
|
-
|
|
36
|
-
"climateAction",
|
|
37
|
-
"lifeBelowWater",
|
|
38
|
-
"lifeOnLand",
|
|
39
|
-
"peaceJusticeStrongInstitutions",
|
|
40
|
-
"partnershipsForGoals",
|
|
41
|
-
],
|
|
23
|
+
activeSdgGoals: ["noPoverty"],
|
|
42
24
|
},
|
|
43
25
|
};
|
|
@@ -1,4 +1,38 @@
|
|
|
1
|
-
|
|
1
|
+
import NoPoverty from "./SDGs/SDGs.svg";
|
|
2
|
+
import ZeroHunger from "./SDGs/SDGs-1.svg";
|
|
3
|
+
import GoodHealth from "./SDGs/SDGs-2.svg";
|
|
4
|
+
import QualityEducation from "./SDGs/SDGs-3.svg";
|
|
5
|
+
import GenderEquality from "./SDGs/SDGs-4.svg";
|
|
6
|
+
import CleanWater from "./SDGs/SDGs-5.svg";
|
|
7
|
+
import AffordableEnergy from "./SDGs/SDGs-6.svg";
|
|
8
|
+
import DecentWork from "./SDGs/SDGs-7.svg";
|
|
9
|
+
import IndustryInnovation from "./SDGs/SDGs-8.svg";
|
|
10
|
+
import ReducedInequality from "./SDGs/SDGs-9.svg";
|
|
11
|
+
import SustainableDevelopment from "./SDGs/SDGs-10.svg";
|
|
12
|
+
import SustainableCities from "./SDGs/SDGs-11.svg";
|
|
13
|
+
import ResponsibleConsumption from "./SDGs/SDGs-12.svg";
|
|
14
|
+
import ClimateAction from "./SDGs/SDGs-13.svg";
|
|
15
|
+
import LifeBelowWater from "./SDGs/SDGs-14.svg";
|
|
16
|
+
import LifeOnLand from "./SDGs/SDGs-15.svg";
|
|
17
|
+
import PeaceJustice from "./SDGs/SDGs-16.svg";
|
|
18
|
+
|
|
19
|
+
import NoPovertyDisabled from "./SDGs/SDGs-17.svg";
|
|
20
|
+
import ZeroHungerDisabled from "./SDGs/SDGs-18.svg";
|
|
21
|
+
import GoodHealthDisabled from "./SDGs/SDGs-19.svg";
|
|
22
|
+
import QualityEducationDisabled from "./SDGs/SDGs-20.svg";
|
|
23
|
+
import GenderEqualityDisabled from "./SDGs/SDGs-21.svg";
|
|
24
|
+
import CleanWaterDisabled from "./SDGs/SDGs-22.svg";
|
|
25
|
+
import AffordableEnergyDisabled from "./SDGs/SDGs-23.svg";
|
|
26
|
+
import DecentWorkDisabled from "./SDGs/SDGs-24.svg";
|
|
27
|
+
import IndustryInnovationDisabled from "./SDGs/SDGs-25.svg";
|
|
28
|
+
import ReducedInequalityDisabled from "./SDGs/SDGs-26.svg";
|
|
29
|
+
import SustainableDevelopmentDisabled from "./SDGs/SDGs-27.svg";
|
|
30
|
+
import SustainableCitiesDisabled from "./SDGs/SDGs-28.svg";
|
|
31
|
+
import ResponsibleConsumptionDisabled from "./SDGs/SDGs-29.svg";
|
|
32
|
+
import ClimateActionDisabled from "./SDGs/SDGs-30.svg";
|
|
33
|
+
import LifeBelowWaterDisabled from "./SDGs/SDGs-31.svg";
|
|
34
|
+
import LifeOnLandDisabled from "./SDGs/SDGs-32.svg";
|
|
35
|
+
import PeaceJusticeDisabled from "./SDGs/SDGs-33.svg";
|
|
2
36
|
|
|
3
37
|
const KEYS = {
|
|
4
38
|
NO_POVERTY: "noPoverty",
|
|
@@ -22,77 +56,77 @@ const KEYS = {
|
|
|
22
56
|
|
|
23
57
|
export const getGoalConfig = () => {
|
|
24
58
|
return [
|
|
25
|
-
{ img:
|
|
26
|
-
{ img:
|
|
59
|
+
{ img: NoPoverty, key: KEYS.NO_POVERTY, disabled: NoPovertyDisabled },
|
|
60
|
+
{ img: ZeroHunger, key: KEYS.ZERO_HUNGER, disabled: ZeroHungerDisabled },
|
|
27
61
|
{
|
|
28
|
-
img:
|
|
62
|
+
img: GoodHealth,
|
|
29
63
|
key: KEYS.GOOD_HEALTH_WELL_BEING,
|
|
30
|
-
disabled:
|
|
64
|
+
disabled: GoodHealthDisabled,
|
|
31
65
|
},
|
|
32
66
|
{
|
|
33
|
-
img:
|
|
67
|
+
img: QualityEducation,
|
|
34
68
|
key: KEYS.QUALITY_EDUCATION,
|
|
35
|
-
disabled:
|
|
69
|
+
disabled: QualityEducationDisabled,
|
|
36
70
|
},
|
|
37
71
|
{
|
|
38
|
-
img:
|
|
72
|
+
img: GenderEquality,
|
|
39
73
|
key: KEYS.GENDER_EQUALITY,
|
|
40
|
-
disabled:
|
|
74
|
+
disabled: GenderEqualityDisabled,
|
|
41
75
|
},
|
|
42
76
|
{
|
|
43
|
-
img:
|
|
77
|
+
img: CleanWater,
|
|
44
78
|
key: KEYS.CLEAN_WATER_SANITATION,
|
|
45
|
-
disabled:
|
|
79
|
+
disabled: CleanWaterDisabled,
|
|
46
80
|
},
|
|
47
81
|
{
|
|
48
|
-
img:
|
|
82
|
+
img: AffordableEnergy,
|
|
49
83
|
key: KEYS.AFFORDABLE_CLEAN_ENERGY,
|
|
50
|
-
disabled:
|
|
84
|
+
disabled: AffordableEnergyDisabled,
|
|
51
85
|
},
|
|
52
86
|
{
|
|
53
|
-
img:
|
|
87
|
+
img: DecentWork,
|
|
54
88
|
key: KEYS.DECENT_WORK_ECONOMIC_GROWTH,
|
|
55
|
-
disabled:
|
|
89
|
+
disabled: DecentWorkDisabled,
|
|
56
90
|
},
|
|
57
91
|
{
|
|
58
|
-
img:
|
|
92
|
+
img: IndustryInnovation,
|
|
59
93
|
key: KEYS.INDUSTRY_INNOVATION_INFRASTRUCTURE,
|
|
60
|
-
disabled:
|
|
94
|
+
disabled: IndustryInnovationDisabled,
|
|
61
95
|
},
|
|
62
96
|
{
|
|
63
|
-
img:
|
|
97
|
+
img: ReducedInequality,
|
|
64
98
|
key: KEYS.REDUCED_INEQUALITIES,
|
|
65
|
-
disabled:
|
|
99
|
+
disabled: ReducedInequalityDisabled,
|
|
66
100
|
},
|
|
67
101
|
{
|
|
68
|
-
img:
|
|
102
|
+
img: SustainableDevelopment,
|
|
69
103
|
key: KEYS.PARTNERSHIPS_FOR_GOALS,
|
|
70
|
-
disabled:
|
|
104
|
+
disabled: SustainableDevelopmentDisabled,
|
|
71
105
|
},
|
|
72
106
|
{
|
|
73
|
-
img:
|
|
107
|
+
img: SustainableCities,
|
|
74
108
|
key: KEYS.SUSTAINABLE_CITIES_COMMUNITIES,
|
|
75
|
-
disabled:
|
|
109
|
+
disabled: SustainableCitiesDisabled,
|
|
76
110
|
},
|
|
77
111
|
{
|
|
78
|
-
img:
|
|
112
|
+
img: ResponsibleConsumption,
|
|
79
113
|
key: KEYS.RESPONSIBLE_CONSUMPTION_PRODUCTION,
|
|
80
|
-
disabled:
|
|
114
|
+
disabled: ResponsibleConsumptionDisabled,
|
|
81
115
|
},
|
|
82
116
|
{
|
|
83
|
-
img:
|
|
117
|
+
img: ClimateAction,
|
|
84
118
|
key: KEYS.CLIMATE_ACTION,
|
|
85
|
-
disabled:
|
|
119
|
+
disabled: ClimateActionDisabled,
|
|
86
120
|
},
|
|
87
121
|
{
|
|
88
|
-
img:
|
|
122
|
+
img: LifeBelowWater,
|
|
89
123
|
key: KEYS.LIFE_BELOW_WATER,
|
|
90
|
-
disabled:
|
|
124
|
+
disabled: LifeBelowWaterDisabled,
|
|
91
125
|
},
|
|
92
|
-
{ img:
|
|
126
|
+
{ img: LifeOnLand, key: KEYS.LIFE_ON_LAND, disabled: LifeOnLandDisabled },
|
|
93
127
|
{
|
|
94
|
-
img:
|
|
95
|
-
disabled:
|
|
128
|
+
img: PeaceJustice,
|
|
129
|
+
disabled: PeaceJusticeDisabled,
|
|
96
130
|
key: KEYS.PEACE_JUSTICE_STRONG_INSTITUTIONS,
|
|
97
131
|
},
|
|
98
132
|
];
|
|
@@ -2,53 +2,55 @@ import Widget from "../index.jsx";
|
|
|
2
2
|
import styled from "styled-components";
|
|
3
3
|
import { getGoalConfig } from "./config.js";
|
|
4
4
|
export default function SDGWidget({
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
title = "Sustainable Development Goals",
|
|
6
|
+
activeSdgGoals = [],
|
|
7
|
+
t = (key) => key,
|
|
8
|
+
...props
|
|
9
9
|
}) {
|
|
10
|
-
|
|
10
|
+
const sdgConfig = getGoalConfig();
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
return (
|
|
13
|
+
<Widget title={title} className={`with-border-header`} {...props}>
|
|
14
|
+
<SDGContainer>
|
|
15
|
+
{sdgConfig.map((item) => {
|
|
16
|
+
const isDisabled = !activeSdgGoals.includes(item.key);
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
18
|
+
return (
|
|
19
|
+
<div
|
|
20
|
+
key={item.key}
|
|
21
|
+
className={`sdg-item`}
|
|
22
|
+
style={{
|
|
23
|
+
backgroundImage: `url(${
|
|
24
|
+
isDisabled ? item.disabled : item.img
|
|
25
|
+
})`,
|
|
26
|
+
}}
|
|
27
|
+
></div>
|
|
28
|
+
);
|
|
29
|
+
})}
|
|
30
|
+
</SDGContainer>
|
|
31
|
+
</Widget>
|
|
32
|
+
);
|
|
31
33
|
}
|
|
32
34
|
|
|
33
35
|
const SDGContainer = styled.div`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
display: grid;
|
|
37
|
+
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
|
|
38
|
+
gap: 8px;
|
|
37
39
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
40
|
+
.sdg-item {
|
|
41
|
+
height: 100px;
|
|
42
|
+
width: 100px;
|
|
43
|
+
border-radius: 8px;
|
|
44
|
+
background-size: cover;
|
|
45
|
+
background-position: center;
|
|
46
|
+
background-repeat: no-repeat;
|
|
47
|
+
}
|
|
46
48
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
.sdg-item-content {
|
|
50
|
+
display: flex;
|
|
51
|
+
align-items: center;
|
|
52
|
+
height: 100%;
|
|
53
|
+
color: white;
|
|
54
|
+
text-align: center;
|
|
55
|
+
}
|
|
54
56
|
`;
|
|
@@ -31,8 +31,6 @@ const AjaxSubGroup = ({
|
|
|
31
31
|
|
|
32
32
|
const ajaxForm = ajaxModalValues?.form;
|
|
33
33
|
|
|
34
|
-
console.log({ajaxForm});
|
|
35
|
-
|
|
36
34
|
if (ajaxModalValues.isFetching) {
|
|
37
35
|
return (
|
|
38
36
|
<div className="ajax-subgroup-loading" style={{ padding: '20px', textAlign: 'center' }}>
|
|
@@ -42,7 +40,6 @@ const AjaxSubGroup = ({
|
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
const formInputs = Object.values(ajaxForm || {})[0] || {};
|
|
45
|
-
console.log({formInputs})
|
|
46
43
|
|
|
47
44
|
const sortedRecords = value.sort((a, b) => {
|
|
48
45
|
const yearA = parseInt(a.meta?.year || '0');
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import useAjaxModal from '../utils/useAjaxModal';
|
|
3
3
|
|
|
4
|
+
const mergeObject = (obj) => {
|
|
5
|
+
return Object.entries(obj).reduce((acc, [key, value]) => {
|
|
6
|
+
if (typeof value === "object" && !Array.isArray(value) && value !== null) {
|
|
7
|
+
return { ...acc, ...value };
|
|
8
|
+
}
|
|
9
|
+
return { ...acc, [key]: value };
|
|
10
|
+
}, {});
|
|
11
|
+
}
|
|
12
|
+
|
|
4
13
|
export const handleDataLinkGroupWithTableKeys = ({
|
|
5
14
|
config,
|
|
6
15
|
inputConfig,
|
|
@@ -26,10 +35,10 @@ export const handleDataLinkGroupWithTableKeys = ({
|
|
|
26
35
|
const otherConfig = config.inputs[otherInputKey];
|
|
27
36
|
if (otherConfig?.type === 'dataLink') {
|
|
28
37
|
const siblingTableKeys = otherConfig?.meta?.tableKeys || [];
|
|
29
|
-
const
|
|
30
|
-
const
|
|
38
|
+
const additionalTableKeys = config.meta?.additionalTableKeys || [];
|
|
39
|
+
const allSiblingKeys = [...siblingTableKeys, ...additionalTableKeys];
|
|
31
40
|
|
|
32
|
-
return
|
|
41
|
+
return allSiblingKeys.includes(inputKey) && otherInputKey !== inputKey;
|
|
33
42
|
}
|
|
34
43
|
return false;
|
|
35
44
|
});
|
|
@@ -42,8 +51,13 @@ export const handleDataLinkGroupWithTableKeys = ({
|
|
|
42
51
|
|
|
43
52
|
const tableKeys = inputConfig.meta.tableKeys;
|
|
44
53
|
const additionalTableKeys = config.meta?.additionalTableKeys || [];
|
|
45
|
-
|
|
54
|
+
|
|
46
55
|
const parentInputKeys = Object.keys(config.inputs || {});
|
|
56
|
+
const siblingInputsMatchingTableKeys = parentInputKeys
|
|
57
|
+
.filter(siblingKey => siblingKey !== inputKey)
|
|
58
|
+
.filter(siblingKey => tableKeys.includes(siblingKey) || additionalTableKeys.includes(siblingKey));
|
|
59
|
+
|
|
60
|
+
const allTableKeys = [...new Set([...tableKeys, ...siblingInputsMatchingTableKeys])];
|
|
47
61
|
|
|
48
62
|
const isAjaxModal = useMemo(() => !!inputConfig?.meta?.namespace, [inputConfig]);
|
|
49
63
|
|
|
@@ -132,6 +146,17 @@ export const handleDataLinkGroupWithTableKeys = ({
|
|
|
132
146
|
}
|
|
133
147
|
});
|
|
134
148
|
|
|
149
|
+
siblingInputsMatchingTableKeys.forEach(siblingKey => {
|
|
150
|
+
const siblingConfig = config.inputs[siblingKey];
|
|
151
|
+
if (siblingConfig) {
|
|
152
|
+
inputs[siblingKey] = {
|
|
153
|
+
...siblingConfig,
|
|
154
|
+
label: siblingConfig.label || siblingKey
|
|
155
|
+
};
|
|
156
|
+
values[siblingKey] = item?.[siblingKey];
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
|
|
135
160
|
if (dataLinkForm?.identification && typeof dataLinkForm.identification === 'object') {
|
|
136
161
|
Object.keys(dataLinkForm.identification)
|
|
137
162
|
.filter(fieldKey => fieldKey !== 'datastakeId' && !tableKeys.includes(fieldKey))
|
|
@@ -149,25 +174,25 @@ export const handleDataLinkGroupWithTableKeys = ({
|
|
|
149
174
|
: (formInputConfig.label || formInputConfig.tableLabel || fieldKey)
|
|
150
175
|
};
|
|
151
176
|
|
|
152
|
-
if (formInputConfig
|
|
153
|
-
const dynamicLabelKeys = Object.keys(formInputConfig
|
|
177
|
+
if (formInputConfig?.label && typeof formInputConfig?.label === 'object') {
|
|
178
|
+
const dynamicLabelKeys = Object.keys(formInputConfig?.label);
|
|
154
179
|
let resolvedLabel = null;
|
|
155
180
|
|
|
156
181
|
for (const labelKey of dynamicLabelKeys) {
|
|
157
182
|
const parts = labelKey.split(' is ');
|
|
158
183
|
if (parts.length === 2) {
|
|
159
184
|
const [conditionKey, conditionValue] = parts;
|
|
160
|
-
|
|
185
|
+
const flattenedItem = Object.assign({}, item.location, { address: item.address });
|
|
186
|
+
if (flattenedItem?.[conditionKey] === conditionValue) {
|
|
161
187
|
resolvedLabel = formInputConfig.label[labelKey];
|
|
162
188
|
break;
|
|
163
|
-
}
|
|
189
|
+
}
|
|
164
190
|
}
|
|
165
191
|
}
|
|
166
192
|
inputs[fieldKey].label = resolvedLabel || Object.values(formInputConfig.label)[0] ||
|
|
167
193
|
(uploadTypeFields.includes(fieldKey) ? uploadTypeLabels[fieldKey] : fieldKey);
|
|
168
194
|
}
|
|
169
|
-
|
|
170
|
-
values[fieldKey] = item?.[fieldKey];
|
|
195
|
+
values[fieldKey] = item?.linking?.SCL?.[item?.[fieldKey]]?.name || item?.[fieldKey];
|
|
171
196
|
});
|
|
172
197
|
}
|
|
173
198
|
|
|
@@ -176,8 +201,9 @@ export const handleDataLinkGroupWithTableKeys = ({
|
|
|
176
201
|
|
|
177
202
|
if (Array.isArray(value)) {
|
|
178
203
|
return value.map((item, itemIndex) => {
|
|
179
|
-
const
|
|
180
|
-
const
|
|
204
|
+
const merged = mergeObject(item);
|
|
205
|
+
const datastakeIdValue = merged?.[inputKey]?.datastakeId || merged?.datastakeId;
|
|
206
|
+
const { inputs, values } = createInputsAndValues(merged);
|
|
181
207
|
|
|
182
208
|
return (
|
|
183
209
|
<TreeNodeComponent
|
|
@@ -202,8 +228,9 @@ export const handleDataLinkGroupWithTableKeys = ({
|
|
|
202
228
|
);
|
|
203
229
|
});
|
|
204
230
|
} else {
|
|
205
|
-
const
|
|
206
|
-
const
|
|
231
|
+
const merged = mergeObject(value);
|
|
232
|
+
const datastakeIdValue = merged?.[inputKey]?.datastakeId || merged?.datastakeId;
|
|
233
|
+
const { inputs, values } = createInputsAndValues(merged);
|
|
207
234
|
|
|
208
235
|
return (
|
|
209
236
|
<TreeNodeComponent
|
|
@@ -90,8 +90,7 @@ export const handleDataLinkWithTableKeys = ({
|
|
|
90
90
|
inputs[tableKey].label = resolvedLabel || Object.values(formInputConfig.label)[0] ||
|
|
91
91
|
(uploadTypeFields.includes(tableKey) ? uploadTypeLabels[tableKey] : tableKey);
|
|
92
92
|
}
|
|
93
|
-
|
|
94
|
-
values[tableKey] = item?.[tableKey];
|
|
93
|
+
values[tableKey] = item?.[formInputConfig?.tableLabel?.toLowerCase()] || item?.[tableKey];
|
|
95
94
|
} else {
|
|
96
95
|
inputs[tableKey] = {
|
|
97
96
|
label: uploadTypeFields.includes(tableKey) ? uploadTypeLabels[tableKey] : tableKey,
|
|
@@ -140,8 +139,7 @@ export const handleDataLinkWithTableKeys = ({
|
|
|
140
139
|
inputs[fieldKey].label = resolvedLabel || Object.values(formInputConfig.label)[0] ||
|
|
141
140
|
(uploadTypeFields.includes(fieldKey) ? uploadTypeLabels[fieldKey] : fieldKey);
|
|
142
141
|
}
|
|
143
|
-
|
|
144
|
-
values[fieldKey] = item?.[fieldKey];
|
|
142
|
+
values[fieldKey] = item?.[formInputConfig?.tableLabel?.toLowerCase()] || item?.[fieldKey];
|
|
145
143
|
});
|
|
146
144
|
}
|
|
147
145
|
|
|
@@ -6,6 +6,14 @@ import Geolocation from '../../ViewForm/components/geolocation';
|
|
|
6
6
|
|
|
7
7
|
export const evaluateShowIfCondition = (condition, item) => {
|
|
8
8
|
if (!condition || !item) return false;
|
|
9
|
+
|
|
10
|
+
if(condition.includes(' notEmpty ')) {
|
|
11
|
+
const parts = condition.split(' notEmpty ');
|
|
12
|
+
if (parts.length === 2) {
|
|
13
|
+
const [field, expectedValue] = parts.map(p => p.trim());
|
|
14
|
+
return item[field] !== '' || item[field] !== null || item[field] !== undefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
9
17
|
|
|
10
18
|
// Handle boolean AND operations
|
|
11
19
|
if (condition.includes(' && ')) {
|
|
@@ -39,7 +39,7 @@ export const renderValue = ({ value, hasChildren, config, user, getApiBaseUrl =
|
|
|
39
39
|
displayValue = '-';
|
|
40
40
|
} else if (typeof value === 'object' && value !== null) {
|
|
41
41
|
if (Array.isArray(value)) {
|
|
42
|
-
displayValue = value.length > 0 ? value.join(', ') : '-';
|
|
42
|
+
displayValue = value.length > 0 ? value.join(', ') : '-';
|
|
43
43
|
} else if (value.name || value.fullName) {
|
|
44
44
|
displayValue = value.name || value.fullName;
|
|
45
45
|
} else if (value.label) {
|
package/src/index.js
CHANGED
|
@@ -26,10 +26,10 @@ export { default as CustomIcon } from "./@daf/core/components/Icon/CustomIcon.js
|
|
|
26
26
|
|
|
27
27
|
// Filters
|
|
28
28
|
export {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
default as SelectFilters,
|
|
30
|
+
CustomSelect as SelectFiltersSelect,
|
|
31
|
+
Timeframe as SelectFiltersTimeFrame,
|
|
32
|
+
AjaxSelect as SelectFiltersAjaxSelect,
|
|
33
33
|
} from "./@daf/core/components/Filters/selectFilters/index.jsx";
|
|
34
34
|
export { default as SearchFilters } from "./@daf/core/components/Filters/searchFilters/index.jsx";
|
|
35
35
|
|
|
@@ -70,7 +70,6 @@ export { default as KeyIndicatorsDetails } from "./@daf/core/components/Dashboar
|
|
|
70
70
|
export { default as DetailsSection } from "./@daf/core/components/Dashboard/Widget/DetailsSection/index.jsx";
|
|
71
71
|
export { default as ComponentWithFocus } from "./@daf/core/components/Dashboard/ComponentWithFocus/index.jsx";
|
|
72
72
|
export { default as WidgetCatalogue } from "./@daf/core/components/Dashboard/Widget/WidgetCatalogue/index.jsx";
|
|
73
|
-
export { default as SDGWidget } from "./@daf/core/components/Dashboard/Widget/SDGWidget/index.jsx";
|
|
74
73
|
|
|
75
74
|
// Forms
|
|
76
75
|
export { default as ViewForm } from "./@daf/core/components/ViewForm/content.jsx";
|
|
@@ -100,7 +99,10 @@ export { default as ProjectVisualisationSelect } from "./@daf/core/components/Pr
|
|
|
100
99
|
export { default as ProjectVisualisationAlert } from "./@daf/core/components/ProjectVisualisation/Alert/index.js";
|
|
101
100
|
|
|
102
101
|
// Sidenav
|
|
103
|
-
export {
|
|
102
|
+
export {
|
|
103
|
+
default as Sidenav,
|
|
104
|
+
useMenu,
|
|
105
|
+
} from "./@daf/core/components/Sidenav/index.jsx";
|
|
104
106
|
export { default as SidenavMenu } from "./@daf/core/components/Sidenav/Menu.jsx";
|
|
105
107
|
|
|
106
108
|
// Other
|
package/.vscode/settings.json
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"cSpell.words": ["cukura"],
|
|
3
|
-
"files.autoSave": "afterDelay",
|
|
4
|
-
"editor.wordWrap": "on",
|
|
5
|
-
"editor.autoClosingBrackets": "always",
|
|
6
|
-
"editor.autoClosingComments": "always",
|
|
7
|
-
"editor.autoClosingQuotes": "always",
|
|
8
|
-
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
9
|
-
"editor.formatOnPaste": true,
|
|
10
|
-
"editor.formatOnSave": true,
|
|
11
|
-
"notebook.defaultFormatter": "esbenp.prettier-vscode",
|
|
12
|
-
"javascript.format.semicolons": "insert"
|
|
13
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|