UNPKG

@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) 5.01 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const S=require("./data-api.js"),b=require("immutable"),C=require("papaparse");function w(n){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const e in n)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(n,e);Object.defineProperty(r,e,s.get?s:{enumerable:!0,get:()=>n[e]})}}return r.default=n,Object.freeze(r)}const d=w(b),_="LOAD_DATA",p="LOAD_DATA_DONE",A="LOAD_DATA_ERROR",O="LOAD_CATEGORIES",D="LOAD_CATEGORIES_DONE",T="LOAD_CATEGORIES_ERROR",y="SET_PAGE_MODULE_PROPS",R="SET_FILTER",L="SET_INITIAL_FILTER",F="SET_APPLY",h="CLEAN_FILTER",v=d.Map({mode:"info"}),P="SET_MEASURES",M="CLEAN_MEASURES",j=({app:n,group:r})=>(e,s)=>{e({type:M,app:n,group:r})},q=({app:n,group:r,mGroup:e})=>(s,t)=>{const o=Object.keys(e.measures).filter(l=>e.measures[l].selected),a={...e};a[n]={measures:{}},o.forEach(l=>{a[n].measures[l]={...e.measures[l]}}),a[n].format=e.format,s({type:P,app:n,group:r,measure:a})},G=({app:n,group:r,param:e,value:s,autoApply:t})=>(o,a)=>{o({type:R,app:n,group:r,param:e,value:s,autoApply:t})},U=({app:n,group:r})=>(e,s)=>{e({type:h,app:n,group:r})},z=({app:n,group:r})=>(e,s)=>{e({type:F,app:n,group:r})},x=({app:n,group:r,param:e,value:s})=>(t,o)=>{t({type:L,app:n,group:r,param:e,value:s})},J=n=>(r,e)=>{const{app:s,params:t,dvzProxyDatasetId:o,uniqueStorage:a}=n;r({type:O,params:t,app:s,uniqueStorage:a,dvzProxyDatasetId:o}),S.getCategories({app:s,params:t}).then(l=>(l.appliedFilters=t,r({type:D,app:s,data:l,uniqueStorage:a,dvzProxyDatasetId:o}))).catch(l=>r({type:T,app:s,uniqueStorage:a,error:l,dvzProxyDatasetId:o}))},Y=({app:n,group:r,csv:e,store:s,params:t})=>(o,a)=>{const l=a().get("data").getIn(["filters",n,r]);l?t={...t,...l.toJS()}:t=t||{};const i=C.parse(e,{header:!0,dynamicTyping:!0}),c=i.data.filter(E=>{let I=!1;return Object.keys(t).forEach(g=>{const m=t[g];if(E[g]){const N=E[g].toString().trim().toLowerCase();I=m.filter(f=>f&&f.toString().trim().toLowerCase()==N).length==0}}),!I}),u={...i,data:c,appliedFilters:t};o({type:p,app:n,group:r,store:s,data:{count:u.data.length,itemsSize:u.data.length,...u}})},B=({app:n,group:r,source:e,store:s,params:t})=>(o,a)=>{let l=a().get("data").getIn(["filters",n,r]);t&&Object.keys(t).forEach(c=>{if(l&&l.has(c)){let u=t[c],I=l.get(c).filter(g=>u.indexOf(g)>-1);l=l.set(c,I)}}),l&&(t={...t,...l.toJS()}),o({type:_,app:n,group:r,params:t,store:s}),S.getData({app:n,source:e,params:t}).then(i=>(i.appliedFilters=t,o({type:p,app:n,group:r,store:s,data:i,params:t}))).catch(i=>o({type:A,app:n,group:r,store:s,error:i}))},V=({data:n})=>(r,e)=>{r({type:y,data:n})},H=(n=v,r)=>{switch(r.type){case _:{const{store:e,app:s,group:t,params:o}=r,a=Date.now();return n.deleteIn([...e,"error"]).setIn([...e,"loading"],!0).setIn([...e,"time"],a).setIn([...e,"presetFilter"],o)}case A:{const{error:e,store:s,app:t,group:o}=r;return n.setIn([...s,"loading"],!1).setIn([...s,"error"],e).setIn(["filters-settings",t,o,"apply"],null)}case p:{const{data:e,app:s,group:t,store:o}=r;return n.setIn([...o,"loading"],!1).deleteIn([...o,"error"]).setIn([...o,"data"],e).setIn(["filters-settings",s,t,"apply"],null)}case y:{const{data:e}=r;return n.setIn(["pageModuleProps"],e)}case O:{const{data:e,app:s,uniqueStorage:t,dvzProxyDatasetId:o}=r,a=["categories",s];return t&&a.push(t),o&&a.push(o),n.setIn([...a,"loading"],!0).deleteIn([...a,"error"])}case D:{const{data:e,app:s,uniqueStorage:t,dvzProxyDatasetId:o}=r,a=["categories",s];return o&&a.push(o),t&&a.push(t),n.setIn([...a,"loading"],!1).setIn([...a,"items"],d.fromJS(e))}case T:{const{data:e,app:s,uniqueStorage:t,dvzProxyDatasetId:o}=r,a=["categories",s];return t&&a.push(t),o&&a.push(o),n.setIn([...a,"loading"],!1).setIn([...a,"error"],e)}case F:{const{app:e,group:s}=r;return n.setIn(["filters-settings",e,s,"apply"],new Date().getTime())}case R:{const e=Date.now(),{app:s,group:t,param:o,value:a,autoApply:l}=r;return n.setIn(["filters-settings",s,t,"autoApply"],l).setIn(["filters",s,t,o],a.length===0?[Number.MIN_SAFE_INTEGER]:a).setIn(["filters-settings",s,t,"apply"],null).setIn(["filters-settings",s,t,"lastUserFilterChange"],e)}case L:{const e=Date.now(),{app:s,group:t,param:o,value:a}=r;return console.log(o),n.setIn(["filters","initial",s,t,o],a.length===0?[Number.MIN_SAFE_INTEGER]:a).setIn(["filters",s,t,o],a.length===0?[Number.MIN_SAFE_INTEGER]:a).setIn(["filters-settings",s,t,"lastInitialFilterChange"],e)}case h:{const{app:e,group:s}=r,t=n.getIn(["filters","initial",e,s]);return n.setIn(["filters",e,s],t)}case P:{const{app:e,group:s,measure:t}=r;return n.setIn(["measures",e,s],t)}case M:{const{app:e,group:s,measure:t}=r;return n.deleteIn(["measures",e,s])}default:return n}};exports.applyFilter=z;exports.cleanFilter=U;exports.cleanMeasures=j;exports.default=H;exports.getCategories=J;exports.getData=B;exports.setData=Y;exports.setFilter=G;exports.setInitialFilters=x;exports.setMeasures=q;exports.setPageModuleProps=V;