@undp/data-viz 1.3.1 → 1.4.1
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/DataCards.cjs +21 -1
- package/dist/DataCards.cjs.map +1 -1
- package/dist/DataCards.js +622 -12
- package/dist/DataCards.js.map +1 -1
- package/dist/GraphEl-B6SoGRFW.cjs +2 -0
- package/dist/GraphEl-B6SoGRFW.cjs.map +1 -0
- package/dist/{checkIfMultiple-BB7PlCNh.js → GraphEl-Cw2tDUb3.js} +129 -1163
- package/dist/GraphEl-Cw2tDUb3.js.map +1 -0
- package/dist/GriddedGraphs.cjs +1 -1
- package/dist/GriddedGraphs.cjs.map +1 -1
- package/dist/GriddedGraphs.d.ts +2 -4
- package/dist/GriddedGraphs.js +9 -8
- package/dist/GriddedGraphs.js.map +1 -1
- package/dist/GriddedGraphsFromConfig.d.ts +2 -4
- package/dist/MultiGraphDashboard.cjs +1 -1
- package/dist/MultiGraphDashboard.cjs.map +1 -1
- package/dist/MultiGraphDashboard.d.ts +16 -12
- package/dist/MultiGraphDashboard.js +2 -2
- package/dist/MultiGraphDashboardFromConfig.d.ts +16 -12
- package/dist/MultiGraphDashboardWideToLongFormat.cjs +1 -1
- package/dist/MultiGraphDashboardWideToLongFormat.js +1 -1
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.cjs.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +566 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js +353 -0
- package/dist/PerformanceIntensiveMultiGraphDashboard.js.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs +2 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.cjs.map +1 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +570 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js +38 -0
- package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.js.map +1 -0
- package/dist/PerformanceIntensiveScrollStory.cjs +2 -0
- package/dist/PerformanceIntensiveScrollStory.cjs.map +1 -0
- package/dist/PerformanceIntensiveScrollStory.d.ts +493 -0
- package/dist/PerformanceIntensiveScrollStory.js +122 -0
- package/dist/PerformanceIntensiveScrollStory.js.map +1 -0
- package/dist/ScrollStory.cjs.map +1 -1
- package/dist/ScrollStory.d.ts +3 -5
- package/dist/ScrollStory.js.map +1 -1
- package/dist/SingleGraphDashboard.cjs +1 -1
- package/dist/SingleGraphDashboard.cjs.map +1 -1
- package/dist/SingleGraphDashboard.d.ts +2 -5
- package/dist/SingleGraphDashboard.js +194 -194
- package/dist/SingleGraphDashboard.js.map +1 -1
- package/dist/SingleGraphDashboardFromConfig.d.ts +2 -4
- package/dist/SingleGraphDashboardGeoHubMaps.cjs +2 -0
- package/dist/SingleGraphDashboardGeoHubMaps.cjs.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMaps.d.ts +428 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js +185 -0
- package/dist/SingleGraphDashboardGeoHubMaps.js.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +432 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js +25 -0
- package/dist/SingleGraphDashboardGeoHubMapsFromConfig.js.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs +2 -0
- package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphs.d.ts +540 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js +610 -0
- package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs +2 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.cjs.map +1 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +543 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js +35 -0
- package/dist/SingleGraphDashboardThreeDGraphsFromConfig.js.map +1 -0
- package/dist/Types.d.ts +38 -11
- package/dist/checkIfMultiple-CYp3vADF.js +912 -0
- package/dist/checkIfMultiple-CYp3vADF.js.map +1 -0
- package/dist/checkIfMultiple-Do4kADNr.cjs +12 -0
- package/dist/checkIfMultiple-Do4kADNr.cjs.map +1 -0
- package/dist/getSchema.cjs.map +1 -1
- package/dist/getSchema.d.ts +7 -5
- package/dist/getSchema.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +330 -163
- package/dist/index.js +150 -136
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/transformData.cjs +1 -1
- package/dist/transformData.d.ts +5 -5
- package/dist/transformData.js +2 -2
- package/dist/{transformDataForAggregation-DAQJWGNL.js → transformDataForAggregation-CdcwlnNe.js} +2 -2
- package/dist/transformDataForAggregation-CdcwlnNe.js.map +1 -0
- package/dist/{transformDataForAggregation-BUGJnson.cjs → transformDataForAggregation-Du-Hei-W.cjs} +2 -2
- package/dist/transformDataForAggregation-Du-Hei-W.cjs.map +1 -0
- package/dist/{transformDataForGraphFromFile-DdNiOWeC.js → transformDataForGraphFromFile-CA0rw80A.js} +2 -2
- package/dist/{transformDataForGraphFromFile-DdNiOWeC.js.map → transformDataForGraphFromFile-CA0rw80A.js.map} +1 -1
- package/dist/{transformDataForGraphFromFile-CrntpaMU.cjs → transformDataForGraphFromFile-D9G3ToQf.cjs} +2 -2
- package/dist/{transformDataForGraphFromFile-CrntpaMU.cjs.map → transformDataForGraphFromFile-D9G3ToQf.cjs.map} +1 -1
- package/dist/transformDataForSelect-D8AuvYdf.js +14 -0
- package/dist/transformDataForSelect-D8AuvYdf.js.map +1 -0
- package/dist/transformDataForSelect-YmStusCI.cjs +2 -0
- package/dist/transformDataForSelect-YmStusCI.cjs.map +1 -0
- package/dist/validateSchema.d.ts +2 -4
- package/package.json +37 -2
- package/dist/checkIfMultiple-BB7PlCNh.js.map +0 -1
- package/dist/checkIfMultiple-D5ysrI7G.cjs +0 -12
- package/dist/checkIfMultiple-D5ysrI7G.cjs.map +0 -1
- package/dist/index-D9h2WYDS.cjs +0 -22
- package/dist/index-D9h2WYDS.cjs.map +0 -1
- package/dist/index-OCoyy1wG.js +0 -635
- package/dist/index-OCoyy1wG.js.map +0 -1
- package/dist/transformDataForAggregation-BUGJnson.cjs.map +0 -1
- package/dist/transformDataForAggregation-DAQJWGNL.js.map +0 -1
package/dist/DataCards.cjs
CHANGED
|
@@ -1,2 +1,22 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./index-CHPV5EwG-DDoeWRVt.cjs")
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index-CHPV5EwG-DDoeWRVt.cjs"),n=require("react"),ue=require("./index-Ds0uHjK9.cjs"),P=require("./index-B0rbzOoC.cjs"),de=require("./index-BzeLQvXk.cjs"),E=require("./DropdownSelect-0I2QxaVy.cjs"),_=require("./Typography-k-kOjICQ.cjs"),V=require("./x-CnsEH4Ox-CGGXQl4M.cjs"),Z=require("./index-BW_-wD2k.cjs"),pe=require("./Modal-C_dl0EtQ.cjs"),me=require("./CsvDownloadButton.cjs"),U=require("./string2HTML-D2Avudmb.cjs"),xe=require("./GraphFooter.cjs"),ge=require("./GraphHeader.cjs"),ye=require("./getUniqValue-CHqgSss5.cjs"),K=require("./transformDataForSelect-YmStusCI.cjs");/**
|
|
2
|
+
* @license lucide-react v0.488.0 - ISC
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the ISC license.
|
|
5
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
+
*/const he=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],fe=V.b("chevron-left",he);/**
|
|
7
|
+
* @license lucide-react v0.488.0 - ISC
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the ISC license.
|
|
10
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/const je=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]],be=V.b("ellipsis",je);/**
|
|
12
|
+
* @license lucide-react v0.488.0 - ISC
|
|
13
|
+
*
|
|
14
|
+
* This source code is licensed under the ISC license.
|
|
15
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
16
|
+
*/const ve=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Ne=V.b("chevron-right",ve);function X({className:s,...a}){return e.ae.jsx("nav",{...a,role:"navigation","aria-label":"pagination",className:e.mo("mx-auto flex w-full justify-center",s)})}X.displayName="PaginationUnit";const J=n.forwardRef(({className:s,...a},i)=>e.ae.jsx("ul",{...a,ref:i,className:e.mo("flex flex-row items-center gap-1 list-none",s)}));J.displayName="PaginationContent";const R=n.forwardRef(({className:s,...a},i)=>e.ae.jsx("li",{...a,ref:i,className:e.mo("mr-2 last:mr-0",s)}));R.displayName="PaginationItem";function D({className:s,children:a,...i}){return e.ae.jsx("button",{...i,type:"button",className:e.mo("p-4 text-base text-primary-black dark:text-primary-gray-100 dark:hover:bg-primary-gray-600",s),children:a})}D.displayName="PaginationLink";function Y({className:s,...a}){return e.ae.jsx(D,{...a,"aria-label":"Go to previous page",className:e.mo("p-2 bg-primary-gray-300 dark:bg-primary-gray-600 rtl:scale-x-[-1] rounded-full hover:bg-primary-gray-400 dark:hover:bg-primary-gray-550",s),children:e.ae.jsx(fe,{className:"h-6 w-6 stroke-primary-gray-700 dark:stroke-primary-gray-100"})})}Y.displayName="PaginationPrevious";function ee({className:s,...a}){return e.ae.jsx(D,{...a,"aria-label":"Go to next page",className:e.mo("p-2 bg-primary-gray-300 dark:bg-primary-gray-600 rtl:scale-x-[-1] rounded-full hover:bg-primary-gray-400 dark:hover:bg-primary-gray-550",s),children:e.ae.jsx(Ne,{className:"h-6 w-6 stroke-primary-gray-700 dark:stroke-primary-gray-100"})})}ee.displayName="PaginationNext";function ae({className:s,...a}){return e.ae.jsxs("span",{...a,"aria-hidden":!0,className:e.mo("flex h-9 w-9 items-center justify-center",s),children:[e.ae.jsx(be,{className:"h-4 w-4 text-primary-gray-700 dark:text-primary-gray-100"}),e.ae.jsx("span",{className:"sr-only",children:"More pages"})]})}ae.displayName="PaginationEllipsis";const Q=(s,a)=>{const i=[];return a<=7?Array.from({length:a},(l,c)=>c+1):(i.push(1),s<=3?i.push(2,3,4,"ellipsis"):s>=a-2?i.push("ellipsis",a-3,a-2,a-1):i.push("ellipsis",s-1,s,s+1,"ellipsis"),i.push(a),i)};function we(s){const{defaultPage:a=1,total:i,pageSize:l,onChange:c,className:p}=s,d=Math.ceil(i/l),[u,o]=n.useState(a),[y,m]=n.useState(Q(a,d));return n.useEffect(()=>{m(Q(u,d))},[u,d]),e.ae.jsx(X,{className:e.mo("select-none",p),children:e.ae.jsxs(J,{children:[e.ae.jsx(R,{children:e.ae.jsx(Y,{onClick:()=>{u>1&&(c(u-1),o(u-1))},className:e.mo("cursor-pointer",u<=1&&"cursor-not-allowed pointer-events-none opacity-35")})}),y.map((g,j)=>e.ae.jsx(R,{children:g==="ellipsis"?e.ae.jsx(ae,{}):e.ae.jsx(D,{onClick:()=>{o(g),c(g)},className:e.mo("cursor-pointer w-[32px] h-[32px] flex items-center justify-center rounded-full hover:bg-primary-gray-300",g===u&&"bg-primary-blue-600 hover:bg-primary-blue-700 dark:bg-primary-blue-500 dark:hover:bg-primary-blue-400 hover:text-primary-wite text-primary-white"),children:g})},j)),e.ae.jsx(R,{children:e.ae.jsx(ee,{onClick:()=>{u<d&&(c(u+1),o(u+1))},className:e.mo("cursor-pointer",u>=d&&"cursor-not-allowed pointer-events-none opacity-35")})})]})})}const ke=e.j("w-full h-auto bg-primary-white dark:bg-primary-gray-650 text-primary-black dark:text-primary-white text-base transition-colors file:border-0 file:bg-transparent file:font-medium file:text-primary-gray-700 dark:file:text-primary-white focus-visible:outline-hidden focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-primary-gray-550 dark:placeholder:text-primary-gray-400",{variants:{variant:{light:"border border-primary-gray-400 dark:border-primary-gray-500",normal:"border-2 border-primary-black dark:border-primary-gray-300"},inputSize:{sm:"px-2.5 py-1",base:"p-2.5"}},defaultVariants:{inputSize:"base",variant:"normal"}}),re=n.forwardRef(({className:s,inputSize:a,variant:i,...l},c)=>e.ae.jsx("input",{...l,ref:c,className:e.mo(ke({inputSize:a,variant:i}),s)}));re.displayName="Input";/**
|
|
17
|
+
* @license lucide-react v0.488.0 - ISC
|
|
18
|
+
*
|
|
19
|
+
* This source code is licensed under the ISC license.
|
|
20
|
+
* See the LICENSE file in the root directory of this source tree.
|
|
21
|
+
*/const Se=[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]],W=V.b("search",Se),te=n.forwardRef(({className:s,inputClassName:a,buttonClassName:i,onSearch:l,searchOnlyOnClick:c,buttonVariant:p,buttonChildren:d,showSearchButton:u,inputVariant:o,inputSize:y,placeholder:m,...g},j)=>{const[h,f]=n.useState(void 0),[b,r]=n.useState(!1);return e.ae.jsxs("div",{className:e.mo("flex gap-0",s),ref:j,children:[e.ae.jsxs("div",{className:"relative w-full",children:[e.ae.jsx(re,{...g,variant:o,type:"text",className:a,onChange:x=>{f(x.target.value),c||l?.(x.target.value)},inputSize:y,onKeyDown:x=>{x.key==="Enter"&&l?.(h)},onFocus:()=>r(!0),onBlur:()=>r(!1)}),!b&&(h===""||!h)&&e.ae.jsxs("div",{className:"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none",children:[d?null:e.ae.jsx(W,{className:"h-4 w-4 text-primary-gray-500 dark:text-primary-gray-400 mr-2"}),e.ae.jsx("span",{className:"text-primary-gray-500 dark:text-primary-gray-400",children:m||"Search..."})]})]}),u===!1?null:e.ae.jsx(Z.d,{variant:p||"icon",className:i,padding:y,onClick:()=>{l?.(h)},children:d||e.ae.jsx(W,{className:"stroke-2"})})]})});te.displayName="Search";const Ce=s=>s?Object.entries(s).map(([i,l])=>Array.isArray(l)?{" ":i,value:`"${l.join("; ")}"`}:{" ":i,value:`"${l}"`}):{};function Ee(s){const{width:a,height:i,data:l,onSeriesMouseClick:c,cardTemplate:p,cardBackgroundColor:d,cardMinWidth:u=320,detailsOnClick:o,noOfItemsInAPage:y,styles:m,classNames:g,page:j,allowDataDownloadOnDetail:h}=s,[f,b]=n.useState(void 0);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx("div",{className:"undp-scrollbar w-full my-0 mx-auto grid gap-4 undp-viz-data-cards-container",style:{width:a?`${a}px`:"100%",height:i?`${i}px`:"auto",gridTemplateColumns:`repeat(auto-fill, minmax(${u}px, 1fr))`},children:l.filter((r,x)=>y?x<j*y&&x>=(j-1)*y:!0).map((r,x)=>e.jsxRuntimeExports.jsx("div",{style:{...m?.dataCards||{},...d&&{backgroundColor:d}},className:`w-full flex flex-col ${c||o?"cursor-pointer":"cursor-auto"}${d?"":"bg-primary-gray-200 dark:bg-primary-gray-600"} ${g?.dataCards||""}`,onClick:()=>{c?.(r),b(r)},dangerouslySetInnerHTML:typeof p=="string"?{__html:U.string2HTML(p,r)}:void 0,children:typeof p=="function"?p(r):null},x))}),o&&f!==void 0?e.jsxRuntimeExports.jsxs(pe.X,{open:f!==void 0,onClose:()=>{b(void 0)},children:[e.jsxRuntimeExports.jsx("div",{className:"graph-modal-content m-0",dangerouslySetInnerHTML:typeof o=="string"?{__html:U.string2HTML(o,f)}:void 0,children:typeof o=="function"?o(f):null}),h?e.jsxRuntimeExports.jsx("div",{className:"flex",children:e.jsxRuntimeExports.jsx(me.CsvDownloadButton,{csvData:Ce(f),headers:[{label:" ",key:" "},{label:"value",key:"value"}],buttonContent:e.jsxRuntimeExports.jsxs("div",{className:"flex items-center gap-4",children:[typeof h=="string"?h:null,e.jsxRuntimeExports.jsx(Z.FileDown,{})]})})}):null]}):null]})}const Re=(s,a,i)=>a.length===0?s:s.filter(l=>a.some(c=>l[c]?.toLowerCase().includes(i.toLowerCase())));function Ve(s){const{width:a,height:i,graphTitle:l,sources:c,graphDescription:p,footNote:d,graphID:u,data:o,onSeriesMouseClick:y,language:m="en",theme:g="light",ariaLabel:j,cardTemplate:h,cardBackgroundColor:f,cardFilters:b,cardSortingOptions:r,cardSearchColumns:x,cardMinWidth:se=320,backgroundColor:N=!1,padding:O,detailsOnClick:ie,allowDataDownloadOnDetail:le=!1,noOfItemsInAPage:$,uiMode:q="normal",styles:w,classNames:k}=s,[M,T]=n.useState(o),[ne,B]=n.useState(1),[F,oe]=n.useState(""),H=n.useMemo(()=>(b||[]).map(t=>({filter:t.column,label:t.label||`Filter by ${t.column}`,singleSelect:!0,clearable:!0,defaultValue:K.transformDefaultValue(t.defaultValue),availableValues:ye.getUniqValue(o,t.column).filter(v=>!t.excludeValues?.includes(`${v}`)).map(v=>({value:v,label:v})),width:t.width})),[b,o]),[L,ce]=n.useState((b||[]).map(t=>({filter:t.column,value:K.transformDefaultValue(t.defaultValue)}))),[C,G]=n.useState(r?!r.defaultValue||r.options.findIndex(t=>t.label===r.defaultValue)===-1?r.options[0]:r.options[r.options.findIndex(t=>t.label===r.defaultValue)]:void 0),A=n.useMemo(()=>({ignoreCase:!0,ignoreAccents:!0,trim:!0}),[]);return n.useEffect(()=>{G(r?!r.defaultValue||r.options.findIndex(t=>t.label===r.defaultValue)===-1?r.options[0]:r.options[r.options.findIndex(t=>t.label===r.defaultValue)]:void 0)},[r]),n.useEffect(()=>{const t=Re(o,x||[],F).filter(v=>L.every(S=>S.value&&P.flattenDeep([S.value]).length>0?ue.intersection(P.flattenDeep([v[S.filter]]),P.flattenDeep([S.value]).map(z=>z.value)).length>0:!0));T(C?de.sortBy(t,C?.value,C?.type):t)},[o,x,F,L,C]),n.useEffect(()=>{B(1)},[M]),e.jsxRuntimeExports.jsx("div",{className:`${g||"light"} flex ${a?"w-fit grow-0":"w-full grow"}`,dir:m==="he"||m==="ar"?"rtl":void 0,children:e.jsxRuntimeExports.jsx("div",{className:e.mo(`${N?N===!0?"bg-primary-gray-200 dark:bg-primary-gray-650 ":"":"bg-transparent "}ml-auto mr-auto flex flex-col grow h-inherit ${m||"en"}`,k?.graphContainer),style:{...w?.graphContainer||{},...N&&N!==!0?{backgroundColor:N}:{}},id:u,"aria-label":j||`${l?`The graph shows ${l}. `:""}This is an list of cards. ${p?` ${p}`:""}`,children:e.jsxRuntimeExports.jsx("div",{className:"flex grow",style:{padding:N?O||"1rem":O||0},children:e.jsxRuntimeExports.jsxs("div",{className:"flex flex-col grow gap-3 w-full justify-between",children:[l||p?e.jsxRuntimeExports.jsx(ge.GraphHeader,{styles:{title:w?.title,description:w?.description},classNames:{title:k?.title,description:k?.description},graphTitle:l,graphDescription:p,width:a}):null,r||H.length>0?e.jsxRuntimeExports.jsxs("div",{className:"flex gap-4 flex-wrap items-start w-full",children:[r?e.jsxRuntimeExports.jsxs("div",{className:"grow shrink-0 min-w-[240px]",style:{width:r.width||"calc(25% - 0.75rem)"},children:[e.jsxRuntimeExports.jsx(_.u,{marginBottom:"xs",size:"sm",className:"text-primary-gray-700 dark:text-primary-gray-100",children:"Sort by"}),e.jsxRuntimeExports.jsx(E.Za,{options:r.options,isRtl:m==="he"||m==="ar",isSearchable:!0,filterOption:E.Hu(A),onChange:t=>{G(t||void 0)},variant:q,size:"sm",defaultValue:!r.defaultValue||r.options.findIndex(t=>t.label===r.defaultValue)===-1?r.options[0]:r.options[r.options.findIndex(t=>t.label===r.defaultValue)]})]}):null,H?.map((t,v)=>e.jsxRuntimeExports.jsxs("div",{className:"grow shrink-0 min-w-[240px]",style:{width:t.width||"calc(25% - 0.75rem)"},children:[e.jsxRuntimeExports.jsx(_.u,{marginBottom:"xs",size:"sm",className:"text-primary-gray-700 dark:text-primary-gray-100",children:t.label}),e.jsxRuntimeExports.jsx(E.Za,{options:t.availableValues,isClearable:t.clearable===void 0?!0:t.clearable,isRtl:m==="he"||m==="ar",isSearchable:!0,variant:q,size:"sm",controlShouldRenderValue:!0,filterOption:E.Hu(A),onChange:S=>{ce(z=>z.map(I=>I.filter===t.filter?{...I,value:S}:I))},defaultValue:t.defaultValue})]},v))]}):null,(x||[]).length>0?e.jsxRuntimeExports.jsx("div",{style:{paddingTop:"1px"},children:e.jsxRuntimeExports.jsx(te,{placeholder:"Search...",onSearch:t=>{oe(t||"")},buttonVariant:"icon",inputVariant:q,showSearchButton:!1,inputSize:"sm"})}):null,e.jsxRuntimeExports.jsx(Ee,{data:M,width:a,height:i,cardTemplate:h,cardMinWidth:se,page:ne,cardBackgroundColor:f,styles:w,classNames:k,noOfItemsInAPage:$,detailsOnClick:ie,onSeriesMouseClick:y,allowDataDownloadOnDetail:le}),$?e.jsxRuntimeExports.jsx(we,{total:M.length,defaultPage:0,pageSize:$,onChange:B}):null,c||d?e.jsxRuntimeExports.jsx(xe.GraphFooter,{styles:{footnote:w?.footnote,source:w?.source},classNames:{footnote:k?.footnote,source:k?.source},sources:c,footNote:d,width:a}):null]})})})})}exports.DataCards=Ve;
|
|
2
22
|
//# sourceMappingURL=DataCards.cjs.map
|
package/dist/DataCards.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCards.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"DataCards.cjs","sources":["../node_modules/@undp/design-system-react/dist/chevron-left-CYk8BtgP.js","../node_modules/@undp/design-system-react/dist/ellipsis-DI18Y_N_.js","../node_modules/@undp/design-system-react/dist/chevron-right-C7tecYKo.js","../node_modules/@undp/design-system-react/dist/Pagination.js","../node_modules/@undp/design-system-react/dist/Input.js","../node_modules/@undp/design-system-react/dist/Search.js","../src/Components/Graphs/DataCards/Graph.tsx","../src/Components/Graphs/DataCards/index.tsx"],"sourcesContent":["import { c as e } from \"./createLucideIcon-C8GTh_Qx.js\";\n/**\n * @license lucide-react v0.488.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\nconst o = [[\"path\", { d: \"m15 18-6-6 6-6\", key: \"1wnfg3\" }]], t = e(\"chevron-left\", o);\nexport {\n t as C\n};\n//# sourceMappingURL=chevron-left-CYk8BtgP.js.map\n","import { c } from \"./createLucideIcon-C8GTh_Qx.js\";\n/**\n * @license lucide-react v0.488.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\nconst e = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"1\", key: \"41hilf\" }],\n [\"circle\", { cx: \"19\", cy: \"12\", r: \"1\", key: \"1wjl8i\" }],\n [\"circle\", { cx: \"5\", cy: \"12\", r: \"1\", key: \"1pcz8c\" }]\n], r = c(\"ellipsis\", e);\nexport {\n r as E\n};\n//# sourceMappingURL=ellipsis-DI18Y_N_.js.map\n","import { c as o } from \"./createLucideIcon-C8GTh_Qx.js\";\n/**\n * @license lucide-react v0.488.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\nconst t = [[\"path\", { d: \"m9 18 6-6-6-6\", key: \"mthhwq\" }]], e = o(\"chevron-right\", t);\nexport {\n e as C\n};\n//# sourceMappingURL=chevron-right-C7tecYKo.js.map\n","import { j as e } from \"./jsx-runtime-OVHDjVDe.js\";\nimport x, { useState as u, useEffect as P } from \"react\";\nimport { c as n } from \"./utils-D_Pof5Gy.js\";\nimport { C } from \"./chevron-left-CYk8BtgP.js\";\nimport { E } from \"./ellipsis-DI18Y_N_.js\";\nimport { C as R } from \"./chevron-right-C7tecYKo.js\";\nfunction d({ className: a, ...r }) {\n return /* @__PURE__ */ e.jsx(\n \"nav\",\n {\n ...r,\n role: \"navigation\",\n \"aria-label\": \"pagination\",\n className: n(\"mx-auto flex w-full justify-center\", a)\n }\n );\n}\nd.displayName = \"PaginationUnit\";\nconst f = x.forwardRef(\n ({ className: a, ...r }, i) => /* @__PURE__ */ e.jsx(\n \"ul\",\n {\n ...r,\n ref: i,\n className: n(\"flex flex-row items-center gap-1 list-none\", a)\n }\n )\n);\nf.displayName = \"PaginationContent\";\nconst m = x.forwardRef(\n ({ className: a, ...r }, i) => /* @__PURE__ */ e.jsx(\"li\", { ...r, ref: i, className: n(\"mr-2 last:mr-0\", a) })\n);\nm.displayName = \"PaginationItem\";\nfunction p({\n className: a,\n children: r,\n ...i\n}) {\n return /* @__PURE__ */ e.jsx(\n \"button\",\n {\n ...i,\n type: \"button\",\n className: n(\n \"p-4 text-base text-primary-black dark:text-primary-gray-100 dark:hover:bg-primary-gray-600\",\n a\n ),\n children: r\n }\n );\n}\np.displayName = \"PaginationLink\";\nfunction h({ className: a, ...r }) {\n return /* @__PURE__ */ e.jsx(\n p,\n {\n ...r,\n \"aria-label\": \"Go to previous page\",\n className: n(\n \"p-2 bg-primary-gray-300 dark:bg-primary-gray-600 rtl:scale-x-[-1] rounded-full hover:bg-primary-gray-400 dark:hover:bg-primary-gray-550\",\n a\n ),\n children: /* @__PURE__ */ e.jsx(C, { className: \"h-6 w-6 stroke-primary-gray-700 dark:stroke-primary-gray-100\" })\n }\n );\n}\nh.displayName = \"PaginationPrevious\";\nfunction b({ className: a, ...r }) {\n return /* @__PURE__ */ e.jsx(\n p,\n {\n ...r,\n \"aria-label\": \"Go to next page\",\n className: n(\n \"p-2 bg-primary-gray-300 dark:bg-primary-gray-600 rtl:scale-x-[-1] rounded-full hover:bg-primary-gray-400 dark:hover:bg-primary-gray-550\",\n a\n ),\n children: /* @__PURE__ */ e.jsx(R, { className: \"h-6 w-6 stroke-primary-gray-700 dark:stroke-primary-gray-100\" })\n }\n );\n}\nb.displayName = \"PaginationNext\";\nfunction j({ className: a, ...r }) {\n return /* @__PURE__ */ e.jsxs(\n \"span\",\n {\n ...r,\n \"aria-hidden\": !0,\n className: n(\"flex h-9 w-9 items-center justify-center\", a),\n children: [\n /* @__PURE__ */ e.jsx(E, { className: \"h-4 w-4 text-primary-gray-700 dark:text-primary-gray-100\" }),\n /* @__PURE__ */ e.jsx(\"span\", { className: \"sr-only\", children: \"More pages\" })\n ]\n }\n );\n}\nj.displayName = \"PaginationEllipsis\";\nconst g = (a, r) => {\n const i = [];\n return r <= 7 ? Array.from({ length: r }, (y, t) => t + 1) : (i.push(1), a <= 3 ? i.push(2, 3, 4, \"ellipsis\") : a >= r - 2 ? i.push(\"ellipsis\", r - 3, r - 2, r - 1) : i.push(\"ellipsis\", a - 1, a, a + 1, \"ellipsis\"), i.push(r), i);\n};\nfunction U(a) {\n const { defaultPage: r = 1, total: i, pageSize: y, onChange: t, className: N } = a, o = Math.ceil(i / y), [s, c] = u(r), [k, v] = u(\n g(r, o)\n );\n return P(() => {\n v(g(s, o));\n }, [s, o]), /* @__PURE__ */ e.jsx(d, { className: n(\"select-none\", N), children: /* @__PURE__ */ e.jsxs(f, { children: [\n /* @__PURE__ */ e.jsx(m, { children: /* @__PURE__ */ e.jsx(\n h,\n {\n onClick: () => {\n s > 1 && (t(s - 1), c(s - 1));\n },\n className: n(\n \"cursor-pointer\",\n s <= 1 && \"cursor-not-allowed pointer-events-none opacity-35\"\n )\n }\n ) }),\n k.map((l, w) => /* @__PURE__ */ e.jsx(m, { children: l === \"ellipsis\" ? /* @__PURE__ */ e.jsx(j, {}) : /* @__PURE__ */ e.jsx(\n p,\n {\n onClick: () => {\n c(l), t(l);\n },\n className: n(\n \"cursor-pointer w-[32px] h-[32px] flex items-center justify-center rounded-full hover:bg-primary-gray-300\",\n l === s && \"bg-primary-blue-600 hover:bg-primary-blue-700 dark:bg-primary-blue-500 dark:hover:bg-primary-blue-400 hover:text-primary-wite text-primary-white\"\n ),\n children: l\n }\n ) }, w)),\n /* @__PURE__ */ e.jsx(m, { children: /* @__PURE__ */ e.jsx(\n b,\n {\n onClick: () => {\n s < o && (t(s + 1), c(s + 1));\n },\n className: n(\n \"cursor-pointer\",\n s >= o && \"cursor-not-allowed pointer-events-none opacity-35\"\n )\n }\n ) })\n ] }) });\n}\nexport {\n U as Pagination\n};\n//# sourceMappingURL=Pagination.js.map\n","import { j as o } from \"./jsx-runtime-OVHDjVDe.js\";\nimport p from \"react\";\nimport { c as l } from \"./index-CHPV5EwG.js\";\nimport { c as m } from \"./utils-D_Pof5Gy.js\";\nconst s = l(\n \"w-full h-auto bg-primary-white dark:bg-primary-gray-650 text-primary-black dark:text-primary-white text-base transition-colors file:border-0 file:bg-transparent file:font-medium file:text-primary-gray-700 dark:file:text-primary-white focus-visible:outline-hidden focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50 placeholder:text-primary-gray-550 dark:placeholder:text-primary-gray-400\",\n {\n variants: {\n variant: {\n light: \"border border-primary-gray-400 dark:border-primary-gray-500\",\n normal: \"border-2 border-primary-black dark:border-primary-gray-300\"\n },\n inputSize: {\n sm: \"px-2.5 py-1\",\n base: \"p-2.5\"\n }\n },\n defaultVariants: {\n inputSize: \"base\",\n variant: \"normal\"\n }\n }\n), d = p.forwardRef(({ className: r, inputSize: a, variant: i, ...t }, e) => /* @__PURE__ */ o.jsx(\"input\", { ...t, ref: e, className: m(s({ inputSize: a, variant: i }), r) }));\nd.displayName = \"Input\";\nexport {\n d as Input\n};\n//# sourceMappingURL=Input.js.map\n","import { j as e } from \"./jsx-runtime-OVHDjVDe.js\";\nimport t from \"react\";\nimport { Button as g } from \"./Button.js\";\nimport { Input as k } from \"./Input.js\";\nimport { c as w } from \"./utils-D_Pof5Gy.js\";\nimport { c as _ } from \"./createLucideIcon-C8GTh_Qx.js\";\n/**\n * @license lucide-react v0.488.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\nconst q = [\n [\"circle\", { cx: \"11\", cy: \"11\", r: \"8\", key: \"4ej97u\" }],\n [\"path\", { d: \"m21 21-4.3-4.3\", key: \"1qie3q\" }]\n], l = _(\"search\", q), F = t.forwardRef(\n ({\n className: n,\n inputClassName: m,\n buttonClassName: p,\n onSearch: r,\n searchOnlyOnClick: u,\n buttonVariant: d,\n buttonChildren: c,\n showSearchButton: x,\n inputVariant: f,\n inputSize: o,\n placeholder: y,\n ...j\n }, h) => {\n const [a, v] = t.useState(void 0), [N, i] = t.useState(!1);\n return /* @__PURE__ */ e.jsxs(\"div\", { className: w(\"flex gap-0\", n), ref: h, children: [\n /* @__PURE__ */ e.jsxs(\"div\", { className: \"relative w-full\", children: [\n /* @__PURE__ */ e.jsx(\n k,\n {\n ...j,\n variant: f,\n type: \"text\",\n className: m,\n onChange: (s) => {\n v(s.target.value), u || r?.(s.target.value);\n },\n inputSize: o,\n onKeyDown: (s) => {\n s.key === \"Enter\" && r?.(a);\n },\n onFocus: () => i(!0),\n onBlur: () => i(!1)\n }\n ),\n !N && (a === \"\" || !a) && /* @__PURE__ */ e.jsxs(\"div\", { className: \"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\", children: [\n c ? null : /* @__PURE__ */ e.jsx(l, { className: \"h-4 w-4 text-primary-gray-500 dark:text-primary-gray-400 mr-2\" }),\n /* @__PURE__ */ e.jsx(\"span\", { className: \"text-primary-gray-500 dark:text-primary-gray-400\", children: y || \"Search...\" })\n ] })\n ] }),\n x === !1 ? null : /* @__PURE__ */ e.jsx(\n g,\n {\n variant: d || \"icon\",\n className: p,\n padding: o,\n onClick: () => {\n r?.(a);\n },\n children: c || /* @__PURE__ */ e.jsx(l, { className: \"stroke-2\" })\n }\n )\n ] });\n }\n);\nF.displayName = \"Search\";\nexport {\n F as Search\n};\n//# sourceMappingURL=Search.js.map\n","import { Modal } from '@undp/design-system-react/Modal';\r\nimport { useState } from 'react';\r\n\r\nimport { CsvDownloadButton } from '@/Components/Actions/CsvDownloadButton';\r\nimport { FileDown } from '@/Components/Icons';\r\nimport { StyleObject, ClassNameObject } from '@/Types';\r\nimport { string2HTML } from '@/Utils/string2HTML';\r\n\r\nexport type FilterDataType = {\r\n column: string;\r\n label?: string;\r\n defaultValue?: string;\r\n excludeValues?: string[];\r\n width?: string;\r\n};\r\n\r\ninterface Props {\r\n data: object[];\r\n cardBackgroundColor?: string;\r\n styles?: StyleObject;\r\n classNames?: ClassNameObject;\r\n width?: number;\r\n height?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n cardTemplate: string | ((_d: any) => React.ReactNode);\r\n cardMinWidth: number;\r\n noOfItemsInAPage?: number;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n allowDataDownloadOnDetail: boolean | string;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n page: number;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst csvData = (data: any) => {\r\n if (!data) return {};\r\n const dataForCsv = Object.entries(data).map(([key, value]) => {\r\n if (Array.isArray(value)) {\r\n return {\r\n ' ': key,\r\n value: `\"${value.join('; ')}\"`,\r\n };\r\n }\r\n return {\r\n ' ': key,\r\n value: `\"${value}\"`,\r\n };\r\n });\r\n return dataForCsv;\r\n};\r\n\r\nexport function Graph(props: Props) {\r\n const {\r\n width,\r\n height,\r\n data,\r\n onSeriesMouseClick,\r\n cardTemplate,\r\n cardBackgroundColor,\r\n cardMinWidth = 320,\r\n detailsOnClick,\r\n noOfItemsInAPage,\r\n styles,\r\n classNames,\r\n page,\r\n allowDataDownloadOnDetail,\r\n } = props;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const [selectedData, setSelectedData] = useState<any>(undefined);\r\n return (\r\n <>\r\n <div\r\n className='undp-scrollbar w-full my-0 mx-auto grid gap-4 undp-viz-data-cards-container'\r\n style={{\r\n width: width ? `${width}px` : '100%',\r\n height: height ? `${height}px` : 'auto',\r\n gridTemplateColumns: `repeat(auto-fill, minmax(${cardMinWidth}px, 1fr))`,\r\n }}\r\n >\r\n {data\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .filter((_d: any, i: number) =>\r\n noOfItemsInAPage\r\n ? i < page * noOfItemsInAPage && i >= (page - 1) * noOfItemsInAPage\r\n : true,\r\n )\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n .map((d: any, i: number) => (\r\n <div\r\n key={i}\r\n style={{\r\n ...(styles?.dataCards || {}),\r\n ...(cardBackgroundColor && { backgroundColor: cardBackgroundColor }),\r\n }}\r\n className={`w-full flex flex-col ${\r\n onSeriesMouseClick || detailsOnClick ? 'cursor-pointer' : 'cursor-auto'\r\n }${\r\n !cardBackgroundColor ? 'bg-primary-gray-200 dark:bg-primary-gray-600' : ''\r\n } ${classNames?.dataCards || ''}`}\r\n onClick={() => {\r\n onSeriesMouseClick?.(d);\r\n setSelectedData(d);\r\n }}\r\n dangerouslySetInnerHTML={\r\n typeof cardTemplate === 'string'\r\n ? { __html: string2HTML(cardTemplate, d) }\r\n : undefined\r\n }\r\n >\r\n {typeof cardTemplate === 'function' ? cardTemplate(d) : null}\r\n </div>\r\n ))}\r\n </div>\r\n {detailsOnClick && selectedData !== undefined ? (\r\n <Modal\r\n open={selectedData !== undefined}\r\n onClose={() => {\r\n setSelectedData(undefined);\r\n }}\r\n >\r\n <div\r\n className='graph-modal-content m-0'\r\n dangerouslySetInnerHTML={\r\n typeof detailsOnClick === 'string'\r\n ? { __html: string2HTML(detailsOnClick, selectedData) }\r\n : undefined\r\n }\r\n >\r\n {typeof detailsOnClick === 'function' ? detailsOnClick(selectedData) : null}\r\n </div>\r\n {allowDataDownloadOnDetail ? (\r\n <div className='flex'>\r\n <CsvDownloadButton\r\n csvData={csvData(selectedData)}\r\n headers={[\r\n {\r\n label: ' ',\r\n key: ' ',\r\n },\r\n {\r\n label: 'value',\r\n key: 'value',\r\n },\r\n ]}\r\n buttonContent={\r\n <div className='flex items-center gap-4'>\r\n {typeof allowDataDownloadOnDetail === 'string'\r\n ? allowDataDownloadOnDetail\r\n : null}\r\n <FileDown />\r\n </div>\r\n }\r\n />\r\n </div>\r\n ) : null}\r\n </Modal>\r\n ) : null}\r\n </>\r\n );\r\n}\r\n","import React, { useEffect, useMemo, useState } from 'react';\r\nimport intersection from 'lodash.intersection';\r\nimport flattenDeep from 'lodash.flattendeep';\r\nimport sortBy from 'lodash.sortby';\r\nimport { createFilter, DropdownSelect } from '@undp/design-system-react/DropdownSelect';\r\nimport { cn } from '@undp/design-system-react/cn';\r\nimport { P } from '@undp/design-system-react/Typography';\r\nimport { Pagination } from '@undp/design-system-react/Pagination';\r\nimport { Search } from '@undp/design-system-react/Search';\r\n\r\nimport { Graph } from './Graph';\r\n\r\nimport { Languages, SourcesDataType, StyleObject, ClassNameObject } from '@/Types';\r\nimport { GraphFooter } from '@/Components/Elements/GraphFooter';\r\nimport { GraphHeader } from '@/Components/Elements/GraphHeader';\r\nimport { getUniqValue } from '@/Utils/getUniqValue';\r\nimport { transformDefaultValue } from '@/Utils/transformDataForSelect';\r\n\r\nexport type FilterDataType = {\r\n column: string;\r\n label?: string;\r\n defaultValue?: string;\r\n excludeValues?: string[];\r\n width?: string;\r\n};\r\n\r\ninterface Props {\r\n // Data\r\n /** Array of data objects */\r\n data: object[];\r\n\r\n // Titles, Labels, and Sources\r\n /** Title of the graph */\r\n graphTitle?: string | React.ReactNode;\r\n /** Description of the graph */\r\n graphDescription?: string | React.ReactNode;\r\n /** Footnote for the graph */\r\n footNote?: string | React.ReactNode;\r\n /** Source data for the graph */\r\n sources?: SourcesDataType[];\r\n /** Accessibility label */\r\n ariaLabel?: string;\r\n\r\n // Colors and Styling\r\n /** Background color of each of the card */\r\n cardBackgroundColor?: string;\r\n /** Background color of the graph */\r\n backgroundColor?: string | boolean;\r\n /** Custom styles for the graph. Each object should be a valid React CSS style object. */\r\n styles?: StyleObject;\r\n /** Custom class names */\r\n classNames?: ClassNameObject;\r\n\r\n // Size and Spacing\r\n /** Width of the graph */\r\n width?: number;\r\n /** Height of the graph */\r\n height?: number;\r\n /** Padding around the graph. Defaults to 0 if no backgroundColor is mentioned else defaults to 1rem */\r\n padding?: string;\r\n\r\n // Graph Parameters\r\n /** Html for each card. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data. */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n cardTemplate: string | ((_d: any) => React.ReactNode);\r\n /** Allows users to add a dropdown menus, that can be used as filters in the graph. Each filter is an object that specifies the column to filter by, and the default value. All the filters are single select only. */\r\n cardFilters?: FilterDataType[];\r\n /** Allows users to add a dropdown menus, that can be used to sort the cards based on different columns. */\r\n cardSortingOptions?: {\r\n defaultValue?: string;\r\n options: {\r\n value: string;\r\n label: string;\r\n type: 'asc' | 'desc';\r\n }[];\r\n width?: string;\r\n };\r\n /** Adds a search bar to search the cards list. The array defines all the columns from the data where text is used to search from. */\r\n cardSearchColumns?: string[];\r\n /** Min width of the cards for responsiveness. */\r\n cardMinWidth?: number;\r\n /** Add a button to download data object when viewing details. If true, data can be downloaded; if a string is provided, it specifies the button label. */\r\n allowDataDownloadOnDetail?: string | boolean;\r\n /** Defines the number of items displayed per page. */\r\n noOfItemsInAPage?: number;\r\n\r\n // Interactions and Callbacks\r\n /** Details displayed on the modal when user clicks of a data point. If the type is string then this uses the [handlebar](../?path=/docs/misc-handlebars-templates-and-custom-helpers--docs) template to display the data */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n detailsOnClick?: string | ((_d: any) => React.ReactNode);\r\n /** Callback for mouse click event */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onSeriesMouseClick?: (_d: any) => void;\r\n\r\n // Configuration and Options\r\n /** Language setting */\r\n language?: Languages;\r\n /** Color theme */\r\n theme?: 'light' | 'dark';\r\n /** Theme for the UI elements */\r\n uiMode?: 'light' | 'normal';\r\n /** Unique ID for the graph */\r\n graphID?: string;\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nconst filterByKeys = (jsonArray: any, keys: string[], substring: string) => {\r\n if (keys.length === 0) return jsonArray;\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n return jsonArray.filter((item: any) =>\r\n keys.some(key => item[key]?.toLowerCase().includes(substring.toLowerCase())),\r\n );\r\n};\r\n\r\nexport function DataCards(props: Props) {\r\n const {\r\n width,\r\n height,\r\n graphTitle,\r\n sources,\r\n graphDescription,\r\n footNote,\r\n graphID,\r\n data,\r\n onSeriesMouseClick,\r\n language = 'en',\r\n theme = 'light',\r\n ariaLabel,\r\n cardTemplate,\r\n cardBackgroundColor,\r\n cardFilters,\r\n cardSortingOptions,\r\n cardSearchColumns,\r\n cardMinWidth = 320,\r\n backgroundColor = false,\r\n padding,\r\n detailsOnClick,\r\n allowDataDownloadOnDetail = false,\r\n noOfItemsInAPage,\r\n uiMode = 'normal',\r\n styles,\r\n classNames,\r\n } = props;\r\n\r\n const [cardData, setCardData] = useState(data);\r\n\r\n const [page, setPage] = useState(1);\r\n\r\n const [searchQuery, setSearchQuery] = useState('');\r\n const filterSettings = useMemo(\r\n () =>\r\n (cardFilters || []).map(el => ({\r\n filter: el.column,\r\n label: el.label || `Filter by ${el.column}`,\r\n singleSelect: true,\r\n clearable: true,\r\n defaultValue: transformDefaultValue(el.defaultValue),\r\n availableValues: getUniqValue(data, el.column)\r\n .filter(v => !el.excludeValues?.includes(`${v}`))\r\n .map(v => ({ value: v, label: v })),\r\n width: el.width,\r\n })),\r\n [cardFilters, data],\r\n );\r\n\r\n const [selectedFilters, setSelectedFilters] = useState(\r\n (cardFilters || []).map(el => ({\r\n filter: el.column,\r\n value: transformDefaultValue(el.defaultValue),\r\n })),\r\n );\r\n const [sortedBy, setSortedBy] = useState<\r\n | {\r\n value: string;\r\n label: string;\r\n type: 'asc' | 'desc';\r\n }\r\n | undefined\r\n >(\r\n cardSortingOptions\r\n ? !cardSortingOptions.defaultValue ||\r\n cardSortingOptions.options.findIndex(el => el.label === cardSortingOptions.defaultValue) ===\r\n -1\r\n ? cardSortingOptions.options[0]\r\n : cardSortingOptions.options[\r\n cardSortingOptions.options.findIndex(el => el.label === cardSortingOptions.defaultValue)\r\n ]\r\n : undefined,\r\n );\r\n\r\n const filterConfig = useMemo(\r\n () => ({\r\n ignoreCase: true,\r\n ignoreAccents: true,\r\n trim: true,\r\n }),\r\n [],\r\n );\r\n\r\n useEffect(() => {\r\n setSortedBy(\r\n cardSortingOptions\r\n ? !cardSortingOptions.defaultValue ||\r\n cardSortingOptions.options.findIndex(\r\n el => el.label === cardSortingOptions.defaultValue,\r\n ) === -1\r\n ? cardSortingOptions.options[0]\r\n : cardSortingOptions.options[\r\n cardSortingOptions.options.findIndex(\r\n el => el.label === cardSortingOptions.defaultValue,\r\n )\r\n ]\r\n : undefined,\r\n );\r\n }, [cardSortingOptions]);\r\n\r\n useEffect(() => {\r\n const filteredData = filterByKeys(data, cardSearchColumns || [], searchQuery).filter(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n (item: any) =>\r\n selectedFilters.every(filter =>\r\n filter.value && flattenDeep([filter.value]).length > 0\r\n ? intersection(\r\n flattenDeep([item[filter.filter]]),\r\n flattenDeep([filter.value]).map(el => el.value),\r\n ).length > 0\r\n : true,\r\n ),\r\n );\r\n if (sortedBy) {\r\n setCardData(sortBy(filteredData, sortedBy?.value, sortedBy?.type));\r\n } else {\r\n setCardData(filteredData);\r\n }\r\n }, [data, cardSearchColumns, searchQuery, selectedFilters, sortedBy]);\r\n\r\n useEffect(() => {\r\n setPage(1);\r\n }, [cardData]);\r\n\r\n return (\r\n <div\r\n className={`${theme || 'light'} flex ${width ? 'w-fit grow-0' : 'w-full grow'}`}\r\n dir={language === 'he' || language === 'ar' ? 'rtl' : undefined}\r\n >\r\n <div\r\n className={cn(\r\n `${\r\n !backgroundColor\r\n ? 'bg-transparent '\r\n : backgroundColor === true\r\n ? 'bg-primary-gray-200 dark:bg-primary-gray-650 '\r\n : ''\r\n }ml-auto mr-auto flex flex-col grow h-inherit ${language || 'en'}`,\r\n classNames?.graphContainer,\r\n )}\r\n style={{\r\n ...(styles?.graphContainer || {}),\r\n ...(backgroundColor && backgroundColor !== true ? { backgroundColor } : {}),\r\n }}\r\n id={graphID}\r\n aria-label={\r\n ariaLabel ||\r\n `${graphTitle ? `The graph shows ${graphTitle}. ` : ''}This is an list of cards. ${\r\n graphDescription ? ` ${graphDescription}` : ''\r\n }`\r\n }\r\n >\r\n <div\r\n className='flex grow'\r\n style={{ padding: backgroundColor ? padding || '1rem' : padding || 0 }}\r\n >\r\n <div className='flex flex-col grow gap-3 w-full justify-between'>\r\n {graphTitle || graphDescription ? (\r\n <GraphHeader\r\n styles={{\r\n title: styles?.title,\r\n description: styles?.description,\r\n }}\r\n classNames={{\r\n title: classNames?.title,\r\n description: classNames?.description,\r\n }}\r\n graphTitle={graphTitle}\r\n graphDescription={graphDescription}\r\n width={width}\r\n />\r\n ) : null}\r\n {cardSortingOptions || filterSettings.length > 0 ? (\r\n <div className='flex gap-4 flex-wrap items-start w-full'>\r\n {cardSortingOptions ? (\r\n <div\r\n className='grow shrink-0 min-w-[240px]'\r\n style={{ width: cardSortingOptions.width || 'calc(25% - 0.75rem)' }}\r\n >\r\n <P\r\n marginBottom='xs'\r\n size='sm'\r\n className='text-primary-gray-700 dark:text-primary-gray-100'\r\n >\r\n Sort by\r\n </P>\r\n <DropdownSelect\r\n options={cardSortingOptions.options}\r\n isRtl={language === 'he' || language === 'ar'}\r\n isSearchable\r\n filterOption={createFilter(filterConfig)}\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n onChange={(el: any) => {\r\n setSortedBy(el || undefined);\r\n }}\r\n variant={uiMode}\r\n size='sm'\r\n defaultValue={\r\n !cardSortingOptions.defaultValue ||\r\n cardSortingOptions.options.findIndex(\r\n el => el.label === cardSortingOptions.defaultValue,\r\n ) === -1\r\n ? cardSortingOptions.options[0]\r\n : cardSortingOptions.options[\r\n cardSortingOptions.options.findIndex(\r\n el => el.label === cardSortingOptions.defaultValue,\r\n )\r\n ]\r\n }\r\n />\r\n </div>\r\n ) : null}\r\n {filterSettings?.map((d, i) => (\r\n <div\r\n className='grow shrink-0 min-w-[240px]'\r\n style={{ width: d.width || 'calc(25% - 0.75rem)' }}\r\n key={i}\r\n >\r\n <P\r\n marginBottom='xs'\r\n size='sm'\r\n className='text-primary-gray-700 dark:text-primary-gray-100'\r\n >\r\n {d.label}\r\n </P>\r\n <DropdownSelect\r\n options={d.availableValues}\r\n isClearable={d.clearable === undefined ? true : d.clearable}\r\n isRtl={language === 'he' || language === 'ar'}\r\n isSearchable\r\n variant={uiMode}\r\n size='sm'\r\n controlShouldRenderValue\r\n filterOption={createFilter(filterConfig)}\r\n onChange={el => {\r\n setSelectedFilters(prev =>\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n prev.map(f => (f.filter === d.filter ? { ...f, value: el as any } : f)),\r\n );\r\n }}\r\n defaultValue={d.defaultValue}\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n ) : null}\r\n {(cardSearchColumns || []).length > 0 ? (\r\n <div style={{ paddingTop: '1px' }}>\r\n <Search\r\n placeholder='Search...'\r\n onSearch={e => {\r\n setSearchQuery(e || '');\r\n }}\r\n buttonVariant='icon'\r\n inputVariant={uiMode}\r\n showSearchButton={false}\r\n inputSize='sm'\r\n />\r\n </div>\r\n ) : null}\r\n <Graph\r\n data={cardData}\r\n width={width}\r\n height={height}\r\n cardTemplate={cardTemplate}\r\n cardMinWidth={cardMinWidth}\r\n page={page}\r\n cardBackgroundColor={cardBackgroundColor}\r\n styles={styles}\r\n classNames={classNames}\r\n noOfItemsInAPage={noOfItemsInAPage}\r\n detailsOnClick={detailsOnClick}\r\n onSeriesMouseClick={onSeriesMouseClick}\r\n allowDataDownloadOnDetail={allowDataDownloadOnDetail}\r\n />\r\n {noOfItemsInAPage ? (\r\n <Pagination\r\n total={cardData.length}\r\n defaultPage={0}\r\n pageSize={noOfItemsInAPage}\r\n onChange={setPage}\r\n />\r\n ) : null}\r\n {sources || footNote ? (\r\n <GraphFooter\r\n styles={{ footnote: styles?.footnote, source: styles?.source }}\r\n classNames={{\r\n footnote: classNames?.footnote,\r\n source: classNames?.source,\r\n }}\r\n sources={sources}\r\n footNote={footNote}\r\n width={width}\r\n />\r\n ) : null}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n"],"names":["o","t","e","r","c","d","a","n","f","x","m","p","h","C","b","R","j","E","g","y","U","N","s","u","k","v","P","l","w","q","_","F","i","csvData","data","key","value","Graph","props","width","height","onSeriesMouseClick","cardTemplate","cardBackgroundColor","cardMinWidth","detailsOnClick","noOfItemsInAPage","styles","classNames","page","allowDataDownloadOnDetail","selectedData","setSelectedData","useState","jsxs","Fragment","jsx","_d","string2HTML","Modal","CsvDownloadButton","FileDown","filterByKeys","jsonArray","keys","substring","item","DataCards","graphTitle","sources","graphDescription","footNote","graphID","language","theme","ariaLabel","cardFilters","cardSortingOptions","cardSearchColumns","backgroundColor","padding","uiMode","cardData","setCardData","setPage","searchQuery","setSearchQuery","filterSettings","useMemo","el","transformDefaultValue","getUniqValue","selectedFilters","setSelectedFilters","sortedBy","setSortedBy","filterConfig","useEffect","filteredData","filter","flattenDeep","intersection","sortBy","cn","GraphHeader","DropdownSelect","createFilter","prev","Search","Pagination","GraphFooter"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|