@devgateway/dvz-ui-react
Version:
A modular, embeddable React component library for data visualization and UI, built with TypeScript. Provides reusable components for charts, maps, dashboards, and more, with built-in support for internationalization and Redux integration.
2 lines (1 loc) • 4.29 kB
JavaScript
;Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const d=require("./data-api.js"),A=require("immutable"),C=require("papaparse"),_="LOAD_DATA",I="LOAD_DATA_DONE",S="LOAD_DATA_ERROR",f="LOAD_CATEGORIES",D="LOAD_CATEGORIES_DONE",y="LOAD_CATEGORIES_ERROR",T="SET_PAGE_MODULE_PROPS",O="SET_FILTER",R="SET_INITIAL_FILTER",L="SET_APPLY",P="CLEAN_FILTER",v=A.Map({mode:"info"}),F="SET_MEASURES",M="CLEAN_MEASURES",z=({app:r,group:a})=>(e,t)=>{e({type:M,app:r,group:a})},x=({app:r,group:a,mGroup:e})=>(t,s)=>{const n=Object.keys(e.measures).filter(l=>e.measures[l].selected),o={...e};o[r]={measures:{}},n.forEach(l=>{o[r].measures[l]={...e.measures[l]}}),o[r].format=e.format,t({type:F,app:r,group:a,measure:o})},b=({app:r,group:a,param:e,value:t,autoApply:s})=>(n,o)=>{n({type:O,app:r,group:a,param:e,value:t,autoApply:s})},G=({app:r,group:a})=>(e,t)=>{e({type:P,app:r,group:a})},w=({app:r,group:a})=>(e,t)=>{e({type:L,app:r,group:a})},U=({app:r,group:a,param:e,value:t})=>(s,n)=>{s({type:R,app:r,group:a,param:e,value:t})},j=r=>(a,e)=>{const{app:t,params:s}=r;a({type:f,params:s,app:t,dvzProxyDatasetId:s.dvzProxyDatasetId}),d.getCategories({app:t,params:s}).then(n=>(n.appliedFilters=s,a({type:D,app:t,data:n,dvzProxyDatasetId:s.dvzProxyDatasetId}))).catch(n=>a({type:y,app:t,error:n,dvzProxyDatasetId:s.dvzProxyDatasetId}))},q=({app:r,group:a,csv:e,store:t,params:s})=>(n,o)=>{const l=o().get("data").getIn(["filters",r,a]);l&&(s={...s,...l.toJS()});const i=C.parse(e,{header:!0,dynamicTyping:!0}),m=i.data.filter(E=>{let g=!1;return Object.keys(s).forEach(u=>{const N=s[u];if(E[u]){const h=E[u].toString().trim().toLowerCase();g=N.filter(p=>p&&p.toString().trim().toLowerCase()==h).length==0}}),!g}),c={...i,data:m,appliedFilters:s};n({type:I,app:r,group:a,store:t,data:{count:c.data.length,itemsSize:c.data.length,...c}})},J=({app:r,group:a,source:e,store:t,params:s})=>(n,o)=>{const l=o().get("data").getIn(["filters",r,a]);l&&(s={...s,...l.toJS()}),n({type:_,app:r,group:a,params:s,store:t}),d.getData({app:r,source:e,params:s}).then(i=>(i.appliedFilters=s,n({type:I,app:r,group:a,store:t,data:i}))).catch(i=>n({type:S,app:r,group:a,store:t,error:i}))},Y=({data:r})=>(a,e)=>{a({type:T,data:r})},V=(r=v,a)=>{switch(a.type){case _:{const{store:e,app:t,group:s}=a,n=Date.now();return r.deleteIn([...e,"error"]).setIn([...e,"loading"],!0).setIn([...e,"time"],n)}case S:{const{error:e,store:t,app:s,group:n}=a;return r.setIn([...t,"loading"],!1).setIn([...t,"error"],e).setIn(["filters-settings",s,n,"apply"],null)}case I:{const{data:e,app:t,group:s,store:n}=a;return r.setIn([...n,"loading"],!1).deleteIn([...n,"error"]).setIn([...n,"data"],e).setIn(["filters-settings",t,s,"apply"],null)}case T:{const{data:e}=a;return r.setIn(["pageModuleProps"],e)}case f:{const{data:e,app:t,dvzProxyDatasetId:s}=a,n=["categories",t];return s&&n.push(s),r.setIn([...n,"loading"],!0).deleteIn([...n,"error"])}case D:{const{data:e,app:t,dvzProxyDatasetId:s}=a,n=["categories",t];return s&&n.push(s),r.setIn([...n,"loading"],!1).setIn([...n,"items"],A.fromJS(e))}case y:{const{data:e,app:t,dvzProxyDatasetId:s}=a,n=["categories",t];return s&&n.push(s),r.setIn([...n,"loading"],!1).setIn([...n,"error"],e)}case L:{const{app:e,group:t}=a;return r.setIn(["filters-settings",e,t,"apply"],new Date().getTime())}case O:{const{app:e,group:t,param:s,value:n,autoApply:o}=a;return r.setIn(["filters-settings",e,t,"autoApply"],o).setIn(["filters",e,t,s],n.length===0?[Number.MIN_SAFE_INTEGER]:n).setIn(["filters-settings",e,t,"apply"],null)}case R:{const{app:e,group:t,param:s,value:n}=a;return r.setIn(["filters","initial",e,t,s],n.length===0?[Number.MIN_SAFE_INTEGER]:n).setIn(["filters",e,t,s],n.length===0?[Number.MIN_SAFE_INTEGER]:n)}case P:{const{app:e,group:t}=a,s=r.getIn(["filters","initial",e,t]);return r.setIn(["filters",e,t],s)}case F:{const{app:e,group:t,measure:s}=a;return r.setIn(["measures",e,t],s)}case M:{const{app:e,group:t,measure:s}=a;return r.deleteIn(["measures",e,t])}default:return r}};exports.applyFilter=w;exports.cleanFilter=G;exports.cleanMeasures=z;exports.default=V;exports.getCategories=j;exports.getData=J;exports.setData=q;exports.setFilter=b;exports.setInitialFilters=U;exports.setMeasures=x;exports.setPageModuleProps=Y;