datastake-daf 0.6.795 → 0.6.797

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 (45) hide show
  1. package/dist/components/index.js +258 -89
  2. package/dist/pages/index.js +789 -174
  3. package/dist/style/datastake/mapbox-gl.css +330 -0
  4. package/dist/utils/index.js +1 -1
  5. package/package.json +1 -1
  6. package/public/Vegetation/black-default.svg +23 -0
  7. package/public/Vegetation/black.svg +12 -0
  8. package/public/Vegetation/damage-from-insects-default.svg +14 -0
  9. package/public/Vegetation/damage-from-insects.svg +8 -0
  10. package/public/Vegetation/dry-or-dead-default.svg +16 -0
  11. package/public/Vegetation/dry-or-dead.svg +7 -0
  12. package/public/Vegetation/healthy-default.svg +14 -0
  13. package/public/Vegetation/healthy.svg +34 -0
  14. package/public/Vegetation/mosaic-default.svg +17 -0
  15. package/public/Vegetation/mosaic.svg +9 -0
  16. package/public/Vegetation/no-leaves-default.svg +6 -0
  17. package/public/Vegetation/no-leaves.svg +5 -0
  18. package/public/Vegetation/reddish-default.svg +23 -0
  19. package/public/Vegetation/reddish.svg +79 -0
  20. package/public/Vegetation/spider-webs-default.svg +10 -0
  21. package/public/Vegetation/spider-webs.svg +10 -0
  22. package/public/Vegetation/white-default.svg +25 -0
  23. package/public/Vegetation/white.svg +12 -0
  24. package/public/Vegetation/yellowing-default.svg +7 -0
  25. package/public/Vegetation/yellowing.svg +8 -0
  26. package/src/@daf/core/components/Dashboard/Widget/ActivityIndicators/index.jsx +24 -6
  27. package/src/@daf/core/components/Dashboard/Widget/ActivityIndicators/style.js +2 -6
  28. package/src/@daf/core/components/Dashboard/Widget/VegetationWidget/VegetationWidget.stories.jsx +76 -0
  29. package/src/@daf/core/components/Dashboard/Widget/VegetationWidget/config.js +31 -0
  30. package/src/@daf/core/components/Dashboard/Widget/VegetationWidget/index.jsx +137 -0
  31. package/src/@daf/core/components/ViewForm/components/Records/config.js +3 -0
  32. package/src/@daf/pages/Summary/Activities/Monitoring/components/ActivityImagery/index.jsx +12 -10
  33. package/src/@daf/pages/Summary/Activities/Monitoring/components/BiodiversityAndHabitat/helper.js +86 -0
  34. package/src/@daf/pages/Summary/Activities/Monitoring/components/BiodiversityAndHabitat/index.jsx +65 -0
  35. package/src/@daf/pages/Summary/Activities/Monitoring/components/EnvironmentalMetrics/index.jsx +30 -0
  36. package/src/@daf/pages/Summary/Activities/Monitoring/components/MangroveGrowthAndSurvival/components/PlantedSpecies/index.jsx +15 -28
  37. package/src/@daf/pages/Summary/Activities/Monitoring/components/MangroveGrowthAndSurvival/components/SeedlingsHeight/index.jsx +17 -30
  38. package/src/@daf/pages/Summary/Activities/Monitoring/components/MangroveGrowthAndSurvival/components/SurvivalRate/index.jsx +38 -45
  39. package/src/@daf/pages/Summary/Activities/Monitoring/components/MangroveGrowthAndSurvival/index.jsx +87 -8
  40. package/src/@daf/pages/Summary/Activities/Monitoring/config.js +21 -4
  41. package/src/@daf/pages/Summary/Activities/Monitoring/helper.js +7 -1
  42. package/src/@daf/pages/Summary/Activities/Monitoring/index.jsx +31 -8
  43. package/src/@daf/utils/numbers.js +1 -1
  44. package/src/constants/Vegetation.js +15 -0
  45. package/src/index.js +1 -0
@@ -4778,7 +4778,7 @@ const config$2 = {
4778
4778
  Down: config$3
4779
4779
  };
4780
4780
 
4781
- const _excluded$C = ["width", "height", "size", "name", "fill"];
4781
+ const _excluded$D = ["width", "height", "size", "name", "fill"];
4782
4782
  const CustomIcon = _ref => {
4783
4783
  let {
4784
4784
  width = 14,
@@ -4787,7 +4787,7 @@ const CustomIcon = _ref => {
4787
4787
  name = "",
4788
4788
  fill = "none"
4789
4789
  } = _ref,
4790
- props = _objectWithoutProperties(_ref, _excluded$C);
4790
+ props = _objectWithoutProperties(_ref, _excluded$D);
4791
4791
  const conf = config$2[name];
4792
4792
  if (conf) {
4793
4793
  return /*#__PURE__*/jsxRuntime.jsx("svg", _objectSpread2(_objectSpread2({}, props), {}, {
@@ -5076,7 +5076,7 @@ createCommonjsModule(function (module, exports) {
5076
5076
  !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])+"]"}}}));
5077
5077
  });
5078
5078
 
5079
- const _excluded$B = ["view", "module", "scope", "form", "meta", "createdAt", "updatedAt"];
5079
+ const _excluded$C = ["view", "module", "scope", "form", "meta", "createdAt", "updatedAt"];
5080
5080
  dayjs__default["default"].extend(customParseFormat);
5081
5081
  dayjs__default["default"].extend(utc);
5082
5082
  dayjs__default["default"].extend(utc);
@@ -5452,7 +5452,7 @@ const filterCreateData = data => {
5452
5452
  createdAt,
5453
5453
  updatedAt
5454
5454
  } = data,
5455
- rest = _objectWithoutProperties(data, _excluded$B);
5455
+ rest = _objectWithoutProperties(data, _excluded$C);
5456
5456
  const _meta = isObjectEmpty(meta) ? undefined : meta;
5457
5457
  return _objectSpread2(_objectSpread2({}, rest), {}, {
5458
5458
  meta: _meta
@@ -5848,7 +5848,7 @@ SelectFilters.propTypes = {
5848
5848
  apiUrl: PropTypes__default["default"].string
5849
5849
  };
5850
5850
 
5851
- const _excluded$A = ["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"];
5851
+ const _excluded$B = ["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"];
5852
5852
  function DAFTable(_ref) {
5853
5853
  let {
5854
5854
  columns = [],
@@ -5879,7 +5879,7 @@ function DAFTable(_ref) {
5879
5879
  app,
5880
5880
  doEmptyRows
5881
5881
  } = _ref,
5882
- rest = _objectWithoutProperties(_ref, _excluded$A);
5882
+ rest = _objectWithoutProperties(_ref, _excluded$B);
5883
5883
  const [source, setSource] = React.useState([]);
5884
5884
  const projectData = (projects || []).find(p => p.id === selectedProject);
5885
5885
  const [filtersInit, setFiltersInit] = React.useState(!loading);
@@ -6623,8 +6623,8 @@ Pagination.propTypes = {
6623
6623
  isMobile: PropTypes__default["default"].bool
6624
6624
  };
6625
6625
 
6626
- var _templateObject$g;
6627
- const Style$T = styled__default["default"].div(_templateObject$g || (_templateObject$g = _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"])));
6626
+ var _templateObject$h;
6627
+ const Style$T = styled__default["default"].div(_templateObject$h || (_templateObject$h = _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"])));
6628
6628
 
6629
6629
  /**
6630
6630
  * ComponentWithFocus
@@ -6696,8 +6696,8 @@ function ComponentWithFocus(_ref) {
6696
6696
  });
6697
6697
  }
6698
6698
 
6699
- var _templateObject$f;
6700
- const _excluded$z = ["size", "maxHeight", "containerHeight", "dataSource", "columns", "pagination", "doEmptyRows"];
6699
+ var _templateObject$g;
6700
+ const _excluded$A = ["size", "maxHeight", "containerHeight", "dataSource", "columns", "pagination", "doEmptyRows"];
6701
6701
  function StickyTable(_ref) {
6702
6702
  let {
6703
6703
  size = "small",
@@ -6708,7 +6708,7 @@ function StickyTable(_ref) {
6708
6708
  pagination = false,
6709
6709
  doEmptyRows = true
6710
6710
  } = _ref,
6711
- props = _objectWithoutProperties(_ref, _excluded$z);
6711
+ props = _objectWithoutProperties(_ref, _excluded$A);
6712
6712
  const data = React__default["default"].useMemo(() => {
6713
6713
  if (!doEmptyRows) {
6714
6714
  return dataSource;
@@ -6754,7 +6754,7 @@ function StickyTable(_ref) {
6754
6754
  })
6755
6755
  });
6756
6756
  }
6757
- const Style$S = styled__default["default"].div(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral(["\n\tmax-width: calc(100% - 48px);\n\tmargin-left: var(--size-lg);\n\toverflow: hidden;\n\n\t.daf-table {\n\t\tpadding: 0px;\n\t\tmargin-top: 0px;\n\n\t\t.ant-tag {\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.daf-select-filters .filters {\n\t\tpadding-top: 16px;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t}\n\n\t.daf-table {\n\t\tpadding-top: 16px;\n\t}\n"])));
6757
+ const Style$S = styled__default["default"].div(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral(["\n\tmax-width: calc(100% - 48px);\n\tmargin-left: var(--size-lg);\n\toverflow: hidden;\n\n\t.daf-table {\n\t\tpadding: 0px;\n\t\tmargin-top: 0px;\n\n\t\t.ant-tag {\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.daf-select-filters .filters {\n\t\tpadding-top: 16px;\n\t\tpadding-left: 0;\n\t\tpadding-right: 0;\n\t}\n\n\t.daf-table {\n\t\tpadding-top: 16px;\n\t}\n"])));
6758
6758
  StickyTable.propTypes = {
6759
6759
  size: PropTypes__default["default"].any,
6760
6760
  maxHeight: PropTypes__default["default"].number,
@@ -7236,7 +7236,7 @@ const BTN_SIZE = {
7236
7236
  LG: 'large'
7237
7237
  };
7238
7238
 
7239
- const _excluded$y = ["content", "size", "type", "icon", "onClick", "disabled", "loading", "title", "style", "className"];
7239
+ const _excluded$z = ["content", "size", "type", "icon", "onClick", "disabled", "loading", "title", "style", "className"];
7240
7240
  function DafButton(_ref) {
7241
7241
  let {
7242
7242
  content = '',
@@ -7250,7 +7250,7 @@ function DafButton(_ref) {
7250
7250
  style = {},
7251
7251
  className = ''
7252
7252
  } = _ref,
7253
- restProps = _objectWithoutProperties(_ref, _excluded$y);
7253
+ restProps = _objectWithoutProperties(_ref, _excluded$z);
7254
7254
  return /*#__PURE__*/jsxRuntime.jsx(antd.Button, _objectSpread2(_objectSpread2({
7255
7255
  icon: icon,
7256
7256
  type: type,
@@ -7369,12 +7369,12 @@ const Style$R = styled__default["default"].div`
7369
7369
  }
7370
7370
  `;
7371
7371
 
7372
- const _excluded$x = ["children"];
7372
+ const _excluded$y = ["children"];
7373
7373
  const BorderedButton = _ref => {
7374
7374
  let {
7375
7375
  children
7376
7376
  } = _ref,
7377
- props = _objectWithoutProperties(_ref, _excluded$x);
7377
+ props = _objectWithoutProperties(_ref, _excluded$y);
7378
7378
  return /*#__PURE__*/jsxRuntime.jsx(Style$R, {
7379
7379
  className: "d-btn-cont",
7380
7380
  children: /*#__PURE__*/jsxRuntime.jsx(antd.Button, _objectSpread2(_objectSpread2({}, props), {}, {
@@ -7383,7 +7383,7 @@ const BorderedButton = _ref => {
7383
7383
  });
7384
7384
  };
7385
7385
 
7386
- var _templateObject$e;
7386
+ var _templateObject$f;
7387
7387
  const variantConfig = {
7388
7388
  default: {
7389
7389
  className: "default-badge",
@@ -7501,7 +7501,7 @@ function Badge(_ref) {
7501
7501
  })
7502
7502
  });
7503
7503
  }
7504
- const Style$Q = styled__default["default"].div(_templateObject$e || (_templateObject$e = _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"])));
7504
+ const Style$Q = styled__default["default"].div(_templateObject$f || (_templateObject$f = _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"])));
7505
7505
  Badge.propTypes = {
7506
7506
  children: PropTypes__default["default"].node,
7507
7507
  className: PropTypes__default["default"].string,
@@ -7514,12 +7514,12 @@ Badge.propTypes = {
7514
7514
  props: PropTypes__default["default"].object
7515
7515
  };
7516
7516
 
7517
- const _excluded$w = ["icon"];
7517
+ const _excluded$x = ["icon"];
7518
7518
  function GetIcon(_ref) {
7519
7519
  let {
7520
7520
  icon
7521
7521
  } = _ref,
7522
- props = _objectWithoutProperties(_ref, _excluded$w);
7522
+ props = _objectWithoutProperties(_ref, _excluded$x);
7523
7523
  let Icon = Icons__namespace.CloseOutlined;
7524
7524
  if (Icons__namespace[icon]) {
7525
7525
  Icon = Icons__namespace[icon];
@@ -7849,7 +7849,7 @@ const MultiSelectStyled = styled__default["default"](antd.Select)`
7849
7849
  }
7850
7850
  `;
7851
7851
 
7852
- const _excluded$v = ["options", "defaultSelected", "onChange", "textWhenMultiple", "withCount", "oneAlwaysSelected", "canUnselectLast", "isAvatarGroup", "maxAvatarCount", "dropDownWidth", "topAvatarValue", "isSingle", "selectionType"];
7852
+ const _excluded$w = ["options", "defaultSelected", "onChange", "textWhenMultiple", "withCount", "oneAlwaysSelected", "canUnselectLast", "isAvatarGroup", "maxAvatarCount", "dropDownWidth", "topAvatarValue", "isSingle", "selectionType"];
7853
7853
  const {
7854
7854
  useToken: useToken$n
7855
7855
  } = antd.theme;
@@ -7942,7 +7942,7 @@ function Multiselect(_ref) {
7942
7942
  isSingle = false,
7943
7943
  selectionType = SELECTION_TYPES.DEFAULT
7944
7944
  } = _ref,
7945
- restProps = _objectWithoutProperties(_ref, _excluded$v);
7945
+ restProps = _objectWithoutProperties(_ref, _excluded$w);
7946
7946
  const {
7947
7947
  token
7948
7948
  } = useToken$n();
@@ -8501,22 +8501,20 @@ const useHeader = _ref => {
8501
8501
  const {
8502
8502
  useToken: useToken$m
8503
8503
  } = antd.theme;
8504
- function BreadCrumbs(_ref) {
8505
- let {
8506
- breadcrumbs = [],
8507
- mainContWidth = 0
8508
- } = _ref;
8504
+ function BreadCrumbs({
8505
+ breadcrumbs = [],
8506
+ mainContWidth = 0
8507
+ }) {
8509
8508
  const [splitIndex, setSplitIndex] = React.useState(0);
8510
8509
  const {
8511
8510
  token
8512
8511
  } = useToken$m();
8513
- const _renderBreadcrumb = function (b, i, isLast) {
8514
- let noOnClickLast = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8512
+ const _renderBreadcrumb = (b, i, isLast, noOnClickLast = false) => {
8515
8513
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
8516
8514
  className: "flex breadcrumb-item",
8517
- onClick: noOnClickLast && isLast ? undefined : b === null || b === void 0 ? void 0 : b.onClick,
8515
+ onClick: noOnClickLast && isLast ? undefined : b?.onClick,
8518
8516
  children: [/*#__PURE__*/jsxRuntime.jsx("span", {
8519
- children: b === null || b === void 0 ? void 0 : b.label
8517
+ children: b?.label
8520
8518
  }), !isLast && /*#__PURE__*/jsxRuntime.jsx("div", {
8521
8519
  className: "flex flex-column justify-content-center",
8522
8520
  children: /*#__PURE__*/jsxRuntime.jsx(CustomIcon, {
@@ -8526,7 +8524,7 @@ function BreadCrumbs(_ref) {
8526
8524
  color: token.baseGray50
8527
8525
  })
8528
8526
  })]
8529
- }, "breadcrumb-item-".concat(i));
8527
+ }, `breadcrumb-item-${i}`);
8530
8528
  };
8531
8529
  React.useEffect(() => {
8532
8530
  const _placeholderCont = document.getElementById("header-breadcrumbs");
@@ -8569,7 +8567,7 @@ function BreadCrumbs(_ref) {
8569
8567
  placement: "bottomRight",
8570
8568
  menu: {
8571
8569
  items: groupedBreadCrumbs[2].map((it, i) => ({
8572
- key: "items-".concat(i),
8570
+ key: `items-${i}`,
8573
8571
  label: it.label,
8574
8572
  onClick: it.onClick
8575
8573
  }))
@@ -8664,7 +8662,7 @@ DAFHeader.propTypes = {
8664
8662
  filtersConfig: PropTypes__default["default"].any
8665
8663
  };
8666
8664
 
8667
- const _excluded$u = ["tabs", "onChange", "value", "className"];
8665
+ const _excluded$v = ["tabs", "onChange", "value", "className"];
8668
8666
  function TabsHeader(_ref) {
8669
8667
  let {
8670
8668
  tabs = [],
@@ -8672,7 +8670,7 @@ function TabsHeader(_ref) {
8672
8670
  value = '',
8673
8671
  className = 'mt-2'
8674
8672
  } = _ref,
8675
- rest = _objectWithoutProperties(_ref, _excluded$u);
8673
+ rest = _objectWithoutProperties(_ref, _excluded$v);
8676
8674
  return /*#__PURE__*/jsxRuntime.jsx("div", {
8677
8675
  className: formatClassname(['daf-tabs-header pl-6 pr-6', className]),
8678
8676
  children: /*#__PURE__*/jsxRuntime.jsx(antd.Tabs, _objectSpread2({
@@ -8769,7 +8767,7 @@ DrawerHeader.propTypes = {
8769
8767
  tabsConfig: PropTypes__default["default"].any
8770
8768
  };
8771
8769
 
8772
- const _excluded$t = ["label", "onClick", "icon", "type", "tooltip", "disabled", "loading", "style", "className"];
8770
+ const _excluded$u = ["label", "onClick", "icon", "type", "tooltip", "disabled", "loading", "style", "className"];
8773
8771
  const useFooter = _ref => {
8774
8772
  let {
8775
8773
  leftContent,
@@ -8804,7 +8802,7 @@ const useFooter = _ref => {
8804
8802
  style = {},
8805
8803
  className = ""
8806
8804
  } = button,
8807
- restProps = _objectWithoutProperties(button, _excluded$t);
8805
+ restProps = _objectWithoutProperties(button, _excluded$u);
8808
8806
  return /*#__PURE__*/jsxRuntime.jsx(DafButton, _objectSpread2({
8809
8807
  content: label,
8810
8808
  type: type,
@@ -8831,8 +8829,8 @@ const useFooter = _ref => {
8831
8829
  };
8832
8830
  };
8833
8831
 
8834
- var _templateObject$d;
8835
- const FooterContainer = styled__default["default"].div(_templateObject$d || (_templateObject$d = _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"])));
8832
+ var _templateObject$e;
8833
+ const FooterContainer = styled__default["default"].div(_templateObject$e || (_templateObject$e = _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"])));
8836
8834
 
8837
8835
  function DAFFooter(_ref) {
8838
8836
  let {
@@ -9561,29 +9559,24 @@ const processConditionalTableKeys = (tableKeys, item) => {
9561
9559
  });
9562
9560
  return processedKeys;
9563
9561
  };
9564
- const renderFieldData = function (type, value, user, config) {
9565
- let getApiBaseUrl = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : () => {};
9566
- let getAppHeader = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : () => {};
9567
- let app = arguments.length > 6 ? arguments[6] : undefined;
9568
- let allValues = arguments.length > 7 ? arguments[7] : undefined;
9569
- let formValues = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : {};
9562
+ const renderFieldData = (type, value, user, config, getApiBaseUrl = () => {}, getAppHeader = () => {}, app, allValues, formValues = {}) => {
9570
9563
  switch (type) {
9571
9564
  case 'year':
9572
9565
  return value !== '-' ? renderDateFormatted(value, 'YYYY', 'en') : '-';
9573
9566
  case 'date':
9574
9567
  {
9575
- const language = user !== null && user !== void 0 && user.language && (user === null || user === void 0 ? void 0 : user.language) === 'sp' ? 'es' : user === null || user === void 0 ? void 0 : user.language;
9568
+ const language = user?.language && user?.language === 'sp' ? 'es' : user?.language;
9576
9569
  return value !== '-' ? renderDateFormatted(value, 'DD MMM YYYY', language || 'en') : '-';
9577
9570
  }
9578
9571
  case 'select':
9579
9572
  {
9580
- const options = (config === null || config === void 0 ? void 0 : config.options) || [];
9573
+ const options = config?.options || [];
9581
9574
  const option = findOptions(value, options);
9582
9575
  return option;
9583
9576
  }
9584
9577
  case 'multiselect':
9585
9578
  {
9586
- const options = (config === null || config === void 0 ? void 0 : config.options) || [];
9579
+ const options = config?.options || [];
9587
9580
  const _val = typeof value === 'string' ? value.split(',').map(v => v.trim()) : value;
9588
9581
  const option = findOptions(_val, options);
9589
9582
  return option.join(', ');
@@ -9598,7 +9591,7 @@ const renderFieldData = function (type, value, user, config) {
9598
9591
  formValues: formValues
9599
9592
  });
9600
9593
  case 'percentage':
9601
- return value === '-' || value === null || value === undefined ? '-' : "".concat(value, " %");
9594
+ return value === '-' || value === null || value === undefined ? '-' : `${value} %`;
9602
9595
  case 'geolocation':
9603
9596
  {
9604
9597
  const val = JSON.parse(value) || {};
@@ -9612,7 +9605,7 @@ const renderFieldData = function (type, value, user, config) {
9612
9605
  case 'upload':
9613
9606
  case 'videoUpload':
9614
9607
  {
9615
- const documentName = allValues === null || allValues === void 0 ? void 0 : allValues.map(item => item === null || item === void 0 ? void 0 : item.name).join(', ');
9608
+ const documentName = allValues?.map(item => item?.name).join(', ');
9616
9609
  return documentName;
9617
9610
  }
9618
9611
  default:
@@ -11690,7 +11683,7 @@ Widget.propTypes = {
11690
11683
  };
11691
11684
  Widget.displayName = 'Widget';
11692
11685
 
11693
- const _excluded$s = ["loading", "title", "image", "description", "imgAlt", "noDescriptionText", "isPdf"];
11686
+ const _excluded$t = ["loading", "title", "image", "description", "imgAlt", "noDescriptionText", "isPdf"];
11694
11687
  function ImageWidget(_ref) {
11695
11688
  let {
11696
11689
  loading = false,
@@ -11701,7 +11694,7 @@ function ImageWidget(_ref) {
11701
11694
  noDescriptionText,
11702
11695
  isPdf = false
11703
11696
  } = _ref,
11704
- props = _objectWithoutProperties(_ref, _excluded$s);
11697
+ props = _objectWithoutProperties(_ref, _excluded$t);
11705
11698
  const expandable = isPdf ? false : props.expandable;
11706
11699
  return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
11707
11700
  loading: loading,
@@ -11760,8 +11753,8 @@ function ImageWidget(_ref) {
11760
11753
  }
11761
11754
  ImageWidget.displayName = 'ImageWidget';
11762
11755
 
11763
- var _templateObject$c;
11764
- const _excluded$r = ["title", "loading", "data", "current", "defaultActiveTab", "widgetClassname", "className", "direction"];
11756
+ var _templateObject$d;
11757
+ const _excluded$s = ["title", "loading", "data", "current", "defaultActiveTab", "widgetClassname", "className", "direction"];
11765
11758
  function FlowWidget(_ref) {
11766
11759
  let {
11767
11760
  title,
@@ -11773,7 +11766,7 @@ function FlowWidget(_ref) {
11773
11766
  className,
11774
11767
  direction = "horizontal"
11775
11768
  } = _ref,
11776
- rest = _objectWithoutProperties(_ref, _excluded$r);
11769
+ rest = _objectWithoutProperties(_ref, _excluded$s);
11777
11770
  const [activeTab, setActiveTab] = React.useState();
11778
11771
  React.useEffect(() => {
11779
11772
  if (defaultActiveTab) {
@@ -11910,7 +11903,7 @@ function Icon(_ref2) {
11910
11903
  return icon(status);
11911
11904
  }
11912
11905
  }
11913
- const Style$P = styled__default["default"].div(_templateObject$c || (_templateObject$c = _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"])));
11906
+ const Style$P = styled__default["default"].div(_templateObject$d || (_templateObject$d = _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"])));
11914
11907
  FlowWidget.propTypes = {
11915
11908
  title: PropTypes__default["default"].string,
11916
11909
  loading: PropTypes__default["default"].bool,
@@ -12325,12 +12318,8 @@ const Style$N = styled__default["default"].div`
12325
12318
  border-left: none;
12326
12319
  border-bottom: none;
12327
12320
 
12328
- /* Add separator line for each item (except items in the last row) */
12329
- /* Items 1-4 (rows 1 and 2) get separator, items 5-6 (last row) don't */
12330
- &:nth-child(1),
12331
- &:nth-child(2),
12332
- &:nth-child(3),
12333
- &:nth-child(4) {
12321
+ /* Add separator line for all items except the last two (last items in each column) */
12322
+ &:not(:nth-last-child(-n+2)) {
12334
12323
  &::after {
12335
12324
  content: '';
12336
12325
  position: absolute;
@@ -12452,7 +12441,7 @@ const NoMinWidth = styled__default["default"].div`
12452
12441
  }
12453
12442
  `;
12454
12443
 
12455
- var _templateObject$b;
12444
+ var _templateObject$c;
12456
12445
  function ActivityIndicatorsWidget(_ref) {
12457
12446
  let {
12458
12447
  t = s => s,
@@ -12538,12 +12527,18 @@ function Label$1(_ref2) {
12538
12527
  * @param {string} configItem.type - "empty" | "compliant" | "notCompliant"
12539
12528
  * @param {Function} configItem.onClick - Optional callback for empty type
12540
12529
  * @param {string} configItem.statusIcon - Optional custom icon name for status badge (overrides default)
12530
+ * @param {string} configItem.statusIconColor - Optional custom color for status icon
12531
+ * @param {string} configItem.statusBadgeBackgroundColor - Optional custom background color for status badge
12532
+ * @param {string} configItem.statusBadgeBorderColor - Optional custom border color for status badge
12541
12533
  */
12542
12534
  function renderStatus$1(configItem) {
12543
12535
  const {
12544
12536
  type,
12545
12537
  onClick,
12546
- statusIcon
12538
+ statusIcon,
12539
+ statusIconColor,
12540
+ statusBadgeBackgroundColor,
12541
+ statusBadgeBorderColor
12547
12542
  } = configItem;
12548
12543
  switch (type) {
12549
12544
  case "empty":
@@ -12559,21 +12554,29 @@ function renderStatus$1(configItem) {
12559
12554
  case "compliant":
12560
12555
  return /*#__PURE__*/jsxRuntime.jsx(StatusBadge, {
12561
12556
  className: "status-badge compliant border",
12557
+ style: {
12558
+ backgroundColor: statusBadgeBackgroundColor || "#ECFDF3",
12559
+ borderColor: statusBadgeBorderColor || "#A7F3D0"
12560
+ },
12562
12561
  children: /*#__PURE__*/jsxRuntime.jsx(CustomIcon, {
12563
12562
  name: statusIcon || "Check",
12564
12563
  width: 14,
12565
12564
  height: 14,
12566
- color: "#12B76A"
12565
+ color: statusIconColor || "#12B76A"
12567
12566
  })
12568
12567
  });
12569
12568
  case "notCompliant":
12570
12569
  return /*#__PURE__*/jsxRuntime.jsx(StatusBadge, {
12571
12570
  className: "status-badge not-compliant border",
12571
+ style: {
12572
+ backgroundColor: statusBadgeBackgroundColor || "#FEF3F2",
12573
+ borderColor: statusBadgeBorderColor || "#FECACA"
12574
+ },
12572
12575
  children: /*#__PURE__*/jsxRuntime.jsx(CustomIcon, {
12573
12576
  name: statusIcon || "Close",
12574
12577
  width: 14,
12575
12578
  height: 14,
12576
- color: "#D92D20"
12579
+ color: statusIconColor || "#D92D20"
12577
12580
  })
12578
12581
  });
12579
12582
  default:
@@ -12587,7 +12590,7 @@ function renderStatus$1(configItem) {
12587
12590
  });
12588
12591
  }
12589
12592
  }
12590
- const StatusBadge = styled__default["default"].div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n\twidth: 24px;\n\theight: 24px;\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\n\t&.compliant {\n\t\tbackground-color: #ECFDF3;\n\t\tborder: 1px solid #A7F3D0;\n\t}\n\n\t&.not-compliant {\n\t\tbackground-color: #FEF3F2;\n\t\tborder: 1px solid #FECACA;\n\t}\n\n\t&.empty {\n\t\tbackground-color: #F9FAFB;\n\t\tborder: 1px solid #E5E7EB;\n\t}\n"])));
12593
+ const StatusBadge = styled__default["default"].div(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral(["\n\twidth: 24px;\n\theight: 24px;\n\tborder-radius: 50%;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tflex-shrink: 0;\n\n\t&.compliant {\n\t\tbackground-color: #ECFDF3;\n\t\tborder: 1px solid #A7F3D0;\n\t}\n\n\t&.not-compliant {\n\t\tbackground-color: #FEF3F2;\n\t\tborder: 1px solid #FECACA;\n\t}\n\n\t&.empty {\n\t\tbackground-color: #F9FAFB;\n\t\tborder: 1px solid #E5E7EB;\n\t}\n"])));
12591
12594
  ActivityIndicatorsWidget.displayName = "ActivityIndicatorsWidget";
12592
12595
 
12593
12596
  function TooltipIcon(_ref) {
@@ -15479,7 +15482,7 @@ Map$3.propTypes = {
15479
15482
  link: PropTypes__default["default"].any
15480
15483
  };
15481
15484
 
15482
- const _excluded$q = ["isExpanded", "shouldRenderMap", "renderKey", "title", "loading", "t", "user", "data", "height", "widgetConfig"];
15485
+ const _excluded$r = ["isExpanded", "shouldRenderMap", "renderKey", "title", "loading", "t", "user", "data", "height", "widgetConfig"];
15483
15486
  function InExpandableWidgetMap(_ref) {
15484
15487
  let {
15485
15488
  isExpanded,
@@ -15493,7 +15496,7 @@ function InExpandableWidgetMap(_ref) {
15493
15496
  height,
15494
15497
  widgetConfig
15495
15498
  } = _ref,
15496
- rest = _objectWithoutProperties(_ref, _excluded$q);
15499
+ rest = _objectWithoutProperties(_ref, _excluded$r);
15497
15500
  const [mapKey, setMapKey] = React.useState(0);
15498
15501
  const [isMapReady, setIsMapReady] = React.useState(false);
15499
15502
  React.useEffect(() => {
@@ -17693,14 +17696,14 @@ const MapConfig = ({
17693
17696
  });
17694
17697
  };
17695
17698
 
17696
- const _excluded$p = ["config", "title", "loading"];
17699
+ const _excluded$q = ["config", "title", "loading"];
17697
17700
  const Details = _ref => {
17698
17701
  let {
17699
17702
  config = [],
17700
17703
  title,
17701
17704
  loading = false
17702
17705
  } = _ref,
17703
- rest = _objectWithoutProperties(_ref, _excluded$p);
17706
+ rest = _objectWithoutProperties(_ref, _excluded$q);
17704
17707
  return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
17705
17708
  className: "with-border-header h-w-btn-header card",
17706
17709
  loading: loading,
@@ -17716,14 +17719,14 @@ const Details = _ref => {
17716
17719
  }));
17717
17720
  };
17718
17721
 
17719
- const _excluded$o = ["config", "title", "loading"];
17722
+ const _excluded$p = ["config", "title", "loading"];
17720
17723
  const KeyIndicatorsDetails = _ref => {
17721
17724
  let {
17722
17725
  config,
17723
17726
  title,
17724
17727
  loading = false
17725
17728
  } = _ref,
17726
- rest = _objectWithoutProperties(_ref, _excluded$o);
17729
+ rest = _objectWithoutProperties(_ref, _excluded$p);
17727
17730
  return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
17728
17731
  className: "with-border-header h-w-btn-header",
17729
17732
  title: title,
@@ -17753,7 +17756,7 @@ const Style$G = styled__default["default"].div`
17753
17756
  }
17754
17757
  `;
17755
17758
 
17756
- const _excluded$n = ["children", "config", "detailsTitle", "firstColumnWidth"];
17759
+ const _excluded$o = ["children", "config", "detailsTitle", "firstColumnWidth"];
17757
17760
  const DetailsSection = _ref => {
17758
17761
  let {
17759
17762
  children,
@@ -17761,7 +17764,7 @@ const DetailsSection = _ref => {
17761
17764
  detailsTitle,
17762
17765
  firstColumnWidth = "250px"
17763
17766
  } = _ref,
17764
- rest = _objectWithoutProperties(_ref, _excluded$n);
17767
+ rest = _objectWithoutProperties(_ref, _excluded$o);
17765
17768
  return /*#__PURE__*/jsxRuntime.jsx(Style$G, {
17766
17769
  firstColumnWidth: firstColumnWidth,
17767
17770
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
@@ -17936,15 +17939,15 @@ const getGoalConfig = () => {
17936
17939
  }];
17937
17940
  };
17938
17941
 
17939
- var _templateObject$a;
17940
- const _excluded$m = ["title", "activeSdgGoals", "t"];
17942
+ var _templateObject$b;
17943
+ const _excluded$n = ["title", "activeSdgGoals", "t"];
17941
17944
  function SDGWidget(_ref) {
17942
17945
  let {
17943
17946
  title = "Sustainable Development Goals",
17944
17947
  activeSdgGoals = [],
17945
17948
  t = key => key
17946
17949
  } = _ref,
17947
- props = _objectWithoutProperties(_ref, _excluded$m);
17950
+ props = _objectWithoutProperties(_ref, _excluded$n);
17948
17951
  const sdgConfig = getGoalConfig();
17949
17952
  return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
17950
17953
  title: title,
@@ -17965,10 +17968,10 @@ function SDGWidget(_ref) {
17965
17968
  })
17966
17969
  }));
17967
17970
  }
17968
- const SDGContainer = styled__default["default"].div(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(53px, 1fr));\n\tgap: 8px;\n\n\t.sdg-item {\n\t\theight: 53px;\n\t\twidth: 53px;\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"])));
17971
+ const SDGContainer = styled__default["default"].div(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(53px, 1fr));\n\tgap: 8px;\n\n\t.sdg-item {\n\t\theight: 53px;\n\t\twidth: 53px;\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"])));
17969
17972
 
17970
- var _templateObject$9;
17971
- const Style$F = styled__default["default"].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\tcursor: default;\n\t}\n"])));
17973
+ var _templateObject$a;
17974
+ const Style$F = styled__default["default"].div(_templateObject$a || (_templateObject$a = _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\tcursor: default;\n\t}\n"])));
17972
17975
 
17973
17976
  /**
17974
17977
  * ComponentWithHoverFocus
@@ -18242,7 +18245,7 @@ function SdgList({
18242
18245
  });
18243
18246
  }
18244
18247
 
18245
- const _excluded$l = ["title", "description", "onLinkClick", "image", "linkIcon", "sdgList", "items", "onCardClick", "hideSDGList", "t"];
18248
+ const _excluded$m = ["title", "description", "onLinkClick", "image", "linkIcon", "sdgList", "items", "onCardClick", "hideSDGList", "t"];
18246
18249
  const {
18247
18250
  Meta
18248
18251
  } = antd.Card;
@@ -18262,7 +18265,7 @@ function ProjectWidget(_ref) {
18262
18265
  hideSDGList = false,
18263
18266
  t = x => x
18264
18267
  } = _ref,
18265
- props = _objectWithoutProperties(_ref, _excluded$l);
18268
+ props = _objectWithoutProperties(_ref, _excluded$m);
18266
18269
  const [isHovered, setIsHovered] = React__default["default"].useState(false);
18267
18270
  const {
18268
18271
  token
@@ -18534,13 +18537,13 @@ const WidgetCard = _ref => {
18534
18537
  });
18535
18538
  };
18536
18539
 
18537
- const _excluded$k = ["title", "children"];
18540
+ const _excluded$l = ["title", "children"];
18538
18541
  const CarouselWidget = /*#__PURE__*/React.forwardRef((_ref, ref) => {
18539
18542
  let {
18540
18543
  title,
18541
18544
  children
18542
18545
  } = _ref,
18543
- rest = _objectWithoutProperties(_ref, _excluded$k);
18546
+ rest = _objectWithoutProperties(_ref, _excluded$l);
18544
18547
  /**
18545
18548
  * Handles carousel slide change events
18546
18549
  * @param {number} currentSlide - The index of the current slide after change
@@ -18704,7 +18707,7 @@ const EmptyStateContainer = styled__default["default"].div`
18704
18707
  }
18705
18708
  `;
18706
18709
 
18707
- const _excluded$j = ["title", "images", "height", "fallback", "activeDotColor", "inactiveDotColor", "arrowIconColor", "arrowHoverIconColor", "customArrows", "emptyLogo", "emptyText"];
18710
+ const _excluded$k = ["title", "images", "height", "fallback", "activeDotColor", "inactiveDotColor", "arrowIconColor", "arrowHoverIconColor", "customArrows", "emptyLogo", "emptyText"];
18708
18711
  function ImageCarousel(_ref) {
18709
18712
  let {
18710
18713
  title,
@@ -18719,7 +18722,7 @@ function ImageCarousel(_ref) {
18719
18722
  emptyLogo = antd.Empty.PRESENTED_IMAGE_SIMPLE,
18720
18723
  emptyText = "No Image"
18721
18724
  } = _ref,
18722
- rest = _objectWithoutProperties(_ref, _excluded$j);
18725
+ rest = _objectWithoutProperties(_ref, _excluded$k);
18723
18726
  const [previewVisible, setPreviewVisible] = React.useState(false);
18724
18727
  const [current, setCurrent] = React.useState(0);
18725
18728
  const carouselRef = React.useRef(null);
@@ -19017,6 +19020,167 @@ const StatCard = _ref => {
19017
19020
  }));
19018
19021
  };
19019
19022
 
19023
+ const VEGETATION_KEYS = {
19024
+ HEALTHY: "healthy",
19025
+ WHITE_SPOTS: "white",
19026
+ BLACK_SPOTS: "black",
19027
+ REDDISH_SPOTS: "reddish",
19028
+ YELLOWING: "yellowing",
19029
+ MOSAIC: "mosaic",
19030
+ DRY_OR_DEAD: "dryOrDead",
19031
+ NO_LEAVES: "noLeaves",
19032
+ SPIDER_WEBS: "spiderWebs",
19033
+ DAMAGE_FROM_INSECTS: "damageFromInsects"
19034
+ };
19035
+
19036
+ // Mapping from growthObservations keys to VEGETATION_KEYS
19037
+ const GROWTH_OBSERVATIONS_TO_VEGETATION_KEYS = {
19038
+ "white_spots": VEGETATION_KEYS.WHITE_SPOTS,
19039
+ "healthy_leaves": VEGETATION_KEYS.HEALTHY,
19040
+ "yellowing_leaves": VEGETATION_KEYS.YELLOWING,
19041
+ "leaf_mosaic": VEGETATION_KEYS.MOSAIC,
19042
+ "dry_dead_leaves": VEGETATION_KEYS.DRY_OR_DEAD,
19043
+ "no_leaves": VEGETATION_KEYS.NO_LEAVES,
19044
+ "black_spots": VEGETATION_KEYS.BLACK_SPOTS,
19045
+ "reddish_spots": VEGETATION_KEYS.REDDISH_SPOTS,
19046
+ "spider_webs": VEGETATION_KEYS.SPIDER_WEBS,
19047
+ "insect_damage": VEGETATION_KEYS.DAMAGE_FROM_INSECTS
19048
+ };
19049
+ const getVegetationConfig = () => {
19050
+ return [{
19051
+ img: "/Vegetation/healthy.svg",
19052
+ key: VEGETATION_KEYS.HEALTHY,
19053
+ disabled: "/Vegetation/healthy-default.svg"
19054
+ }, {
19055
+ img: "/Vegetation/white.svg",
19056
+ key: VEGETATION_KEYS.WHITE_SPOTS,
19057
+ disabled: "/Vegetation/white-default.svg"
19058
+ }, {
19059
+ img: "/Vegetation/black.svg",
19060
+ key: VEGETATION_KEYS.BLACK_SPOTS,
19061
+ disabled: "/Vegetation/black-default.svg"
19062
+ }, {
19063
+ img: "/Vegetation/reddish.svg",
19064
+ key: VEGETATION_KEYS.REDDISH_SPOTS,
19065
+ disabled: "/Vegetation/reddish-default.svg"
19066
+ }, {
19067
+ img: "/Vegetation/yellowing.svg",
19068
+ key: VEGETATION_KEYS.YELLOWING,
19069
+ disabled: "/Vegetation/yellowing-default.svg"
19070
+ }, {
19071
+ img: "/Vegetation/mosaic.svg",
19072
+ key: VEGETATION_KEYS.MOSAIC,
19073
+ disabled: "/Vegetation/mosaic-default.svg"
19074
+ }, {
19075
+ img: "/Vegetation/dry-or-dead.svg",
19076
+ key: VEGETATION_KEYS.DRY_OR_DEAD,
19077
+ disabled: "/Vegetation/dry-or-dead-default.svg"
19078
+ }, {
19079
+ img: "/Vegetation/no-leaves.svg",
19080
+ key: VEGETATION_KEYS.NO_LEAVES,
19081
+ disabled: "/Vegetation/no-leaves-default.svg"
19082
+ }, {
19083
+ img: "/Vegetation/spider-webs.svg",
19084
+ key: VEGETATION_KEYS.SPIDER_WEBS,
19085
+ disabled: "/Vegetation/spider-webs-default.svg"
19086
+ }, {
19087
+ img: "/Vegetation/damage-from-insects.svg",
19088
+ key: VEGETATION_KEYS.DAMAGE_FROM_INSECTS,
19089
+ disabled: "/Vegetation/damage-from-insects-default.svg"
19090
+ }];
19091
+ };
19092
+
19093
+ var _templateObject$9, _templateObject2$1;
19094
+ const _excluded$j = ["title", "activeVegetationConditions", "filterKeys", "columnsPerRow", "itemWidth", "itemHeight", "growthObservations", "t"];
19095
+ function VegetationWidget(_ref) {
19096
+ let {
19097
+ title = "Vegetation Health",
19098
+ activeVegetationConditions = [],
19099
+ filterKeys = null,
19100
+ columnsPerRow = null,
19101
+ itemWidth = 140.33,
19102
+ itemHeight = 140,
19103
+ growthObservations = [],
19104
+ t = key => key
19105
+ } = _ref,
19106
+ props = _objectWithoutProperties(_ref, _excluded$j);
19107
+ let vegetationConfig = getVegetationConfig();
19108
+
19109
+ // Get all VEGETATION_KEYS values before filtering (needed for mapping check)
19110
+ const allVegetationKeys = vegetationConfig.map(item => item.key);
19111
+
19112
+ // Filter to show only specific keys if filterKeys is provided
19113
+ if (filterKeys && Array.isArray(filterKeys)) {
19114
+ vegetationConfig = vegetationConfig.filter(item => filterKeys.includes(item.key));
19115
+ }
19116
+
19117
+ // Map growthObservations to VEGETATION_KEYS
19118
+ // Handle both formats: growthObservations keys (e.g., "yellowing_leaves") and VEGETATION_KEYS (e.g., "yellowing")
19119
+ const mappedGrowthObservations = Array.isArray(growthObservations) ? growthObservations.map(obs => {
19120
+ // First try to map from growthObservations format
19121
+ const mapped = GROWTH_OBSERVATIONS_TO_VEGETATION_KEYS[obs];
19122
+ if (mapped) {
19123
+ return mapped;
19124
+ }
19125
+ // If not mapped, check if it's already a VEGETATION_KEY value
19126
+ if (allVegetationKeys.includes(obs)) {
19127
+ return obs;
19128
+ }
19129
+ // Debug: log unmapped observations
19130
+ if (obs) {
19131
+ console.warn("VegetationWidget: Unmapped growthObservation \"".concat(obs, "\""));
19132
+ }
19133
+ return null;
19134
+ }).filter(Boolean) : [];
19135
+ return /*#__PURE__*/jsxRuntime.jsx(Widget, _objectSpread2(_objectSpread2({
19136
+ title: title,
19137
+ className: "with-border-header"
19138
+ }, props), {}, {
19139
+ children: /*#__PURE__*/jsxRuntime.jsx(VegetationWrapper, {
19140
+ $columnsPerRow: columnsPerRow,
19141
+ children: /*#__PURE__*/jsxRuntime.jsx(VegetationContainer, {
19142
+ $columnsPerRow: columnsPerRow,
19143
+ $itemWidth: itemWidth,
19144
+ $itemHeight: itemHeight,
19145
+ children: vegetationConfig.map(item => {
19146
+ // Use colored SVG if the item's key exists in growthObservations (mapped)
19147
+ // Otherwise use default SVG
19148
+ // Also check activeVegetationConditions for backward compatibility
19149
+ const isInGrowthObservations = mappedGrowthObservations.includes(item.key);
19150
+ const isInActiveConditions = activeVegetationConditions.includes(item.key);
19151
+
19152
+ // Use colored SVG if it exists in growthObservations OR activeVegetationConditions
19153
+ const shouldUseColored = isInGrowthObservations || isInActiveConditions;
19154
+
19155
+ // Debug logging for yellowing specifically
19156
+ if (item.key === "yellowing") {
19157
+ console.log("Yellowing debug:", {
19158
+ itemKey: item.key,
19159
+ growthObservations,
19160
+ mappedGrowthObservations,
19161
+ isInGrowthObservations,
19162
+ isInActiveConditions,
19163
+ shouldUseColored,
19164
+ img: item.img,
19165
+ disabled: item.disabled
19166
+ });
19167
+ }
19168
+ return /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
19169
+ title: t("straatos::".concat(item.key)),
19170
+ children: /*#__PURE__*/jsxRuntime.jsx("img", {
19171
+ src: shouldUseColored ? item.img : item.disabled,
19172
+ className: "vegetation-item",
19173
+ alt: item.key
19174
+ }, item.key)
19175
+ }, item.key);
19176
+ })
19177
+ })
19178
+ })
19179
+ }));
19180
+ }
19181
+ const VegetationWrapper = styled__default["default"].div(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral(["\n\t", "\n"])), props => props.$columnsPerRow ? "\n\t\toverflow-x: auto;\n\t\twidth: 100%;\n\t" : '');
19182
+ const VegetationContainer = styled__default["default"].div(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tgrid-template-columns: ", ";\n\tgap: 24px;\n\t", "\n\n\t.vegetation-item {\n\t\twidth: 100%;\n\t\taspect-ratio: ", ";\n\t\tborder-radius: 7px;\n\t\tflex-shrink: 0;\n\t\n\t\tbackground-size: cover;\n\t\tbackground-position: center;\n\t\tbackground-repeat: no-repeat;\n\t}\n\n\t.vegetation-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"])), props => props.$columnsPerRow ? "repeat(".concat(props.$columnsPerRow, ", 1fr)") : "repeat(auto-fit, minmax(".concat(props.$itemWidth, "px, 1fr))"), props => props.$columnsPerRow ? "\n\t\twidth: 100%;\n\t" : '', props => props.$itemWidth / props.$itemHeight);
19183
+
19020
19184
  var Style$C = styled__default["default"].div`
19021
19185
  border: 1px solid var(--base-gray-40);
19022
19186
  padding: 12px;
@@ -25185,6 +25349,9 @@ class VersionService extends BaseService {
25185
25349
  var VersionService$1 = createLazyService(VersionService);
25186
25350
 
25187
25351
  const getSourcesType = subject => {
25352
+ console.log({
25353
+ subject
25354
+ });
25188
25355
  const typeMapping = {
25189
25356
  locations: "location",
25190
25357
  location: "location",
@@ -25198,7 +25365,8 @@ const getSourcesType = subject => {
25198
25365
  events: "event",
25199
25366
  event: "event",
25200
25367
  activities: "event",
25201
- incidents: "event"
25368
+ incidents: "event",
25369
+ "planting-cycle": "planting-cycle"
25202
25370
  };
25203
25371
  return typeMapping[subject] ?? null;
25204
25372
  };
@@ -51038,7 +51206,7 @@ const BaseScreen = _ref => {
51038
51206
  */
51039
51207
  const renderNumber = (val, doubleDigit = false) => {
51040
51208
  if (typeof val !== 'number') {
51041
- return '--';
51209
+ return '-';
51042
51210
  }
51043
51211
  const _string = Number(val).toLocaleString('en-us');
51044
51212
  if (doubleDigit) {
@@ -62687,6 +62855,7 @@ exports.TabsHeader = TabsHeader;
62687
62855
  exports.TooltipIcon = TooltipIcon;
62688
62856
  exports.TradeRelationship = index$1;
62689
62857
  exports.UserTable = UserTable;
62858
+ exports.VegetationHealth = VegetationWidget;
62690
62859
  exports.ViewForm = Content$1;
62691
62860
  exports.ViewFormInput = Input;
62692
62861
  exports.ViewFormNavigation = Navigation;