@hisptz/dhis2-analytics 2.0.48 → 2.0.49
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/LegendArea/components/LegendCardHeader/index.js +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
- package/dist/components/Map/components/MapLayer/components/LegendArea/index.js +6 -5
- package/dist/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js +2 -2
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.js.map +1 -1
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js +3 -2
- package/dist/esm/components/Map/components/MapLayer/components/LegendArea/index.js.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.d.ts.map +1 -1
- package/dist/types/components/Map/components/MapLayer/components/LegendArea/index.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -20,7 +20,7 @@ function LegendCardHeader({
|
|
|
20
20
|
padding: 8
|
|
21
21
|
},
|
|
22
22
|
children: [
|
|
23
|
-
/* @__PURE__ */ jsxRuntime.jsx("h4", { style: { margin: 0 }, className: "legend-header", children: lodash.truncate(title, { length:
|
|
23
|
+
/* @__PURE__ */ jsxRuntime.jsx("h4", { style: { margin: 0 }, className: "legend-header", children: /* @__PURE__ */ jsxRuntime.jsx(ui.Tooltip, { content: title, children: lodash.truncate(title, { length: 20, omission: "..." }) }) }),
|
|
24
24
|
collapsible && /* @__PURE__ */ jsxRuntime.jsx("div", { onClick: onCollapse, children: /* @__PURE__ */ jsxRuntime.jsx(ui.IconLaunch16, {}) })
|
|
25
25
|
]
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":["jsxs","jsx","truncate","IconLaunch16"],"mappings":";;;;;;AAIe,SAAR,gBAAkC,CAAA;AAAA,EACxC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AACD,CAIG,EAAA;AACF,EACC,uBAAAA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,KAAO,EAAA,MAAA;AAAA,QACP,cAAgB,EAAA,eAAA;AAAA,QAChB,UAAY,EAAA,QAAA;AAAA,QACZ,OAAS,EAAA,CAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":["jsxs","jsx","Tooltip","truncate","IconLaunch16"],"mappings":";;;;;;AAIe,SAAR,gBAAkC,CAAA;AAAA,EACxC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AACD,CAIG,EAAA;AACF,EACC,uBAAAA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,KAAO,EAAA,MAAA;AAAA,QACP,cAAgB,EAAA,eAAA;AAAA,QAChB,UAAY,EAAA,QAAA;AAAA,QACZ,OAAS,EAAA,CAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAA,IAAA,EAAA,EAAG,OAAO,EAAE,MAAA,EAAQ,GAAK,EAAA,SAAA,EAAU,iBACnC,QAAC,kBAAAA,cAAA,CAAAC,UAAA,EAAA,EAAQ,SAAS,KAChB,EAAA,QAAA,EAAAC,eAAA,CAAS,OAAO,EAAE,MAAA,EAAQ,IAAI,QAAU,EAAA,KAAA,EAAO,CAAA,EACjD,CACD,EAAA,CAAA;AAAA,QACC,+BACCF,cAAA,CAAA,KAAA,EAAA,EAAI,SAAS,UACb,EAAA,QAAA,kBAAAA,cAAA,CAACG,mBAAa,CACf,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAEF,CAAA;AAEF","file":"index.js","sourcesContent":["import { IconLaunch16, Tooltip } from \"@dhis2/ui\";\nimport React from \"react\";\nimport { truncate } from \"lodash\";\n\nexport default function LegendCardHeader({\n\ttitle,\n\tcollapsible,\n\tonCollapse,\n}: {\n\ttitle: string;\n\tonCollapse?: () => void;\n\tcollapsible?: boolean;\n}) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tpadding: 8,\n\t\t\t}}\n\t\t>\n\t\t\t<h4 style={{ margin: 0 }} className=\"legend-header\">\n\t\t\t\t<Tooltip content={title}>\n\t\t\t\t\t{truncate(title, { length: 20, omission: \"...\" })}\n\t\t\t\t</Tooltip>\n\t\t\t</h4>\n\t\t\t{collapsible && (\n\t\t\t\t<div onClick={onCollapse}>\n\t\t\t\t\t<IconLaunch16 />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -4,8 +4,8 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var ui = require('@dhis2/ui');
|
|
5
5
|
var lodash = require('lodash');
|
|
6
6
|
var React = require('react');
|
|
7
|
-
var
|
|
8
|
-
var index_js
|
|
7
|
+
var CustomControl = require('../../../MapControls/components/CustomControl');
|
|
8
|
+
var index_js = require('../../interfaces/index.js');
|
|
9
9
|
var PointLegend = require('../PointLayer/components/PointLegend/index.js');
|
|
10
10
|
var BubbleLegend = require('../ThematicLayer/components/Bubble/components/BubbleLegend/index.js');
|
|
11
11
|
var ChoroplethLegend = require('../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js');
|
|
@@ -27,7 +27,7 @@ function getLegendComponent(layer) {
|
|
|
27
27
|
if (layer.type === "point") {
|
|
28
28
|
return /* @__PURE__ */ jsxRuntime.jsx(PointLegend__default.default, { name: layer.label });
|
|
29
29
|
}
|
|
30
|
-
if (index_js
|
|
30
|
+
if (index_js.SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {
|
|
31
31
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
32
32
|
EarthEngineLegend__default.default,
|
|
33
33
|
{
|
|
@@ -175,14 +175,15 @@ function LegendArea({
|
|
|
175
175
|
layers.filter((layer) => layer.enabled).map(getLegendComponent)
|
|
176
176
|
);
|
|
177
177
|
const { position, collapsible } = legendConfig ?? {};
|
|
178
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
178
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CustomControl.CustomControl, { position, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
179
179
|
"div",
|
|
180
180
|
{
|
|
181
181
|
style: {
|
|
182
182
|
display: "flex",
|
|
183
183
|
flexDirection: "column",
|
|
184
184
|
gap: 16,
|
|
185
|
-
alignItems: "flex-end"
|
|
185
|
+
alignItems: "flex-end",
|
|
186
|
+
maxWidth: 200
|
|
186
187
|
},
|
|
187
188
|
children: legends?.map((legend, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
188
189
|
Legend,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":["jsx","PointLegend","SUPPORTED_EARTH_ENGINE_LAYERS","EarthEngineLegend","BubbleLegend","head","ChoroplethLegend","useState","useRef","useEffect","jsxs","IconLegend24","Portal","classes","Popper","colors","usePrintMedia","React","compact","CustomControl"],"mappings":"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","file":"index.js","sourcesContent":["import { colors, IconLegend24, Popper, Portal } from \"@dhis2/ui\";\nimport { ControlPosition } from \"leaflet\";\nimport { compact, head } from \"lodash\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { MapLegendConfig } from \"../../../MapArea/interfaces/index.js\";\nimport { CustomControl } from \"../../../MapControls/components/CustomControl/index.js\";\nimport {\n\tCustomBubbleLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../interfaces/index.js\";\nimport PointLegend from \"../PointLayer/components/PointLegend/index.js\";\nimport BubbleLegend from \"../ThematicLayer/components/Bubble/components/BubbleLegend/index.js\";\nimport ChoroplethLegend from \"../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js\";\nimport EarthEngineLegend from \"../GoogleEngineLayer/components/EarthEngineLegend.js\";\nimport classes from \"./LegendArea.module.css\";\nimport { usePrintMedia } from \"../../../../hooks/map.js\";\n\nconst TOOLTIP_OFFSET = 4;\n\nfunction getLegendComponent(\n\tlayer: CustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer,\n) {\n\tif (layer.type === \"point\") {\n\t\treturn <PointLegend name={layer.label} />;\n\t}\n\n\tif (SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {\n\t\treturn (\n\t\t\t<EarthEngineLegend\n\t\t\t\tname={layer.name ?? \"\"}\n\t\t\t\tlayer={layer as CustomGoogleEngineLayer}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst { type, enabled, control, dataItem, name, data, legends } =\n\t\t(layer as CustomThematicLayer) ?? {};\n\n\tif (!enabled || !control) {\n\t\treturn null;\n\t}\n\tswitch (type) {\n\t\tcase \"bubble\":\n\t\t\treturn (\n\t\t\t\t<BubbleLegend\n\t\t\t\t\tradius={\n\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius ?? {\n\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\tmax: 50,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"choropleth\":\n\t\t\treturn (\n\t\t\t\t<ChoroplethLegend\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t}\n}\n\nfunction CollapsedLegendIcon({\n\tonCollapse,\n\tname,\n}: {\n\tname: string;\n\tonCollapse: () => void;\n}) {\n\tconst openDelay = 200;\n\tconst closeDelay = 200;\n\tconst [openTooltip, setOpenTooltip] = useState(false);\n\tconst openTimerRef = useRef<any>(null);\n\tconst closeTimerRef = useRef<any>(null);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst hideModifier = { name: \"hide\" };\n\tconst offsetModifier = {\n\t\tname: \"offset\",\n\t\toptions: {\n\t\t\toffset: [0, TOOLTIP_OFFSET],\n\t\t},\n\t};\n\n\tconst flipModifier = {\n\t\tname: \"flip\",\n\t\toptions: { altBoundary: true },\n\t};\n\n\tconst onMouseOver = () => {\n\t\tclearTimeout(closeTimerRef.current);\n\n\t\topenTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(true);\n\t\t}, openDelay);\n\t};\n\n\tconst onMouseOut = () => {\n\t\tclearTimeout(openTimerRef.current);\n\n\t\tcloseTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(false);\n\t\t}, closeDelay);\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tclearTimeout(openTimerRef.current);\n\t\t\tclearTimeout(closeTimerRef.current);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonMouseOver={onMouseOver}\n\t\t\tonMouseOut={onMouseOut}\n\t\t\tonClick={onCollapse}\n\t\t\tstyle={{ width: 28, height: 28 }}\n\t\t\tclassName=\"legend-card collapsed\"\n\t\t>\n\t\t\t<IconLegend24 />\n\t\t\t{openTooltip && (\n\t\t\t\t<Portal\n\t\t\t\t\t/*\n\t\t\t // @ts-ignore */\n\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t>\n\t\t\t\t\t<Popper\n\t\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t\t\treference={ref}\n\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\tmodifiers={[offsetModifier, flipModifier, hideModifier]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `${colors.grey900}`,\n\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\tcolor: `${colors.white}`,\n\t\t\t\t\t\t\t\tpadding: \"4px 6px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-test={`content`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popper>\n\t\t\t\t</Portal>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction Legend({\n\tchildren,\n\tcollapsible,\n}: {\n\tchildren: React.ReactElement;\n\tcollapsible: boolean;\n}) {\n\tconst [collapsed, setCollapsed] = useState(collapsible);\n\tconst inPrintMode = usePrintMedia();\n\tconst onCollapse = () => {\n\t\tif (collapsible) {\n\t\t\tsetCollapsed((prevState) => !prevState);\n\t\t}\n\t};\n\n\tconst name = head(React.Children.toArray(children) as React.ReactElement[])\n\t\t?.props.name;\n\n\tconst shouldCollapse = collapsed && !inPrintMode;\n\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t{shouldCollapse ? (\n\t\t\t\t<CollapsedLegendIcon name={name} onCollapse={onCollapse} />\n\t\t\t) : (\n\t\t\t\tReact.Children.map(children, (child) =>\n\t\t\t\t\tReact.cloneElement(child, { collapsible, onCollapse }),\n\t\t\t\t)\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default function LegendArea({\n\tlayers,\n\tlegends: legendConfig,\n}: {\n\tlayers: Array<\n\t\tCustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer\n\t>;\n\tposition: ControlPosition;\n\tlegends?: MapLegendConfig;\n}) {\n\tconst legends: JSX.Element[] = compact(\n\t\tlayers.filter((layer) => layer.enabled).map(getLegendComponent),\n\t);\n\tconst { position, collapsible } = legendConfig ?? {};\n\n\treturn (\n\t\t<CustomControl position={position}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map((legend: any, index) => (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\tcollapsible={collapsible ?? true}\n\t\t\t\t\t\tkey={`${index}-map-legend`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{legend}\n\t\t\t\t\t</Legend>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</CustomControl>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":["jsx","PointLegend","SUPPORTED_EARTH_ENGINE_LAYERS","EarthEngineLegend","BubbleLegend","head","ChoroplethLegend","useState","useRef","useEffect","jsxs","IconLegend24","Portal","classes","Popper","colors","usePrintMedia","React","compact","CustomControl"],"mappings":"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","file":"index.js","sourcesContent":["import { colors, IconLegend24, Popper, Portal } from \"@dhis2/ui\";\nimport { ControlPosition } from \"leaflet\";\nimport { compact, head } from \"lodash\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { MapLegendConfig } from \"../../../MapArea/interfaces/index.js\";\nimport { CustomControl } from \"../../../MapControls/components/CustomControl\";\nimport {\n\tCustomBubbleLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../interfaces/index.js\";\nimport PointLegend from \"../PointLayer/components/PointLegend/index.js\";\nimport BubbleLegend from \"../ThematicLayer/components/Bubble/components/BubbleLegend/index.js\";\nimport ChoroplethLegend from \"../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js\";\nimport EarthEngineLegend from \"../GoogleEngineLayer/components/EarthEngineLegend.js\";\nimport classes from \"./LegendArea.module.css\";\nimport { usePrintMedia } from \"../../../../hooks/map.js\";\n\nconst TOOLTIP_OFFSET = 4;\n\nfunction getLegendComponent(\n\tlayer: CustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer,\n) {\n\tif (layer.type === \"point\") {\n\t\treturn <PointLegend name={layer.label} />;\n\t}\n\n\tif (SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {\n\t\treturn (\n\t\t\t<EarthEngineLegend\n\t\t\t\tname={layer.name ?? \"\"}\n\t\t\t\tlayer={layer as CustomGoogleEngineLayer}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst { type, enabled, control, dataItem, name, data, legends } =\n\t\t(layer as CustomThematicLayer) ?? {};\n\n\tif (!enabled || !control) {\n\t\treturn null;\n\t}\n\tswitch (type) {\n\t\tcase \"bubble\":\n\t\t\treturn (\n\t\t\t\t<BubbleLegend\n\t\t\t\t\tradius={\n\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius ?? {\n\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\tmax: 50,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"choropleth\":\n\t\t\treturn (\n\t\t\t\t<ChoroplethLegend\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t}\n}\n\nfunction CollapsedLegendIcon({\n\tonCollapse,\n\tname,\n}: {\n\tname: string;\n\tonCollapse: () => void;\n}) {\n\tconst openDelay = 200;\n\tconst closeDelay = 200;\n\tconst [openTooltip, setOpenTooltip] = useState(false);\n\tconst openTimerRef = useRef<any>(null);\n\tconst closeTimerRef = useRef<any>(null);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst hideModifier = { name: \"hide\" };\n\tconst offsetModifier = {\n\t\tname: \"offset\",\n\t\toptions: {\n\t\t\toffset: [0, TOOLTIP_OFFSET],\n\t\t},\n\t};\n\n\tconst flipModifier = {\n\t\tname: \"flip\",\n\t\toptions: { altBoundary: true },\n\t};\n\n\tconst onMouseOver = () => {\n\t\tclearTimeout(closeTimerRef.current);\n\n\t\topenTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(true);\n\t\t}, openDelay);\n\t};\n\n\tconst onMouseOut = () => {\n\t\tclearTimeout(openTimerRef.current);\n\n\t\tcloseTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(false);\n\t\t}, closeDelay);\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tclearTimeout(openTimerRef.current);\n\t\t\tclearTimeout(closeTimerRef.current);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonMouseOver={onMouseOver}\n\t\t\tonMouseOut={onMouseOut}\n\t\t\tonClick={onCollapse}\n\t\t\tstyle={{ width: 28, height: 28 }}\n\t\t\tclassName=\"legend-card collapsed\"\n\t\t>\n\t\t\t<IconLegend24 />\n\t\t\t{openTooltip && (\n\t\t\t\t<Portal\n\t\t\t\t\t/*\n\t\t\t // @ts-ignore */\n\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t>\n\t\t\t\t\t<Popper\n\t\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t\t\treference={ref}\n\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\tmodifiers={[offsetModifier, flipModifier, hideModifier]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `${colors.grey900}`,\n\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\tcolor: `${colors.white}`,\n\t\t\t\t\t\t\t\tpadding: \"4px 6px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-test={`content`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popper>\n\t\t\t\t</Portal>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction Legend({\n\tchildren,\n\tcollapsible,\n}: {\n\tchildren: React.ReactElement;\n\tcollapsible: boolean;\n}) {\n\tconst [collapsed, setCollapsed] = useState(collapsible);\n\tconst inPrintMode = usePrintMedia();\n\tconst onCollapse = () => {\n\t\tif (collapsible) {\n\t\t\tsetCollapsed((prevState) => !prevState);\n\t\t}\n\t};\n\n\tconst name = head(React.Children.toArray(children) as React.ReactElement[])\n\t\t?.props.name;\n\n\tconst shouldCollapse = collapsed && !inPrintMode;\n\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t{shouldCollapse ? (\n\t\t\t\t<CollapsedLegendIcon name={name} onCollapse={onCollapse} />\n\t\t\t) : (\n\t\t\t\tReact.Children.map(children, (child) =>\n\t\t\t\t\tReact.cloneElement(child, { collapsible, onCollapse }),\n\t\t\t\t)\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default function LegendArea({\n\tlayers,\n\tlegends: legendConfig,\n}: {\n\tlayers: Array<\n\t\tCustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer\n\t>;\n\tposition: ControlPosition;\n\tlegends?: MapLegendConfig;\n}) {\n\tconst legends: JSX.Element[] = compact(\n\t\tlayers.filter((layer) => layer.enabled).map(getLegendComponent),\n\t);\n\tconst { position, collapsible } = legendConfig ?? {};\n\n\treturn (\n\t\t<CustomControl position={position}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\tmaxWidth: 200,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map((legend: any, index) => (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\tcollapsible={collapsible ?? true}\n\t\t\t\t\t\tkey={`${index}-map-legend`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{legend}\n\t\t\t\t\t</Legend>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</CustomControl>\n\t);\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { IconLaunch16 } from '@dhis2/ui';
|
|
2
|
+
import { Tooltip, IconLaunch16 } from '@dhis2/ui';
|
|
3
3
|
import { truncate } from 'lodash';
|
|
4
4
|
|
|
5
5
|
function LegendCardHeader({
|
|
@@ -18,7 +18,7 @@ function LegendCardHeader({
|
|
|
18
18
|
padding: 8
|
|
19
19
|
},
|
|
20
20
|
children: [
|
|
21
|
-
/* @__PURE__ */ jsx("h4", { style: { margin: 0 }, className: "legend-header", children: truncate(title, { length:
|
|
21
|
+
/* @__PURE__ */ jsx("h4", { style: { margin: 0 }, className: "legend-header", children: /* @__PURE__ */ jsx(Tooltip, { content: title, children: truncate(title, { length: 20, omission: "..." }) }) }),
|
|
22
22
|
collapsible && /* @__PURE__ */ jsx("div", { onClick: onCollapse, children: /* @__PURE__ */ jsx(IconLaunch16, {}) })
|
|
23
23
|
]
|
|
24
24
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":[],"mappings":";;;;AAIe,SAAR,gBAAkC,CAAA;AAAA,EACxC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AACD,CAIG,EAAA;AACF,EACC,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,KAAO,EAAA,MAAA;AAAA,QACP,cAAgB,EAAA,eAAA;AAAA,QAChB,UAAY,EAAA,QAAA;AAAA,QACZ,OAAS,EAAA,CAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":[],"mappings":";;;;AAIe,SAAR,gBAAkC,CAAA;AAAA,EACxC,KAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AACD,CAIG,EAAA;AACF,EACC,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACA,KAAO,EAAA;AAAA,QACN,OAAS,EAAA,MAAA;AAAA,QACT,KAAO,EAAA,MAAA;AAAA,QACP,cAAgB,EAAA,eAAA;AAAA,QAChB,UAAY,EAAA,QAAA;AAAA,QACZ,OAAS,EAAA,CAAA;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,IAAA,EAAA,EAAG,OAAO,EAAE,MAAA,EAAQ,GAAK,EAAA,SAAA,EAAU,iBACnC,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA,EAAQ,SAAS,KAChB,EAAA,QAAA,EAAA,QAAA,CAAS,OAAO,EAAE,MAAA,EAAQ,IAAI,QAAU,EAAA,KAAA,EAAO,CAAA,EACjD,CACD,EAAA,CAAA;AAAA,QACC,+BACC,GAAA,CAAA,KAAA,EAAA,EAAI,SAAS,UACb,EAAA,QAAA,kBAAA,GAAA,CAAC,gBAAa,CACf,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA;AAAA,GAEF,CAAA;AAEF","file":"index.js","sourcesContent":["import { IconLaunch16, Tooltip } from \"@dhis2/ui\";\nimport React from \"react\";\nimport { truncate } from \"lodash\";\n\nexport default function LegendCardHeader({\n\ttitle,\n\tcollapsible,\n\tonCollapse,\n}: {\n\ttitle: string;\n\tonCollapse?: () => void;\n\tcollapsible?: boolean;\n}) {\n\treturn (\n\t\t<div\n\t\t\tstyle={{\n\t\t\t\tdisplay: \"flex\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\tjustifyContent: \"space-between\",\n\t\t\t\talignItems: \"center\",\n\t\t\t\tpadding: 8,\n\t\t\t}}\n\t\t>\n\t\t\t<h4 style={{ margin: 0 }} className=\"legend-header\">\n\t\t\t\t<Tooltip content={title}>\n\t\t\t\t\t{truncate(title, { length: 20, omission: \"...\" })}\n\t\t\t\t</Tooltip>\n\t\t\t</h4>\n\t\t\t{collapsible && (\n\t\t\t\t<div onClick={onCollapse}>\n\t\t\t\t\t<IconLaunch16 />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
2
2
|
import { IconLegend24, Portal, Popper, colors } from '@dhis2/ui';
|
|
3
3
|
import { compact, head } from 'lodash';
|
|
4
4
|
import React, { useState, useRef, useEffect } from 'react';
|
|
5
|
-
import { CustomControl } from '../../../MapControls/components/CustomControl
|
|
5
|
+
import { CustomControl } from '../../../MapControls/components/CustomControl';
|
|
6
6
|
import { SUPPORTED_EARTH_ENGINE_LAYERS } from '../../interfaces/index.js';
|
|
7
7
|
import PointLegend from '../PointLayer/components/PointLegend/index.js';
|
|
8
8
|
import BubbleLegend from '../ThematicLayer/components/Bubble/components/BubbleLegend/index.js';
|
|
@@ -171,7 +171,8 @@ function LegendArea({
|
|
|
171
171
|
display: "flex",
|
|
172
172
|
flexDirection: "column",
|
|
173
173
|
gap: 16,
|
|
174
|
-
alignItems: "flex-end"
|
|
174
|
+
alignItems: "flex-end",
|
|
175
|
+
maxWidth: 200
|
|
175
176
|
},
|
|
176
177
|
children: legends?.map((legend, index) => /* @__PURE__ */ jsx(
|
|
177
178
|
Legend,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { colors, IconLegend24, Popper, Portal } from \"@dhis2/ui\";\nimport { ControlPosition } from \"leaflet\";\nimport { compact, head } from \"lodash\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { MapLegendConfig } from \"../../../MapArea/interfaces/index.js\";\nimport { CustomControl } from \"../../../MapControls/components/CustomControl/index.js\";\nimport {\n\tCustomBubbleLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../interfaces/index.js\";\nimport PointLegend from \"../PointLayer/components/PointLegend/index.js\";\nimport BubbleLegend from \"../ThematicLayer/components/Bubble/components/BubbleLegend/index.js\";\nimport ChoroplethLegend from \"../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js\";\nimport EarthEngineLegend from \"../GoogleEngineLayer/components/EarthEngineLegend.js\";\nimport classes from \"./LegendArea.module.css\";\nimport { usePrintMedia } from \"../../../../hooks/map.js\";\n\nconst TOOLTIP_OFFSET = 4;\n\nfunction getLegendComponent(\n\tlayer: CustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer,\n) {\n\tif (layer.type === \"point\") {\n\t\treturn <PointLegend name={layer.label} />;\n\t}\n\n\tif (SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {\n\t\treturn (\n\t\t\t<EarthEngineLegend\n\t\t\t\tname={layer.name ?? \"\"}\n\t\t\t\tlayer={layer as CustomGoogleEngineLayer}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst { type, enabled, control, dataItem, name, data, legends } =\n\t\t(layer as CustomThematicLayer) ?? {};\n\n\tif (!enabled || !control) {\n\t\treturn null;\n\t}\n\tswitch (type) {\n\t\tcase \"bubble\":\n\t\t\treturn (\n\t\t\t\t<BubbleLegend\n\t\t\t\t\tradius={\n\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius ?? {\n\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\tmax: 50,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"choropleth\":\n\t\t\treturn (\n\t\t\t\t<ChoroplethLegend\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t}\n}\n\nfunction CollapsedLegendIcon({\n\tonCollapse,\n\tname,\n}: {\n\tname: string;\n\tonCollapse: () => void;\n}) {\n\tconst openDelay = 200;\n\tconst closeDelay = 200;\n\tconst [openTooltip, setOpenTooltip] = useState(false);\n\tconst openTimerRef = useRef<any>(null);\n\tconst closeTimerRef = useRef<any>(null);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst hideModifier = { name: \"hide\" };\n\tconst offsetModifier = {\n\t\tname: \"offset\",\n\t\toptions: {\n\t\t\toffset: [0, TOOLTIP_OFFSET],\n\t\t},\n\t};\n\n\tconst flipModifier = {\n\t\tname: \"flip\",\n\t\toptions: { altBoundary: true },\n\t};\n\n\tconst onMouseOver = () => {\n\t\tclearTimeout(closeTimerRef.current);\n\n\t\topenTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(true);\n\t\t}, openDelay);\n\t};\n\n\tconst onMouseOut = () => {\n\t\tclearTimeout(openTimerRef.current);\n\n\t\tcloseTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(false);\n\t\t}, closeDelay);\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tclearTimeout(openTimerRef.current);\n\t\t\tclearTimeout(closeTimerRef.current);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonMouseOver={onMouseOver}\n\t\t\tonMouseOut={onMouseOut}\n\t\t\tonClick={onCollapse}\n\t\t\tstyle={{ width: 28, height: 28 }}\n\t\t\tclassName=\"legend-card collapsed\"\n\t\t>\n\t\t\t<IconLegend24 />\n\t\t\t{openTooltip && (\n\t\t\t\t<Portal\n\t\t\t\t\t/*\n\t\t\t // @ts-ignore */\n\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t>\n\t\t\t\t\t<Popper\n\t\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t\t\treference={ref}\n\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\tmodifiers={[offsetModifier, flipModifier, hideModifier]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `${colors.grey900}`,\n\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\tcolor: `${colors.white}`,\n\t\t\t\t\t\t\t\tpadding: \"4px 6px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-test={`content`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popper>\n\t\t\t\t</Portal>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction Legend({\n\tchildren,\n\tcollapsible,\n}: {\n\tchildren: React.ReactElement;\n\tcollapsible: boolean;\n}) {\n\tconst [collapsed, setCollapsed] = useState(collapsible);\n\tconst inPrintMode = usePrintMedia();\n\tconst onCollapse = () => {\n\t\tif (collapsible) {\n\t\t\tsetCollapsed((prevState) => !prevState);\n\t\t}\n\t};\n\n\tconst name = head(React.Children.toArray(children) as React.ReactElement[])\n\t\t?.props.name;\n\n\tconst shouldCollapse = collapsed && !inPrintMode;\n\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t{shouldCollapse ? (\n\t\t\t\t<CollapsedLegendIcon name={name} onCollapse={onCollapse} />\n\t\t\t) : (\n\t\t\t\tReact.Children.map(children, (child) =>\n\t\t\t\t\tReact.cloneElement(child, { collapsible, onCollapse }),\n\t\t\t\t)\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default function LegendArea({\n\tlayers,\n\tlegends: legendConfig,\n}: {\n\tlayers: Array<\n\t\tCustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer\n\t>;\n\tposition: ControlPosition;\n\tlegends?: MapLegendConfig;\n}) {\n\tconst legends: JSX.Element[] = compact(\n\t\tlayers.filter((layer) => layer.enabled).map(getLegendComponent),\n\t);\n\tconst { position, collapsible } = legendConfig ?? {};\n\n\treturn (\n\t\t<CustomControl position={position}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map((legend: any, index) => (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\tcollapsible={collapsible ?? true}\n\t\t\t\t\t\tkey={`${index}-map-legend`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{legend}\n\t\t\t\t\t</Legend>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</CustomControl>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["import { colors, IconLegend24, Popper, Portal } from \"@dhis2/ui\";\nimport { ControlPosition } from \"leaflet\";\nimport { compact, head } from \"lodash\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { MapLegendConfig } from \"../../../MapArea/interfaces/index.js\";\nimport { CustomControl } from \"../../../MapControls/components/CustomControl\";\nimport {\n\tCustomBubbleLayer,\n\tCustomGoogleEngineLayer,\n\tCustomPointLayer,\n\tCustomThematicLayer,\n\tSUPPORTED_EARTH_ENGINE_LAYERS,\n} from \"../../interfaces/index.js\";\nimport PointLegend from \"../PointLayer/components/PointLegend/index.js\";\nimport BubbleLegend from \"../ThematicLayer/components/Bubble/components/BubbleLegend/index.js\";\nimport ChoroplethLegend from \"../ThematicLayer/components/Choropleth/components/ChoroplethLegend.js\";\nimport EarthEngineLegend from \"../GoogleEngineLayer/components/EarthEngineLegend.js\";\nimport classes from \"./LegendArea.module.css\";\nimport { usePrintMedia } from \"../../../../hooks/map.js\";\n\nconst TOOLTIP_OFFSET = 4;\n\nfunction getLegendComponent(\n\tlayer: CustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer,\n) {\n\tif (layer.type === \"point\") {\n\t\treturn <PointLegend name={layer.label} />;\n\t}\n\n\tif (SUPPORTED_EARTH_ENGINE_LAYERS.includes(layer.type)) {\n\t\treturn (\n\t\t\t<EarthEngineLegend\n\t\t\t\tname={layer.name ?? \"\"}\n\t\t\t\tlayer={layer as CustomGoogleEngineLayer}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst { type, enabled, control, dataItem, name, data, legends } =\n\t\t(layer as CustomThematicLayer) ?? {};\n\n\tif (!enabled || !control) {\n\t\treturn null;\n\t}\n\tswitch (type) {\n\t\tcase \"bubble\":\n\t\t\treturn (\n\t\t\t\t<BubbleLegend\n\t\t\t\t\tradius={\n\t\t\t\t\t\t(layer as CustomBubbleLayer)?.radius ?? {\n\t\t\t\t\t\t\tmin: 0,\n\t\t\t\t\t\t\tmax: 50,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t\tcase \"choropleth\":\n\t\t\treturn (\n\t\t\t\t<ChoroplethLegend\n\t\t\t\t\tlegends={legends ?? []}\n\t\t\t\t\tname={name ?? dataItem.displayName}\n\t\t\t\t\tdata={data}\n\t\t\t\t\tdataItem={head(data)?.dataItem ?? dataItem}\n\t\t\t\t/>\n\t\t\t);\n\t}\n}\n\nfunction CollapsedLegendIcon({\n\tonCollapse,\n\tname,\n}: {\n\tname: string;\n\tonCollapse: () => void;\n}) {\n\tconst openDelay = 200;\n\tconst closeDelay = 200;\n\tconst [openTooltip, setOpenTooltip] = useState(false);\n\tconst openTimerRef = useRef<any>(null);\n\tconst closeTimerRef = useRef<any>(null);\n\tconst ref = useRef<HTMLDivElement>(null);\n\n\tconst hideModifier = { name: \"hide\" };\n\tconst offsetModifier = {\n\t\tname: \"offset\",\n\t\toptions: {\n\t\t\toffset: [0, TOOLTIP_OFFSET],\n\t\t},\n\t};\n\n\tconst flipModifier = {\n\t\tname: \"flip\",\n\t\toptions: { altBoundary: true },\n\t};\n\n\tconst onMouseOver = () => {\n\t\tclearTimeout(closeTimerRef.current);\n\n\t\topenTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(true);\n\t\t}, openDelay);\n\t};\n\n\tconst onMouseOut = () => {\n\t\tclearTimeout(openTimerRef.current);\n\n\t\tcloseTimerRef.current = setTimeout(() => {\n\t\t\tsetOpenTooltip(false);\n\t\t}, closeDelay);\n\t};\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tclearTimeout(openTimerRef.current);\n\t\t\tclearTimeout(closeTimerRef.current);\n\t\t},\n\t\t[],\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tonMouseOver={onMouseOver}\n\t\t\tonMouseOut={onMouseOut}\n\t\t\tonClick={onCollapse}\n\t\t\tstyle={{ width: 28, height: 28 }}\n\t\t\tclassName=\"legend-card collapsed\"\n\t\t>\n\t\t\t<IconLegend24 />\n\t\t\t{openTooltip && (\n\t\t\t\t<Portal\n\t\t\t\t\t/*\n\t\t\t // @ts-ignore */\n\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t>\n\t\t\t\t\t<Popper\n\t\t\t\t\t\tclassName={classes[\"map-tooltip\"]}\n\t\t\t\t\t\treference={ref}\n\t\t\t\t\t\t/*\n // @ts-ignore */\n\t\t\t\t\t\tmodifiers={[offsetModifier, flipModifier, hideModifier]}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tbackgroundColor: `${colors.grey900}`,\n\t\t\t\t\t\t\t\tborderRadius: 3,\n\t\t\t\t\t\t\t\tcolor: `${colors.white}`,\n\t\t\t\t\t\t\t\tpadding: \"4px 6px\",\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tdata-test={`content`}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{name}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popper>\n\t\t\t\t</Portal>\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nfunction Legend({\n\tchildren,\n\tcollapsible,\n}: {\n\tchildren: React.ReactElement;\n\tcollapsible: boolean;\n}) {\n\tconst [collapsed, setCollapsed] = useState(collapsible);\n\tconst inPrintMode = usePrintMedia();\n\tconst onCollapse = () => {\n\t\tif (collapsible) {\n\t\t\tsetCollapsed((prevState) => !prevState);\n\t\t}\n\t};\n\n\tconst name = head(React.Children.toArray(children) as React.ReactElement[])\n\t\t?.props.name;\n\n\tconst shouldCollapse = collapsed && !inPrintMode;\n\n\treturn (\n\t\t<div className=\"w-100\">\n\t\t\t{shouldCollapse ? (\n\t\t\t\t<CollapsedLegendIcon name={name} onCollapse={onCollapse} />\n\t\t\t) : (\n\t\t\t\tReact.Children.map(children, (child) =>\n\t\t\t\t\tReact.cloneElement(child, { collapsible, onCollapse }),\n\t\t\t\t)\n\t\t\t)}\n\t\t</div>\n\t);\n}\n\nexport default function LegendArea({\n\tlayers,\n\tlegends: legendConfig,\n}: {\n\tlayers: Array<\n\t\tCustomThematicLayer | CustomPointLayer | CustomGoogleEngineLayer\n\t>;\n\tposition: ControlPosition;\n\tlegends?: MapLegendConfig;\n}) {\n\tconst legends: JSX.Element[] = compact(\n\t\tlayers.filter((layer) => layer.enabled).map(getLegendComponent),\n\t);\n\tconst { position, collapsible } = legendConfig ?? {};\n\n\treturn (\n\t\t<CustomControl position={position}>\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\tdisplay: \"flex\",\n\t\t\t\t\tflexDirection: \"column\",\n\t\t\t\t\tgap: 16,\n\t\t\t\t\talignItems: \"flex-end\",\n\t\t\t\t\tmaxWidth: 200,\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{legends?.map((legend: any, index) => (\n\t\t\t\t\t<Legend\n\t\t\t\t\t\tcollapsible={collapsible ?? true}\n\t\t\t\t\t\tkey={`${index}-map-legend`}\n\t\t\t\t\t>\n\t\t\t\t\t\t{legend}\n\t\t\t\t\t</Legend>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</CustomControl>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,KAAK,EACL,WAAW,EACX,UAAU,GACV,EAAE;IACF,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/components/LegendCardHeader/index.tsx"],"names":[],"mappings":"AAIA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CAAC,EACxC,KAAK,EACL,WAAW,EACX,UAAU,GACV,EAAE;IACF,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,2CAuBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAEN,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EAEnB,MAAM,2BAA2B,CAAC;AAyLnC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAClC,MAAM,EACN,OAAO,EAAE,YAAY,GACrB,EAAE;IACF,MAAM,EAAE,KAAK,CACZ,mBAAmB,GAAG,gBAAgB,GAAG,uBAAuB,CAChE,CAAC;IACF,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/components/Map/components/MapLayer/components/LegendArea/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAEvE,OAAO,EAEN,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EAEnB,MAAM,2BAA2B,CAAC;AAyLnC,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,EAClC,MAAM,EACN,OAAO,EAAE,YAAY,GACrB,EAAE;IACF,MAAM,EAAE,KAAK,CACZ,mBAAmB,GAAG,gBAAgB,GAAG,uBAAuB,CAChE,CAAC;IACF,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;CAC1B,8CA4BA"}
|