@devgateway/dvz-ui-react 1.7.4 → 1.7.5

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.
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),n=require("../../redux/hooks.js"),t=require("semantic-ui-react"),d=require("../reducers/data.js"),h=a=>{const{noDataMsg:r,editing:i,group:s}=a,l=n.useAppDispatch(),o=n.useAppSelector(c=>c.getIn(["data","posts","initialFilters",s])),u=c=>{c.preventDefault(),d.clearPostsFilter({group:s,dispatch:l,initialFilters:o})};return e.jsxs(t.Segment,{placeholder:!0,className:"chartNoDataMessage",children:[e.jsxs(t.Header,{icon:!0,children:[e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"noDataSVG",viewBox:"0 0 512 512",children:e.jsx("path",{d:`M403.7,96.3c-41-41-95.6-63.6-153.7-63.6c-58,0-112.6,22.6-153.7,63.6c-41,41-63.6,95.6-63.6,153.7
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("react/jsx-runtime"),n=require("../../redux/hooks.js"),t=require("semantic-ui-react"),d=require("../reducers/data.js"),g=a=>{const{noDataMsg:l,clearFilterMsg:i,editing:p,group:s}=a,r=n.useAppDispatch(),o=n.useAppSelector(c=>c.getIn(["data","posts","initialFilters",s])),u=c=>{c.preventDefault(),d.clearPostsFilter({group:s,dispatch:r,initialFilters:o})};return e.jsxs(t.Segment,{placeholder:!0,className:"chartNoDataMessage",children:[e.jsxs(t.Header,{icon:!0,children:[e.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"noDataSVG",viewBox:"0 0 512 512",children:e.jsx("path",{d:`M403.7,96.3c-41-41-95.6-63.6-153.7-63.6c-58,0-112.6,22.6-153.7,63.6c-41,41-63.6,95.6-63.6,153.7
2
2
  c0,58,22.6,112.6,63.6,153.7c41,41,95.6,63.6,153.7,63.6c58,0,112.6-22.6,153.7-63.6c41-41,63.7-95.6,63.7-153.7
3
3
  C467.3,192,444.7,137.4,403.7,96.3z M57.7,250C57.7,144,144,57.7,250,57.7c37.2,0,72,10.6,101.5,29l-63,77.1c-2.8-3.5-6-6.8-9.5-10
4
4
  c-18.2-16.7-39.9-24.5-65.1-23.5c-25.2,1.1-46.2,10.7-62.9,28.9c-16.7,18.2-24.5,39.9-23.5,65.1c1.1,25.2,10.7,46.2,28.9,62.9
@@ -8,4 +8,4 @@
8
8
  c4,3.7,7.3,7.6,10.1,11.8L194.6,278.8z M250,442.3c-46,0-88.2-16.2-121.3-43.2l73.1-89.5c6.4,1,13,1.4,19.9,1.1
9
9
  c10.2-0.4,19.7-2.5,28.6-6.1c8.9-3.6,16.7-8.4,23.4-14.2l81,74.4c2.6,2.4,6,3.6,9.3,3.6c3.7,0,7.4-1.5,10.1-4.5
10
10
  c5.1-5.6,4.8-14.3-0.8-19.4l-81-74.4c5.3-7.2,9.3-15.3,12.2-24.5c2.8-9.2,4.1-18.8,3.6-29c-0.5-10.7-2.5-20.6-6-29.8l69.8-85.5
11
- c43,35.3,70.5,88.8,70.5,148.7C442.3,356,356,442.3,250,442.3z`})}),i&&e.jsx("div",{className:"WPnoDataMsg",children:"Not enough parameters to render the chart"}),e.jsx("div",{className:"WPnoDataMsg",children:r})]}),e.jsx(t.Button,{size:"medium",onClick:c=>u(c),children:"Clear Filter"})]})};exports.default=h;
11
+ c43,35.3,70.5,88.8,70.5,148.7C442.3,356,356,442.3,250,442.3z`})}),e.jsx("div",{className:"WPnoDataMsg",children:l})]}),e.jsx(t.Button,{size:"medium",onClick:c=>u(c),children:i||"Clear Filter"})]})};exports.default=g;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),y=require("react"),p=require("semantic-ui-react"),Z=require("../connected-templates/PostIntro.js"),tt=require("react-intl"),Y=require("./utils.js"),et=require("./NoData.js"),H=require("react-redux"),rt=require("../reducers/data-api.js"),ot=require("react-router"),V=require("../../utils/data.js"),nt=T=>{const{posts:l,numberOfColumns:C,sortFirstBy:c,countryCategory:u,postWidth:b,postHeight:w}=T,g=[];if(u&&c&&c!=="none"){const d=l.filter(h=>h[u].includes(Number(c))),N=l.filter(h=>!h[u].includes(Number(c)));g.push(...d),g.push(...N)}else g.push(...l);return a.jsx(p.Grid,{className:"filtered-posts",columns:C,children:a.jsx(p.GridRow,{children:g.map(d=>a.jsx(p.Grid.Column,{children:a.jsx("div",{className:"filtered-posts-column",style:{width:b,height:w,overflow:"hidden"},children:a.jsx(Z.default,{style:{width:"100%",height:"100%",overflow:"hidden",margin:0,padding:0},as:p.Container,fluid:!0,post:d},d.id)})},d.id))})})},st=T=>{const{"data-group":l,"data-number-of-columns":C,"data-type":c,"data-taxonomy":u,"data-categories":b,"data-height":w,"data-post-width":g,"data-post-height":d,"data-number-of-items-per-page":N,"data-enable-sorting":h,"data-sort-first-by":q,"data-sorting-taxonomy":R,editing:B}=T,z=H.useDispatch(),{locale:W}=ot.useParams(),[I,v]=y.useState(!1),O=H.useSelector(t=>t).getIn(["data","posts",l]),[D,F]=y.useState([]),E=y.useRef(null),[P,_]=y.useState(void 0),J=V.toBoolean(h)&&q!=="none"?V.toNumber(q):null,f=O??{yearFilter:null,categoryFilter:null,countryFilter:null,page:1,countryTaxonomy:null,categoryTaxonomy:null},S=t=>{if(t==null)return{values:[],isExplicitNone:!1};const e=Array.isArray(t)?t:[t],s=e.some(r=>Number(r)===Number.MIN_SAFE_INTEGER);return{values:e.map(r=>Number(r)).filter(r=>Number.isFinite(r)&&r!==Number.MIN_SAFE_INTEGER),isExplicitNone:s}},L=t=>{if(!t||t.length===0)return null;const e=Array.from(new Set(t)).sort((j,A)=>j-A);if(e.length===0)return null;const s=e[0],o=e[e.length-1],r=Y.getStartDateAndEndDateFromYear(s),n=Y.getStartDateAndEndDateFromYear(o);return!(r!=null&&r.startDate)||!(n!=null&&n.endDate)?null:{startDate:r.startDate,endDate:n.endDate}},U=()=>{const t=S(f.yearFilter),e=t.isExplicitNone?null:L(t.values),s=f.countryFilter??null,o=f.categoryFilter??null,r=f.categoryTaxonomy||(u&&u!=="none"?u:null),n=f.countryTaxonomy||null;return{before:(e==null?void 0:e.endDate)||null,after:(e==null?void 0:e.startDate)||null,categoryFilter:o,categoryTaxonomy:r,countryFilter:s,countryTaxonomy:n}},G=t=>B?t:decodeURIComponent(t),$=t=>{try{return JSON.parse(G(t))}catch(e){return console.warn("JSON parsing failed for value:",t,"- treating as plain string. Error:",e),G(t)}},k=()=>{const t=$(b);return t?typeof t=="string"?t.split(",").map(Number):typeof t=="number"?[t]:t:[]},K=(t,e,s)=>{if(s)return null;if(t.length===0)return e.length>0?e:null;if(e.length===0)return t;const o=new Set(t),r=e.filter(n=>o.has(n));return r.length>0?r:null},Q=async()=>{E.current&&_(E.current.offsetHeight),v(!0);const t=U(),e=S(k()).values,s=S(t.categoryFilter),o=K(e,s.values,s.isExplicitNone),r=S(t.countryFilter);if(s.isExplicitNone){F([]),v(!1);return}if(r.isExplicitNone){F([]),v(!1);return}const n=new Map;t.categoryTaxonomy&&o&&o.length>0&&n.set(t.categoryTaxonomy,o),t.countryTaxonomy&&r.values.length>0&&n.set(t.countryTaxonomy,r.values);const j=o?o.join(","):void 0,A={after:t.after,before:t.before,perPage:Number(N||10),page:f.page||1,locale:W||"en",postType:c,taxonomy:t.categoryTaxonomy||void 0,category:j||void 0,taxonomyFilters:n,ordering:"date",orderingDirection:"desc"};await rt.getCustomPosts(A).then(i=>{if(i){let x=null,m=null;if(i&&typeof i=="object"&&"data"in i?(x=i.data,m=i.meta):(Array.isArray(i),x=i),F(Array.isArray(x)?x:[]),m){const M=m["x-wp-totalpages"]?m["x-wp-totalpages"]:1,X=m["x-wp-total"]?m["x-wp-total"]:0;M&&z({type:"SET_POSTS_PAGINATION",group:l,totalPages:Number(M),totalItems:Number(X)})}}else F([])}).finally(()=>{v(!1),_(void 0)})};return y.useEffect(()=>{(async()=>await Q())()},[O,c,u,N,b,R]),a.jsx("div",{ref:E,id:`filtered-posts-${l}`,style:P!==void 0?{minHeight:P,border:"1px solid #e0e0e0",borderRadius:"4px"}:void 0,children:a.jsx(p.Container,{fluid:!0,children:I?a.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:P??"100%"},children:a.jsx(p.Loader,{active:!0,inline:"centered"})}):!I&&D&&D.length>0?a.jsx(nt,{posts:D,postWidth:Number(g),postHeight:Number(d),numberOfColumns:Number(C),sortFirstBy:J,countryCategory:R}):a.jsx(et.default,{noDataMsg:"No posts found",group:l})})})},at=tt.injectIntl(y.memo(st));exports.default=at;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("react/jsx-runtime"),y=require("react"),p=require("semantic-ui-react"),rt=require("../connected-templates/PostIntro.js"),ot=require("react-intl"),Y=require("./utils.js"),nt=require("./NoData.js"),B=require("react-redux"),st=require("../reducers/data-api.js"),at=require("react-router"),H=require("../../utils/data.js"),it=T=>{const{posts:l,numberOfColumns:w,sortFirstBy:u,countryCategory:c,postWidth:b,postHeight:A}=T,g=[];if(c&&u&&u!=="none"){const d=l.filter(h=>h[c].includes(Number(u))),N=l.filter(h=>!h[c].includes(Number(u)));g.push(...d),g.push(...N)}else g.push(...l);return a.jsx(p.Grid,{className:"filtered-posts",columns:w,children:a.jsx(p.GridRow,{children:g.map(d=>a.jsx(p.Grid.Column,{children:a.jsx("div",{className:"filtered-posts-column",style:{width:b,height:A,overflow:"hidden"},children:a.jsx(rt.default,{style:{width:"100%",height:"100%",overflow:"hidden",margin:0,padding:0},as:p.Container,fluid:!0,post:d},d.id)})},d.id))})})},lt=T=>{const{"data-group":l,"data-number-of-columns":w,"data-type":u,"data-taxonomy":c,"data-categories":b="[]","data-height":A,"data-post-width":g,"data-post-height":d,"data-number-of-items-per-page":N,"data-enable-sorting":h,"data-sort-first-by":q,"data-sorting-taxonomy":R,"data-wordpress-source-type":ct,"data-wordpress-source":V,"data-no-data-msg":z,"data-clear-filter-msg":W,editing:J}=T,L=B.useDispatch(),{locale:U}=at.useParams(),[I,v]=y.useState(!1),O=B.useSelector(t=>t).getIn(["data","posts",l]),[C,S]=y.useState([]),D=y.useRef(null),[E,_]=y.useState(void 0),$=H.toBoolean(h)&&q!=="none"?H.toNumber(q):null,f=O??{yearFilter:null,categoryFilter:null,countryFilter:null,page:1,countryTaxonomy:null,categoryTaxonomy:null},F=t=>{if(t==null)return{values:[],isExplicitNone:!1};const e=Array.isArray(t)?t:[t],s=e.some(r=>Number(r)===Number.MIN_SAFE_INTEGER);return{values:e.map(r=>Number(r)).filter(r=>Number.isFinite(r)&&r!==Number.MIN_SAFE_INTEGER),isExplicitNone:s}},k=t=>{if(!t||t.length===0)return null;const e=Array.from(new Set(t)).sort((P,j)=>P-j);if(e.length===0)return null;const s=e[0],o=e[e.length-1],r=Y.getStartDateAndEndDateFromYear(s),n=Y.getStartDateAndEndDateFromYear(o);return!(r!=null&&r.startDate)||!(n!=null&&n.endDate)?null:{startDate:r.startDate,endDate:n.endDate}},K=()=>{const t=F(f.yearFilter),e=t.isExplicitNone?null:k(t.values),s=f.countryFilter??null,o=f.categoryFilter??null,r=f.categoryTaxonomy||(c&&c!=="none"?c:null),n=f.countryTaxonomy||null;return{before:(e==null?void 0:e.endDate)||null,after:(e==null?void 0:e.startDate)||null,categoryFilter:o,categoryTaxonomy:r,countryFilter:s,countryTaxonomy:n}},M=t=>J?t:decodeURIComponent(t),Q=t=>{try{return JSON.parse(M(t))}catch(e){return console.warn("JSON parsing failed for value:",t,"- treating as plain string. Error:",e),M(t)}},X=()=>{const t=Q(b);return t?typeof t=="string"?t.split(",").map(Number):typeof t=="number"?[t]:t:[]},Z=(t,e,s)=>{if(s)return null;if(t.length===0)return e.length>0?e:null;if(e.length===0)return t;const o=new Set(t),r=e.filter(n=>o.has(n));return r.length>0?r:null},tt=async()=>{D.current&&_(D.current.offsetHeight),v(!0);const t=K(),e=F(X()).values,s=F(t.categoryFilter),o=Z(e,s.values,s.isExplicitNone),r=F(t.countryFilter);if(s.isExplicitNone){S([]),v(!1);return}if(r.isExplicitNone){S([]),v(!1);return}const n=new Map;t.categoryTaxonomy&&o&&o.length>0&&n.set(t.categoryTaxonomy,o),t.countryTaxonomy&&r.values.length>0&&n.set(t.countryTaxonomy,r.values);const P=o?o.join(","):void 0,j={after:t.after,before:t.before,perPage:Number(N||10),page:f.page||1,locale:U||"en",postType:u,taxonomy:t.categoryTaxonomy||void 0,category:P||void 0,taxonomyFilters:n,ordering:"date",orderingDirection:"desc",wpApiBase:V??void 0};await st.getCustomPosts(j).then(i=>{if(i){let x=null,m=null;if(i&&typeof i=="object"&&"data"in i?(x=i.data,m=i.meta):(Array.isArray(i),x=i),S(Array.isArray(x)?x:[]),m){const G=m["x-wp-totalpages"]?m["x-wp-totalpages"]:1,et=m["x-wp-total"]?m["x-wp-total"]:0;G&&L({type:"SET_POSTS_PAGINATION",group:l,totalPages:Number(G),totalItems:Number(et)})}}else S([])}).finally(()=>{v(!1),_(void 0)})};return y.useEffect(()=>{u&&(async()=>await tt())()},[O,u,c,N,b,R]),a.jsx("div",{ref:D,id:`filtered-posts-${l}`,style:E!==void 0?{minHeight:E,border:"1px solid #e0e0e0",borderRadius:"4px"}:void 0,children:a.jsx(p.Container,{fluid:!0,children:I?a.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",height:E??"100%"},children:a.jsx(p.Loader,{active:!0,inline:"centered"})}):!I&&C&&C.length>0?a.jsx(it,{posts:C,postWidth:Number(g),postHeight:Number(d),numberOfColumns:Number(w),sortFirstBy:$,countryCategory:R}):a.jsx(nt.default,{noDataMsg:z,clearFilterMsg:W,group:l})})})},ut=ot.injectIntl(y.memo(lt));exports.default=ut;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const j=require("react/jsx-runtime"),i=require("react"),q=require("./PostsFilterDropdown.js"),A=require("../../conf/index.js"),R=l=>{const{taxonomy:o,group:u,placeholder:c,allLabel:p,noneLabel:f,useSingleColumn:d,enableTextSearch:g,filterType:y,showNoDataOption:S,closeOnSelect:m,allNoneSameBehaviour:x,autoApply:O,alphabeticalSort:P,ascOrder:h,type:T,categories:n,onChange:b,...v}=l,[w,e]=i.useState([]),C=async()=>{if(!o||o==="none"){e([]);return}const a=await(await fetch(A.Config.REACT_APP_WP_API+"/wp/v2/"+o)).json();if(a){const r=a.map(t=>({key:t.id,value:t.id,text:t.name}));if(n){const t=r.filter(_=>n.indexOf(_.value.toString())>-1);e([]),e(t)}else e([]),e(r)}};return i.useEffect(()=>{let s=!1;return s||(e([]),C()),()=>{s=!0}},[T,o,n]),j.jsx(q.default,{...v,group:u,placeholder:c,allLabel:p,noneLabel:f,useSingleColumn:d,enableTextSearch:g,filterType:y,showNoDataOption:S,closeOnSelect:m,allNoneSameBehaviour:x,autoApply:O,alphabeticalSort:P,ascOrder:h,options:w,onChange:b})};exports.default=R;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const j=require("react/jsx-runtime"),c=require("react"),q=require("./PostsFilterDropdown.js"),F=require("../../conf/index.js"),R=u=>{const{taxonomy:n,group:p,placeholder:f,allLabel:d,noneLabel:g,useSingleColumn:y,enableTextSearch:m,filterType:h,showNoDataOption:x,closeOnSelect:S,allNoneSameBehaviour:O,autoApply:P,alphabeticalSort:A,ascOrder:b,type:v,categories:s,onChange:T,wpApiBase:t,...w}=u,[B,e]=c.useState([]),C=async()=>{if(!n||n==="none"){e([]);return}const i=t!=null&&t!==""?t:F.Config.REACT_APP_WP_API;console.log("Fetching taxonomy options from API base:",i);const r=await(await fetch(i+"/wp/v2/"+n)).json();if(r){const l=r.map(o=>({key:o.id,value:o.id,text:o.name}));if(s){const o=l.filter(_=>s.indexOf(_.value.toString())>-1);e([]),e(o)}else e([]),e(l)}};return c.useEffect(()=>{let a=!1;return a||(e([]),C()),()=>{a=!0}},[v,n,s,t]),j.jsx(q.default,{...w,group:p,placeholder:f,allLabel:d,noneLabel:g,useSingleColumn:y,enableTextSearch:m,filterType:h,showNoDataOption:x,closeOnSelect:S,allNoneSameBehaviour:O,autoApply:P,alphabeticalSort:A,ascOrder:b,options:B,onChange:T})};exports.default=R;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const b=require("react/jsx-runtime"),n=require("react"),Fe=require("semantic-ui-react"),i=require("../../utils/data.js"),de=require("../../redux/hooks.js"),ge=require("react-redux"),pe=require("./CategoricalFilter.js"),fe=require("./YearFilter.js"),Se=J=>{const{"data-alphabetical-sort":U,"data-asc-order":k,"data-group":u,"data-placeholder":N,"data-all-label":V,"data-none-label":A,"data-use-single-column":$,"data-enable-text-search":G,"data-filter-type":h,"data-show-no-data-option":H,"data-close-on-select":Q,"data-all-none-same-behaviour":W,"data-auto-apply":X,"data-taxonomy":c,"data-categories":y="[]","data-is-country-filter":Z,"data-is-year-filter":ee,"data-type":te,"data-sort-first-by":_,"data-default-values":re="[]",editing:ae=!1}=J,m=de.useAppDispatch(),t=ge.useSelector(e=>e.getIn(["data","posts",u]))||{},o=h==="multi-select",E=n.useRef(0),Y=e=>ae?e:decodeURIComponent(e);let s=(e=>{try{return JSON.parse(Y(e))}catch(r){return console.warn("JSON parsing failed for value:",e,"- treating as plain string. Error:",r),Y(e)}})(re);s||(s=[]),typeof s=="string"&&(s=s.split(",").map(Number)),typeof s=="number"&&(s=[s]);const oe=i.toBoolean(U),le=i.toBoolean(k),I=i.toBoolean(H),R=i.toBoolean(Q),L=i.toBoolean(W),q=i.toBoolean(X),a=i.toBoolean(Z),l=i.toBoolean(ee),M=i.toBoolean($),v=i.toBoolean(G),C=_!=="none"?i.toNumber(_):null,[F,ne]=n.useState([]),[T,se]=n.useState(!1),x=(e,r)=>r?Array.isArray(e)?e:e!=null?[e]:[]:e||void 0,B=(e,r)=>Array.isArray(e)&&Array.isArray(r)?e.length!==r.length?!1:e.every((f,S)=>f===r[S]):e===r,d=n.useMemo(()=>x(t.countryFilter,o),[t.countryFilter,o]),g=n.useMemo(()=>x(t.categoryFilter,o),[t.categoryFilter,o]),p=n.useMemo(()=>l?x(t.yearFilter,o):void 0,[t.yearFilter,o,l]),[ie,w]=n.useState(p),[D,P]=n.useState(d),[j,z]=n.useState(g),K=n.useRef({countryFilter:d,categoryFilter:g,yearFilter:p,isMultiSelectFilter:o});n.useEffect(()=>{const e=K.current,r=!B(e.countryFilter,d),f=!B(e.categoryFilter,g),S=l&&!B(e.yearFilter,p),O=e.isMultiSelectFilter!==o;(r||f||S||O)&&(r&&P(d),f&&z(g),S&&w(p),K.current={countryFilter:d,categoryFilter:g,yearFilter:p,isMultiSelectFilter:o})},[d,g,p,o,l]);const ce=e=>{w(e),m({type:"SET_POSTS_FILTER",group:u,...t,isYearFilter:l,yearFilter:l?e:null,isCountryFilter:a,categoryFilter:t.categoryFilter,countryFilter:t.countryFilter,sortFirstBy:C,countryCategory:c,categoryTaxonomy:c,countryTaxonomy:c})},ue=e=>{a?P(e):z(e),m({type:"SET_POSTS_FILTER",group:u,...t,categoryFilter:a?t.categoryFilter:e,countryFilter:a?e:t.countryFilter,isYearFilter:l,yearFilter:t.yearFilter,isCountryFilter:a,sortFirstBy:a?C:t.sortFirstBy,countryCategory:a?c:t.countryCategory,categoryCategory:a?t.categoryCategory:e,categoryTaxonomy:a?t.categoryTaxonomy:c,countryTaxonomy:a?c:t.countryTaxonomy})};return n.useEffect(()=>{const e=s.length>0,r=o?s:s[0],f=a?t.categoryFilter:e?r:o?y?y.split(",").map(Number):[]:t.categoryFilter,S=a?e?r:o?y?y.split(",").map(Number):[]:t.countryFilter:t.countryFilter,O=l&&o?F.length>0?F.map(ye=>ye.value):[]:t.yearFilter;m({type:"SET_INITIAL_POSTS_FILTER",group:u,categoryFilter:f,countryFilter:S,isYearFilter:l,isCountryFilter:a,sortFirstBy:C,yearFilter:l?O:null,categoryCategory:a?null:t.categoryCategory,categoryTaxonomy:a?null:c,countryCategory:a?t.countryCategory:null,countryTaxonomy:a?c:null,page:1})},[]),n.useEffect(()=>{if(l&&!T){const e=l&&o?F.length>0?F.map(r=>r.value):[]:t.yearFilter;m({type:"SET_INITIAL_POSTS_FILTER",group:u,...t,isYearFilter:l,yearFilter:l?e:null})}},[T]),b.jsxs(Fe.Container,{fluid:!0,className:"filter post-filter",children:[l&&b.jsx(fe.default,{group:u,placeholder:N,allLabel:V,noneLabel:A,useSingleColumn:M,enableTextSearch:v,filterType:h,showNoDataOption:I,closeOnSelect:R,allNoneSameBehaviour:L,autoApply:q,alphabeticalSort:oe,ascOrder:le,options:F,value:ie,yearOptions:F,setYearOptions:ne,yearFilterLoading:T,setYearFilterLoading:se,onChange:(e,r)=>{ce(r)},resetKey:E.current}),!l&&b.jsx(pe.default,{group:u,placeholder:N,allLabel:V,noneLabel:A,useSingleColumn:M,enableTextSearch:v,filterType:h,showNoDataOption:I,closeOnSelect:R,allNoneSameBehaviour:L,autoApply:q,taxonomy:c,type:te,value:a?D:j,onChange:(e,r)=>{ue(r)},categories:y?y.split(","):[],resetKey:E.current},`cat-${u}`)]})};exports.default=Se;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const f=require("react/jsx-runtime"),c=require("react"),ne=require("semantic-ui-react"),s=require("../../utils/data.js"),se=require("../../redux/hooks.js"),ie=require("react-redux"),ce=require("./CategoricalFilter.js"),ue=require("./YearFilter.js"),ye=E=>{const{"data-alphabetical-sort":Y,"data-asc-order":L,"data-group":u,"data-placeholder":T,"data-all-label":C,"data-none-label":b,"data-use-single-column":R,"data-enable-text-search":q,"data-filter-type":p,"data-show-no-data-option":v,"data-close-on-select":M,"data-all-none-same-behaviour":D,"data-auto-apply":P,"data-taxonomy":i,"data-categories":F="[]","data-is-country-filter":j,"data-is-year-filter":z,"data-type":J,"data-sort-first-by":B,"data-default-values":K="[]","data-wordpress-source-type":de,"data-wordpress-source":U,editing:k=!1}=E,d=se.useAppDispatch(),e=ie.useSelector(t=>t.getIn(["data","posts",u]))||{},l=p==="multi-select",[x,Fe]=c.useState(0),O=t=>k?t:decodeURIComponent(t);let n=(t=>{try{return JSON.parse(O(t))}catch(o){return console.warn("JSON parsing failed for value:",t,"- treating as plain string. Error:",o),O(t)}})(K);n||(n=[]),typeof n=="string"&&(n=n.split(",").map(Number)),typeof n=="number"&&(n=[n]);const $=s.toBoolean(Y),G=s.toBoolean(L),N=s.toBoolean(v),V=s.toBoolean(M),_=s.toBoolean(D),A=s.toBoolean(P),r=s.toBoolean(j),a=s.toBoolean(z),I=s.toBoolean(R),w=s.toBoolean(q),g=B!=="none"?s.toNumber(B):null,[y,H]=c.useState([]),[m,Q]=c.useState(!1),S=(t,o)=>o?Array.isArray(t)?t:t!=null?[t]:[]:t||void 0,W=c.useMemo(()=>S(e.countryFilter,l),[e.countryFilter,l]),X=c.useMemo(()=>S(e.categoryFilter,l),[e.categoryFilter,l]),Z=c.useMemo(()=>a?S(e.yearFilter,l):void 0,[e.yearFilter,l,a]),h=c.useMemo(()=>F?F.split(","):[],[F]),ee=t=>{d({type:"SET_POSTS_FILTER",group:u,...e,isYearFilter:a,yearFilter:a?t:null,isCountryFilter:r,categoryFilter:e.categoryFilter,countryFilter:e.countryFilter,sortFirstBy:g,countryCategory:i,categoryTaxonomy:i,countryTaxonomy:i})},te=t=>{d({type:"SET_POSTS_FILTER",group:u,...e,categoryFilter:r?e.categoryFilter:t,countryFilter:r?t:e.countryFilter,isYearFilter:a,yearFilter:e.yearFilter,isCountryFilter:r,sortFirstBy:r?g:e.sortFirstBy,countryCategory:r?i:e.countryCategory,categoryCategory:r?e.categoryCategory:t,categoryTaxonomy:r?e.categoryTaxonomy:i,countryTaxonomy:r?i:e.countryTaxonomy})};return c.useEffect(()=>{const t=n.length>0,o=l?n:n[0],re=r?e.categoryFilter:t?o:l?h.map(Number):e.categoryFilter,ae=r?t?o:l?h.map(Number):e.countryFilter:e.countryFilter,oe=a&&l?y.length>0?y.map(le=>le.value):[]:e.yearFilter;d({type:"SET_INITIAL_POSTS_FILTER",group:u,categoryFilter:re,countryFilter:ae,isYearFilter:a,isCountryFilter:r,sortFirstBy:g,yearFilter:a?oe:null,categoryCategory:r?null:e.categoryCategory,categoryTaxonomy:r?null:i,countryCategory:r?i:null,countryTaxonomy:r?i:null,page:1})},[]),c.useEffect(()=>{if(a&&!m){const t=a&&l?y.length>0?y.map(o=>o.value):[]:e.yearFilter;d({type:"SET_INITIAL_POSTS_FILTER",group:u,...e,isYearFilter:a,yearFilter:a?t:null})}},[m]),f.jsxs(ne.Container,{fluid:!0,className:"filter post-filter",children:[a&&f.jsx(ue.default,{group:u,placeholder:T,allLabel:C,noneLabel:b,useSingleColumn:I,enableTextSearch:w,filterType:p,showNoDataOption:N,closeOnSelect:V,allNoneSameBehaviour:_,autoApply:A,alphabeticalSort:$,ascOrder:G,options:y,value:Z,yearOptions:y,setYearOptions:H,yearFilterLoading:m,setYearFilterLoading:Q,onChange:(t,o)=>{ee(o)},resetKey:x}),!a&&f.jsx(ce.default,{group:u,placeholder:T,allLabel:C,noneLabel:b,useSingleColumn:I,enableTextSearch:w,filterType:p,showNoDataOption:N,closeOnSelect:V,allNoneSameBehaviour:_,autoApply:A,taxonomy:i,type:J,value:r?W:X,onChange:(t,o)=>{te(o)},categories:h,resetKey:x,wpApiBase:U??void 0},`cat-${u}`)]})};exports.default=ye;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../../conf/index.js"),A=require("../../api/commons.js");function p(t){return JSON.parse(JSON.stringify(t))}const u=process.env.VITE_REACT_APP_API_ROOT||m.Config.REACT_APP_API_ROOT||null,O=typeof window<"u"?window.location.origin:"",f={},l={},I=3*60*1e3;function P(t){return Object.keys(t).map(n=>encodeURIComponent(n)+"="+encodeURIComponent(t[n])).join("&")}function C(t,n=!1){const e=t,o=Date.now();if(l[e]&&o-l[e].timestamp<I)return Promise.resolve(p(l[e].data));if(f[e])return f[e].then(p);const g=A.get(t,{},n).then(a=>(l[e]={data:a,timestamp:Date.now()},n?{data:p(a),meta:l[e].meta}:p(a))).finally(()=>{delete f[e]});return f[e]=g,g}const E=({app:t,params:n})=>{const e=`${u||O}/api/${t}/categories${n?"?"+P(n):""}`;return C(e)},U=({app:t,type:n,params:e})=>{const o=`${u||""}/api/${t}/categories/${n}${e?"?"+P(e):""}`;return console.log("categories==>",o),C(o)},b=({source:t,app:n,params:e})=>{const o=`${u||O}/api/${n}/stats/${t}${e?"?"+P(e):""}`;return C(o)},j=({postType:t,taxonomy:n,category:e,taxonomyFilters:o,before:g,perPage:a,page:T,locale:h,after:S,ordering:_,orderingDirection:R})=>{const q=`${m.Config.REACT_APP_WP_API}/wp/v2/${t}`,r=new URLSearchParams,d=new Map,y=(s,i)=>{if(!s||i==null)return;const c=d.get(s)||[];Array.isArray(i)?i.forEach($=>{$!=null&&c.push(String($))}):c.push(String(i)),d.set(s,c)};o&&o instanceof Map&&o.forEach((s,i)=>{y(i,s)}),n&&e!=null&&y(n,e),d.forEach((s,i)=>{const c=Array.from(new Set(s));c.length!==0&&r.set(i,c.join(","))}),g&&r.append("before",g.toISOString()),a&&r.append("per_page",a.toString()),r.append("page",T.toString()),r.append("locale",h),S&&r.append("after",S.toISOString()),r.append("orderby",_),r.append("order",R);const w=r.toString().replace(/%2C/g,",");return A.get(`${q}?${w}`,{headers:{"Content-Type":"application/json"},credentials:"include"},!0)};exports.getCategories=E;exports.getCategory=U;exports.getCustomPosts=j;exports.getData=b;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("../../conf/index.js"),O=require("../../api/commons.js");function p(n){return JSON.parse(JSON.stringify(n))}const u=process.env.VITE_REACT_APP_API_ROOT||A.Config.REACT_APP_API_ROOT||null,T=typeof window<"u"?window.location.origin:"",d={},l={},E=3*60*1e3;function C(n){return Object.keys(n).map(t=>encodeURIComponent(t)+"="+encodeURIComponent(n[t])).join("&")}function S(n,t=!1){const e=n,o=Date.now();if(l[e]&&o-l[e].timestamp<E)return Promise.resolve(p(l[e].data));if(d[e])return d[e].then(p);const g=O.get(n,{},t).then(a=>(l[e]={data:a,timestamp:Date.now()},t?{data:p(a),meta:l[e].meta}:p(a))).finally(()=>{delete d[e]});return d[e]=g,g}const b=({app:n,params:t})=>{const e=`${u||T}/api/${n}/categories${t?"?"+C(t):""}`;return S(e)},j=({app:n,type:t,params:e})=>{const o=`${u||""}/api/${n}/categories/${t}${e?"?"+C(e):""}`;return S(o)},D=({source:n,app:t,params:e})=>{const o=`${u||T}/api/${t}/stats/${n}${e?"?"+C(e):""}`;return S(o)},k=({postType:n,taxonomy:t,category:e,taxonomyFilters:o,before:g,perPage:a,page:_,locale:R,after:y,ordering:q,orderingDirection:I,wpApiBase:f})=>{const $=f!=null&&f!==""?f:A.Config.REACT_APP_WP_API;console.log("Using API base:",$);const U=`${$}/wp/v2/${n}`,r=new URLSearchParams,P=new Map,h=(s,i)=>{if(!s||i==null)return;const c=P.get(s)||[];Array.isArray(i)?i.forEach(m=>{m!=null&&c.push(String(m))}):c.push(String(i)),P.set(s,c)};o&&o instanceof Map&&o.forEach((s,i)=>{h(i,s)}),t&&e!=null&&h(t,e),P.forEach((s,i)=>{const c=Array.from(new Set(s));c.length!==0&&r.set(i,c.join(","))}),g&&r.append("before",g.toISOString()),a&&r.append("per_page",a.toString()),r.append("page",_.toString()),r.append("locale",R),y&&r.append("after",y.toISOString()),r.append("orderby",q),r.append("order",I);const w=r.toString().replace(/%2C/g,",");return O.get(`${U}?${w}`,{headers:{"Content-Type":"application/json"}},!0)};exports.getCategories=b;exports.getCategory=j;exports.getCustomPosts=k;exports.getData=D;
@@ -1,20 +1,20 @@
1
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import { useAppDispatch as p, useAppSelector as d } from "../../redux/hooks.js";
3
- import { Segment as m, Header as h, Button as g } from "semantic-ui-react";
1
+ import { jsxs as n, jsx as t } from "react/jsx-runtime";
2
+ import { useAppDispatch as p, useAppSelector as m } from "../../redux/hooks.js";
3
+ import { Segment as d, Header as g, Button as h } from "semantic-ui-react";
4
4
  import { clearPostsFilter as u } from "../reducers/data.js";
5
- const f = (n) => {
6
- const { noDataMsg: r, editing: s, group: t } = n, l = p(), o = d((c) => c.getIn(["data", "posts", "initialFilters", t])), i = (c) => {
7
- c.preventDefault(), u({ group: t, dispatch: l, initialFilters: o });
5
+ const F = (s) => {
6
+ const { noDataMsg: a, clearFilterMsg: l, editing: M, group: e } = s, r = p(), i = m((c) => c.getIn(["data", "posts", "initialFilters", e])), o = (c) => {
7
+ c.preventDefault(), u({ group: e, dispatch: r, initialFilters: i });
8
8
  };
9
- return /* @__PURE__ */ a(m, { placeholder: !0, className: "chartNoDataMessage", children: [
10
- /* @__PURE__ */ a(h, { icon: !0, children: [
11
- /* @__PURE__ */ e(
9
+ return /* @__PURE__ */ n(d, { placeholder: !0, className: "chartNoDataMessage", children: [
10
+ /* @__PURE__ */ n(g, { icon: !0, children: [
11
+ /* @__PURE__ */ t(
12
12
  "svg",
13
13
  {
14
14
  xmlns: "http://www.w3.org/2000/svg",
15
15
  className: "noDataSVG",
16
16
  viewBox: "0 0 512 512",
17
- children: /* @__PURE__ */ e("path", { d: `M403.7,96.3c-41-41-95.6-63.6-153.7-63.6c-58,0-112.6,22.6-153.7,63.6c-41,41-63.6,95.6-63.6,153.7
17
+ children: /* @__PURE__ */ t("path", { d: `M403.7,96.3c-41-41-95.6-63.6-153.7-63.6c-58,0-112.6,22.6-153.7,63.6c-41,41-63.6,95.6-63.6,153.7
18
18
  c0,58,22.6,112.6,63.6,153.7c41,41,95.6,63.6,153.7,63.6c58,0,112.6-22.6,153.7-63.6c41-41,63.7-95.6,63.7-153.7
19
19
  C467.3,192,444.7,137.4,403.7,96.3z M57.7,250C57.7,144,144,57.7,250,57.7c37.2,0,72,10.6,101.5,29l-63,77.1c-2.8-3.5-6-6.8-9.5-10
20
20
  c-18.2-16.7-39.9-24.5-65.1-23.5c-25.2,1.1-46.2,10.7-62.9,28.9c-16.7,18.2-24.5,39.9-23.5,65.1c1.1,25.2,10.7,46.2,28.9,62.9
@@ -27,12 +27,11 @@ const f = (n) => {
27
27
  c43,35.3,70.5,88.8,70.5,148.7C442.3,356,356,442.3,250,442.3z` })
28
28
  }
29
29
  ),
30
- s && /* @__PURE__ */ e("div", { className: "WPnoDataMsg", children: "Not enough parameters to render the chart" }),
31
- /* @__PURE__ */ e("div", { className: "WPnoDataMsg", children: r })
30
+ /* @__PURE__ */ t("div", { className: "WPnoDataMsg", children: a })
32
31
  ] }),
33
- /* @__PURE__ */ e(g, { size: "medium", onClick: (c) => i(c), children: "Clear Filter" })
32
+ /* @__PURE__ */ t(h, { size: "medium", onClick: (c) => o(c), children: l || "Clear Filter" })
34
33
  ] });
35
34
  };
36
35
  export {
37
- f as default
36
+ F as default
38
37
  };
@@ -1,23 +1,23 @@
1
1
  import { jsx as s } from "react/jsx-runtime";
2
- import X, { useState as w, useRef as Z, useEffect as tt } from "react";
3
- import { Container as B, Loader as et, Grid as Y, GridRow as ot } from "semantic-ui-react";
4
- import rt from "../connected-templates/PostIntro.js";
5
- import { injectIntl as nt } from "react-intl";
6
- import { getStartDateAndEndDateFromYear as j } from "./utils.js";
7
- import at from "./NoData.js";
8
- import { useDispatch as st, useSelector as it } from "react-redux";
9
- import { getCustomPosts as lt } from "../reducers/data-api.js";
10
- import { useParams as ut } from "react-router";
11
- import { toNumber as ct, toBoolean as mt } from "../../utils/data.js";
12
- const dt = (F) => {
13
- const { posts: l, numberOfColumns: T, sortFirstBy: c, countryCategory: u, postWidth: h, postHeight: A } = F, d = [];
2
+ import et, { useState as D, useRef as ot, useEffect as rt } from "react";
3
+ import { Container as Y, Loader as nt, Grid as M, GridRow as at } from "semantic-ui-react";
4
+ import st from "../connected-templates/PostIntro.js";
5
+ import { injectIntl as it } from "react-intl";
6
+ import { getStartDateAndEndDateFromYear as V } from "./utils.js";
7
+ import lt from "./NoData.js";
8
+ import { useDispatch as ct, useSelector as ut } from "react-redux";
9
+ import { getCustomPosts as dt } from "../reducers/data-api.js";
10
+ import { useParams as mt } from "react-router";
11
+ import { toNumber as ft, toBoolean as gt } from "../../utils/data.js";
12
+ const yt = (F) => {
13
+ const { posts: l, numberOfColumns: S, sortFirstBy: c, countryCategory: u, postWidth: h, postHeight: A } = F, m = [];
14
14
  if (u && c && c !== "none") {
15
- const m = l.filter((y) => y[u].includes(Number(c))), b = l.filter((y) => !y[u].includes(Number(c)));
16
- d.push(...m), d.push(...b);
15
+ const d = l.filter((y) => y[u].includes(Number(c))), b = l.filter((y) => !y[u].includes(Number(c)));
16
+ m.push(...d), m.push(...b);
17
17
  } else
18
- d.push(...l);
19
- return /* @__PURE__ */ s(Y, { className: "filtered-posts", columns: T, children: /* @__PURE__ */ s(ot, { children: d.map((m) => /* @__PURE__ */ s(Y.Column, { children: /* @__PURE__ */ s("div", { className: "filtered-posts-column", style: { width: h, height: A, overflow: "hidden" }, children: /* @__PURE__ */ s(
20
- rt,
18
+ m.push(...l);
19
+ return /* @__PURE__ */ s(M, { className: "filtered-posts", columns: S, children: /* @__PURE__ */ s(at, { children: m.map((d) => /* @__PURE__ */ s(M.Column, { children: /* @__PURE__ */ s("div", { className: "filtered-posts-column", style: { width: h, height: A, overflow: "hidden" }, children: /* @__PURE__ */ s(
20
+ st,
21
21
  {
22
22
  style: {
23
23
  width: "100%",
@@ -26,28 +26,32 @@ const dt = (F) => {
26
26
  margin: 0,
27
27
  padding: 0
28
28
  },
29
- as: B,
29
+ as: Y,
30
30
  fluid: !0,
31
- post: m
31
+ post: d
32
32
  },
33
- m.id
34
- ) }) }, m.id)) }) });
35
- }, ft = (F) => {
33
+ d.id
34
+ ) }) }, d.id)) }) });
35
+ }, pt = (F) => {
36
36
  const {
37
37
  "data-group": l,
38
- "data-number-of-columns": T,
38
+ "data-number-of-columns": S,
39
39
  "data-type": c,
40
40
  "data-taxonomy": u,
41
- "data-categories": h,
41
+ "data-categories": h = "[]",
42
42
  "data-height": A,
43
- "data-post-width": d,
44
- "data-post-height": m,
43
+ "data-post-width": m,
44
+ "data-post-height": d,
45
45
  "data-number-of-items-per-page": b,
46
46
  "data-enable-sorting": y,
47
47
  "data-sort-first-by": I,
48
48
  "data-sorting-taxonomy": O,
49
- editing: M
50
- } = F, z = st(), { locale: W } = ut(), [R, x] = w(!1), _ = it((t) => t).getIn(["data", "posts", l]), [C, N] = w([]), E = Z(null), [P, G] = w(void 0), J = mt(y) && I !== "none" ? ct(I) : null, f = _ ?? {
49
+ "data-wordpress-source-type": ht,
50
+ "data-wordpress-source": j,
51
+ "data-no-data-msg": z,
52
+ "data-clear-filter-msg": W,
53
+ editing: J
54
+ } = F, L = ct(), { locale: q } = mt(), [R, x] = D(!1), _ = ut((t) => t).getIn(["data", "posts", l]), [T, N] = D([]), w = ot(null), [C, B] = D(void 0), U = gt(y) && I !== "none" ? ft(I) : null, f = _ ?? {
51
55
  yearFilter: null,
52
56
  categoryFilter: null,
53
57
  countryFilter: null,
@@ -64,19 +68,19 @@ const dt = (F) => {
64
68
  values: e.map((o) => Number(o)).filter((o) => Number.isFinite(o) && o !== Number.MIN_SAFE_INTEGER),
65
69
  isExplicitNone: a
66
70
  };
67
- }, L = (t) => {
71
+ }, $ = (t) => {
68
72
  if (!t || t.length === 0)
69
73
  return null;
70
- const e = Array.from(new Set(t)).sort((S, D) => S - D);
74
+ const e = Array.from(new Set(t)).sort((E, P) => E - P);
71
75
  if (e.length === 0)
72
76
  return null;
73
- const a = e[0], r = e[e.length - 1], o = j(a), n = j(r);
77
+ const a = e[0], r = e[e.length - 1], o = V(a), n = V(r);
74
78
  return !(o != null && o.startDate) || !(n != null && n.endDate) ? null : {
75
79
  startDate: o.startDate,
76
80
  endDate: n.endDate
77
81
  };
78
- }, q = () => {
79
- const t = v(f.yearFilter), e = t.isExplicitNone ? null : L(t.values), a = f.countryFilter ?? null, r = f.categoryFilter ?? null, o = f.categoryTaxonomy || (u && u !== "none" ? u : null), n = f.countryTaxonomy || null;
82
+ }, k = () => {
83
+ const t = v(f.yearFilter), e = t.isExplicitNone ? null : $(t.values), a = f.countryFilter ?? null, r = f.categoryFilter ?? null, o = f.categoryTaxonomy || (u && u !== "none" ? u : null), n = f.countryTaxonomy || null;
80
84
  return {
81
85
  before: (e == null ? void 0 : e.endDate) || null,
82
86
  after: (e == null ? void 0 : e.startDate) || null,
@@ -85,24 +89,24 @@ const dt = (F) => {
85
89
  countryFilter: a,
86
90
  countryTaxonomy: n
87
91
  };
88
- }, H = (t) => M ? t : decodeURIComponent(t), U = (t) => {
92
+ }, G = (t) => J ? t : decodeURIComponent(t), K = (t) => {
89
93
  try {
90
- return JSON.parse(H(t));
94
+ return JSON.parse(G(t));
91
95
  } catch (e) {
92
- return console.warn("JSON parsing failed for value:", t, "- treating as plain string. Error:", e), H(t);
96
+ return console.warn("JSON parsing failed for value:", t, "- treating as plain string. Error:", e), G(t);
93
97
  }
94
- }, $ = () => {
95
- const t = U(h);
98
+ }, Q = () => {
99
+ const t = K(h);
96
100
  return t ? typeof t == "string" ? t.split(",").map(Number) : typeof t == "number" ? [t] : t : [];
97
- }, k = (t, e, a) => {
101
+ }, X = (t, e, a) => {
98
102
  if (a) return null;
99
103
  if (t.length === 0) return e.length > 0 ? e : null;
100
104
  if (e.length === 0) return t;
101
105
  const r = new Set(t), o = e.filter((n) => r.has(n));
102
106
  return o.length > 0 ? o : null;
103
- }, K = async () => {
104
- E.current && G(E.current.offsetHeight), x(!0);
105
- const t = q(), e = v($()).values, a = v(t.categoryFilter), r = k(
107
+ }, Z = async () => {
108
+ w.current && B(w.current.offsetHeight), x(!0);
109
+ const t = k(), e = v(Q()).values, a = v(t.categoryFilter), r = X(
106
110
  e,
107
111
  a.values,
108
112
  a.isExplicitNone
@@ -117,51 +121,52 @@ const dt = (F) => {
117
121
  }
118
122
  const n = /* @__PURE__ */ new Map();
119
123
  t.categoryTaxonomy && r && r.length > 0 && n.set(t.categoryTaxonomy, r), t.countryTaxonomy && o.values.length > 0 && n.set(t.countryTaxonomy, o.values);
120
- const S = r ? r.join(",") : void 0, D = {
124
+ const E = r ? r.join(",") : void 0, P = {
121
125
  after: t.after,
122
126
  before: t.before,
123
127
  perPage: Number(b || 10),
124
128
  page: f.page || 1,
125
- locale: W || "en",
129
+ locale: q || "en",
126
130
  postType: c,
127
131
  taxonomy: t.categoryTaxonomy || void 0,
128
- category: S || void 0,
132
+ category: E || void 0,
129
133
  taxonomyFilters: n,
130
134
  ordering: "date",
131
- orderingDirection: "desc"
135
+ orderingDirection: "desc",
136
+ wpApiBase: j ?? void 0
132
137
  };
133
- await lt(D).then((i) => {
138
+ await dt(P).then((i) => {
134
139
  if (i) {
135
140
  let p = null, g = null;
136
141
  if (i && typeof i == "object" && "data" in i ? (p = i.data, g = i.meta) : (Array.isArray(i), p = i), N(Array.isArray(p) ? p : []), g) {
137
- const V = g["x-wp-totalpages"] ? g["x-wp-totalpages"] : 1, Q = g["x-wp-total"] ? g["x-wp-total"] : 0;
138
- V && z({
142
+ const H = g["x-wp-totalpages"] ? g["x-wp-totalpages"] : 1, tt = g["x-wp-total"] ? g["x-wp-total"] : 0;
143
+ H && L({
139
144
  type: "SET_POSTS_PAGINATION",
140
145
  group: l,
141
- totalPages: Number(V),
142
- totalItems: Number(Q)
146
+ totalPages: Number(H),
147
+ totalItems: Number(tt)
143
148
  });
144
149
  }
145
150
  } else
146
151
  N([]);
147
152
  }).finally(() => {
148
- x(!1), G(void 0);
153
+ x(!1), B(void 0);
149
154
  });
150
155
  };
151
- return tt(() => {
152
- (async () => await K())();
153
- }, [_, c, u, b, h, O]), /* @__PURE__ */ s("div", { ref: E, id: `filtered-posts-${l}`, style: P !== void 0 ? { minHeight: P, border: "1px solid #e0e0e0", borderRadius: "4px" } : void 0, children: /* @__PURE__ */ s(B, { fluid: !0, children: R ? /* @__PURE__ */ s("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: P ?? "100%" }, children: /* @__PURE__ */ s(et, { active: !0, inline: "centered" }) }) : !R && C && C.length > 0 ? /* @__PURE__ */ s(
154
- dt,
156
+ return rt(() => {
157
+ c && (async () => await Z())();
158
+ }, [_, c, u, b, h, O]), /* @__PURE__ */ s("div", { ref: w, id: `filtered-posts-${l}`, style: C !== void 0 ? { minHeight: C, border: "1px solid #e0e0e0", borderRadius: "4px" } : void 0, children: /* @__PURE__ */ s(Y, { fluid: !0, children: R ? /* @__PURE__ */ s("div", { style: { display: "flex", alignItems: "center", justifyContent: "center", height: C ?? "100%" }, children: /* @__PURE__ */ s(nt, { active: !0, inline: "centered" }) }) : !R && T && T.length > 0 ? /* @__PURE__ */ s(
159
+ yt,
155
160
  {
156
- posts: C,
157
- postWidth: Number(d),
158
- postHeight: Number(m),
159
- numberOfColumns: Number(T),
160
- sortFirstBy: J,
161
+ posts: T,
162
+ postWidth: Number(m),
163
+ postHeight: Number(d),
164
+ numberOfColumns: Number(S),
165
+ sortFirstBy: U,
161
166
  countryCategory: O
162
167
  }
163
- ) : /* @__PURE__ */ s(at, { noDataMsg: "No posts found", group: l }) }) });
164
- }, Pt = nt(X.memo(ft));
168
+ ) : /* @__PURE__ */ s(lt, { noDataMsg: z, clearFilterMsg: W, group: l }) }) });
169
+ }, At = it(et.memo(pt));
165
170
  export {
166
- Pt as default
171
+ At as default
167
172
  };
@@ -1,73 +1,76 @@
1
- import { jsx as A } from "react/jsx-runtime";
1
+ import { jsx as F } from "react/jsx-runtime";
2
2
  import { useState as _, useEffect as j } from "react";
3
- import B from "./PostsFilterDropdown.js";
4
- import { Config as D } from "../../conf/index.js";
5
- const k = (i) => {
3
+ import D from "./PostsFilterDropdown.js";
4
+ import { Config as E } from "../../conf/index.js";
5
+ const W = (p) => {
6
6
  const {
7
- taxonomy: t,
8
- group: l,
9
- placeholder: p,
10
- allLabel: c,
11
- noneLabel: f,
12
- useSingleColumn: m,
13
- enableTextSearch: u,
14
- filterType: g,
15
- showNoDataOption: y,
16
- closeOnSelect: d,
17
- allNoneSameBehaviour: x,
7
+ taxonomy: n,
8
+ group: c,
9
+ placeholder: f,
10
+ allLabel: m,
11
+ noneLabel: u,
12
+ useSingleColumn: g,
13
+ enableTextSearch: y,
14
+ filterType: d,
15
+ showNoDataOption: h,
16
+ closeOnSelect: x,
17
+ allNoneSameBehaviour: A,
18
18
  autoApply: O,
19
- alphabeticalSort: S,
20
- ascOrder: h,
21
- type: P,
22
- categories: n,
23
- onChange: T,
24
- ...w
25
- } = i, [C, e] = _([]), b = async () => {
26
- if (!t || t === "none") {
19
+ alphabeticalSort: P,
20
+ ascOrder: S,
21
+ type: w,
22
+ categories: a,
23
+ onChange: B,
24
+ wpApiBase: o,
25
+ ...T
26
+ } = p, [b, e] = _([]), v = async () => {
27
+ if (!n || n === "none") {
27
28
  e([]);
28
29
  return;
29
30
  }
30
- const r = await (await fetch(D.REACT_APP_WP_API + "/wp/v2/" + t)).json();
31
+ const i = o != null && o !== "" ? o : E.REACT_APP_WP_API;
32
+ console.log("Fetching taxonomy options from API base:", i);
33
+ const r = await (await fetch(i + "/wp/v2/" + n)).json();
31
34
  if (r) {
32
- const s = r.map((o) => ({
33
- key: o.id,
34
- value: o.id,
35
- text: o.name
35
+ const l = r.map((t) => ({
36
+ key: t.id,
37
+ value: t.id,
38
+ text: t.name
36
39
  }));
37
- if (n) {
38
- const o = s.filter((v) => n.indexOf(v.value.toString()) > -1);
39
- e([]), e(o);
40
+ if (a) {
41
+ const t = l.filter((C) => a.indexOf(C.value.toString()) > -1);
42
+ e([]), e(t);
40
43
  } else
41
- e([]), e(s);
44
+ e([]), e(l);
42
45
  }
43
46
  };
44
47
  return j(() => {
45
- let a = !1;
46
- return a || (e([]), b()), () => {
47
- a = !0;
48
+ let s = !1;
49
+ return s || (e([]), v()), () => {
50
+ s = !0;
48
51
  };
49
- }, [P, t, n]), /* @__PURE__ */ A(
50
- B,
52
+ }, [w, n, a, o]), /* @__PURE__ */ F(
53
+ D,
51
54
  {
52
- ...w,
53
- group: l,
54
- placeholder: p,
55
- allLabel: c,
56
- noneLabel: f,
57
- useSingleColumn: m,
58
- enableTextSearch: u,
59
- filterType: g,
60
- showNoDataOption: y,
61
- closeOnSelect: d,
62
- allNoneSameBehaviour: x,
55
+ ...T,
56
+ group: c,
57
+ placeholder: f,
58
+ allLabel: m,
59
+ noneLabel: u,
60
+ useSingleColumn: g,
61
+ enableTextSearch: y,
62
+ filterType: d,
63
+ showNoDataOption: h,
64
+ closeOnSelect: x,
65
+ allNoneSameBehaviour: A,
63
66
  autoApply: O,
64
- alphabeticalSort: S,
65
- ascOrder: h,
66
- options: C,
67
- onChange: T
67
+ alphabeticalSort: P,
68
+ ascOrder: S,
69
+ options: b,
70
+ onChange: B
68
71
  }
69
72
  );
70
73
  };
71
74
  export {
72
- k as default
75
+ W as default
73
76
  };
@@ -1,184 +1,175 @@
1
- import { jsxs as de, jsx as U } from "react/jsx-runtime";
2
- import { useRef as $, useState as f, useMemo as N, useEffect as V } from "react";
3
- import { Container as me } from "semantic-ui-react";
4
- import { toBoolean as i, toNumber as fe } from "../../utils/data.js";
5
- import { useAppDispatch as he } from "../../redux/hooks.js";
6
- import { useSelector as Se } from "react-redux";
7
- import Ce from "./CategoricalFilter.js";
8
- import Te from "./YearFilter.js";
9
- const Ee = (k) => {
1
+ import { jsxs as se, jsx as Y } from "react/jsx-runtime";
2
+ import { useState as h, useMemo as p, useEffect as E } from "react";
3
+ import { Container as ce } from "semantic-ui-react";
4
+ import { toBoolean as s, toNumber as ye } from "../../utils/data.js";
5
+ import { useAppDispatch as ue } from "../../redux/hooks.js";
6
+ import { useSelector as pe } from "react-redux";
7
+ import Fe from "./CategoricalFilter.js";
8
+ import de from "./YearFilter.js";
9
+ const Ae = (L) => {
10
10
  const {
11
- "data-alphabetical-sort": G,
12
- "data-asc-order": H,
11
+ "data-alphabetical-sort": D,
12
+ "data-asc-order": R,
13
13
  "data-group": c,
14
- "data-placeholder": A,
15
- "data-all-label": Y,
16
- "data-none-label": I,
17
- "data-use-single-column": Q,
18
- "data-enable-text-search": W,
19
- "data-filter-type": S,
20
- "data-show-no-data-option": X,
21
- "data-close-on-select": Z,
22
- "data-all-none-same-behaviour": ee,
23
- "data-auto-apply": te,
24
- "data-taxonomy": s,
25
- "data-categories": y = "[]",
26
- "data-is-country-filter": re,
27
- "data-is-year-filter": ae,
28
- "data-type": oe,
29
- "data-sort-first-by": _,
30
- "data-default-values": le = "[]",
31
- editing: ne = !1
32
- } = k, h = he(), t = Se((e) => e.getIn(["data", "posts", c])) || {}, o = S === "multi-select", B = $(0), E = (e) => ne ? e : decodeURIComponent(e);
33
- let n = ((e) => {
14
+ "data-placeholder": T,
15
+ "data-all-label": C,
16
+ "data-none-label": b,
17
+ "data-use-single-column": v,
18
+ "data-enable-text-search": P,
19
+ "data-filter-type": F,
20
+ "data-show-no-data-option": z,
21
+ "data-close-on-select": j,
22
+ "data-all-none-same-behaviour": J,
23
+ "data-auto-apply": K,
24
+ "data-taxonomy": i,
25
+ "data-categories": d = "[]",
26
+ "data-is-country-filter": M,
27
+ "data-is-year-filter": U,
28
+ "data-type": $,
29
+ "data-sort-first-by": O,
30
+ "data-default-values": k = "[]",
31
+ "data-wordpress-source-type": ge,
32
+ "data-wordpress-source": q,
33
+ editing: G = !1
34
+ } = L, u = ue(), e = pe((t) => t.getIn(["data", "posts", c])) || {}, l = F === "multi-select", [x, fe] = h(0), N = (t) => G ? t : decodeURIComponent(t);
35
+ let n = ((t) => {
34
36
  try {
35
- return JSON.parse(E(e));
36
- } catch (r) {
37
- return console.warn("JSON parsing failed for value:", e, "- treating as plain string. Error:", r), E(e);
37
+ return JSON.parse(N(t));
38
+ } catch (o) {
39
+ return console.warn("JSON parsing failed for value:", t, "- treating as plain string. Error:", o), N(t);
38
40
  }
39
- })(le);
41
+ })(k);
40
42
  n || (n = []), typeof n == "string" && (n = n.split(",").map(Number)), typeof n == "number" && (n = [n]);
41
- const ie = i(G), se = i(H), L = i(X), R = i(Z), w = i(ee), D = i(te), a = i(re), l = i(ae), P = i(Q), v = i(W), C = _ !== "none" ? fe(_) : null, [u, ce] = f([]), [T, ye] = f(!1), O = (e, r) => r ? Array.isArray(e) ? e : e != null ? [e] : [] : e || void 0, x = (e, r) => Array.isArray(e) && Array.isArray(r) ? e.length !== r.length ? !1 : e.every((d, m) => d === r[m]) : e === r, F = N(
42
- () => O(t.countryFilter, o),
43
- [t.countryFilter, o]
44
- ), p = N(
45
- () => O(t.categoryFilter, o),
46
- [t.categoryFilter, o]
47
- ), g = N(
48
- () => l ? O(t.yearFilter, o) : void 0,
49
- [t.yearFilter, o, l]
50
- ), [ue, z] = f(g), [K, M] = f(F), [j, J] = f(p), q = $({
51
- countryFilter: F,
52
- categoryFilter: p,
53
- yearFilter: g,
54
- isMultiSelectFilter: o
55
- });
56
- V(() => {
57
- const e = q.current, r = !x(e.countryFilter, F), d = !x(e.categoryFilter, p), m = l && !x(e.yearFilter, g), b = e.isMultiSelectFilter !== o;
58
- (r || d || m || b) && (r && M(F), d && J(p), m && z(g), q.current = {
59
- countryFilter: F,
60
- categoryFilter: p,
61
- yearFilter: g,
62
- isMultiSelectFilter: o
63
- });
64
- }, [F, p, g, o, l]);
65
- const Fe = (e) => {
66
- z(e), h({
43
+ const H = s(D), Q = s(R), V = s(z), A = s(j), B = s(J), I = s(K), r = s(M), a = s(U), _ = s(v), w = s(P), g = O !== "none" ? ye(O) : null, [y, W] = h([]), [m, X] = h(!1), f = (t, o) => o ? Array.isArray(t) ? t : t != null ? [t] : [] : t || void 0, Z = p(
44
+ () => f(e.countryFilter, l),
45
+ [e.countryFilter, l]
46
+ ), ee = p(
47
+ () => f(e.categoryFilter, l),
48
+ [e.categoryFilter, l]
49
+ ), te = p(
50
+ () => a ? f(e.yearFilter, l) : void 0,
51
+ [e.yearFilter, l, a]
52
+ ), S = p(
53
+ () => d ? d.split(",") : [],
54
+ [d]
55
+ ), re = (t) => {
56
+ u({
67
57
  type: "SET_POSTS_FILTER",
68
58
  group: c,
69
- ...t,
70
- isYearFilter: l,
71
- yearFilter: l ? e : null,
72
- isCountryFilter: a,
73
- categoryFilter: t.categoryFilter,
74
- countryFilter: t.countryFilter,
75
- sortFirstBy: C,
76
- countryCategory: s,
77
- categoryTaxonomy: s,
78
- countryTaxonomy: s
59
+ ...e,
60
+ isYearFilter: a,
61
+ yearFilter: a ? t : null,
62
+ isCountryFilter: r,
63
+ categoryFilter: e.categoryFilter,
64
+ countryFilter: e.countryFilter,
65
+ sortFirstBy: g,
66
+ countryCategory: i,
67
+ categoryTaxonomy: i,
68
+ countryTaxonomy: i
79
69
  });
80
- }, pe = (e) => {
81
- a ? M(e) : J(e), h({
70
+ }, ae = (t) => {
71
+ u({
82
72
  type: "SET_POSTS_FILTER",
83
73
  group: c,
84
- ...t,
74
+ ...e,
85
75
  // Preserve both filters so they can work together
86
- categoryFilter: a ? t.categoryFilter : e,
87
- countryFilter: a ? e : t.countryFilter,
88
- isYearFilter: l,
89
- yearFilter: t.yearFilter,
90
- isCountryFilter: a,
91
- sortFirstBy: a ? C : t.sortFirstBy,
92
- countryCategory: a ? s : t.countryCategory,
93
- categoryCategory: a ? t.categoryCategory : e,
94
- categoryTaxonomy: a ? t.categoryTaxonomy : s,
95
- countryTaxonomy: a ? s : t.countryTaxonomy
76
+ categoryFilter: r ? e.categoryFilter : t,
77
+ countryFilter: r ? t : e.countryFilter,
78
+ isYearFilter: a,
79
+ yearFilter: e.yearFilter,
80
+ isCountryFilter: r,
81
+ sortFirstBy: r ? g : e.sortFirstBy,
82
+ countryCategory: r ? i : e.countryCategory,
83
+ categoryCategory: r ? e.categoryCategory : t,
84
+ categoryTaxonomy: r ? e.categoryTaxonomy : i,
85
+ countryTaxonomy: r ? i : e.countryTaxonomy
96
86
  });
97
87
  };
98
- return V(() => {
99
- const e = n.length > 0, r = o ? n : n[0], d = a ? t.categoryFilter : e ? r : o ? y ? y.split(",").map(Number) : [] : t.categoryFilter, m = a ? e ? r : o ? y ? y.split(",").map(Number) : [] : t.countryFilter : t.countryFilter, b = l && o ? u.length > 0 ? u.map((ge) => ge.value) : [] : t.yearFilter;
100
- h({
88
+ return E(() => {
89
+ const t = n.length > 0, o = l ? n : n[0], oe = r ? e.categoryFilter : t ? o : l ? S.map(Number) : e.categoryFilter, le = r ? t ? o : l ? S.map(Number) : e.countryFilter : e.countryFilter, ne = a && l ? y.length > 0 ? y.map((ie) => ie.value) : [] : e.yearFilter;
90
+ u({
101
91
  type: "SET_INITIAL_POSTS_FILTER",
102
92
  group: c,
103
- categoryFilter: d,
104
- countryFilter: m,
105
- isYearFilter: l,
106
- isCountryFilter: a,
107
- sortFirstBy: C,
108
- yearFilter: l ? b : null,
109
- categoryCategory: a ? null : t.categoryCategory,
110
- categoryTaxonomy: a ? null : s,
111
- countryCategory: a ? t.countryCategory : null,
112
- countryTaxonomy: a ? s : null,
93
+ categoryFilter: oe,
94
+ countryFilter: le,
95
+ isYearFilter: a,
96
+ isCountryFilter: r,
97
+ sortFirstBy: g,
98
+ yearFilter: a ? ne : null,
99
+ categoryCategory: r ? null : e.categoryCategory,
100
+ categoryTaxonomy: r ? null : i,
101
+ countryCategory: r ? i : null,
102
+ countryTaxonomy: r ? i : null,
113
103
  page: 1
114
104
  });
115
- }, []), V(() => {
116
- if (l && !T) {
117
- const e = l && o ? u.length > 0 ? u.map((r) => r.value) : [] : t.yearFilter;
118
- h({
105
+ }, []), E(() => {
106
+ if (a && !m) {
107
+ const t = a && l ? y.length > 0 ? y.map((o) => o.value) : [] : e.yearFilter;
108
+ u({
119
109
  type: "SET_INITIAL_POSTS_FILTER",
120
110
  group: c,
121
- ...t,
122
- isYearFilter: l,
123
- yearFilter: l ? e : null
111
+ ...e,
112
+ isYearFilter: a,
113
+ yearFilter: a ? t : null
124
114
  });
125
115
  }
126
- }, [T]), /* @__PURE__ */ de(me, { fluid: !0, className: "filter post-filter", children: [
127
- l && /* @__PURE__ */ U(
128
- Te,
116
+ }, [m]), /* @__PURE__ */ se(ce, { fluid: !0, className: "filter post-filter", children: [
117
+ a && /* @__PURE__ */ Y(
118
+ de,
129
119
  {
130
120
  group: c,
131
- placeholder: A,
132
- allLabel: Y,
133
- noneLabel: I,
134
- useSingleColumn: P,
135
- enableTextSearch: v,
136
- filterType: S,
137
- showNoDataOption: L,
138
- closeOnSelect: R,
139
- allNoneSameBehaviour: w,
140
- autoApply: D,
141
- alphabeticalSort: ie,
142
- ascOrder: se,
143
- options: u,
144
- value: ue,
145
- yearOptions: u,
146
- setYearOptions: ce,
147
- yearFilterLoading: T,
148
- setYearFilterLoading: ye,
149
- onChange: (e, r) => {
150
- Fe(r);
121
+ placeholder: T,
122
+ allLabel: C,
123
+ noneLabel: b,
124
+ useSingleColumn: _,
125
+ enableTextSearch: w,
126
+ filterType: F,
127
+ showNoDataOption: V,
128
+ closeOnSelect: A,
129
+ allNoneSameBehaviour: B,
130
+ autoApply: I,
131
+ alphabeticalSort: H,
132
+ ascOrder: Q,
133
+ options: y,
134
+ value: te,
135
+ yearOptions: y,
136
+ setYearOptions: W,
137
+ yearFilterLoading: m,
138
+ setYearFilterLoading: X,
139
+ onChange: (t, o) => {
140
+ re(o);
151
141
  },
152
- resetKey: B.current
142
+ resetKey: x
153
143
  }
154
144
  ),
155
- !l && /* @__PURE__ */ U(
156
- Ce,
145
+ !a && /* @__PURE__ */ Y(
146
+ Fe,
157
147
  {
158
148
  group: c,
159
- placeholder: A,
160
- allLabel: Y,
161
- noneLabel: I,
162
- useSingleColumn: P,
163
- enableTextSearch: v,
164
- filterType: S,
165
- showNoDataOption: L,
166
- closeOnSelect: R,
167
- allNoneSameBehaviour: w,
168
- autoApply: D,
169
- taxonomy: s,
170
- type: oe,
171
- value: a ? K : j,
172
- onChange: (e, r) => {
173
- pe(r);
149
+ placeholder: T,
150
+ allLabel: C,
151
+ noneLabel: b,
152
+ useSingleColumn: _,
153
+ enableTextSearch: w,
154
+ filterType: F,
155
+ showNoDataOption: V,
156
+ closeOnSelect: A,
157
+ allNoneSameBehaviour: B,
158
+ autoApply: I,
159
+ taxonomy: i,
160
+ type: $,
161
+ value: r ? Z : ee,
162
+ onChange: (t, o) => {
163
+ ae(o);
174
164
  },
175
- categories: y ? y.split(",") : [],
176
- resetKey: B.current
165
+ categories: S,
166
+ resetKey: x,
167
+ wpApiBase: q ?? void 0
177
168
  },
178
169
  `cat-${c}`
179
170
  )
180
171
  ] });
181
172
  };
182
173
  export {
183
- Ee as default
174
+ Ae as default
184
175
  };
@@ -1,57 +1,58 @@
1
- import { Config as h } from "../../conf/index.js";
2
- import { get as y } from "../../api/commons.js";
3
- function f(n) {
4
- return JSON.parse(JSON.stringify(n));
1
+ import { Config as C } from "../../conf/index.js";
2
+ import { get as O } from "../../api/commons.js";
3
+ function g(e) {
4
+ return JSON.parse(JSON.stringify(e));
5
5
  }
6
- const p = process.env.VITE_REACT_APP_API_ROOT || h.REACT_APP_API_ROOT || null, C = typeof window < "u" ? window.location.origin : "", g = {}, l = {}, q = 3 * 60 * 1e3;
7
- function P(n) {
8
- return Object.keys(n).map((t) => encodeURIComponent(t) + "=" + encodeURIComponent(n[t])).join("&");
6
+ const u = process.env.VITE_REACT_APP_API_ROOT || C.REACT_APP_API_ROOT || null, T = typeof window < "u" ? window.location.origin : "", d = {}, l = {}, E = 3 * 60 * 1e3;
7
+ function $(e) {
8
+ return Object.keys(e).map((t) => encodeURIComponent(t) + "=" + encodeURIComponent(e[t])).join("&");
9
9
  }
10
- function $(n, t = !1) {
11
- const e = n, r = Date.now();
12
- if (l[e] && r - l[e].timestamp < q)
13
- return Promise.resolve(f(l[e].data));
14
- if (g[e])
15
- return g[e].then(f);
16
- const u = y(n, {}, t).then((c) => (l[e] = { data: c, timestamp: Date.now() }, t ? { data: f(c), meta: l[e].meta } : f(c))).finally(() => {
17
- delete g[e];
10
+ function h(e, t = !1) {
11
+ const n = e, o = Date.now();
12
+ if (l[n] && o - l[n].timestamp < E)
13
+ return Promise.resolve(g(l[n].data));
14
+ if (d[n])
15
+ return d[n].then(g);
16
+ const f = O(e, {}, t).then((a) => (l[n] = { data: a, timestamp: Date.now() }, t ? { data: g(a), meta: l[n].meta } : g(a))).finally(() => {
17
+ delete d[n];
18
18
  });
19
- return g[e] = u, u;
19
+ return d[n] = f, f;
20
20
  }
21
- const j = ({ app: n, params: t }) => {
22
- const e = `${p || C}/api/${n}/categories${t ? "?" + P(t) : ""}`;
23
- return $(e);
24
- }, D = ({ app: n, type: t, params: e }) => {
25
- const r = `${p || ""}/api/${n}/categories/${t}${e ? "?" + P(e) : ""}`;
26
- return console.log("categories==>", r), $(r);
27
- }, b = ({ source: n, app: t, params: e }) => {
28
- const r = `${p || C}/api/${t}/stats/${n}${e ? "?" + P(e) : ""}`;
29
- return $(r);
30
- }, k = ({ postType: n, taxonomy: t, category: e, taxonomyFilters: r, before: u, perPage: c, page: O, locale: T, after: m, ordering: _, orderingDirection: R }) => {
31
- const w = `${h.REACT_APP_WP_API}/wp/v2/${n}`, o = new URLSearchParams(), d = /* @__PURE__ */ new Map(), S = (s, i) => {
21
+ const k = ({ app: e, params: t }) => {
22
+ const n = `${u || T}/api/${e}/categories${t ? "?" + $(t) : ""}`;
23
+ return h(n);
24
+ }, V = ({ app: e, type: t, params: n }) => {
25
+ const o = `${u || ""}/api/${e}/categories/${t}${n ? "?" + $(n) : ""}`;
26
+ return h(o);
27
+ }, J = ({ source: e, app: t, params: n }) => {
28
+ const o = `${u || T}/api/${t}/stats/${e}${n ? "?" + $(n) : ""}`;
29
+ return h(o);
30
+ }, L = ({ postType: e, taxonomy: t, category: n, taxonomyFilters: o, before: f, perPage: a, page: _, locale: R, after: m, ordering: I, orderingDirection: q, wpApiBase: p }) => {
31
+ const S = p != null && p !== "" ? p : C.REACT_APP_WP_API;
32
+ console.log("Using API base:", S);
33
+ const U = `${S}/wp/v2/${e}`, r = new URLSearchParams(), P = /* @__PURE__ */ new Map(), A = (s, i) => {
32
34
  if (!s || i == null) return;
33
- const a = d.get(s) || [];
34
- Array.isArray(i) ? i.forEach((A) => {
35
- A != null && a.push(String(A));
36
- }) : a.push(String(i)), d.set(s, a);
35
+ const c = P.get(s) || [];
36
+ Array.isArray(i) ? i.forEach((y) => {
37
+ y != null && c.push(String(y));
38
+ }) : c.push(String(i)), P.set(s, c);
37
39
  };
38
- r && r instanceof Map && r.forEach((s, i) => {
39
- S(i, s);
40
- }), t && e != null && S(t, e), d.forEach((s, i) => {
41
- const a = Array.from(new Set(s));
42
- a.length !== 0 && o.set(i, a.join(","));
43
- }), u && o.append("before", u.toISOString()), c && o.append("per_page", c.toString()), o.append("page", O.toString()), o.append("locale", T), m && o.append("after", m.toISOString()), o.append("orderby", _), o.append("order", R);
44
- const I = o.toString().replace(/%2C/g, ",");
45
- return y(`${w}?${I}`, {
40
+ o && o instanceof Map && o.forEach((s, i) => {
41
+ A(i, s);
42
+ }), t && n != null && A(t, n), P.forEach((s, i) => {
43
+ const c = Array.from(new Set(s));
44
+ c.length !== 0 && r.set(i, c.join(","));
45
+ }), f && r.append("before", f.toISOString()), a && r.append("per_page", a.toString()), r.append("page", _.toString()), r.append("locale", R), m && r.append("after", m.toISOString()), r.append("orderby", I), r.append("order", q);
46
+ const w = r.toString().replace(/%2C/g, ",");
47
+ return O(`${U}?${w}`, {
46
48
  headers: {
47
49
  "Content-Type": "application/json"
48
- },
49
- credentials: "include"
50
+ }
50
51
  }, !0);
51
52
  };
52
53
  export {
53
- j as getCategories,
54
- D as getCategory,
55
- k as getCustomPosts,
56
- b as getData
54
+ k as getCategories,
55
+ V as getCategory,
56
+ L as getCustomPosts,
57
+ J as getData
57
58
  };
@@ -1,6 +1,7 @@
1
1
  import { default as React } from 'react';
2
2
  interface NoDataProps {
3
3
  noDataMsg?: string;
4
+ clearFilterMsg?: string;
4
5
  editing?: boolean;
5
6
  group: string;
6
7
  }
@@ -14,6 +14,10 @@ interface FilteredPostsProps extends WrappedComponentProps {
14
14
  "data-sort-first-by": number | string;
15
15
  "data-sorting-type": string;
16
16
  "data-sorting-taxonomy": string;
17
+ "data-wordpress-source-type"?: string;
18
+ "data-wordpress-source"?: string;
19
+ "data-no-data-msg"?: string;
20
+ "data-clear-filter-msg"?: string;
17
21
  editing?: boolean;
18
22
  }
19
23
  declare const _default: React.FC<import('react-intl').WithIntlProps<FilteredPostsProps>> & {
@@ -6,4 +6,5 @@ declare function getStartDateAndEndDateFromYear(year: number): {
6
6
  endDate: Date;
7
7
  };
8
8
  declare function getYearsToDisplay(): Promise<unknown>;
9
- export { getStartDateAndEndDateFromYear, getYearsToDisplay };
9
+ declare function resolveWpApiBase(wordpressSourceType: string | undefined, wordpressSource: string | undefined): Promise<string | null>;
10
+ export { getStartDateAndEndDateFromYear, getYearsToDisplay, resolveWpApiBase };
@@ -4,6 +4,7 @@ interface CategoricalFilterProps extends PostFilterDropdownProps {
4
4
  taxonomies?: any[] | null;
5
5
  type?: string;
6
6
  categories?: any[] | null;
7
+ wpApiBase?: string;
7
8
  }
8
9
  declare const CategoricalFilter: (props: CategoricalFilterProps) => React.JSX.Element;
9
10
  export default CategoricalFilter;
@@ -21,6 +21,8 @@ interface PostsFilterProps {
21
21
  "data-type"?: string;
22
22
  "data-sort-first-by"?: string;
23
23
  "data-default-values"?: string;
24
+ "data-wordpress-source-type"?: string;
25
+ "data-wordpress-source"?: string;
24
26
  editing?: boolean;
25
27
  }
26
28
  declare const PostsFilter: (props: PostsFilterProps) => React.JSX.Element;
@@ -12,7 +12,7 @@ export function getData({ source, app, params }: {
12
12
  app: any;
13
13
  params: any;
14
14
  }): any;
15
- export function getCustomPosts({ postType, taxonomy, category, taxonomyFilters, before, perPage, page, locale, after, ordering, orderingDirection }: {
15
+ export function getCustomPosts({ postType, taxonomy, category, taxonomyFilters, before, perPage, page, locale, after, ordering, orderingDirection, wpApiBase }: {
16
16
  postType: any;
17
17
  taxonomy: any;
18
18
  category: any;
@@ -24,4 +24,5 @@ export function getCustomPosts({ postType, taxonomy, category, taxonomyFilters,
24
24
  after: any;
25
25
  ordering: any;
26
26
  orderingDirection: any;
27
+ wpApiBase: any;
27
28
  }): Promise<unknown>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devgateway/dvz-ui-react",
3
- "version": "1.7.4",
3
+ "version": "1.7.5",
4
4
  "main": "dist/cjs/index.js",
5
5
  "module": "dist/esm/index.js",
6
6
  "types": "dist/types/index.d.ts",