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