@hisptz/dhis2-analytics 2.1.30 → 2.1.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +3 -3
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js +1 -1
- package/dist/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
- package/dist/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/components/Map/utils/map.js +1 -1
- package/dist/components/Map/utils/map.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js +2 -2
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map +1 -1
- package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map +1 -1
- package/dist/esm/components/Map/utils/map.js +1 -1
- package/dist/esm/components/Map/utils/map.js.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.d.ts +2 -2
- package/dist/types/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":["getColorFromLegendSet","getCenter","chunk","flattenDeep","jsx","Fragment","jsxs","GeoJSON","highlightFeature","resetHighlight","colors","LabelMarker","CustomTooltip"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAM,YAAA,GAAe;AAAA,EACpB,MAAA,EAAQ;AACT,CAAA;AACA,MAAM,cAAA,GAAiB;AAAA,EACtB,MAAA,EAAQ;AACT,CAAA;AAQe,SAAR,UAAA,CAA4B;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACD,CAAA,EAMG;AACF,EAAA,MAAM,EAAE,SAAQ,GAAI,IAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":["getColorFromLegendSet","getCenter","chunk","flattenDeep","jsx","Fragment","jsxs","GeoJSON","highlightFeature","resetHighlight","colors","LabelMarker","CustomTooltip"],"mappings":";;;;;;;;;;;;;;;AAoBA,MAAM,YAAA,GAAe;AAAA,EACpB,MAAA,EAAQ;AACT,CAAA;AACA,MAAM,cAAA,GAAiB;AAAA,EACtB,MAAA,EAAQ;AACT,CAAA;AAQe,SAAR,UAAA,CAA4B;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACD,CAAA,EAMG;AACF,EAAA,MAAM,EAAE,SAAQ,GAAI,IAAA;AAEpB,EAAA,MAAM,KAAA,GAAQA,2BAAA,CAAsB,OAAA,EAAS,IAAA,CAAK,IAAI,CAAA;AAEtD,EAAA,MAAM,MAAA,GAASC,gBAAA;AAAA,IACdC,YAAA;AAAA,MACCC,kBAAA,CAAoB,OAAA,CAAQ,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA;AAAA,MACxD;AAAA,MACC,GAAA,CAAI,CAAC,CAAC,QAAA,EAAU,SAAS,CAAA,MAAiB;AAAA,MAC3C,SAAA;AAAA,MACA;AAAA,KACD,CAAE;AAAA,GACH;AAKA,EAAA,uBACCC,cAAA,CAAAC,mBAAA,EAAA,EACC,QAAA,kBAAAC,eAAA;AAAA,IAACC,oBAAA;AAAA,IAAA;AAAA,MACA,MAAM,OAAA,CAAQ,OAAA;AAAA,MACd,aAAA,EAAe;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,KAAMC,sBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,QACpD,QAAA,EAAU,CAAC,CAAA,KAAMC,oBAAA,CAAe,GAAG,YAAY,CAAA;AAAA,QAC/C,GAAI,uBAAuB,EAAC;AAAA,QAC5B,SAAA,EAAW,CAAC,CAAA,KAAM;AACjB,UAAA,IAAI,YAAA,EAAc;AACjB,YAAA,YAAA,CAAa,GAAG,IAAI,CAAA;AAAA,UACrB;AAAA,QACD;AAAA,OACD;AAAA,MACA,WAAA,EAAW,IAAA;AAAA,MACX,WAAA,EAAa;AAAA,QACZ,SAAA,EAAW,KAAA;AAAA,QACX,WAAA,EAAa,CAAA;AAAA,QACb,OAAOC,SAAA,CAAO,OAAA;AAAA,QACd,IAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAQ;AAAA,OACT;AAAA,MAGC,QAAA,EAAA;AAAA,QAAA,WAAA,oBACAN,cAAA;AAAA,UAACO,uBAAA;AAAA,UAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,WAAA;AAAA,YACA,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,OAAA;AAAA,YACA,MAAA,EAAQ,CAAC,MAAA,CAAO,SAAA,EAAW,OAAO,QAAQ;AAAA;AAAA,SAC3C;AAAA,wBAEDP,cAAA,CAACQ,kCAAc,IAAA,EAAY;AAAA;AAAA,KAAA;AAAA,IAXtB,CAAA,EAAG,IAAA,CAAK,QAAA,CAAS,EAAE,CAAA,MAAA;AAAA,GAYzB,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport React from \"react\";\nimport { GeoJSON } from \"react-leaflet\";\nimport { MapOrgUnit } from \"../../../../../../interfaces\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils\";\nimport {\n\ttype LayerLabelConfig,\n\tThematicLayerDataItem,\n} from \"../../../../interfaces\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\nimport { type LeafletEventHandlerFnMap, type LeafletMouseEvent } from \"leaflet\";\nimport { LabelMarker } from \"../LabelMarker\";\nimport { getCenter } from \"geolib\";\nimport { chunk, flattenDeep } from \"lodash\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport default function Choropleth({\n\tdata,\n\tlegends,\n\tcustomEventHandlers,\n\tonLayerClick,\n\tlabelConfig,\n}: {\n\tdata: LayerData;\n\tlegends: Legend[];\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n}) {\n\tconst { orgUnit } = data;\n\n\tconst color = getColorFromLegendSet(legends, data.data);\n\n\tconst center = getCenter(\n\t\tchunk<number>(\n\t\t\tflattenDeep<number>(orgUnit.geoJSON.geometry.coordinates),\n\t\t\t2,\n\t\t).map(([latitude, longitude]: number[]) => ({\n\t\t\tlongitude,\n\t\t\tlatitude,\n\t\t})),\n\t) as {\n\t\tlongitude: number;\n\t\tlatitude: number;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<GeoJSON\n\t\t\t\tdata={orgUnit.geoJSON}\n\t\t\t\teventHandlers={{\n\t\t\t\t\tmouseover: (e) => highlightFeature(e, highlightStyle),\n\t\t\t\t\tmouseout: (e) => resetHighlight(e, defaultStyle),\n\t\t\t\t\t...(customEventHandlers ?? {}),\n\t\t\t\t\tmousedown: (e) => {\n\t\t\t\t\t\tif (onLayerClick) {\n\t\t\t\t\t\t\tonLayerClick(e, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tinteractive\n\t\t\t\tpathOptions={{\n\t\t\t\t\tfillColor: color,\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\tfill: true,\n\t\t\t\t\tweight: 1,\n\t\t\t\t}}\n\t\t\t\tkey={`${data.dataItem.id}-layer`}\n\t\t\t>\n\t\t\t\t{labelConfig && (\n\t\t\t\t\t<LabelMarker\n\t\t\t\t\t\tlayerColor={color}\n\t\t\t\t\t\tlabelConfig={labelConfig}\n\t\t\t\t\t\tdata={data.data}\n\t\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\t\tcenter={[center.longitude, center.latitude]}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<CustomTooltip data={data} />\n\t\t\t</GeoJSON>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var i18n = require('@dhis2/d2-i18n');
|
|
5
5
|
var reactLeaflet = require('react-leaflet');
|
|
6
|
-
var
|
|
6
|
+
var hooks = require('../../../../../MapProvider/hooks');
|
|
7
7
|
|
|
8
8
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
|
|
@@ -13,9 +13,9 @@ function CustomTooltip({
|
|
|
13
13
|
data: dataObject
|
|
14
14
|
}) {
|
|
15
15
|
const { dataItem, orgUnit, data } = dataObject ?? {};
|
|
16
|
-
const { periods } =
|
|
16
|
+
const { periods } = hooks.useMapPeriods() ?? {};
|
|
17
17
|
const formatter = Intl.NumberFormat(navigator.language, {}).format;
|
|
18
|
-
const formattedData = data ? formatter(data) : "";
|
|
18
|
+
const formattedData = typeof data === "number" ? formatter(data) : "";
|
|
19
19
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20
20
|
reactLeaflet.Pane,
|
|
21
21
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":["useMapPeriods","jsxs","Pane","Tooltip","Popup","jsx","i18n"],"mappings":";;;;;;;;;;;AAMe,SAAR,aAAA,CAA+B;AAAA,EACrC,IAAA,EAAM;AACP,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAK,GAAI,cAAc,EAAC;AACnD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAIA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":["useMapPeriods","jsxs","Pane","Tooltip","Popup","jsx","i18n"],"mappings":";;;;;;;;;;;AAMe,SAAR,aAAA,CAA+B;AAAA,EACrC,IAAA,EAAM;AACP,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAK,GAAI,cAAc,EAAC;AACnD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAIA,mBAAA,MAAmB,EAAC;AAExC,EAAA,MAAM,YAAY,IAAA,CAAK,YAAA,CAAa,UAAU,QAAA,EAAU,EAAE,CAAA,CAAE,MAAA;AAE5D,EAAA,MAAM,gBACL,OAAO,IAAA,KAAS,QAAA,GAAW,SAAA,CAAU,IAAc,CAAA,GAAI,EAAA;AAExD,EAAA,uBACCC,eAAA;AAAA,IAACC,iBAAA;AAAA,IAAA;AAAA,MACA,MAAM,CAAA,EAAG,QAAA,CAAS,WAAW,CAAA,CAAA,EAAI,QAAQ,EAAE,CAAA,WAAA,CAAA;AAAA,MAC3C,IAAA,EAAK,WAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAAD,eAAA,CAACE,oBAAA,EAAA,EACC,QAAA,EAAA;AAAA,UAAA,OAAA,EAAS,IAAA;AAAA,UAAK,IAAA;AAAA,UAAG,aAAA;AAAA,UAAc;AAAA,SAAA,EACjC,CAAA;AAAA,wBACAF,eAAA,CAACG,kBAAA,EAAA,EAAM,QAAA,EAAU,EAAA,EAChB,QAAA,EAAA;AAAA,0BAAAC,cAAA,CAAC,QAAG,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAE,EAAI,mBAAS,IAAA,EAAK,CAAA;AAAA,0BACzCA,cAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,QAAA,EAAU,WAAA,EAAY,CAAA;AAAA,0BAC5BA,cAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,OAAA,EAAS,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,EAAE,CAAA;AAAA,0CACrD,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,YAAAC,qBAAA,CAAK,EAAE,OAAO,CAAA;AAAA,YAAE,IAAA;AAAA,YAAG;AAAA,WAAA,EACrB;AAAA,SAAA,EACD;AAAA;AAAA;AAAA,GACD;AAEF","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { Pane, Popup, Tooltip } from \"react-leaflet\";\nimport { useMapPeriods } from \"../../../../../MapProvider/hooks\";\nimport { ThematicLayerData } from \"../../../../interfaces\";\n\nexport default function CustomTooltip({\n\tdata: dataObject,\n}: {\n\tdata: ThematicLayerData;\n}) {\n\tconst { dataItem, orgUnit, data } = dataObject ?? {};\n\tconst { periods } = useMapPeriods() ?? {};\n\n\tconst formatter = Intl.NumberFormat(navigator.language, {}).format;\n\n\tconst formattedData =\n\t\ttypeof data === \"number\" ? formatter(data as number) : \"\";\n\n\treturn (\n\t\t<Pane\n\t\t\tname={`${dataItem.displayName}-${orgUnit.id}-popup-pane`}\n\t\t\tpane=\"popupPane\"\n\t\t>\n\t\t\t<Tooltip>\n\t\t\t\t{orgUnit?.name} ({formattedData})\n\t\t\t</Tooltip>\n\t\t\t<Popup minWidth={80}>\n\t\t\t\t<h3 style={{ margin: 0 }}>{orgUnit?.name}</h3>\n\t\t\t\t<div>{dataItem?.displayName}</div>\n\t\t\t\t<div>{periods?.map((period) => period.name).join(\",\")}</div>\n\t\t\t\t<div>\n\t\t\t\t\t{i18n.t(\"Value\")}: {formattedData}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t</Pane>\n\t);\n}\n"]}
|
|
@@ -11,7 +11,7 @@ function getLabel({
|
|
|
11
11
|
lodash.templateSettings.interpolate = /{([\s\S]+?)}/g;
|
|
12
12
|
return lodash.template(labelConfig.labelTemplate.replace(/\n/g, "<br />"))({
|
|
13
13
|
name: orgUnit.name,
|
|
14
|
-
value: data ? valueFormatter(data) : ""
|
|
14
|
+
value: typeof data === "number" ? valueFormatter(data) : ""
|
|
15
15
|
});
|
|
16
16
|
}
|
|
17
17
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/utils/label.ts"],"names":["templateSettings","template"],"mappings":";;;;AAGA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,SAAA,CAAU,QAAQ,CAAA,CAAE,MAAA;AAEtD,SAAS,QAAA,CAAS;AAAA,EACxB,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAAA,uBAAA,CAAiB,WAAA,GAAc,eAAA;AAE/B,EAAA,OAAOC,gBAAS,WAAA,CAAY,aAAA,CAAc,QAAQ,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE;AAAA,IACnE,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/utils/label.ts"],"names":["templateSettings","template"],"mappings":";;;;AAGA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,SAAA,CAAU,QAAQ,CAAA,CAAE,MAAA;AAEtD,SAAS,QAAA,CAAS;AAAA,EACxB,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAAA,uBAAA,CAAiB,WAAA,GAAc,eAAA;AAE/B,EAAA,OAAOC,gBAAS,WAAA,CAAY,aAAA,CAAc,QAAQ,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE;AAAA,IACnE,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,OAAO,OAAO,IAAA,KAAS,QAAA,GAAW,cAAA,CAAe,IAAI,CAAA,GAAI;AAAA,GACzD,CAAA;AACF","file":"label.js","sourcesContent":["import { template, templateSettings } from \"lodash\";\nimport type { LayerLabelConfig } from \"../../../interfaces\";\n\nconst valueFormatter = Intl.NumberFormat(navigator.language).format;\n\nexport function getLabel({\n\torgUnit,\n\tdata,\n\tlabelConfig,\n}: {\n\tlabelConfig: LayerLabelConfig;\n\torgUnit: { name: string };\n\tdata?: number;\n}) {\n\ttemplateSettings.interpolate = /{([\\s\\S]+?)}/g;\n\n\treturn template(labelConfig.labelTemplate.replace(/\\n/g, \"<br />\"))({\n\t\tname: orgUnit.name,\n\t\tvalue: typeof data === \"number\" ? valueFormatter(data) : \"\",\n\t});\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["useMapPeriods","useMapOrganisationUnit","useState","useThematicLayers","usePointLayer","useGoogleEngineLayers","useMapEvents","head","compact","useCallback","updatedLayers","set","useEffect","find","jsx","Center","CircularLoader","jsxs","i18n","MapLayersContext"],"mappings":";;;;;;;;;;;;;;;;AAwBO,SAAS,iBAAA,CAAkB;AAAA,EACjC,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,SAASA,mBAAA,EAAc;AAC7B,EAAA,MAAM,UAAUC,4BAAA,EAAuB;AACvC,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAIC,cAAA,CAOxC,EAAE,CAAA;AACJ,EAAA,MAAM,EAAE,cAAA,EAAgB,sBAAA,EAAwB,KAAA,EAAM,GAAIC,yBAAA;AAAA,IACzD;AAAA,MACC;AAAA;AACD,GACD;AACA,EAAA,MAAM,EAAE,aAAA,EAAe,kBAAA,EAAmB,GAAIC,qBAAA,EAAc;AAC5D,EAAA,MAAM,EAAE,cAAA,EAAgB,yBAAA,EAA0B,GACjDC,6BAAA,EAAsB;AACvB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAIH,eAAS,KAAK,CAAA;AAE5C,EAAAI,yBAAA,CAAa;AAAA,IACZ,aAAA,EAAe,CAAC,KAAA,KAAU;AACzB,MAAA,mBAAA,CAAoB,UAAU,KAAK,CAAA;AAAA,IACpC,CAAA;AAAA,IACA,UAAA,EAAY,CAAC,KAAA,KAAU;AACtB,MAAA,mBAAA,CAAoB,OAAO,KAAK,CAAA;AAAA,IACjC;AAAA,GACA,CAAA;AAED,EAAA,MAAM,iBAAiB,YAAY;AAClC,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,IAAI;AACH,MAAA,MAAM;AAAA,QACL,cAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACD,GAAI,MAAA;AACJ,MAAA,MAAM,uBAAA,GAA0B,MAAM,sBAAA,CAAuB;AAAA,QAC5D,GAAI,kBAAkB;AAAC,OACE,CAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["useMapPeriods","useMapOrganisationUnit","useState","useThematicLayers","usePointLayer","useGoogleEngineLayers","useMapEvents","head","compact","useCallback","updatedLayers","set","useEffect","find","jsx","Center","CircularLoader","jsxs","i18n","MapLayersContext"],"mappings":"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","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { LayersControlEvent } from \"leaflet\";\nimport { compact, find, head, set } from \"lodash\";\nimport { type ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { useMapEvents } from \"react-leaflet\";\nimport { MapLayersContext } from \"../../../../state\";\nimport { MapLayerConfig } from \"../../../MapArea/interfaces\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomMapLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tThematicLayerConfig,\n} from \"../../../MapLayer/interfaces\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../hooks\";\nimport {\n\tuseGoogleEngineLayers,\n\tusePointLayer,\n\tuseThematicLayers,\n} from \"./hooks\";\nimport type { MapAnalyticsOptions } from \"../../../../interfaces\";\n\nexport function MapLayersProvider({\n\tlayers,\n\tchildren,\n\tanalyticsOptions,\n}: {\n\tlayers: MapLayerConfig;\n\tchildren: ReactNode;\n\tanalyticsOptions?: MapAnalyticsOptions;\n}) {\n\tconst period = useMapPeriods();\n\tconst orgUnit = useMapOrganisationUnit();\n\tconst [updatedLayers, setUpdatedLayers] = useState<\n\t\tArray<\n\t\t\t| CustomThematicLayer\n\t\t\t| CustomBoundaryLayer\n\t\t\t| CustomPointLayer\n\t\t\t| CustomGoogleEngineLayer\n\t\t>\n\t>([]);\n\tconst { sanitizeLayers: sanitizeThematicLayers, error } = useThematicLayers(\n\t\t{\n\t\t\tanalyticsOptions,\n\t\t},\n\t);\n\tconst { sanitizeLayer: sanitizePointLayer } = usePointLayer();\n\tconst { sanitizeLayers: sanitizeEarthEngineLayers } =\n\t\tuseGoogleEngineLayers();\n\tconst [loading, setLoading] = useState(false);\n\n\tuseMapEvents({\n\t\toverlayremove: (event) => {\n\t\t\tsetupLayerListeners(\"remove\", event);\n\t\t},\n\t\toverlayadd: (event) => {\n\t\t\tsetupLayerListeners(\"add\", event);\n\t\t},\n\t});\n\n\tconst sanitizeLayers = async () => {\n\t\tsetLoading(true);\n\t\ttry {\n\t\t\tconst {\n\t\t\t\tboundaryLayers,\n\t\t\t\tthematicLayers,\n\t\t\t\tpointLayers,\n\t\t\t\tearthEngineLayers,\n\t\t\t} = layers;\n\t\t\tconst sanitizedThematicLayers = await sanitizeThematicLayers([\n\t\t\t\t...(thematicLayers ?? []),\n\t\t\t] as ThematicLayerConfig[]);\n\n\t\t\tconst sanitizedBoundaryLayers = (boundaryLayers ??\n\t\t\t\t[]) as CustomBoundaryLayer[];\n\t\t\tconst sanitizedPointLayer = head(pointLayers ?? [])\n\t\t\t\t? await sanitizePointLayer(\n\t\t\t\t\t\thead(pointLayers) as CustomPointLayer,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\t\tconst sanitizedEarthEngineLayers = await sanitizeEarthEngineLayers([\n\t\t\t\t...(earthEngineLayers ?? []),\n\t\t\t] as unknown as CustomGoogleEngineLayer[]);\n\t\t\tsetUpdatedLayers(\n\t\t\t\tcompact([\n\t\t\t\t\t...(sanitizedBoundaryLayers ?? []),\n\t\t\t\t\t...(sanitizedThematicLayers ?? []),\n\t\t\t\t\tsanitizedPointLayer,\n\t\t\t\t\t...(sanitizedEarthEngineLayers ?? []),\n\t\t\t\t]),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error sanitizing layers`, e.toString());\n\t\t}\n\t\tsetLoading(false);\n\t};\n\n\tconst updateLayer = useCallback(\n\t\t(id: string, updatedLayer: CustomMapLayer) => {\n\t\t\tsetUpdatedLayers((prevLayers) => {\n\t\t\t\tconst updatedLayers = [...prevLayers];\n\t\t\t\tconst layerIndex = updatedLayers.findIndex(\n\t\t\t\t\t(layer) => layer.id === updatedLayer.id,\n\t\t\t\t);\n\t\t\t\tif (layerIndex < 0) {\n\t\t\t\t\treturn prevLayers;\n\t\t\t\t}\n\t\t\t\tset(updatedLayers, layerIndex, updatedLayer);\n\t\t\t\treturn updatedLayers;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tsanitizeLayers().catch(console.error);\n\t}, [period, orgUnit]);\n\n\tconst setupLayerListeners = (\n\t\ttype: \"add\" | \"remove\",\n\t\tevent: LayersControlEvent,\n\t) => {\n\t\tconst name = event.name;\n\n\t\tconst layerConfig = find(updatedLayers, (layer: any) => {\n\t\t\tconst nameFromConfig =\n\t\t\t\tlayer?.name ?? layer?.dataItem?.displayname ?? layer?.label;\n\t\t\treturn nameFromConfig === name;\n\t\t});\n\n\t\tif (layerConfig) {\n\t\t\tupdateLayer(layerConfig.id, {\n\t\t\t\t...layerConfig,\n\t\t\t\tenabled: type === \"add\",\n\t\t\t});\n\t\t}\n\t};\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<MapLayersContext.Provider\n\t\t\tvalue={{ layers: updatedLayers, updateLayer }}\n\t\t>\n\t\t\t{children}\n\t\t</MapLayersContext.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/Map/utils/map.ts"],"names":["find","legend","filter","isEmpty","forEach","sortBy","isString","compact","defaultClasses","defaultColorScaleName","getColorPalette"],"mappings":";;;;;AAqBO,SAAS,gBAAA,CAAiB,GAAsB,KAAA,EAAY;AAClE,EAAA,MAAM,QAAQ,CAAA,CAAE,MAAA;AAChB,EAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AAErB;AAEO,SAAS,cAAA,CAAe,GAAsB,YAAA,EAAmB;AACvE,EAAA,MAAM,QAAQ,CAAA,CAAE,MAAA;AAChB,EAAA,KAAA,CAAM,SAAS,YAAY,CAAA;AAE5B;AAEO,SAAS,qBAAA,CACf,SACA,KAAA,EACS;AACT,EAAA,IAAI,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/Map/utils/map.ts"],"names":["find","legend","filter","isEmpty","forEach","sortBy","isString","compact","defaultClasses","defaultColorScaleName","getColorPalette"],"mappings":"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","file":"map.js","sourcesContent":["import type {\n\tLegend,\n\tOrganisationUnit,\n\tOrgUnitSelection,\n} from \"@hisptz/dhis2-utils\";\nimport { LeafletMouseEvent } from \"leaflet\";\nimport {\n\tcompact,\n\tfilter,\n\tfind,\n\tforEach,\n\tisEmpty,\n\tisString,\n\tsortBy,\n} from \"lodash\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorPalette,\n} from \"./colors.js\";\n\nexport function highlightFeature(e: LeafletMouseEvent, style: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(style);\n\t// layer.bringToFront();\n}\n\nexport function resetHighlight(e: LeafletMouseEvent, defaultStyle: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(defaultStyle);\n\t// layer.bringToBack();\n}\n\nexport function getColorFromLegendSet(\n\tlegends: Legend[],\n\tvalue?: number,\n): string {\n\tif (typeof value !== \"number\") {\n\t\treturn \"transparent\";\n\t}\n\tconst legend: any =\n\t\tfind(\n\t\t\tlegends ?? [],\n\t\t\t(legend: any) =>\n\t\t\t\tlegend?.startValue <= value && legend?.endValue >= value,\n\t\t) ?? {};\n\treturn legend.color ? legend.color : \"transparent\";\n}\n\nexport function getLegendCount(legend: any, data: any) {\n\tconst { startValue, endValue } = legend;\n\treturn filter(data, (d: any) => d.data >= startValue && d.data <= endValue)\n\t\t.length;\n}\n\nexport function getOrgUnitsSelection(orgUnitSelection: OrgUnitSelection) {\n\tconst orgUnits = [];\n\tif (orgUnitSelection.userOrgUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT\");\n\t}\n\n\tif (orgUnitSelection.userSubUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT_CHILDREN\");\n\t}\n\n\tif (orgUnitSelection.userSubX2Unit) {\n\t\torgUnits.push(\"USER_ORGUNIT_GRANDCHILDREN\");\n\t}\n\tif (!isEmpty(orgUnitSelection.levels)) {\n\t\tforEach(orgUnitSelection.levels, (level) =>\n\t\t\torgUnits.push(`LEVEL-${level}`),\n\t\t);\n\t}\n\n\treturn [\n\t\t...orgUnits,\n\t\t...(orgUnitSelection?.orgUnits?.map(\n\t\t\t(ou: OrganisationUnit) => `${ou.id}`,\n\t\t) ?? []),\n\t];\n}\n\nexport function sanitizeOrgUnits(metaData: any) {\n\tif (metaData) {\n\t\treturn metaData?.dimensions?.ou?.map((ouId: string) => ({\n\t\t\tid: ouId,\n\t\t\tname: metaData?.items[ouId]?.name,\n\t\t\tpath: metaData?.ouHierarchy?.[ouId],\n\t\t}));\n\t}\n\treturn [];\n}\n\nexport function toGeoJson(organisationUnits: any) {\n\treturn sortBy(organisationUnits, \"le\").map((ou: any) => {\n\t\ttry {\n\t\t\tconst coord = JSON.parse(ou.co);\n\t\t\tlet gpid = \"\";\n\t\t\tlet gppg = \"\";\n\t\t\tlet type = \"Point\";\n\n\t\t\tif (ou.ty === 2) {\n\t\t\t\ttype = \"Polygon\";\n\t\t\t\tif (ou.co.substring(0, 4) === \"[[[[\") {\n\t\t\t\t\ttype = \"MultiPolygon\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Grand parent\n\t\t\tif (isString(ou.pg) && ou.pg.length) {\n\t\t\t\tconst ids = compact(ou.pg.split(\"/\"));\n\n\t\t\t\t// Grand parent id\n\t\t\t\tif (ids.length >= 2) {\n\t\t\t\t\tgpid = ids[ids.length - 2] as string;\n\t\t\t\t}\n\n\t\t\t\t// Grand parent parent graph\n\t\t\t\tif (ids.length > 2) {\n\t\t\t\t\tgppg = \"/\" + ids.slice(0, ids.length - 2).join(\"/\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: \"Feature\",\n\t\t\t\tid: ou.id,\n\t\t\t\tgeometry: {\n\t\t\t\t\ttype,\n\t\t\t\t\tcoordinates: coord,\n\t\t\t\t},\n\t\t\t\tproperties: {\n\t\t\t\t\ttype,\n\t\t\t\t\tid: ou.id,\n\t\t\t\t\tname: ou.na,\n\t\t\t\t\thasCoordinatesDown: ou.hcd,\n\t\t\t\t\thasCoordinatesUp: ou.hcu,\n\t\t\t\t\tlevel: ou.le,\n\t\t\t\t\tgrandParentParentGraph: gppg,\n\t\t\t\t\tgrandParentId: gpid,\n\t\t\t\t\tparentGraph: ou.pg,\n\t\t\t\t\tparentId: ou.pi,\n\t\t\t\t\tparentName: ou.pn,\n\t\t\t\t\tdimensions: ou.dimensions,\n\t\t\t\t},\n\t\t\t};\n\t\t} catch (e) {\n\t\t\treturn {};\n\t\t}\n\t});\n}\n\nexport function sanitizeDate(startDate: string): string {\n\tif (startDate?.split(\"-\")?.[0]?.length < 4) {\n\t\treturn startDate?.split(\"-\")?.reverse()?.join(\"-\");\n\t}\n\treturn startDate;\n}\n\nexport function generateLegends(\n\tmaxValue: number,\n\tminValue: number,\n\t{ classesCount, colorClass }: { classesCount: number; colorClass: string },\n): Array<Legend> {\n\tconst count: number = classesCount ?? defaultClasses;\n\tconst color = colorClass ?? defaultColorScaleName;\n\n\tconst colorScale = [...getColorPalette(color, count)].reverse();\n\n\tconst maxLegendValue = 5 * Math.ceil(maxValue / 5);\n\tconst range = maxLegendValue / count;\n\n\tconst values = [];\n\tlet legendColorsIterator = colorScale.length - 1;\n\tfor (let i = 0; i < maxLegendValue; i += range) {\n\t\tconst id = colorScale[legendColorsIterator];\n\t\tvalues.push({\n\t\t\tstartValue: Math.floor(i),\n\t\t\tendValue: Math.floor(i + range),\n\t\t\tid,\n\t\t\tcolor: id,\n\t\t});\n\t\tlegendColorsIterator--;\n\t}\n\n\treturn values.reverse();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":";;;;;;;;;AAoBA,MAAM,YAAA,GAAe;AAAA,EACpB,MAAA,EAAQ;AACT,CAAA;AACA,MAAM,cAAA,GAAiB;AAAA,EACtB,MAAA,EAAQ;AACT,CAAA;AAQe,SAAR,UAAA,CAA4B;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACD,CAAA,EAMG;AACF,EAAA,MAAM,EAAE,SAAQ,GAAI,IAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":";;;;;;;;;AAoBA,MAAM,YAAA,GAAe;AAAA,EACpB,MAAA,EAAQ;AACT,CAAA;AACA,MAAM,cAAA,GAAiB;AAAA,EACtB,MAAA,EAAQ;AACT,CAAA;AAQe,SAAR,UAAA,CAA4B;AAAA,EAClC,IAAA;AAAA,EACA,OAAA;AAAA,EACA,mBAAA;AAAA,EACA,YAAA;AAAA,EACA;AACD,CAAA,EAMG;AACF,EAAA,MAAM,EAAE,SAAQ,GAAI,IAAA;AAEpB,EAAA,MAAM,KAAA,GAAQ,qBAAA,CAAsB,OAAA,EAAS,IAAA,CAAK,IAAI,CAAA;AAEtD,EAAA,MAAM,MAAA,GAAS,SAAA;AAAA,IACd,KAAA;AAAA,MACC,WAAA,CAAoB,OAAA,CAAQ,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA;AAAA,MACxD;AAAA,MACC,GAAA,CAAI,CAAC,CAAC,QAAA,EAAU,SAAS,CAAA,MAAiB;AAAA,MAC3C,SAAA;AAAA,MACA;AAAA,KACD,CAAE;AAAA,GACH;AAKA,EAAA,uBACC,GAAA,CAAA,QAAA,EAAA,EACC,QAAA,kBAAA,IAAA;AAAA,IAAC,OAAA;AAAA,IAAA;AAAA,MACA,MAAM,OAAA,CAAQ,OAAA;AAAA,MACd,aAAA,EAAe;AAAA,QACd,SAAA,EAAW,CAAC,CAAA,KAAM,gBAAA,CAAiB,GAAG,cAAc,CAAA;AAAA,QACpD,QAAA,EAAU,CAAC,CAAA,KAAM,cAAA,CAAe,GAAG,YAAY,CAAA;AAAA,QAC/C,GAAI,uBAAuB,EAAC;AAAA,QAC5B,SAAA,EAAW,CAAC,CAAA,KAAM;AACjB,UAAA,IAAI,YAAA,EAAc;AACjB,YAAA,YAAA,CAAa,GAAG,IAAI,CAAA;AAAA,UACrB;AAAA,QACD;AAAA,OACD;AAAA,MACA,WAAA,EAAW,IAAA;AAAA,MACX,WAAA,EAAa;AAAA,QACZ,SAAA,EAAW,KAAA;AAAA,QACX,WAAA,EAAa,CAAA;AAAA,QACb,OAAO,MAAA,CAAO,OAAA;AAAA,QACd,IAAA,EAAM,IAAA;AAAA,QACN,MAAA,EAAQ;AAAA,OACT;AAAA,MAGC,QAAA,EAAA;AAAA,QAAA,WAAA,oBACA,GAAA;AAAA,UAAC,WAAA;AAAA,UAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,WAAA;AAAA,YACA,MAAM,IAAA,CAAK,IAAA;AAAA,YACX,OAAA;AAAA,YACA,MAAA,EAAQ,CAAC,MAAA,CAAO,SAAA,EAAW,OAAO,QAAQ;AAAA;AAAA,SAC3C;AAAA,wBAED,GAAA,CAAC,iBAAc,IAAA,EAAY;AAAA;AAAA,KAAA;AAAA,IAXtB,CAAA,EAAG,IAAA,CAAK,QAAA,CAAS,EAAE,CAAA,MAAA;AAAA,GAYzB,EACD,CAAA;AAEF","file":"index.js","sourcesContent":["import { colors } from \"@dhis2/ui\";\nimport type { Legend } from \"@hisptz/dhis2-utils\";\nimport React from \"react\";\nimport { GeoJSON } from \"react-leaflet\";\nimport { MapOrgUnit } from \"../../../../../../interfaces\";\nimport {\n\tgetColorFromLegendSet,\n\thighlightFeature,\n\tresetHighlight,\n} from \"../../../../../../utils\";\nimport {\n\ttype LayerLabelConfig,\n\tThematicLayerDataItem,\n} from \"../../../../interfaces\";\nimport CustomTooltip from \"../CustomTooltip/index.js\";\nimport { type LeafletEventHandlerFnMap, type LeafletMouseEvent } from \"leaflet\";\nimport { LabelMarker } from \"../LabelMarker\";\nimport { getCenter } from \"geolib\";\nimport { chunk, flattenDeep } from \"lodash\";\n\nconst defaultStyle = {\n\tweight: 1,\n};\nconst highlightStyle = {\n\tweight: 2,\n};\n\ninterface LayerData {\n\torgUnit: MapOrgUnit;\n\tdata?: number;\n\tdataItem: ThematicLayerDataItem;\n}\n\nexport default function Choropleth({\n\tdata,\n\tlegends,\n\tcustomEventHandlers,\n\tonLayerClick,\n\tlabelConfig,\n}: {\n\tdata: LayerData;\n\tlegends: Legend[];\n\tcustomEventHandlers?: LeafletEventHandlerFnMap;\n\tonLayerClick?: (e: LeafletMouseEvent, data: LayerData) => void;\n\tlabelConfig?: LayerLabelConfig;\n}) {\n\tconst { orgUnit } = data;\n\n\tconst color = getColorFromLegendSet(legends, data.data);\n\n\tconst center = getCenter(\n\t\tchunk<number>(\n\t\t\tflattenDeep<number>(orgUnit.geoJSON.geometry.coordinates),\n\t\t\t2,\n\t\t).map(([latitude, longitude]: number[]) => ({\n\t\t\tlongitude,\n\t\t\tlatitude,\n\t\t})),\n\t) as {\n\t\tlongitude: number;\n\t\tlatitude: number;\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<GeoJSON\n\t\t\t\tdata={orgUnit.geoJSON}\n\t\t\t\teventHandlers={{\n\t\t\t\t\tmouseover: (e) => highlightFeature(e, highlightStyle),\n\t\t\t\t\tmouseout: (e) => resetHighlight(e, defaultStyle),\n\t\t\t\t\t...(customEventHandlers ?? {}),\n\t\t\t\t\tmousedown: (e) => {\n\t\t\t\t\t\tif (onLayerClick) {\n\t\t\t\t\t\t\tonLayerClick(e, data);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t}}\n\t\t\t\tinteractive\n\t\t\t\tpathOptions={{\n\t\t\t\t\tfillColor: color,\n\t\t\t\t\tfillOpacity: 1,\n\t\t\t\t\tcolor: colors.grey900,\n\t\t\t\t\tfill: true,\n\t\t\t\t\tweight: 1,\n\t\t\t\t}}\n\t\t\t\tkey={`${data.dataItem.id}-layer`}\n\t\t\t>\n\t\t\t\t{labelConfig && (\n\t\t\t\t\t<LabelMarker\n\t\t\t\t\t\tlayerColor={color}\n\t\t\t\t\t\tlabelConfig={labelConfig}\n\t\t\t\t\t\tdata={data.data}\n\t\t\t\t\t\torgUnit={orgUnit}\n\t\t\t\t\t\tcenter={[center.longitude, center.latitude]}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<CustomTooltip data={data} />\n\t\t\t</GeoJSON>\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import i18n from '@dhis2/d2-i18n';
|
|
3
3
|
import { Pane, Tooltip, Popup } from 'react-leaflet';
|
|
4
|
-
import { useMapPeriods } from '../../../../../MapProvider/hooks
|
|
4
|
+
import { useMapPeriods } from '../../../../../MapProvider/hooks';
|
|
5
5
|
|
|
6
6
|
function CustomTooltip({
|
|
7
7
|
data: dataObject
|
|
@@ -9,7 +9,7 @@ function CustomTooltip({
|
|
|
9
9
|
const { dataItem, orgUnit, data } = dataObject ?? {};
|
|
10
10
|
const { periods } = useMapPeriods() ?? {};
|
|
11
11
|
const formatter = Intl.NumberFormat(navigator.language, {}).format;
|
|
12
|
-
const formattedData = data ? formatter(data) : "";
|
|
12
|
+
const formattedData = typeof data === "number" ? formatter(data) : "";
|
|
13
13
|
return /* @__PURE__ */ jsxs(
|
|
14
14
|
Pane,
|
|
15
15
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":";;;;;AAMe,SAAR,aAAA,CAA+B;AAAA,EACrC,IAAA,EAAM;AACP,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAK,GAAI,cAAc,EAAC;AACnD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,aAAA,MAAmB,EAAC;AAExC,EAAA,MAAM,YAAY,IAAA,CAAK,YAAA,CAAa,UAAU,QAAA,EAAU,EAAE,CAAA,CAAE,MAAA;AAE5D,EAAA,MAAM,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":";;;;;AAMe,SAAR,aAAA,CAA+B;AAAA,EACrC,IAAA,EAAM;AACP,CAAA,EAEG;AACF,EAAA,MAAM,EAAE,QAAA,EAAU,OAAA,EAAS,IAAA,EAAK,GAAI,cAAc,EAAC;AACnD,EAAA,MAAM,EAAE,OAAA,EAAQ,GAAI,aAAA,MAAmB,EAAC;AAExC,EAAA,MAAM,YAAY,IAAA,CAAK,YAAA,CAAa,UAAU,QAAA,EAAU,EAAE,CAAA,CAAE,MAAA;AAE5D,EAAA,MAAM,gBACL,OAAO,IAAA,KAAS,QAAA,GAAW,SAAA,CAAU,IAAc,CAAA,GAAI,EAAA;AAExD,EAAA,uBACC,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACA,MAAM,CAAA,EAAG,QAAA,CAAS,WAAW,CAAA,CAAA,EAAI,QAAQ,EAAE,CAAA,WAAA,CAAA;AAAA,MAC3C,IAAA,EAAK,WAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,UAAA,OAAA,EAAS,IAAA;AAAA,UAAK,IAAA;AAAA,UAAG,aAAA;AAAA,UAAc;AAAA,SAAA,EACjC,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAM,QAAA,EAAU,EAAA,EAChB,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAG,KAAA,EAAO,EAAE,QAAQ,CAAA,EAAE,EAAI,mBAAS,IAAA,EAAK,CAAA;AAAA,0BACzC,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,QAAA,EAAU,WAAA,EAAY,CAAA;AAAA,0BAC5B,GAAA,CAAC,KAAA,EAAA,EAAK,QAAA,EAAA,OAAA,EAAS,GAAA,CAAI,CAAC,MAAA,KAAW,MAAA,CAAO,IAAI,CAAA,CAAE,IAAA,CAAK,GAAG,CAAA,EAAE,CAAA;AAAA,+BACrD,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,EAAE,OAAO,CAAA;AAAA,YAAE,IAAA;AAAA,YAAG;AAAA,WAAA,EACrB;AAAA,SAAA,EACD;AAAA;AAAA;AAAA,GACD;AAEF","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport React from \"react\";\nimport { Pane, Popup, Tooltip } from \"react-leaflet\";\nimport { useMapPeriods } from \"../../../../../MapProvider/hooks\";\nimport { ThematicLayerData } from \"../../../../interfaces\";\n\nexport default function CustomTooltip({\n\tdata: dataObject,\n}: {\n\tdata: ThematicLayerData;\n}) {\n\tconst { dataItem, orgUnit, data } = dataObject ?? {};\n\tconst { periods } = useMapPeriods() ?? {};\n\n\tconst formatter = Intl.NumberFormat(navigator.language, {}).format;\n\n\tconst formattedData =\n\t\ttypeof data === \"number\" ? formatter(data as number) : \"\";\n\n\treturn (\n\t\t<Pane\n\t\t\tname={`${dataItem.displayName}-${orgUnit.id}-popup-pane`}\n\t\t\tpane=\"popupPane\"\n\t\t>\n\t\t\t<Tooltip>\n\t\t\t\t{orgUnit?.name} ({formattedData})\n\t\t\t</Tooltip>\n\t\t\t<Popup minWidth={80}>\n\t\t\t\t<h3 style={{ margin: 0 }}>{orgUnit?.name}</h3>\n\t\t\t\t<div>{dataItem?.displayName}</div>\n\t\t\t\t<div>{periods?.map((period) => period.name).join(\",\")}</div>\n\t\t\t\t<div>\n\t\t\t\t\t{i18n.t(\"Value\")}: {formattedData}\n\t\t\t\t</div>\n\t\t\t</Popup>\n\t\t</Pane>\n\t);\n}\n"]}
|
|
@@ -9,7 +9,7 @@ function getLabel({
|
|
|
9
9
|
templateSettings.interpolate = /{([\s\S]+?)}/g;
|
|
10
10
|
return template(labelConfig.labelTemplate.replace(/\n/g, "<br />"))({
|
|
11
11
|
name: orgUnit.name,
|
|
12
|
-
value: data ? valueFormatter(data) : ""
|
|
12
|
+
value: typeof data === "number" ? valueFormatter(data) : ""
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
15
|
|
package/dist/esm/components/Map/components/MapLayer/components/ThematicLayer/utils/label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/utils/label.ts"],"names":[],"mappings":";;AAGA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,SAAA,CAAU,QAAQ,CAAA,CAAE,MAAA;AAEtD,SAAS,QAAA,CAAS;AAAA,EACxB,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,gBAAA,CAAiB,WAAA,GAAc,eAAA;AAE/B,EAAA,OAAO,SAAS,WAAA,CAAY,aAAA,CAAc,QAAQ,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE;AAAA,IACnE,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/utils/label.ts"],"names":[],"mappings":";;AAGA,MAAM,cAAA,GAAiB,IAAA,CAAK,YAAA,CAAa,SAAA,CAAU,QAAQ,CAAA,CAAE,MAAA;AAEtD,SAAS,QAAA,CAAS;AAAA,EACxB,OAAA;AAAA,EACA,IAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,gBAAA,CAAiB,WAAA,GAAc,eAAA;AAE/B,EAAA,OAAO,SAAS,WAAA,CAAY,aAAA,CAAc,QAAQ,KAAA,EAAO,QAAQ,CAAC,CAAA,CAAE;AAAA,IACnE,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,OAAO,OAAO,IAAA,KAAS,QAAA,GAAW,cAAA,CAAe,IAAI,CAAA,GAAI;AAAA,GACzD,CAAA;AACF","file":"label.js","sourcesContent":["import { template, templateSettings } from \"lodash\";\nimport type { LayerLabelConfig } from \"../../../interfaces\";\n\nconst valueFormatter = Intl.NumberFormat(navigator.language).format;\n\nexport function getLabel({\n\torgUnit,\n\tdata,\n\tlabelConfig,\n}: {\n\tlabelConfig: LayerLabelConfig;\n\torgUnit: { name: string };\n\tdata?: number;\n}) {\n\ttemplateSettings.interpolate = /{([\\s\\S]+?)}/g;\n\n\treturn template(labelConfig.labelTemplate.replace(/\\n/g, \"<br />\"))({\n\t\tname: orgUnit.name,\n\t\tvalue: typeof data === \"number\" ? valueFormatter(data) : \"\",\n\t});\n}\n"]}
|
package/dist/esm/components/Map/components/MapProvider/components/MapLayerProvider/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["updatedLayers"],"mappings":";;;;;;;;;;AAwBO,SAAS,iBAAA,CAAkB;AAAA,EACjC,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACD,CAAA,EAIG;AACF,EAAA,MAAM,SAAS,aAAA,EAAc;AAC7B,EAAA,MAAM,UAAU,sBAAA,EAAuB;AACvC,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAOxC,EAAE,CAAA;AACJ,EAAA,MAAM,EAAE,cAAA,EAAgB,sBAAA,EAAwB,KAAA,EAAM,GAAI,iBAAA;AAAA,IACzD;AAAA,MACC;AAAA;AACD,GACD;AACA,EAAA,MAAM,EAAE,aAAA,EAAe,kBAAA,EAAmB,GAAI,aAAA,EAAc;AAC5D,EAAA,MAAM,EAAE,cAAA,EAAgB,yBAAA,EAA0B,GACjD,qBAAA,EAAsB;AACvB,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAE5C,EAAA,YAAA,CAAa;AAAA,IACZ,aAAA,EAAe,CAAC,KAAA,KAAU;AACzB,MAAA,mBAAA,CAAoB,UAAU,KAAK,CAAA;AAAA,IACpC,CAAA;AAAA,IACA,UAAA,EAAY,CAAC,KAAA,KAAU;AACtB,MAAA,mBAAA,CAAoB,OAAO,KAAK,CAAA;AAAA,IACjC;AAAA,GACA,CAAA;AAED,EAAA,MAAM,iBAAiB,YAAY;AAClC,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,IAAI;AACH,MAAA,MAAM;AAAA,QACL,cAAA;AAAA,QACA,cAAA;AAAA,QACA,WAAA;AAAA,QACA;AAAA,OACD,GAAI,MAAA;AACJ,MAAA,MAAM,uBAAA,GAA0B,MAAM,sBAAA,CAAuB;AAAA,QAC5D,GAAI,kBAAkB;AAAC,OACE,CAAA;
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":["updatedLayers"],"mappings":"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","file":"index.js","sourcesContent":["import i18n from \"@dhis2/d2-i18n\";\nimport { Center, CircularLoader } from \"@dhis2/ui\";\nimport { LayersControlEvent } from \"leaflet\";\nimport { compact, find, head, set } from \"lodash\";\nimport { type ReactNode, useCallback, useEffect, useState } from \"react\";\nimport { useMapEvents } from \"react-leaflet\";\nimport { MapLayersContext } from \"../../../../state\";\nimport { MapLayerConfig } from \"../../../MapArea/interfaces\";\nimport {\n\tCustomBoundaryLayer,\n\tCustomGoogleEngineLayer,\n\tCustomMapLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tThematicLayerConfig,\n} from \"../../../MapLayer/interfaces\";\nimport { useMapOrganisationUnit, useMapPeriods } from \"../../hooks\";\nimport {\n\tuseGoogleEngineLayers,\n\tusePointLayer,\n\tuseThematicLayers,\n} from \"./hooks\";\nimport type { MapAnalyticsOptions } from \"../../../../interfaces\";\n\nexport function MapLayersProvider({\n\tlayers,\n\tchildren,\n\tanalyticsOptions,\n}: {\n\tlayers: MapLayerConfig;\n\tchildren: ReactNode;\n\tanalyticsOptions?: MapAnalyticsOptions;\n}) {\n\tconst period = useMapPeriods();\n\tconst orgUnit = useMapOrganisationUnit();\n\tconst [updatedLayers, setUpdatedLayers] = useState<\n\t\tArray<\n\t\t\t| CustomThematicLayer\n\t\t\t| CustomBoundaryLayer\n\t\t\t| CustomPointLayer\n\t\t\t| CustomGoogleEngineLayer\n\t\t>\n\t>([]);\n\tconst { sanitizeLayers: sanitizeThematicLayers, error } = useThematicLayers(\n\t\t{\n\t\t\tanalyticsOptions,\n\t\t},\n\t);\n\tconst { sanitizeLayer: sanitizePointLayer } = usePointLayer();\n\tconst { sanitizeLayers: sanitizeEarthEngineLayers } =\n\t\tuseGoogleEngineLayers();\n\tconst [loading, setLoading] = useState(false);\n\n\tuseMapEvents({\n\t\toverlayremove: (event) => {\n\t\t\tsetupLayerListeners(\"remove\", event);\n\t\t},\n\t\toverlayadd: (event) => {\n\t\t\tsetupLayerListeners(\"add\", event);\n\t\t},\n\t});\n\n\tconst sanitizeLayers = async () => {\n\t\tsetLoading(true);\n\t\ttry {\n\t\t\tconst {\n\t\t\t\tboundaryLayers,\n\t\t\t\tthematicLayers,\n\t\t\t\tpointLayers,\n\t\t\t\tearthEngineLayers,\n\t\t\t} = layers;\n\t\t\tconst sanitizedThematicLayers = await sanitizeThematicLayers([\n\t\t\t\t...(thematicLayers ?? []),\n\t\t\t] as ThematicLayerConfig[]);\n\n\t\t\tconst sanitizedBoundaryLayers = (boundaryLayers ??\n\t\t\t\t[]) as CustomBoundaryLayer[];\n\t\t\tconst sanitizedPointLayer = head(pointLayers ?? [])\n\t\t\t\t? await sanitizePointLayer(\n\t\t\t\t\t\thead(pointLayers) as CustomPointLayer,\n\t\t\t\t\t)\n\t\t\t\t: undefined;\n\t\t\tconst sanitizedEarthEngineLayers = await sanitizeEarthEngineLayers([\n\t\t\t\t...(earthEngineLayers ?? []),\n\t\t\t] as unknown as CustomGoogleEngineLayer[]);\n\t\t\tsetUpdatedLayers(\n\t\t\t\tcompact([\n\t\t\t\t\t...(sanitizedBoundaryLayers ?? []),\n\t\t\t\t\t...(sanitizedThematicLayers ?? []),\n\t\t\t\t\tsanitizedPointLayer,\n\t\t\t\t\t...(sanitizedEarthEngineLayers ?? []),\n\t\t\t\t]),\n\t\t\t);\n\t\t} catch (e: any) {\n\t\t\tconsole.error(`Error sanitizing layers`, e.toString());\n\t\t}\n\t\tsetLoading(false);\n\t};\n\n\tconst updateLayer = useCallback(\n\t\t(id: string, updatedLayer: CustomMapLayer) => {\n\t\t\tsetUpdatedLayers((prevLayers) => {\n\t\t\t\tconst updatedLayers = [...prevLayers];\n\t\t\t\tconst layerIndex = updatedLayers.findIndex(\n\t\t\t\t\t(layer) => layer.id === updatedLayer.id,\n\t\t\t\t);\n\t\t\t\tif (layerIndex < 0) {\n\t\t\t\t\treturn prevLayers;\n\t\t\t\t}\n\t\t\t\tset(updatedLayers, layerIndex, updatedLayer);\n\t\t\t\treturn updatedLayers;\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tsanitizeLayers().catch(console.error);\n\t}, [period, orgUnit]);\n\n\tconst setupLayerListeners = (\n\t\ttype: \"add\" | \"remove\",\n\t\tevent: LayersControlEvent,\n\t) => {\n\t\tconst name = event.name;\n\n\t\tconst layerConfig = find(updatedLayers, (layer: any) => {\n\t\t\tconst nameFromConfig =\n\t\t\t\tlayer?.name ?? layer?.dataItem?.displayname ?? layer?.label;\n\t\t\treturn nameFromConfig === name;\n\t\t});\n\n\t\tif (layerConfig) {\n\t\t\tupdateLayer(layerConfig.id, {\n\t\t\t\t...layerConfig,\n\t\t\t\tenabled: type === \"add\",\n\t\t\t});\n\t\t}\n\t};\n\n\tif (loading) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<CircularLoader small />\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\tif (error) {\n\t\treturn (\n\t\t\t<div style={{ height: \"100%\", width: \"100%\" }}>\n\t\t\t\t<Center>\n\t\t\t\t\t<h4>\n\t\t\t\t\t\t{i18n.t(\"Error\")}: {error.message}\n\t\t\t\t\t</h4>\n\t\t\t\t</Center>\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<MapLayersContext.Provider\n\t\t\tvalue={{ layers: updatedLayers, updateLayer }}\n\t\t>\n\t\t\t{children}\n\t\t</MapLayersContext.Provider>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Map/utils/map.ts"],"names":["legend"],"mappings":";;;AAqBO,SAAS,gBAAA,CAAiB,GAAsB,KAAA,EAAY;AAClE,EAAA,MAAM,QAAQ,CAAA,CAAE,MAAA;AAChB,EAAA,KAAA,CAAM,SAAS,KAAK,CAAA;AAErB;AAEO,SAAS,cAAA,CAAe,GAAsB,YAAA,EAAmB;AACvE,EAAA,MAAM,QAAQ,CAAA,CAAE,MAAA;AAChB,EAAA,KAAA,CAAM,SAAS,YAAY,CAAA;AAE5B;AAEO,SAAS,qBAAA,CACf,SACA,KAAA,EACS;AACT,EAAA,IAAI,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Map/utils/map.ts"],"names":["legend"],"mappings":"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","file":"map.js","sourcesContent":["import type {\n\tLegend,\n\tOrganisationUnit,\n\tOrgUnitSelection,\n} from \"@hisptz/dhis2-utils\";\nimport { LeafletMouseEvent } from \"leaflet\";\nimport {\n\tcompact,\n\tfilter,\n\tfind,\n\tforEach,\n\tisEmpty,\n\tisString,\n\tsortBy,\n} from \"lodash\";\nimport {\n\tdefaultClasses,\n\tdefaultColorScaleName,\n\tgetColorPalette,\n} from \"./colors.js\";\n\nexport function highlightFeature(e: LeafletMouseEvent, style: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(style);\n\t// layer.bringToFront();\n}\n\nexport function resetHighlight(e: LeafletMouseEvent, defaultStyle: any) {\n\tconst layer = e.target;\n\tlayer.setStyle(defaultStyle);\n\t// layer.bringToBack();\n}\n\nexport function getColorFromLegendSet(\n\tlegends: Legend[],\n\tvalue?: number,\n): string {\n\tif (typeof value !== \"number\") {\n\t\treturn \"transparent\";\n\t}\n\tconst legend: any =\n\t\tfind(\n\t\t\tlegends ?? [],\n\t\t\t(legend: any) =>\n\t\t\t\tlegend?.startValue <= value && legend?.endValue >= value,\n\t\t) ?? {};\n\treturn legend.color ? legend.color : \"transparent\";\n}\n\nexport function getLegendCount(legend: any, data: any) {\n\tconst { startValue, endValue } = legend;\n\treturn filter(data, (d: any) => d.data >= startValue && d.data <= endValue)\n\t\t.length;\n}\n\nexport function getOrgUnitsSelection(orgUnitSelection: OrgUnitSelection) {\n\tconst orgUnits = [];\n\tif (orgUnitSelection.userOrgUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT\");\n\t}\n\n\tif (orgUnitSelection.userSubUnit) {\n\t\torgUnits.push(\"USER_ORGUNIT_CHILDREN\");\n\t}\n\n\tif (orgUnitSelection.userSubX2Unit) {\n\t\torgUnits.push(\"USER_ORGUNIT_GRANDCHILDREN\");\n\t}\n\tif (!isEmpty(orgUnitSelection.levels)) {\n\t\tforEach(orgUnitSelection.levels, (level) =>\n\t\t\torgUnits.push(`LEVEL-${level}`),\n\t\t);\n\t}\n\n\treturn [\n\t\t...orgUnits,\n\t\t...(orgUnitSelection?.orgUnits?.map(\n\t\t\t(ou: OrganisationUnit) => `${ou.id}`,\n\t\t) ?? []),\n\t];\n}\n\nexport function sanitizeOrgUnits(metaData: any) {\n\tif (metaData) {\n\t\treturn metaData?.dimensions?.ou?.map((ouId: string) => ({\n\t\t\tid: ouId,\n\t\t\tname: metaData?.items[ouId]?.name,\n\t\t\tpath: metaData?.ouHierarchy?.[ouId],\n\t\t}));\n\t}\n\treturn [];\n}\n\nexport function toGeoJson(organisationUnits: any) {\n\treturn sortBy(organisationUnits, \"le\").map((ou: any) => {\n\t\ttry {\n\t\t\tconst coord = JSON.parse(ou.co);\n\t\t\tlet gpid = \"\";\n\t\t\tlet gppg = \"\";\n\t\t\tlet type = \"Point\";\n\n\t\t\tif (ou.ty === 2) {\n\t\t\t\ttype = \"Polygon\";\n\t\t\t\tif (ou.co.substring(0, 4) === \"[[[[\") {\n\t\t\t\t\ttype = \"MultiPolygon\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Grand parent\n\t\t\tif (isString(ou.pg) && ou.pg.length) {\n\t\t\t\tconst ids = compact(ou.pg.split(\"/\"));\n\n\t\t\t\t// Grand parent id\n\t\t\t\tif (ids.length >= 2) {\n\t\t\t\t\tgpid = ids[ids.length - 2] as string;\n\t\t\t\t}\n\n\t\t\t\t// Grand parent parent graph\n\t\t\t\tif (ids.length > 2) {\n\t\t\t\t\tgppg = \"/\" + ids.slice(0, ids.length - 2).join(\"/\");\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\ttype: \"Feature\",\n\t\t\t\tid: ou.id,\n\t\t\t\tgeometry: {\n\t\t\t\t\ttype,\n\t\t\t\t\tcoordinates: coord,\n\t\t\t\t},\n\t\t\t\tproperties: {\n\t\t\t\t\ttype,\n\t\t\t\t\tid: ou.id,\n\t\t\t\t\tname: ou.na,\n\t\t\t\t\thasCoordinatesDown: ou.hcd,\n\t\t\t\t\thasCoordinatesUp: ou.hcu,\n\t\t\t\t\tlevel: ou.le,\n\t\t\t\t\tgrandParentParentGraph: gppg,\n\t\t\t\t\tgrandParentId: gpid,\n\t\t\t\t\tparentGraph: ou.pg,\n\t\t\t\t\tparentId: ou.pi,\n\t\t\t\t\tparentName: ou.pn,\n\t\t\t\t\tdimensions: ou.dimensions,\n\t\t\t\t},\n\t\t\t};\n\t\t} catch (e) {\n\t\t\treturn {};\n\t\t}\n\t});\n}\n\nexport function sanitizeDate(startDate: string): string {\n\tif (startDate?.split(\"-\")?.[0]?.length < 4) {\n\t\treturn startDate?.split(\"-\")?.reverse()?.join(\"-\");\n\t}\n\treturn startDate;\n}\n\nexport function generateLegends(\n\tmaxValue: number,\n\tminValue: number,\n\t{ classesCount, colorClass }: { classesCount: number; colorClass: string },\n): Array<Legend> {\n\tconst count: number = classesCount ?? defaultClasses;\n\tconst color = colorClass ?? defaultColorScaleName;\n\n\tconst colorScale = [...getColorPalette(color, count)].reverse();\n\n\tconst maxLegendValue = 5 * Math.ceil(maxValue / 5);\n\tconst range = maxLegendValue / count;\n\n\tconst values = [];\n\tlet legendColorsIterator = colorScale.length - 1;\n\tfor (let i = 0; i < maxLegendValue; i += range) {\n\t\tconst id = colorScale[legendColorsIterator];\n\t\tvalues.push({\n\t\t\tstartValue: Math.floor(i),\n\t\t\tendValue: Math.floor(i + range),\n\t\t\tid,\n\t\t\tcolor: id,\n\t\t});\n\t\tlegendColorsIterator--;\n\t}\n\n\treturn values.reverse();\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAM1D,OAAO,EACN,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAYhF,UAAU,SAAS;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACX,EAAE;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/D,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAC/B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/Choropleth/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAM1D,OAAO,EACN,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAYhF,UAAU,SAAS;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,qBAAqB,CAAC;CAChC;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAClC,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,YAAY,EACZ,WAAW,GACX,EAAE;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/D,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAC/B,2CAuDA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ThematicLayerData } from "../../../../interfaces
|
|
1
|
+
import { ThematicLayerData } from "../../../../interfaces";
|
|
2
2
|
export default function CustomTooltip({ data: dataObject, }: {
|
|
3
3
|
data: ThematicLayerData;
|
|
4
|
-
}): import("react/jsx-runtime
|
|
4
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/ThematicLayer/components/CustomTooltip/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACrC,IAAI,EAAE,UAAU,GAChB,EAAE;IACF,IAAI,EAAE,iBAAiB,CAAC;CACxB,2CA2BA"}
|
package/dist/types/components/Map/components/MapProvider/components/MapLayerProvider/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,OAAO,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAe7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,gBAAgB,GAChB,EAAE;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACvC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/Map/components/MapProvider/components/MapLayerProvider/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAoC,MAAM,OAAO,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAe7D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,EACjC,MAAM,EACN,QAAQ,EACR,gBAAgB,GAChB,EAAE;IACF,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;CACvC,2CAuIA"}
|