datastake-daf 0.6.147 → 0.6.149
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +13 -0
- package/dist/components/index.css +1 -1
- package/dist/components/index.js +482 -205
- package/dist/utils/index.js +22 -5
- package/package.json +1 -1
- package/public/assets/images/SVG/403.svg +20 -0
- package/public/assets/images/SVG/404.svg +11 -0
- package/public/assets/images/SVG/CADD.svg +27 -0
- package/public/assets/images/SVG/InDevelopment.svg +24 -0
- package/public/assets/images/SVG/PME.svg +21 -0
- package/public/assets/images/SVG/comment-alt.svg +3 -0
- package/public/assets/images/SVG/comment.svg +3 -0
- package/public/assets/images/SVG/coordinator.svg +3 -0
- package/public/assets/images/SVG/implementer.svg +3 -0
- package/public/assets/images/SVG/logo-horizontal.svg +1 -0
- package/public/assets/images/SVG/partner-building.svg +3 -0
- package/public/assets/images/SVG/partner.svg +5 -0
- package/public/assets/images/SVG/unavailable-info.svg +16 -0
- package/public/assets/images/SVG/vault.svg +6 -0
- package/public/assets/images/app-navigation/mmt-logo.svg +32 -0
- package/public/assets/images/app-navigation/tazama-logo.svg +31 -0
- package/public/assets/images/app-navigation/tif-logo.svg +33 -0
- package/public/assets/images/applications/arm-prev.png +0 -0
- package/public/assets/images/applications/asm-icon.svg +29 -0
- package/public/assets/images/applications/kota-logo.svg +4 -0
- package/public/assets/images/applications/mmt-logo-2.svg +5 -0
- package/public/assets/images/applications/mmt-logo.svg +6 -0
- package/public/assets/images/applications/mmt-prev.png +0 -0
- package/public/assets/images/applications/sbgi_logo.png +0 -0
- package/public/assets/images/applications/tazama-home-img.jpeg +0 -0
- package/public/assets/images/applications/tazama-logo.svg +9 -0
- package/public/assets/images/applications/tif-app.png +0 -0
- package/public/assets/images/applications/tif-logo.svg +9 -0
- package/public/assets/images/auth-bg-2.svg +296 -0
- package/public/assets/images/auth-bg.svg +303 -0
- package/public/assets/images/countries/fr.png +0 -0
- package/public/assets/images/countries/gb.png +0 -0
- package/public/assets/images/countries/sp.png +0 -0
- package/public/assets/images/dashboard/amp-dashboard/empty.png +0 -0
- package/public/assets/images/dashboard/map-icons/amp.svg +28 -0
- package/public/assets/images/dashboard/map-icons/amp_focused.svg +28 -0
- package/public/assets/images/dashboard/map-icons/amp_location_pin.svg +4 -0
- package/public/assets/images/dashboard/map-icons/datachain-icon.svg +21 -0
- package/public/assets/images/dashboard/map-icons/ellipse.svg +3 -0
- package/public/assets/images/dashboard/map-icons/lir-icon.svg +3 -0
- package/public/assets/images/dashboard/map-icons/major-incident-events-icon.svg +3 -0
- package/public/assets/images/dashboard/map-icons/minesites-location-icon.svg +21 -0
- package/public/assets/images/dashboard/map-icons/minor-incident-events-icon.svg +3 -0
- package/public/assets/images/dashboard/map-icons/moderate-incident-events-icon.svg +3 -0
- package/public/assets/images/dashboard/map-icons/other-events-icon.svg +3 -0
- package/public/assets/images/dashboard/map-icons/other-location-icon.svg +21 -0
- package/public/assets/images/dashboard/map-icons/risk-mitigation-events-icon.svg +3 -0
- package/public/assets/images/dashboard/map-icons/sca_location_pin.svg +4 -0
- package/public/assets/images/dashboard/map-icons/villages-location-icon.svg +21 -0
- package/public/assets/images/dashboard/mine-site.svg +7 -0
- package/public/assets/images/dashboard/programs/key-data.svg +12 -0
- package/public/assets/images/dashboard/programs/key-projects.svg +12 -0
- package/public/assets/images/dashboard/scl-icons/close-icon.svg +4 -0
- package/public/assets/images/dashboard/scl-icons/dot.svg +3 -0
- package/public/assets/images/dashboard/scl-icons/empty-gallery.svg +5 -0
- package/public/assets/images/dashboard/scl-icons/location-icon.svg +14 -0
- package/public/assets/images/dashboard/scl-icons/town-dot.svg +3 -0
- package/public/assets/images/dashboard/scl-icons/town-icon.svg +4 -0
- package/public/assets/images/dashboard/scl-icons/village-icon.svg +6 -0
- package/public/assets/images/dashboard/tif-products/cobalt-bg.png +0 -0
- package/public/assets/images/dashboard/tif-products/cobalt-logo.png +0 -0
- package/public/assets/images/dashboard/tif-products/gold-bg.png +0 -0
- package/public/assets/images/dashboard/tif-products/gold-logo.png +0 -0
- package/public/assets/images/datastake-logo.svg +20 -0
- package/public/assets/images/datastake-white.svg +20 -0
- package/public/assets/images/empty-box.svg +5 -0
- package/public/assets/images/find-information/business-entity.svg +4 -0
- package/public/assets/images/find-information/civil-society.svg +4 -0
- package/public/assets/images/find-information/government.svg +4 -0
- package/public/assets/images/find-information/graphs.png +0 -0
- package/public/assets/images/find-information/individual.svg +11 -0
- package/public/assets/images/find-information/non-stated-arm-group.svg +4 -0
- package/public/assets/images/find-information/other-organisation.svg +4 -0
- package/public/assets/images/find-information/state-security.svg +4 -0
- package/public/assets/images/info-channels/investor.svg +4 -0
- package/public/assets/images/info-channels/mine.svg +4 -0
- package/public/assets/images/info-channels/source.png +0 -0
- package/public/assets/images/kota-bg.jpg +0 -0
- package/public/assets/images/kota-logo-small.svg +2 -0
- package/public/assets/images/kota-logo.svg +2 -0
- package/public/assets/images/logo-new-white-icon.svg +5 -0
- package/public/assets/images/logo-new-white.svg +8 -0
- package/public/assets/images/logo-white.svg +67 -0
- package/public/assets/images/map/assessed.png +0 -0
- package/public/assets/images/map/connected.png +0 -0
- package/public/assets/images/map/disabled.png +0 -0
- package/public/assets/images/map/identified.png +0 -0
- package/public/assets/images/map/position.png +0 -0
- package/public/assets/images/map/treasure-map.png +0 -0
- package/public/assets/images/project-share-info/due-dilligence.svg +3 -0
- package/public/assets/images/project-share-info/event.svg +3 -0
- package/public/assets/images/project-share-info/location.svg +3 -0
- package/public/assets/images/project-share-info/network.svg +3 -0
- package/public/assets/images/project-share-info/stakeholder.svg +10 -0
- package/public/assets/images/tif/antelope-mine-people.png +0 -0
- package/public/assets/images/tif/gesagu-people.png +0 -0
- package/public/assets/images/tif/ironstep-people.png +0 -0
- package/public/assets/images/tif-bg.png +0 -0
- package/public/assets/images/tif-logo-small.svg +3 -0
- package/public/assets/images/tif-logo.svg +9 -0
- package/public/assets/images/verified-user-tif.png +0 -0
- package/public/assets/images/verified-user.svg +100 -0
- package/public/favicons/android-chrome-192x192.png +0 -0
- package/public/favicons/android-chrome-512x512.png +0 -0
- package/public/favicons/apple-touch-icon.png +0 -0
- package/public/favicons/favicon-16x16.png +0 -0
- package/public/favicons/favicon-32x32.png +0 -0
- package/public/favicons/favicon.ico +0 -0
- package/public/favicons/tazama/android-chrome-192x192.png +0 -0
- package/public/favicons/tazama/android-chrome-512x512.png +0 -0
- package/public/favicons/tazama/apple-touch-icon.png +0 -0
- package/public/favicons/tazama/favicon-16x16.png +0 -0
- package/public/favicons/tazama/favicon-32x32.png +0 -0
- package/public/favicons/tazama/favicon.ico +0 -0
- package/src/@daf/core/components/Dashboard/Globe/hook.js +1 -106
- package/src/@daf/core/components/Dashboard/Globe/index.jsx +1 -13
- package/src/@daf/core/components/Dashboard/Globe/style.js +0 -11
- package/src/@daf/core/components/Dashboard/Widget/KeyIndicators/index.jsx +4 -3
- package/src/@daf/core/components/Dashboard/Widget/ProjectWidget/ProjectWidget.stories.jsx +72 -0
- package/src/@daf/core/components/Dashboard/Widget/ProjectWidget/index.jsx +90 -0
- package/src/@daf/core/components/Dashboard/Widget/ProjectWidget/style.js +74 -0
- package/src/@daf/core/components/Dashboard/Widget/SDGWidget/SDGWidget.stories.jsx +33 -17
- package/src/@daf/core/components/Dashboard/Widget/SDGWidget/config.js +4 -22
- package/src/@daf/core/components/Dashboard/Widget/SDGWidget/index.jsx +3 -3
- package/src/@daf/core/components/Dashboard/Widget/index.jsx +95 -82
- package/src/@daf/core/components/ProgressTabs/_index.scss +1 -11
- package/src/constants/SDGs.js +92 -0
- package/src/constants/locales/en/translation.js +1357 -1269
- package/src/index.js +11 -6
package/dist/components/index.js
CHANGED
|
@@ -3065,7 +3065,7 @@ const config$3 = {
|
|
|
3065
3065
|
Integration: config$4
|
|
3066
3066
|
};
|
|
3067
3067
|
|
|
3068
|
-
const _excluded$
|
|
3068
|
+
const _excluded$q = ["width", "height", "size", "name", "fill"];
|
|
3069
3069
|
const CustomIcon = _ref => {
|
|
3070
3070
|
let {
|
|
3071
3071
|
width = 14,
|
|
@@ -3074,7 +3074,7 @@ const CustomIcon = _ref => {
|
|
|
3074
3074
|
name = "",
|
|
3075
3075
|
fill = "none"
|
|
3076
3076
|
} = _ref,
|
|
3077
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
3077
|
+
props = _objectWithoutProperties(_ref, _excluded$q);
|
|
3078
3078
|
const conf = config$3[name];
|
|
3079
3079
|
if (conf) {
|
|
3080
3080
|
return /*#__PURE__*/jsxRuntime.jsx("svg", _objectSpread2(_objectSpread2({}, props), {}, {
|
|
@@ -9276,7 +9276,7 @@ createCommonjsModule(function (module, exports) {
|
|
|
9276
9276
|
!function(e,n){module.exports=n();}(commonjsGlobal,(function(){return {name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var n=["th","st","nd","rd"],t=e%100;return "["+e+(n[(t-20)%10]||n[t]||n[0])+"]"}}}));
|
|
9277
9277
|
});
|
|
9278
9278
|
|
|
9279
|
-
const _excluded$
|
|
9279
|
+
const _excluded$p = ["view", "module", "scope", "form", "meta"];
|
|
9280
9280
|
dayjs__default["default"].extend(customParseFormat);
|
|
9281
9281
|
dayjs__default["default"].extend(utc);
|
|
9282
9282
|
dayjs__default["default"].extend(utc);
|
|
@@ -9650,7 +9650,7 @@ const filterCreateData = data => {
|
|
|
9650
9650
|
form,
|
|
9651
9651
|
meta
|
|
9652
9652
|
} = data,
|
|
9653
|
-
rest = _objectWithoutProperties(data, _excluded$
|
|
9653
|
+
rest = _objectWithoutProperties(data, _excluded$p);
|
|
9654
9654
|
const _meta = isObjectEmpty(meta) ? undefined : meta;
|
|
9655
9655
|
return _objectSpread2(_objectSpread2({}, rest), {}, {
|
|
9656
9656
|
meta: _meta
|
|
@@ -10035,7 +10035,7 @@ SelectFilters.propTypes = {
|
|
|
10035
10035
|
apiUrl: PropTypes__default["default"].string
|
|
10036
10036
|
};
|
|
10037
10037
|
|
|
10038
|
-
const _excluded$
|
|
10038
|
+
const _excluded$o = ["columns", "data", "defaultFilters", "style", "pagination", "loading", "onChange", "onFilterChange", "selectOptions", "filtersConfig", "rowSelection", "setShowFilters", "rowKey", "showFilters", "hideOnLoading", "sourcesKey", "className", "projects", "t", "selectedProject", "sourceId", "projectSources", "language", "scrollX", "apiUrl", "app", "doEmptyRows"];
|
|
10039
10039
|
function DAFTable(_ref) {
|
|
10040
10040
|
let {
|
|
10041
10041
|
columns = [],
|
|
@@ -10066,7 +10066,7 @@ function DAFTable(_ref) {
|
|
|
10066
10066
|
app,
|
|
10067
10067
|
doEmptyRows
|
|
10068
10068
|
} = _ref,
|
|
10069
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
10069
|
+
rest = _objectWithoutProperties(_ref, _excluded$o);
|
|
10070
10070
|
const [source, setSource] = React.useState([]);
|
|
10071
10071
|
const projectData = (projects || []).find(p => p.id === selectedProject);
|
|
10072
10072
|
const [filtersInit, setFiltersInit] = React.useState(!loading);
|
|
@@ -10788,7 +10788,7 @@ Pagination.propTypes = {
|
|
|
10788
10788
|
isMobile: PropTypes__default["default"].bool
|
|
10789
10789
|
};
|
|
10790
10790
|
|
|
10791
|
-
const _excluded$
|
|
10791
|
+
const _excluded$n = ["size", "maxHeight", "dataSource", "columns", "pagination"];
|
|
10792
10792
|
function StickyTable(_ref) {
|
|
10793
10793
|
let {
|
|
10794
10794
|
size = null,
|
|
@@ -10797,7 +10797,7 @@ function StickyTable(_ref) {
|
|
|
10797
10797
|
columns = {},
|
|
10798
10798
|
pagination = false
|
|
10799
10799
|
} = _ref,
|
|
10800
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
10800
|
+
props = _objectWithoutProperties(_ref, _excluded$n);
|
|
10801
10801
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
10802
10802
|
className: "daf-sticky-table",
|
|
10803
10803
|
children: /*#__PURE__*/jsxRuntime.jsx(antd.Table, _objectSpread2(_objectSpread2({}, props), {}, {
|
|
@@ -11262,7 +11262,7 @@ const BTN_SIZE = {
|
|
|
11262
11262
|
LG: 'large'
|
|
11263
11263
|
};
|
|
11264
11264
|
|
|
11265
|
-
const _excluded$
|
|
11265
|
+
const _excluded$m = ["content", "size", "type", "icon", "onClick", "disabled", "loading", "title", "style", "className"];
|
|
11266
11266
|
function DafButton(_ref) {
|
|
11267
11267
|
let {
|
|
11268
11268
|
content = '',
|
|
@@ -11276,7 +11276,7 @@ function DafButton(_ref) {
|
|
|
11276
11276
|
style = {},
|
|
11277
11277
|
className = ''
|
|
11278
11278
|
} = _ref,
|
|
11279
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
11279
|
+
restProps = _objectWithoutProperties(_ref, _excluded$m);
|
|
11280
11280
|
return /*#__PURE__*/jsxRuntime.jsx(antd.Button, _objectSpread2(_objectSpread2({
|
|
11281
11281
|
icon: icon,
|
|
11282
11282
|
type: type,
|
|
@@ -11510,12 +11510,12 @@ const Style$H = dt.div`
|
|
|
11510
11510
|
}
|
|
11511
11511
|
`;
|
|
11512
11512
|
|
|
11513
|
-
const _excluded$
|
|
11513
|
+
const _excluded$l = ["children"];
|
|
11514
11514
|
const BorderedButton = _ref => {
|
|
11515
11515
|
let {
|
|
11516
11516
|
children
|
|
11517
11517
|
} = _ref,
|
|
11518
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
11518
|
+
props = _objectWithoutProperties(_ref, _excluded$l);
|
|
11519
11519
|
return /*#__PURE__*/jsxRuntime.jsx(Style$H, {
|
|
11520
11520
|
className: "d-btn-cont",
|
|
11521
11521
|
children: /*#__PURE__*/jsxRuntime.jsx(antd.Button, _objectSpread2(_objectSpread2({}, props), {}, {
|
|
@@ -11524,7 +11524,7 @@ const BorderedButton = _ref => {
|
|
|
11524
11524
|
});
|
|
11525
11525
|
};
|
|
11526
11526
|
|
|
11527
|
-
var _templateObject$
|
|
11527
|
+
var _templateObject$b;
|
|
11528
11528
|
const variantConfig = {
|
|
11529
11529
|
default: {
|
|
11530
11530
|
className: "default-badge",
|
|
@@ -11642,7 +11642,7 @@ function Badge(_ref) {
|
|
|
11642
11642
|
})
|
|
11643
11643
|
});
|
|
11644
11644
|
}
|
|
11645
|
-
const Style$G = dt.div(_templateObject$
|
|
11645
|
+
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"])));
|
|
11646
11646
|
Badge.propTypes = {
|
|
11647
11647
|
children: PropTypes__default["default"].node,
|
|
11648
11648
|
className: PropTypes__default["default"].string,
|
|
@@ -11655,12 +11655,12 @@ Badge.propTypes = {
|
|
|
11655
11655
|
props: PropTypes__default["default"].object
|
|
11656
11656
|
};
|
|
11657
11657
|
|
|
11658
|
-
const _excluded$
|
|
11658
|
+
const _excluded$k = ["icon"];
|
|
11659
11659
|
function GetIcon(_ref) {
|
|
11660
11660
|
let {
|
|
11661
11661
|
icon
|
|
11662
11662
|
} = _ref,
|
|
11663
|
-
props = _objectWithoutProperties(_ref, _excluded$
|
|
11663
|
+
props = _objectWithoutProperties(_ref, _excluded$k);
|
|
11664
11664
|
let Icon = Icons__namespace.CloseOutlined;
|
|
11665
11665
|
if (Icons__namespace[icon]) {
|
|
11666
11666
|
Icon = Icons__namespace[icon];
|
|
@@ -11982,9 +11982,9 @@ GoToSelect.propTypes = {
|
|
|
11982
11982
|
t: PropTypes__default["default"].func
|
|
11983
11983
|
};
|
|
11984
11984
|
|
|
11985
|
-
const _excluded$
|
|
11985
|
+
const _excluded$j = ["options", "defaultSelected", "onChange", "textWhenMultiple", "withCount", "oneAlwaysSelected", "canUnselectLast", "isAvatarGroup", "maxAvatarCount", "dropDownWidth", "topAvatarValue", "isSingle", "selectionType"];
|
|
11986
11986
|
const {
|
|
11987
|
-
useToken: useToken$
|
|
11987
|
+
useToken: useToken$j
|
|
11988
11988
|
} = antd.theme;
|
|
11989
11989
|
|
|
11990
11990
|
/**
|
|
@@ -12075,10 +12075,10 @@ function Multiselect(_ref) {
|
|
|
12075
12075
|
isSingle = false,
|
|
12076
12076
|
selectionType = SELECTION_TYPES.DEFAULT
|
|
12077
12077
|
} = _ref,
|
|
12078
|
-
restProps = _objectWithoutProperties(_ref, _excluded$
|
|
12078
|
+
restProps = _objectWithoutProperties(_ref, _excluded$j);
|
|
12079
12079
|
const {
|
|
12080
12080
|
token
|
|
12081
|
-
} = useToken$
|
|
12081
|
+
} = useToken$j();
|
|
12082
12082
|
const [selectValue, setSelectValue] = React.useState(Array.isArray(defaultSelected) ? defaultSelected.length > 0 ? defaultSelected : [] : [defaultSelected]);
|
|
12083
12083
|
function onSelectChange(value) {
|
|
12084
12084
|
if (!canUnselectLast && value.length === 0) {
|
|
@@ -12582,7 +12582,7 @@ const useHeader = _ref => {
|
|
|
12582
12582
|
};
|
|
12583
12583
|
|
|
12584
12584
|
const {
|
|
12585
|
-
useToken: useToken$
|
|
12585
|
+
useToken: useToken$i
|
|
12586
12586
|
} = antd.theme;
|
|
12587
12587
|
function BreadCrumbs({
|
|
12588
12588
|
breadcrumbs = [],
|
|
@@ -12591,7 +12591,7 @@ function BreadCrumbs({
|
|
|
12591
12591
|
const [splitIndex, setSplitIndex] = React.useState(0);
|
|
12592
12592
|
const {
|
|
12593
12593
|
token
|
|
12594
|
-
} = useToken$
|
|
12594
|
+
} = useToken$i();
|
|
12595
12595
|
const _renderBreadcrumb = (b, i, isLast, noOnClickLast = false) => {
|
|
12596
12596
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
12597
12597
|
className: "flex breadcrumb-item",
|
|
@@ -12742,7 +12742,7 @@ DAFHeader.propTypes = {
|
|
|
12742
12742
|
downloadDisabled: PropTypes__default["default"].any
|
|
12743
12743
|
};
|
|
12744
12744
|
|
|
12745
|
-
const _excluded$
|
|
12745
|
+
const _excluded$i = ["tabs", "onChange", "value", "className"];
|
|
12746
12746
|
function TabsHeader(_ref) {
|
|
12747
12747
|
let {
|
|
12748
12748
|
tabs = [],
|
|
@@ -12750,7 +12750,7 @@ function TabsHeader(_ref) {
|
|
|
12750
12750
|
value = '',
|
|
12751
12751
|
className = 'mt-2'
|
|
12752
12752
|
} = _ref,
|
|
12753
|
-
rest = _objectWithoutProperties(_ref, _excluded$
|
|
12753
|
+
rest = _objectWithoutProperties(_ref, _excluded$i);
|
|
12754
12754
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
12755
12755
|
className: formatClassname(['daf-tabs-header pl-6 pr-6', className]),
|
|
12756
12756
|
children: /*#__PURE__*/jsxRuntime.jsx(antd.Tabs, _objectSpread2({
|
|
@@ -12847,16 +12847,14 @@ DrawerHeader.propTypes = {
|
|
|
12847
12847
|
tabsConfig: PropTypes__default["default"].any
|
|
12848
12848
|
};
|
|
12849
12849
|
|
|
12850
|
-
const
|
|
12851
|
-
|
|
12852
|
-
|
|
12853
|
-
|
|
12854
|
-
|
|
12855
|
-
|
|
12856
|
-
|
|
12857
|
-
|
|
12858
|
-
isViewMode
|
|
12859
|
-
} = _ref;
|
|
12850
|
+
const useFooter = ({
|
|
12851
|
+
leftContent,
|
|
12852
|
+
centerContent,
|
|
12853
|
+
rightContent,
|
|
12854
|
+
actionButtons,
|
|
12855
|
+
app,
|
|
12856
|
+
isViewMode
|
|
12857
|
+
}) => {
|
|
12860
12858
|
const renderFooterContent = React.useMemo(() => {
|
|
12861
12859
|
const FooterContent = () => /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
12862
12860
|
className: "daf-footer-content",
|
|
@@ -12872,18 +12870,18 @@ const useFooter = _ref => {
|
|
|
12872
12870
|
className: "daf-footer-actions",
|
|
12873
12871
|
children: actionButtons.map((button, index) => {
|
|
12874
12872
|
const {
|
|
12875
|
-
|
|
12876
|
-
|
|
12877
|
-
|
|
12878
|
-
|
|
12879
|
-
|
|
12880
|
-
|
|
12881
|
-
|
|
12882
|
-
|
|
12883
|
-
|
|
12884
|
-
|
|
12885
|
-
|
|
12886
|
-
return /*#__PURE__*/jsxRuntime.jsx(DafButton,
|
|
12873
|
+
label,
|
|
12874
|
+
onClick,
|
|
12875
|
+
icon,
|
|
12876
|
+
type = BTN_TYPES.PRIMARY,
|
|
12877
|
+
tooltip,
|
|
12878
|
+
disabled = false,
|
|
12879
|
+
loading = false,
|
|
12880
|
+
style = {},
|
|
12881
|
+
className = "",
|
|
12882
|
+
...restProps
|
|
12883
|
+
} = button;
|
|
12884
|
+
return /*#__PURE__*/jsxRuntime.jsx(DafButton, {
|
|
12887
12885
|
content: label,
|
|
12888
12886
|
type: type,
|
|
12889
12887
|
size: BTN_SIZE.MD,
|
|
@@ -12895,8 +12893,9 @@ const useFooter = _ref => {
|
|
|
12895
12893
|
loading: loading,
|
|
12896
12894
|
title: tooltip,
|
|
12897
12895
|
style: style,
|
|
12898
|
-
className: className
|
|
12899
|
-
|
|
12896
|
+
className: className,
|
|
12897
|
+
...restProps
|
|
12898
|
+
}, index);
|
|
12900
12899
|
})
|
|
12901
12900
|
})]
|
|
12902
12901
|
})]
|
|
@@ -12909,8 +12908,180 @@ const useFooter = _ref => {
|
|
|
12909
12908
|
};
|
|
12910
12909
|
};
|
|
12911
12910
|
|
|
12912
|
-
|
|
12913
|
-
|
|
12911
|
+
const FooterContainer = dt.div`
|
|
12912
|
+
.daf-footer {
|
|
12913
|
+
background: #ffffff;
|
|
12914
|
+
border-top: 1px solid #e8e8e8;
|
|
12915
|
+
border-left: none;
|
|
12916
|
+
border-right: none;
|
|
12917
|
+
border-bottom: none;
|
|
12918
|
+
border-radius: 0;
|
|
12919
|
+
padding: 24px;
|
|
12920
|
+
margin: 0;
|
|
12921
|
+
box-shadow: none;
|
|
12922
|
+
z-index: 100;
|
|
12923
|
+
position: relative;
|
|
12924
|
+
min-height: 80px;
|
|
12925
|
+
|
|
12926
|
+
&.daf-footer-fixed {
|
|
12927
|
+
position: fixed;
|
|
12928
|
+
bottom: 0;
|
|
12929
|
+
left: 0;
|
|
12930
|
+
right: 0;
|
|
12931
|
+
z-index: 1000;
|
|
12932
|
+
}
|
|
12933
|
+
|
|
12934
|
+
.daf-footer-content {
|
|
12935
|
+
display: flex;
|
|
12936
|
+
align-items: center;
|
|
12937
|
+
justify-content: space-between;
|
|
12938
|
+
width: 100%;
|
|
12939
|
+
min-height: 32px;
|
|
12940
|
+
|
|
12941
|
+
.daf-footer-left {
|
|
12942
|
+
flex: 1;
|
|
12943
|
+
display: flex;
|
|
12944
|
+
align-items: center;
|
|
12945
|
+
justify-content: flex-start;
|
|
12946
|
+
}
|
|
12947
|
+
|
|
12948
|
+
.daf-footer-center {
|
|
12949
|
+
flex: 1;
|
|
12950
|
+
display: flex;
|
|
12951
|
+
align-items: center;
|
|
12952
|
+
justify-content: center;
|
|
12953
|
+
}
|
|
12954
|
+
|
|
12955
|
+
.daf-footer-right {
|
|
12956
|
+
flex: 1;
|
|
12957
|
+
display: flex;
|
|
12958
|
+
align-items: center;
|
|
12959
|
+
justify-content: flex-end;
|
|
12960
|
+
gap: 12px;
|
|
12961
|
+
|
|
12962
|
+
.daf-footer-actions {
|
|
12963
|
+
.ant-btn {
|
|
12964
|
+
height: 40px;
|
|
12965
|
+
padding: 0 24px;
|
|
12966
|
+
border-radius: 6px;
|
|
12967
|
+
font-weight: 500;
|
|
12968
|
+
font-size: 14px;
|
|
12969
|
+
transition: all 0.3s ease;
|
|
12970
|
+
border: 1px solid transparent;
|
|
12971
|
+
|
|
12972
|
+
&.ant-btn-primary {
|
|
12973
|
+
background-color: var(--color-primary-70);
|
|
12974
|
+
color: #ffffff;
|
|
12975
|
+
border-color: var(--color-primary-70);
|
|
12976
|
+
|
|
12977
|
+
&:hover {
|
|
12978
|
+
background-color: var(--color-primary-60);
|
|
12979
|
+
border-color: var(--color-primary-60);
|
|
12980
|
+
}
|
|
12981
|
+
|
|
12982
|
+
&:active {
|
|
12983
|
+
background-color: var(--color-primary-80);
|
|
12984
|
+
border-color: var(--color-primary-80);
|
|
12985
|
+
}
|
|
12986
|
+
|
|
12987
|
+
&:disabled {
|
|
12988
|
+
background-color: #f5f5f5;
|
|
12989
|
+
color: #bfbfbf;
|
|
12990
|
+
border-color: #d9d9d9;
|
|
12991
|
+
}
|
|
12992
|
+
}
|
|
12993
|
+
|
|
12994
|
+
&.ant-btn-default {
|
|
12995
|
+
background: #ffffff;
|
|
12996
|
+
color: #666666;
|
|
12997
|
+
border-color: #d9d9d9;
|
|
12998
|
+
|
|
12999
|
+
&:hover {
|
|
13000
|
+
border-color: var(--color-primary-70);
|
|
13001
|
+
color: var(--color-primary-70);
|
|
13002
|
+
}
|
|
13003
|
+
|
|
13004
|
+
&:active {
|
|
13005
|
+
border-color: var(--color-primary-80);
|
|
13006
|
+
color: var(--color-primary-80);
|
|
13007
|
+
}
|
|
13008
|
+
|
|
13009
|
+
&:disabled {
|
|
13010
|
+
background-color: #f5f5f5;
|
|
13011
|
+
color: #bfbfbf;
|
|
13012
|
+
border-color: #d9d9d9;
|
|
13013
|
+
}
|
|
13014
|
+
}
|
|
13015
|
+
|
|
13016
|
+
&.ant-btn-ghost {
|
|
13017
|
+
background: transparent;
|
|
13018
|
+
color: #666666;
|
|
13019
|
+
border-color: #d9d9d9;
|
|
13020
|
+
|
|
13021
|
+
&:hover {
|
|
13022
|
+
border-color: var(--color-primary-70);
|
|
13023
|
+
color: var(--color-primary-70);
|
|
13024
|
+
background: rgba(0, 0, 0, 0.02);
|
|
13025
|
+
}
|
|
13026
|
+
|
|
13027
|
+
&:active {
|
|
13028
|
+
border-color: var(--color-primary-80);
|
|
13029
|
+
color: var(--color-primary-80);
|
|
13030
|
+
}
|
|
13031
|
+
|
|
13032
|
+
&:disabled {
|
|
13033
|
+
color: #bfbfbf;
|
|
13034
|
+
border-color: #d9d9d9;
|
|
13035
|
+
}
|
|
13036
|
+
}
|
|
13037
|
+
}
|
|
13038
|
+
}
|
|
13039
|
+
}
|
|
13040
|
+
}
|
|
13041
|
+
}
|
|
13042
|
+
|
|
13043
|
+
/* Responsive design */
|
|
13044
|
+
@media (max-width: 768px) {
|
|
13045
|
+
.daf-footer {
|
|
13046
|
+
margin: 0;
|
|
13047
|
+
padding: 16px;
|
|
13048
|
+
|
|
13049
|
+
.daf-footer-content {
|
|
13050
|
+
flex-direction: column;
|
|
13051
|
+
gap: 16px;
|
|
13052
|
+
align-items: stretch;
|
|
13053
|
+
|
|
13054
|
+
.daf-footer-left,
|
|
13055
|
+
.daf-footer-center,
|
|
13056
|
+
.daf-footer-right {
|
|
13057
|
+
flex: none;
|
|
13058
|
+
justify-content: center;
|
|
13059
|
+
}
|
|
13060
|
+
|
|
13061
|
+
.daf-footer-right {
|
|
13062
|
+
.daf-footer-actions {
|
|
13063
|
+
justify-content: center;
|
|
13064
|
+
}
|
|
13065
|
+
}
|
|
13066
|
+
}
|
|
13067
|
+
}
|
|
13068
|
+
}
|
|
13069
|
+
|
|
13070
|
+
/* App-specific styling */
|
|
13071
|
+
&.sbg-app {
|
|
13072
|
+
.daf-footer {
|
|
13073
|
+
background: #f8f9fa;
|
|
13074
|
+
border-color: #e9ecef;
|
|
13075
|
+
}
|
|
13076
|
+
}
|
|
13077
|
+
|
|
13078
|
+
&.nashiriki-app {
|
|
13079
|
+
.daf-footer {
|
|
13080
|
+
background: #fff;
|
|
13081
|
+
border-color: #d9d9d9;
|
|
13082
|
+
}
|
|
13083
|
+
}
|
|
13084
|
+
`;
|
|
12914
13085
|
|
|
12915
13086
|
function DAFFooter(_ref) {
|
|
12916
13087
|
let {
|
|
@@ -15186,6 +15357,7 @@ Loader.propTypes = {
|
|
|
15186
15357
|
function Widget(_ref) {
|
|
15187
15358
|
let {
|
|
15188
15359
|
title = "",
|
|
15360
|
+
noTitle = false,
|
|
15189
15361
|
children,
|
|
15190
15362
|
addedHeader = null,
|
|
15191
15363
|
tooltip,
|
|
@@ -15234,7 +15406,7 @@ function Widget(_ref) {
|
|
|
15234
15406
|
className: formatClassname(["daf-widget", "flex-1", className, !!tabsConfig && "with-tabs", isCollapsable && isCollapsed && "collapsed-widget"]),
|
|
15235
15407
|
children: [loading && fullWidgetLoading && /*#__PURE__*/jsxRuntime.jsx(Loader, {
|
|
15236
15408
|
background: "white"
|
|
15237
|
-
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
15409
|
+
}), !noTitle && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
15238
15410
|
className: "widget-header flex-column",
|
|
15239
15411
|
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
15240
15412
|
className: "flex flex-row widget-header-items",
|
|
@@ -15291,17 +15463,16 @@ function Widget(_ref) {
|
|
|
15291
15463
|
icon: !isExpanded ? /*#__PURE__*/jsxRuntime.jsx(Icons.RightOutlined, {
|
|
15292
15464
|
style: {
|
|
15293
15465
|
width: 10,
|
|
15294
|
-
paddingTop:
|
|
15466
|
+
paddingTop: "4px"
|
|
15295
15467
|
}
|
|
15296
|
-
})
|
|
15297
|
-
//<PlusOutlined style={{width: 10}} />
|
|
15298
|
-
:
|
|
15468
|
+
}) :
|
|
15299
15469
|
/*#__PURE__*/
|
|
15470
|
+
//<PlusOutlined style={{width: 10}} />
|
|
15300
15471
|
//<MinusOutlined style={{ width: 10 }} />
|
|
15301
15472
|
jsxRuntime.jsx(Icons.DownOutlined, {
|
|
15302
15473
|
style: {
|
|
15303
15474
|
width: 10,
|
|
15304
|
-
paddingTop:
|
|
15475
|
+
paddingTop: "4px"
|
|
15305
15476
|
}
|
|
15306
15477
|
})
|
|
15307
15478
|
})
|
|
@@ -15812,17 +15983,19 @@ function KeyIndicatorsWidget$1(_ref) {
|
|
|
15812
15983
|
withTooltip = false,
|
|
15813
15984
|
title = "Key Indicators",
|
|
15814
15985
|
noMinWidth = false,
|
|
15815
|
-
children
|
|
15986
|
+
children,
|
|
15987
|
+
noTitle = false
|
|
15816
15988
|
} = _ref;
|
|
15817
15989
|
const component = /*#__PURE__*/jsxRuntime.jsxs(Widget, {
|
|
15818
15990
|
loading: loading,
|
|
15819
15991
|
className: formatClassname(["flex-1 with-border-header", widgetClassName]),
|
|
15820
|
-
title: t(title),
|
|
15992
|
+
title: noTitle ? undefined : t(title),
|
|
15993
|
+
noTitle: noTitle,
|
|
15821
15994
|
children: [children, /*#__PURE__*/jsxRuntime.jsx(Style$E, {
|
|
15822
15995
|
className: formatClassname(["flex", className]),
|
|
15823
15996
|
children: config.map((c, i) => /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
15824
15997
|
className: "row-item",
|
|
15825
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
15998
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label$1, {
|
|
15826
15999
|
label: c.label,
|
|
15827
16000
|
withTooltip: withTooltip
|
|
15828
16001
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
@@ -15839,7 +16012,7 @@ function KeyIndicatorsWidget$1(_ref) {
|
|
|
15839
16012
|
}
|
|
15840
16013
|
return component;
|
|
15841
16014
|
}
|
|
15842
|
-
function Label(_ref2) {
|
|
16015
|
+
function Label$1(_ref2) {
|
|
15843
16016
|
let {
|
|
15844
16017
|
label,
|
|
15845
16018
|
withTooltip
|
|
@@ -18457,17 +18630,6 @@ const Style$z = dt.div`
|
|
|
18457
18630
|
position: relative;
|
|
18458
18631
|
width: 100%;
|
|
18459
18632
|
height: 472px;
|
|
18460
|
-
min-height: 300px;
|
|
18461
|
-
|
|
18462
|
-
@media (max-width: 768px) {
|
|
18463
|
-
height: 350px;
|
|
18464
|
-
min-height: 250px;
|
|
18465
|
-
}
|
|
18466
|
-
|
|
18467
|
-
@media (max-width: 480px) {
|
|
18468
|
-
height: 300px;
|
|
18469
|
-
min-height: 200px;
|
|
18470
|
-
}
|
|
18471
18633
|
|
|
18472
18634
|
.filter-cont {
|
|
18473
18635
|
position: absolute;
|
|
@@ -19312,11 +19474,6 @@ const useGlobe = ({
|
|
|
19312
19474
|
}
|
|
19313
19475
|
});
|
|
19314
19476
|
setMapMarkers(newMarkers);
|
|
19315
|
-
|
|
19316
|
-
// Resize the Mapbox GL JS map to ensure proper rendering after data changes
|
|
19317
|
-
if (mapRef && mapRef.resize) {
|
|
19318
|
-
mapRef.resize();
|
|
19319
|
-
}
|
|
19320
19477
|
}
|
|
19321
19478
|
}, []);
|
|
19322
19479
|
const createInstance = React.useCallback(() => {
|
|
@@ -19462,47 +19619,6 @@ const useGlobe = ({
|
|
|
19462
19619
|
const instance = createInstance();
|
|
19463
19620
|
if (instance) {
|
|
19464
19621
|
setMapRef(instance);
|
|
19465
|
-
|
|
19466
|
-
// Add comprehensive resize detection for Mapbox GL JS responsiveness
|
|
19467
|
-
const handleResize = () => {
|
|
19468
|
-
if (instance && instance.resize) {
|
|
19469
|
-
// Add a small delay to ensure DOM has updated
|
|
19470
|
-
setTimeout(() => {
|
|
19471
|
-
instance.resize();
|
|
19472
|
-
}, 100);
|
|
19473
|
-
}
|
|
19474
|
-
};
|
|
19475
|
-
|
|
19476
|
-
// Listen to window resize
|
|
19477
|
-
window.addEventListener('resize', handleResize);
|
|
19478
|
-
|
|
19479
|
-
// Listen to container size changes using ResizeObserver
|
|
19480
|
-
const resizeObserver = new ResizeObserver(() => {
|
|
19481
|
-
handleResize();
|
|
19482
|
-
});
|
|
19483
|
-
if (container.current) {
|
|
19484
|
-
resizeObserver.observe(container.current);
|
|
19485
|
-
}
|
|
19486
|
-
|
|
19487
|
-
// Store handlers for cleanup
|
|
19488
|
-
instance._resizeHandler = handleResize;
|
|
19489
|
-
instance._resizeObserver = resizeObserver;
|
|
19490
|
-
|
|
19491
|
-
// Add IntersectionObserver to detect when globe becomes visible (handles sidenav scenarios)
|
|
19492
|
-
const intersectionObserver = new IntersectionObserver(entries => {
|
|
19493
|
-
entries.forEach(entry => {
|
|
19494
|
-
if (entry.isIntersecting && instance && instance.resize) {
|
|
19495
|
-
// Globe container is visible, force resize after a delay
|
|
19496
|
-
setTimeout(() => {
|
|
19497
|
-
instance.resize();
|
|
19498
|
-
}, 200);
|
|
19499
|
-
}
|
|
19500
|
-
});
|
|
19501
|
-
});
|
|
19502
|
-
if (container.current) {
|
|
19503
|
-
intersectionObserver.observe(container.current);
|
|
19504
|
-
}
|
|
19505
|
-
instance._intersectionObserver = intersectionObserver;
|
|
19506
19622
|
} else {
|
|
19507
19623
|
console.log('❌ [GLOBE HOOK] Failed to create map instance');
|
|
19508
19624
|
}
|
|
@@ -19583,33 +19699,6 @@ const useGlobe = ({
|
|
|
19583
19699
|
addAllDataToMap();
|
|
19584
19700
|
}
|
|
19585
19701
|
}, [data, mapRef, initialMarkerSetIsDone]);
|
|
19586
|
-
|
|
19587
|
-
// Add effect to handle layout changes (like sidenav opening/closing)
|
|
19588
|
-
React.useEffect(() => {
|
|
19589
|
-
if (mapRef) {
|
|
19590
|
-
// Force resize when component becomes visible or layout changes
|
|
19591
|
-
const handleLayoutChange = () => {
|
|
19592
|
-
if (mapRef && mapRef.resize) {
|
|
19593
|
-
setTimeout(() => {
|
|
19594
|
-
mapRef.resize();
|
|
19595
|
-
}, 150);
|
|
19596
|
-
}
|
|
19597
|
-
};
|
|
19598
|
-
|
|
19599
|
-
// Listen for visibility changes
|
|
19600
|
-
document.addEventListener('visibilitychange', handleLayoutChange);
|
|
19601
|
-
|
|
19602
|
-
// Listen for focus events (when user returns to tab)
|
|
19603
|
-
window.addEventListener('focus', handleLayoutChange);
|
|
19604
|
-
|
|
19605
|
-
// Store handlers for cleanup
|
|
19606
|
-
mapRef._layoutChangeHandler = handleLayoutChange;
|
|
19607
|
-
return () => {
|
|
19608
|
-
document.removeEventListener('visibilitychange', handleLayoutChange);
|
|
19609
|
-
window.removeEventListener('focus', handleLayoutChange);
|
|
19610
|
-
};
|
|
19611
|
-
}
|
|
19612
|
-
}, [mapRef]);
|
|
19613
19702
|
React.useEffect(() => {
|
|
19614
19703
|
if (activeMarker && mapRef) {
|
|
19615
19704
|
const marker = mapMarkers.find(m => m.data === activeMarker);
|
|
@@ -19625,21 +19714,6 @@ const useGlobe = ({
|
|
|
19625
19714
|
return () => {
|
|
19626
19715
|
isMounted.current = false;
|
|
19627
19716
|
|
|
19628
|
-
// Cleanup window resize listener and ResizeObserver for Mapbox GL JS
|
|
19629
|
-
if (mapRef && mapRef._resizeHandler) {
|
|
19630
|
-
window.removeEventListener('resize', mapRef._resizeHandler);
|
|
19631
|
-
}
|
|
19632
|
-
if (mapRef && mapRef._resizeObserver) {
|
|
19633
|
-
mapRef._resizeObserver.disconnect();
|
|
19634
|
-
}
|
|
19635
|
-
if (mapRef && mapRef._layoutChangeHandler) {
|
|
19636
|
-
document.removeEventListener('visibilitychange', mapRef._layoutChangeHandler);
|
|
19637
|
-
window.removeEventListener('focus', mapRef._layoutChangeHandler);
|
|
19638
|
-
}
|
|
19639
|
-
if (mapRef && mapRef._intersectionObserver) {
|
|
19640
|
-
mapRef._intersectionObserver.disconnect();
|
|
19641
|
-
}
|
|
19642
|
-
|
|
19643
19717
|
// Defer unmounting to avoid race conditions
|
|
19644
19718
|
const rootsToUnmount = [...roots.current];
|
|
19645
19719
|
roots.current = [];
|
|
@@ -19655,7 +19729,7 @@ const useGlobe = ({
|
|
|
19655
19729
|
});
|
|
19656
19730
|
});
|
|
19657
19731
|
};
|
|
19658
|
-
}, [
|
|
19732
|
+
}, []);
|
|
19659
19733
|
|
|
19660
19734
|
// Map control handlers
|
|
19661
19735
|
const zoomHandler = React.useCallback(() => mapRef?.zoomIn(), [mapRef]);
|
|
@@ -19736,22 +19810,12 @@ const useGlobe = ({
|
|
|
19736
19810
|
}),
|
|
19737
19811
|
handler: moveDownHandler
|
|
19738
19812
|
}], [zoomHandler, zoomOutHandler, recenterMap, moveUpHandler, moveDownHandler]);
|
|
19739
|
-
|
|
19740
|
-
// Expose a manual resize method for external triggers
|
|
19741
|
-
const forceResize = React.useCallback(() => {
|
|
19742
|
-
if (mapRef && mapRef.resize) {
|
|
19743
|
-
setTimeout(() => {
|
|
19744
|
-
mapRef.resize();
|
|
19745
|
-
}, 100);
|
|
19746
|
-
}
|
|
19747
|
-
}, [mapRef]);
|
|
19748
19813
|
return {
|
|
19749
19814
|
container,
|
|
19750
19815
|
activeMarker,
|
|
19751
19816
|
mapOptionsButtonsConfig,
|
|
19752
19817
|
emptyStateIsVisible,
|
|
19753
|
-
setEmptyStateIsVisible
|
|
19754
|
-
forceResize
|
|
19818
|
+
setEmptyStateIsVisible
|
|
19755
19819
|
};
|
|
19756
19820
|
};
|
|
19757
19821
|
|
|
@@ -19799,8 +19863,7 @@ function Globe(_ref) {
|
|
|
19799
19863
|
const {
|
|
19800
19864
|
container,
|
|
19801
19865
|
activeMarker,
|
|
19802
|
-
mapOptionsButtonsConfig
|
|
19803
|
-
forceResize
|
|
19866
|
+
mapOptionsButtonsConfig
|
|
19804
19867
|
} = useGlobe({
|
|
19805
19868
|
data: mappedData,
|
|
19806
19869
|
user,
|
|
@@ -19827,17 +19890,6 @@ function Globe(_ref) {
|
|
|
19827
19890
|
React.useEffect(() => {
|
|
19828
19891
|
onRender === null || onRender === void 0 || onRender();
|
|
19829
19892
|
}, [onRender]);
|
|
19830
|
-
|
|
19831
|
-
// Force resize when component becomes visible (handles sidenav open/close scenarios)
|
|
19832
|
-
React.useEffect(() => {
|
|
19833
|
-
if (forceResize) {
|
|
19834
|
-
// Trigger resize after component mounts
|
|
19835
|
-
const timer = setTimeout(() => {
|
|
19836
|
-
forceResize();
|
|
19837
|
-
}, 300);
|
|
19838
|
-
return () => clearTimeout(timer);
|
|
19839
|
-
}
|
|
19840
|
-
}, [forceResize]);
|
|
19841
19893
|
return /*#__PURE__*/jsxRuntime.jsx(ComponentWithFocus, {
|
|
19842
19894
|
children: /*#__PURE__*/jsxRuntime.jsxs(Style$z, {
|
|
19843
19895
|
className: formatClassname([showSider && activeMarker && "with-sider"]),
|
|
@@ -20231,7 +20283,7 @@ const DetailsSection = _ref => {
|
|
|
20231
20283
|
});
|
|
20232
20284
|
};
|
|
20233
20285
|
|
|
20234
|
-
const
|
|
20286
|
+
const SDG_KEYS = {
|
|
20235
20287
|
NO_POVERTY: "noPoverty",
|
|
20236
20288
|
ZERO_HUNGER: "zeroHunger",
|
|
20237
20289
|
GOOD_HEALTH_WELL_BEING: "goodHealthWellbeing",
|
|
@@ -20250,75 +20302,146 @@ const KEYS = {
|
|
|
20250
20302
|
PEACE_JUSTICE_STRONG_INSTITUTIONS: "peaceJusticeStrongInstitutions",
|
|
20251
20303
|
PARTNERSHIPS_FOR_GOALS: "partnershipsForGoals"
|
|
20252
20304
|
};
|
|
20305
|
+
const SDG_IMAGES = {
|
|
20306
|
+
[SDG_KEYS.NO_POVERTY]: {
|
|
20307
|
+
img: "/SDGs/SDGs.svg",
|
|
20308
|
+
disabled: "/SDGs/SDGs-17.svg"
|
|
20309
|
+
},
|
|
20310
|
+
[SDG_KEYS.ZERO_HUNGER]: {
|
|
20311
|
+
img: "/SDGs/SDGs-1.svg",
|
|
20312
|
+
disabled: "/SDGs/SDGs-18.svg"
|
|
20313
|
+
},
|
|
20314
|
+
[SDG_KEYS.GOOD_HEALTH_WELL_BEING]: {
|
|
20315
|
+
img: "/SDGs/SDGs-2.svg",
|
|
20316
|
+
disabled: "/SDGs/SDGs-19.svg"
|
|
20317
|
+
},
|
|
20318
|
+
[SDG_KEYS.QUALITY_EDUCATION]: {
|
|
20319
|
+
img: "/SDGs/SDGs-3.svg",
|
|
20320
|
+
disabled: "/SDGs/SDGs-20.svg"
|
|
20321
|
+
},
|
|
20322
|
+
[SDG_KEYS.GENDER_EQUALITY]: {
|
|
20323
|
+
img: "/SDGs/SDGs-4.svg",
|
|
20324
|
+
disabled: "/SDGs/SDGs-21.svg"
|
|
20325
|
+
},
|
|
20326
|
+
[SDG_KEYS.CLEAN_WATER_SANITATION]: {
|
|
20327
|
+
img: "/SDGs/SDGs-5.svg",
|
|
20328
|
+
disabled: "/SDGs/SDGs-22.svg"
|
|
20329
|
+
},
|
|
20330
|
+
[SDG_KEYS.AFFORDABLE_CLEAN_ENERGY]: {
|
|
20331
|
+
img: "/SDGs/SDGs-6.svg",
|
|
20332
|
+
disabled: "/SDGs/SDGs-23.svg"
|
|
20333
|
+
},
|
|
20334
|
+
[SDG_KEYS.DECENT_WORK_ECONOMIC_GROWTH]: {
|
|
20335
|
+
img: "/SDGs/SDGs-7.svg",
|
|
20336
|
+
disabled: "/SDGs/SDGs-24.svg"
|
|
20337
|
+
},
|
|
20338
|
+
[SDG_KEYS.INDUSTRY_INNOVATION_INFRASTRUCTURE]: {
|
|
20339
|
+
img: "/SDGs/SDGs-8.svg",
|
|
20340
|
+
disabled: "/SDGs/SDGs-25.svg"
|
|
20341
|
+
},
|
|
20342
|
+
[SDG_KEYS.REDUCED_INEQUALITIES]: {
|
|
20343
|
+
img: "/SDGs/SDGs-9.svg",
|
|
20344
|
+
disabled: "/SDGs/SDGs-26.svg"
|
|
20345
|
+
},
|
|
20346
|
+
[SDG_KEYS.SUSTAINABLE_CITIES_COMMUNITIES]: {
|
|
20347
|
+
img: "/SDGs/SDGs-10.svg",
|
|
20348
|
+
disabled: "/SDGs/SDGs-27.svg"
|
|
20349
|
+
},
|
|
20350
|
+
[SDG_KEYS.RESPONSIBLE_CONSUMPTION_PRODUCTION]: {
|
|
20351
|
+
img: "/SDGs/SDGs-11.svg",
|
|
20352
|
+
disabled: "/SDGs/SDGs-29.svg"
|
|
20353
|
+
},
|
|
20354
|
+
[SDG_KEYS.CLIMATE_ACTION]: {
|
|
20355
|
+
img: "/SDGs/SDGs-12.svg",
|
|
20356
|
+
disabled: "/SDGs/SDGs-30.svg"
|
|
20357
|
+
},
|
|
20358
|
+
[SDG_KEYS.LIFE_BELOW_WATER]: {
|
|
20359
|
+
img: "/SDGs/SDGs-13.svg",
|
|
20360
|
+
disabled: "/SDGs/SDGs-31.svg"
|
|
20361
|
+
},
|
|
20362
|
+
[SDG_KEYS.LIFE_ON_LAND]: {
|
|
20363
|
+
img: "/SDGs/SDGs-14.svg",
|
|
20364
|
+
disabled: "/SDGs/SDGs-32.svg"
|
|
20365
|
+
},
|
|
20366
|
+
[SDG_KEYS.PEACE_JUSTICE_STRONG_INSTITUTIONS]: {
|
|
20367
|
+
img: "/SDGs/SDGs-15.svg",
|
|
20368
|
+
disabled: "/SDGs/SDGs-33.svg"
|
|
20369
|
+
},
|
|
20370
|
+
[SDG_KEYS.PARTNERSHIPS_FOR_GOALS]: {
|
|
20371
|
+
img: "/SDGs/SDGs-16.svg",
|
|
20372
|
+
disabled: "/SDGs/SDGs-34.svg"
|
|
20373
|
+
}
|
|
20374
|
+
};
|
|
20375
|
+
|
|
20253
20376
|
const getGoalConfig = () => {
|
|
20254
20377
|
return [{
|
|
20255
20378
|
img: "/SDGs/SDGs.svg",
|
|
20256
|
-
key:
|
|
20257
|
-
disabled: "
|
|
20379
|
+
key: SDG_KEYS.NO_POVERTY,
|
|
20380
|
+
disabled: "./SDGs/SDGs-17.svg"
|
|
20258
20381
|
}, {
|
|
20259
20382
|
img: "/SDGs/SDGs-1.svg",
|
|
20260
|
-
key:
|
|
20261
|
-
disabled: "
|
|
20383
|
+
key: SDG_KEYS.ZERO_HUNGER,
|
|
20384
|
+
disabled: "./SDGs/SDGs-18.svg"
|
|
20262
20385
|
}, {
|
|
20263
20386
|
img: "/SDGs/SDGs-2.svg",
|
|
20264
|
-
key:
|
|
20387
|
+
key: SDG_KEYS.GOOD_HEALTH_WELL_BEING,
|
|
20265
20388
|
disabled: "/SDGs/SDGs-19.svg"
|
|
20266
20389
|
}, {
|
|
20267
20390
|
img: "/SDGs/SDGs-3.svg",
|
|
20268
|
-
key:
|
|
20391
|
+
key: SDG_KEYS.QUALITY_EDUCATION,
|
|
20269
20392
|
disabled: "/SDGs/SDGs-20.svg"
|
|
20270
20393
|
}, {
|
|
20271
20394
|
img: "/SDGs/SDGs-4.svg",
|
|
20272
|
-
key:
|
|
20395
|
+
key: SDG_KEYS.GENDER_EQUALITY,
|
|
20273
20396
|
disabled: "/SDGs/SDGs-21.svg"
|
|
20274
20397
|
}, {
|
|
20275
20398
|
img: "/SDGs/SDGs-5.svg",
|
|
20276
|
-
key:
|
|
20399
|
+
key: SDG_KEYS.CLEAN_WATER_SANITATION,
|
|
20277
20400
|
disabled: "/SDGs/SDGs-22.svg"
|
|
20278
20401
|
}, {
|
|
20279
20402
|
img: "/SDGs/SDGs-6.svg",
|
|
20280
|
-
key:
|
|
20403
|
+
key: SDG_KEYS.AFFORDABLE_CLEAN_ENERGY,
|
|
20281
20404
|
disabled: "/SDGs/SDGs-23.svg"
|
|
20282
20405
|
}, {
|
|
20283
20406
|
img: "/SDGs/SDGs-7.svg",
|
|
20284
|
-
key:
|
|
20407
|
+
key: SDG_KEYS.DECENT_WORK_ECONOMIC_GROWTH,
|
|
20285
20408
|
disabled: "/SDGs/SDGs-24.svg"
|
|
20286
20409
|
}, {
|
|
20287
20410
|
img: "/SDGs/SDGs-8.svg",
|
|
20288
|
-
key:
|
|
20411
|
+
key: SDG_KEYS.INDUSTRY_INNOVATION_INFRASTRUCTURE,
|
|
20289
20412
|
disabled: "/SDGs/SDGs-25.svg"
|
|
20290
20413
|
}, {
|
|
20291
20414
|
img: "/SDGs/SDGs-9.svg",
|
|
20292
|
-
key:
|
|
20415
|
+
key: SDG_KEYS.REDUCED_INEQUALITIES,
|
|
20293
20416
|
disabled: "/SDGs/SDGs-26.svg"
|
|
20294
20417
|
}, {
|
|
20295
20418
|
img: "/SDGs/SDGs-10.svg",
|
|
20296
|
-
key:
|
|
20419
|
+
key: SDG_KEYS.PARTNERSHIPS_FOR_GOALS,
|
|
20297
20420
|
disabled: "/SDGs/SDGs-27.svg"
|
|
20298
20421
|
}, {
|
|
20299
20422
|
img: "/SDGs/SDGs-11.svg",
|
|
20300
|
-
key:
|
|
20423
|
+
key: SDG_KEYS.SUSTAINABLE_CITIES_COMMUNITIES,
|
|
20301
20424
|
disabled: "/SDGs/SDGs-28.svg"
|
|
20302
20425
|
}, {
|
|
20303
20426
|
img: "/SDGs/SDGs-12.svg",
|
|
20304
|
-
key:
|
|
20427
|
+
key: SDG_KEYS.RESPONSIBLE_CONSUMPTION_PRODUCTION,
|
|
20305
20428
|
disabled: "/SDGs/SDGs-29.svg"
|
|
20306
20429
|
}, {
|
|
20307
20430
|
img: "/SDGs/SDGs-13.svg",
|
|
20308
|
-
key:
|
|
20431
|
+
key: SDG_KEYS.CLIMATE_ACTION,
|
|
20309
20432
|
disabled: "/SDGs/SDGs-30.svg"
|
|
20310
20433
|
}, {
|
|
20311
20434
|
img: "/SDGs/SDGs-14.svg",
|
|
20312
|
-
key:
|
|
20435
|
+
key: SDG_KEYS.LIFE_BELOW_WATER,
|
|
20313
20436
|
disabled: "/SDGs/SDGs-31.svg"
|
|
20314
20437
|
}, {
|
|
20315
20438
|
img: "/SDGs/SDGs-15.svg",
|
|
20316
|
-
key:
|
|
20439
|
+
key: SDG_KEYS.LIFE_ON_LAND,
|
|
20317
20440
|
disabled: "/SDGs/SDGs-32.svg"
|
|
20318
20441
|
}, {
|
|
20319
20442
|
img: "/SDGs/SDGs-16.svg",
|
|
20320
20443
|
disabled: "/SDGs/SDGs-33.svg",
|
|
20321
|
-
key:
|
|
20444
|
+
key: SDG_KEYS.PEACE_JUSTICE_STRONG_INSTITUTIONS
|
|
20322
20445
|
}];
|
|
20323
20446
|
};
|
|
20324
20447
|
|
|
@@ -20348,7 +20471,160 @@ function SDGWidget(_ref) {
|
|
|
20348
20471
|
})
|
|
20349
20472
|
}));
|
|
20350
20473
|
}
|
|
20351
|
-
const SDGContainer = dt.div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(
|
|
20474
|
+
const SDGContainer = dt.div(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral(["\n\tdisplay: grid;\n\tgrid-template-columns: repeat(auto-fit, minmax(100px, 1fr));\n\tgap: 8px;\n\n\t.sdg-item {\n\t\theight: 100px;\n\t\twidth: 100px;\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"])));
|
|
20475
|
+
|
|
20476
|
+
const ImageContainer = dt.div`
|
|
20477
|
+
overflow: hidden;
|
|
20478
|
+
position: relative;
|
|
20479
|
+
|
|
20480
|
+
.image {
|
|
20481
|
+
width: 100%;
|
|
20482
|
+
height: 151px;
|
|
20483
|
+
background-size: cover;
|
|
20484
|
+
background-position: center;
|
|
20485
|
+
background-repeat: no-repeat;
|
|
20486
|
+
|
|
20487
|
+
border-bottom-left-radius: 3px;
|
|
20488
|
+
border-bottom-right-radius: 3px;
|
|
20489
|
+
}
|
|
20490
|
+
|
|
20491
|
+
.icon-container {
|
|
20492
|
+
position: absolute;
|
|
20493
|
+
top: 10px;
|
|
20494
|
+
right: 10px;
|
|
20495
|
+
background: white;
|
|
20496
|
+
padding: 10px;
|
|
20497
|
+
border-radius: 6px;
|
|
20498
|
+
cursor: pointer;
|
|
20499
|
+
}
|
|
20500
|
+
`;
|
|
20501
|
+
const ProjectWidgetItems = dt.ul`
|
|
20502
|
+
list-style: none;
|
|
20503
|
+
padding: 0;
|
|
20504
|
+
padding-top: 10px;
|
|
20505
|
+
margin: 0;
|
|
20506
|
+
|
|
20507
|
+
.project-widget-item {
|
|
20508
|
+
display: flex;
|
|
20509
|
+
justify-content: space-between;
|
|
20510
|
+
align-items: center;
|
|
20511
|
+
border-bottom: 1px solid var(--base-gray-30);
|
|
20512
|
+
padding: 10px 0;
|
|
20513
|
+
|
|
20514
|
+
&:last-of-type {
|
|
20515
|
+
border-bottom: 0;
|
|
20516
|
+
}
|
|
20517
|
+
}
|
|
20518
|
+
`;
|
|
20519
|
+
const SDGList = dt.ul`
|
|
20520
|
+
list-style: none;
|
|
20521
|
+
padding: 0;
|
|
20522
|
+
display: flex;
|
|
20523
|
+
flex-wrap: wrap;
|
|
20524
|
+
gap: 4px;
|
|
20525
|
+
margin: 0;
|
|
20526
|
+
|
|
20527
|
+
.sdg-item-image {
|
|
20528
|
+
width: 24px;
|
|
20529
|
+
height: 24px;
|
|
20530
|
+
background-size: cover;
|
|
20531
|
+
background-position: center;
|
|
20532
|
+
background-repeat: no-repeat;
|
|
20533
|
+
}
|
|
20534
|
+
`;
|
|
20535
|
+
const Label = dt.span`
|
|
20536
|
+
font-family: SF UI Display;
|
|
20537
|
+
font-weight: 500;
|
|
20538
|
+
font-style: Medium;
|
|
20539
|
+
font-size: 14px;
|
|
20540
|
+
leading-trim: NONE;
|
|
20541
|
+
line-height: 26px;
|
|
20542
|
+
letter-spacing: 0%;
|
|
20543
|
+
color: #6c737f;
|
|
20544
|
+
`;
|
|
20545
|
+
|
|
20546
|
+
const {
|
|
20547
|
+
Meta
|
|
20548
|
+
} = antd.Card;
|
|
20549
|
+
const {
|
|
20550
|
+
useToken: useToken$h
|
|
20551
|
+
} = antd.theme;
|
|
20552
|
+
function ProjectWidget(_ref) {
|
|
20553
|
+
let {
|
|
20554
|
+
title,
|
|
20555
|
+
description,
|
|
20556
|
+
onLinkClick,
|
|
20557
|
+
image,
|
|
20558
|
+
linkIcon = "Link",
|
|
20559
|
+
sdgList,
|
|
20560
|
+
items,
|
|
20561
|
+
hideSDGList = false,
|
|
20562
|
+
t = x => x
|
|
20563
|
+
} = _ref;
|
|
20564
|
+
const [isHovered, setIsHovered] = React__default["default"].useState(false);
|
|
20565
|
+
const {
|
|
20566
|
+
token
|
|
20567
|
+
} = useToken$h();
|
|
20568
|
+
return /*#__PURE__*/jsxRuntime.jsxs(antd.Card, {
|
|
20569
|
+
style: {
|
|
20570
|
+
flex: 1
|
|
20571
|
+
},
|
|
20572
|
+
hoverable: true,
|
|
20573
|
+
onMouseEnter: () => setIsHovered(true),
|
|
20574
|
+
onMouseLeave: () => setIsHovered(false),
|
|
20575
|
+
cover: /*#__PURE__*/jsxRuntime.jsxs(ImageContainer, {
|
|
20576
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
20577
|
+
className: "image",
|
|
20578
|
+
style: {
|
|
20579
|
+
backgroundImage: "url(".concat(image, ")")
|
|
20580
|
+
}
|
|
20581
|
+
}), onLinkClick && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
20582
|
+
className: "icon-container",
|
|
20583
|
+
onClick: onLinkClick,
|
|
20584
|
+
children: /*#__PURE__*/jsxRuntime.jsx(CustomIcon, {
|
|
20585
|
+
name: linkIcon,
|
|
20586
|
+
width: 16,
|
|
20587
|
+
height: 16,
|
|
20588
|
+
color: isHovered ? token.colorPrimary7 : "black"
|
|
20589
|
+
})
|
|
20590
|
+
})]
|
|
20591
|
+
}),
|
|
20592
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Meta, {
|
|
20593
|
+
title: title || undefined,
|
|
20594
|
+
description: description || undefined
|
|
20595
|
+
}), /*#__PURE__*/jsxRuntime.jsx(ProjectWidgetItems, {
|
|
20596
|
+
children: items.map((item, index) => /*#__PURE__*/jsxRuntime.jsxs("li", {
|
|
20597
|
+
className: "project-widget-item",
|
|
20598
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
20599
|
+
children: item.label
|
|
20600
|
+
}), item.render()]
|
|
20601
|
+
}, index))
|
|
20602
|
+
}), !hideSDGList && /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
20603
|
+
style: {
|
|
20604
|
+
borderTop: "1px solid var(--base-gray-30)",
|
|
20605
|
+
paddingTop: "10px"
|
|
20606
|
+
},
|
|
20607
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
20608
|
+
children: "SDGs:"
|
|
20609
|
+
}), /*#__PURE__*/jsxRuntime.jsx(SDGList, {
|
|
20610
|
+
children: sdgList.map((sdg, index) => {
|
|
20611
|
+
return /*#__PURE__*/jsxRuntime.jsx("li", {
|
|
20612
|
+
className: "project-widget-item",
|
|
20613
|
+
children: /*#__PURE__*/jsxRuntime.jsx(antd.Tooltip, {
|
|
20614
|
+
title: t("SDGS::".concat(sdg)),
|
|
20615
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
20616
|
+
style: {
|
|
20617
|
+
backgroundImage: "url(".concat(SDG_IMAGES[sdg].img, ")")
|
|
20618
|
+
},
|
|
20619
|
+
className: "sdg-item-image"
|
|
20620
|
+
})
|
|
20621
|
+
})
|
|
20622
|
+
}, index);
|
|
20623
|
+
})
|
|
20624
|
+
})]
|
|
20625
|
+
})]
|
|
20626
|
+
});
|
|
20627
|
+
}
|
|
20352
20628
|
|
|
20353
20629
|
var Style$w = dt.div`
|
|
20354
20630
|
border: 1px solid var(--base-gray-40);
|
|
@@ -59700,6 +59976,7 @@ exports.ProjectVisualisationAlert = Alert;
|
|
|
59700
59976
|
exports.ProjectVisualisationFooter = Footer;
|
|
59701
59977
|
exports.ProjectVisualisationHeader = Header;
|
|
59702
59978
|
exports.ProjectVisualisationSelect = CustomSelect;
|
|
59979
|
+
exports.ProjectWidget = ProjectWidget;
|
|
59703
59980
|
exports.RadarChart = RadarChart;
|
|
59704
59981
|
exports.RadialBarChart = RadialBarChart;
|
|
59705
59982
|
exports.SDGWidget = SDGWidget;
|