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.
Files changed (46) hide show
  1. package/dist/components/index.js +89 -181
  2. package/package.json +1 -1
  3. package/src/@daf/core/components/Dashboard/Widget/SDGWidget/SDGWidget.stories.jsx +1 -19
  4. package/src/@daf/core/components/Dashboard/Widget/SDGWidget/config.js +66 -32
  5. package/src/@daf/core/components/Dashboard/Widget/SDGWidget/index.jsx +43 -41
  6. package/src/@daf/core/components/PdfForm/components/AjaxSubGroup.js +0 -3
  7. package/src/@daf/core/components/PdfForm/components/dataLinkGroupHandler.js +41 -14
  8. package/src/@daf/core/components/PdfForm/components/dataLinkHandler.js +2 -4
  9. package/src/@daf/core/components/PdfForm/utils/fieldData.js +8 -0
  10. package/src/@daf/core/components/PdfForm/utils/fieldRenderer.js +1 -1
  11. package/src/index.js +8 -6
  12. package/.vscode/settings.json +0 -13
  13. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-1.svg +0 -0
  14. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-10.svg +0 -0
  15. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-11.svg +0 -0
  16. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-12.svg +0 -0
  17. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-13.svg +0 -0
  18. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-14.svg +0 -0
  19. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-15.svg +0 -0
  20. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-16.svg +0 -0
  21. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-17.svg +0 -0
  22. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-18.svg +0 -0
  23. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-19.svg +0 -0
  24. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-2.svg +0 -0
  25. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-20.svg +0 -0
  26. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-21.svg +0 -0
  27. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-22.svg +0 -0
  28. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-23.svg +0 -0
  29. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-24.svg +0 -0
  30. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-25.svg +0 -0
  31. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-26.svg +0 -0
  32. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-27.svg +0 -0
  33. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-28.svg +0 -0
  34. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-29.svg +0 -0
  35. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-3.svg +0 -0
  36. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-30.svg +0 -0
  37. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-31.svg +0 -0
  38. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-32.svg +0 -0
  39. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-33.svg +0 -0
  40. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-4.svg +0 -0
  41. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-5.svg +0 -0
  42. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-6.svg +0 -0
  43. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-7.svg +0 -0
  44. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-8.svg +0 -0
  45. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs-9.svg +0 -0
  46. /package/{public → src/@daf/core/components/Dashboard/Widget/SDGWidget}/SDGs/SDGs.svg +0 -0
@@ -3065,7 +3065,7 @@ const config$3 = {
3065
3065
  Integration: config$4
3066
3066
  };
3067
3067
 
3068
- const _excluded$p = ["width", "height", "size", "name", "fill"];
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$p);
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$o = ["view", "module", "scope", "form", "meta"];
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$o);
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$n = ["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"];
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$n);
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$m = ["size", "maxHeight", "dataSource", "columns", "pagination"];
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$m);
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$l = ["children"];
11492
+ const _excluded$k = ["children"];
11493
11493
  const BorderedButton = _ref => {
11494
11494
  let {
11495
11495
  children
11496
11496
  } = _ref,
11497
- props = _objectWithoutProperties(_ref, _excluded$l);
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$c;
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$c || (_templateObject$c = _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"])));
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$k = ["icon"];
11637
+ const _excluded$j = ["icon"];
11638
11638
  function GetIcon(_ref) {
11639
11639
  let {
11640
11640
  icon
11641
11641
  } = _ref,
11642
- props = _objectWithoutProperties(_ref, _excluded$k);
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$j = ["options", "defaultSelected", "onChange", "textWhenMultiple", "withCount", "oneAlwaysSelected", "canUnselectLast", "isAvatarGroup", "maxAvatarCount", "dropDownWidth", "topAvatarValue", "isSingle", "selectionType"];
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$j);
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$i = ["tabs", "onChange", "value", "className"];
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$i);
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$h = ["label", "onClick", "icon", "type", "tooltip", "disabled", "loading", "style", "className"];
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$h);
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$b;
12892
- const FooterContainer = dt.div(_templateObject$b || (_templateObject$b = _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"])));
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(', ') : '-'; // Changed from '' to '-'
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 siblingAdditionalTableKeys = config.meta?.additionalTableKeys || [];
14043
- const siblingAllTableKeys = [...siblingTableKeys, ...siblingAdditionalTableKeys];
14044
- return siblingAllTableKeys.includes(inputKey) && otherInputKey !== inputKey;
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
- [...new Set([...tableKeys, ...additionalTableKeys])];
14058
- Object.keys(config.inputs || {});
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.label && typeof formInputConfig.label === 'object') {
14124
- const dynamicLabelKeys = Object.keys(formInputConfig.label);
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
- if (item?.[conditionKey] === conditionValue) {
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 datastakeIdValue = item?.[inputKey]?.datastakeId || item?.datastakeId;
14183
+ const merged = mergeObject(item);
14184
+ const datastakeIdValue = merged?.[inputKey]?.datastakeId || merged?.datastakeId;
14149
14185
  const {
14150
14186
  inputs,
14151
14187
  values
14152
- } = createInputsAndValues(item);
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 datastakeIdValue = value?.[inputKey]?.datastakeId || value?.datastakeId;
14209
+ const merged = mergeObject(value);
14210
+ const datastakeIdValue = merged?.[inputKey]?.datastakeId || merged?.datastakeId;
14174
14211
  const {
14175
14212
  inputs,
14176
14213
  values
14177
- } = createInputsAndValues(value);
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$g = ["loading", "title", "image", "description", "imgAlt", "noDescriptionText"];
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$g);
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$a;
15369
- const _excluded$f = ["title", "loading", "data", "current", "defaultActiveTab", "widgetClassname", "className", "direction"];
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$f);
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$a || (_templateObject$a = _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"])));
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$9;
18067
- const Style$B = dt.div(_templateObject$9 || (_templateObject$9 = _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"])));
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$e = ["config", "title", "loading"];
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$e);
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$d = ["config", "title", "loading"];
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$d);
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$c = ["children", "config", "detailsTitle", "firstColumnWidth"];
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$c);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datastake-daf",
3
- "version": "0.6.110",
3
+ "version": "0.6.111",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.2.5",
6
6
  "@antv/g2": "^5.1.1",
@@ -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
- // SVG paths moved to public folder
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: "/SDGs/SDGs.svg", key: KEYS.NO_POVERTY, disabled: "/SDGs/SDGs-17.svg" },
26
- { img: "/SDGs/SDGs-1.svg", key: KEYS.ZERO_HUNGER, disabled: "/SDGs/SDGs-18.svg" },
59
+ { img: NoPoverty, key: KEYS.NO_POVERTY, disabled: NoPovertyDisabled },
60
+ { img: ZeroHunger, key: KEYS.ZERO_HUNGER, disabled: ZeroHungerDisabled },
27
61
  {
28
- img: "/SDGs/SDGs-2.svg",
62
+ img: GoodHealth,
29
63
  key: KEYS.GOOD_HEALTH_WELL_BEING,
30
- disabled: "/SDGs/SDGs-19.svg",
64
+ disabled: GoodHealthDisabled,
31
65
  },
32
66
  {
33
- img: "/SDGs/SDGs-3.svg",
67
+ img: QualityEducation,
34
68
  key: KEYS.QUALITY_EDUCATION,
35
- disabled: "/SDGs/SDGs-20.svg",
69
+ disabled: QualityEducationDisabled,
36
70
  },
37
71
  {
38
- img: "/SDGs/SDGs-4.svg",
72
+ img: GenderEquality,
39
73
  key: KEYS.GENDER_EQUALITY,
40
- disabled: "/SDGs/SDGs-21.svg",
74
+ disabled: GenderEqualityDisabled,
41
75
  },
42
76
  {
43
- img: "/SDGs/SDGs-5.svg",
77
+ img: CleanWater,
44
78
  key: KEYS.CLEAN_WATER_SANITATION,
45
- disabled: "/SDGs/SDGs-22.svg",
79
+ disabled: CleanWaterDisabled,
46
80
  },
47
81
  {
48
- img: "/SDGs/SDGs-6.svg",
82
+ img: AffordableEnergy,
49
83
  key: KEYS.AFFORDABLE_CLEAN_ENERGY,
50
- disabled: "/SDGs/SDGs-23.svg",
84
+ disabled: AffordableEnergyDisabled,
51
85
  },
52
86
  {
53
- img: "/SDGs/SDGs-7.svg",
87
+ img: DecentWork,
54
88
  key: KEYS.DECENT_WORK_ECONOMIC_GROWTH,
55
- disabled: "/SDGs/SDGs-24.svg",
89
+ disabled: DecentWorkDisabled,
56
90
  },
57
91
  {
58
- img: "/SDGs/SDGs-8.svg",
92
+ img: IndustryInnovation,
59
93
  key: KEYS.INDUSTRY_INNOVATION_INFRASTRUCTURE,
60
- disabled: "/SDGs/SDGs-25.svg",
94
+ disabled: IndustryInnovationDisabled,
61
95
  },
62
96
  {
63
- img: "/SDGs/SDGs-9.svg",
97
+ img: ReducedInequality,
64
98
  key: KEYS.REDUCED_INEQUALITIES,
65
- disabled: "/SDGs/SDGs-26.svg",
99
+ disabled: ReducedInequalityDisabled,
66
100
  },
67
101
  {
68
- img: "/SDGs/SDGs-10.svg",
102
+ img: SustainableDevelopment,
69
103
  key: KEYS.PARTNERSHIPS_FOR_GOALS,
70
- disabled: "/SDGs/SDGs-27.svg",
104
+ disabled: SustainableDevelopmentDisabled,
71
105
  },
72
106
  {
73
- img: "/SDGs/SDGs-11.svg",
107
+ img: SustainableCities,
74
108
  key: KEYS.SUSTAINABLE_CITIES_COMMUNITIES,
75
- disabled: "/SDGs/SDGs-28.svg",
109
+ disabled: SustainableCitiesDisabled,
76
110
  },
77
111
  {
78
- img: "/SDGs/SDGs-12.svg",
112
+ img: ResponsibleConsumption,
79
113
  key: KEYS.RESPONSIBLE_CONSUMPTION_PRODUCTION,
80
- disabled: "/SDGs/SDGs-29.svg",
114
+ disabled: ResponsibleConsumptionDisabled,
81
115
  },
82
116
  {
83
- img: "/SDGs/SDGs-13.svg",
117
+ img: ClimateAction,
84
118
  key: KEYS.CLIMATE_ACTION,
85
- disabled: "/SDGs/SDGs-30.svg",
119
+ disabled: ClimateActionDisabled,
86
120
  },
87
121
  {
88
- img: "/SDGs/SDGs-14.svg",
122
+ img: LifeBelowWater,
89
123
  key: KEYS.LIFE_BELOW_WATER,
90
- disabled: "/SDGs/SDGs-31.svg",
124
+ disabled: LifeBelowWaterDisabled,
91
125
  },
92
- { img: "/SDGs/SDGs-15.svg", key: KEYS.LIFE_ON_LAND, disabled: "/SDGs/SDGs-32.svg" },
126
+ { img: LifeOnLand, key: KEYS.LIFE_ON_LAND, disabled: LifeOnLandDisabled },
93
127
  {
94
- img: "/SDGs/SDGs-16.svg",
95
- disabled: "/SDGs/SDGs-33.svg",
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
- title = "Sustainable Development Goals",
6
- activeSdgGoals = [],
7
- t = (key) => key,
8
- ...props
5
+ title = "Sustainable Development Goals",
6
+ activeSdgGoals = [],
7
+ t = (key) => key,
8
+ ...props
9
9
  }) {
10
- const sdgConfig = getGoalConfig();
10
+ const sdgConfig = getGoalConfig();
11
11
 
12
- return (
13
- <Widget title={title} className={`with-border-header`} {...props}>
14
- <SDGContainer>
15
- {sdgConfig.map((item) => {
16
- const isDisabled = !activeSdgGoals.includes(item.key);
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
- return (
19
- <div
20
- key={item.key}
21
- className={`sdg-item`}
22
- style={{
23
- backgroundImage: `url(${isDisabled ? item.disabled : item.img})`,
24
- }}
25
- ></div>
26
- );
27
- })}
28
- </SDGContainer>
29
- </Widget>
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
- display: grid;
35
- grid-template-columns: repeat(auto-fit, minmax(50px, 1fr));
36
- gap: 8px;
36
+ display: grid;
37
+ grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
38
+ gap: 8px;
37
39
 
38
- .sdg-item {
39
- height: 50px;
40
- width: 50px;
41
- border-radius: 8px;
42
- background-size: cover;
43
- background-position: center;
44
- background-repeat: no-repeat;
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
- .sdg-item-content {
48
- display: flex;
49
- align-items: center;
50
- height: 100%;
51
- color: white;
52
- text-align: center;
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 siblingAdditionalTableKeys = config.meta?.additionalTableKeys || [];
30
- const siblingAllTableKeys = [...siblingTableKeys, ...siblingAdditionalTableKeys];
38
+ const additionalTableKeys = config.meta?.additionalTableKeys || [];
39
+ const allSiblingKeys = [...siblingTableKeys, ...additionalTableKeys];
31
40
 
32
- return siblingAllTableKeys.includes(inputKey) && otherInputKey !== inputKey;
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
- const allTableKeys = [...new Set([...tableKeys, ...additionalTableKeys])];
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.label && typeof formInputConfig.label === 'object') {
153
- const dynamicLabelKeys = Object.keys(formInputConfig.label);
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
- if (item?.[conditionKey] === conditionValue) {
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 datastakeIdValue = item?.[inputKey]?.datastakeId || item?.datastakeId;
180
- const { inputs, values } = createInputsAndValues(item);
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 datastakeIdValue = value?.[inputKey]?.datastakeId || value?.datastakeId;
206
- const { inputs, values } = createInputsAndValues(value);
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(', ') : '-'; // Changed from '' to '-'
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
- default as SelectFilters,
30
- CustomSelect as SelectFiltersSelect,
31
- Timeframe as SelectFiltersTimeFrame,
32
- AjaxSelect as SelectFiltersAjaxSelect,
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 { default as Sidenav, useMenu } from "./@daf/core/components/Sidenav/index.jsx";
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
@@ -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
- }