@devgateway/dvz-ui-react 1.6.0 → 1.6.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("react/jsx-runtime"),T=require("react"),f=require("semantic-ui-react"),Q=require("../connected-templates/PostIntro.js"),X=require("react-intl"),Y=require("./utils.js"),Z=require("./NoData.js"),M=require("react-redux"),$=require("../reducers/data-api.js"),tt=require("react-router"),V=require("../../utils/data.js"),et=D=>{const{posts:u,numberOfColumns:E,sortFirstBy:c,countryCategory:l,postWidth:x,postHeight:A}=D,g=[];if(l&&c&&c!=="none"){const d=u.filter(p=>p[l].includes(Number(c))),b=u.filter(p=>!p[l].includes(Number(c)));g.push(...d),g.push(...b)}else g.push(...u);return i.jsx(f.Grid,{className:"filtered-posts",columns:E,children:i.jsx(f.GridRow,{children:g.map(d=>i.jsx(f.Grid.Column,{children:i.jsx("div",{className:"filtered-posts-column",style:{width:x,height:A,overflow:"hidden"},children:i.jsx(Q.default,{style:{width:"100%",height:"100%",overflow:"hidden",margin:0,padding:0},as:f.Container,fluid:!0,post:d},d.id)})},d.id))})})},rt=D=>{const{"data-group":u,"data-number-of-columns":E,"data-type":c,"data-taxonomy":l,"data-categories":x,"data-height":A,"data-post-width":g,"data-post-height":d,"data-number-of-items-per-page":b,"data-enable-sorting":p,"data-sort-first-by":j,"data-sorting-taxonomy":w,editing:B}=D,z=M.useDispatch(),{locale:H}=tt.useParams(),[q,N]=T.useState(!1),I=M.useSelector(t=>t).getIn(["data","posts",u]),[P,F]=T.useState([]),O=V.toBoolean(p)&&j!=="none"?V.toNumber(j):null,m=I??{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],a=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:a}},W=t=>{if(!t||t.length===0)return null;const e=Array.from(new Set(t)).sort((v,C)=>v-C);if(e.length===0)return null;const a=e[0],o=e[e.length-1],r=Y.getStartDateAndEndDateFromYear(a),n=Y.getStartDateAndEndDateFromYear(o);return!(r!=null&&r.startDate)||!(n!=null&&n.endDate)?null:{startDate:r.startDate,endDate:n.endDate}},J=()=>{const t=S(m.yearFilter),e=t.isExplicitNone?null:W(t.values),a=m.countryFilter??null,o=m.categoryFilter??null,r=m.categoryTaxonomy||(l&&l!=="none"?l:null),n=m.countryTaxonomy||null;return{before:(e==null?void 0:e.endDate)||null,after:(e==null?void 0:e.startDate)||null,categoryFilter:o,categoryTaxonomy:r,countryFilter:a,countryTaxonomy:n}},R=t=>B?t:decodeURIComponent(t),L=t=>{try{return JSON.parse(R(t))}catch(e){return console.warn("JSON parsing failed for value:",t,"- treating as plain string. Error:",e),R(t)}},U=()=>{const t=L(x);return t?typeof t=="string"?t.split(",").map(Number):typeof t=="number"?[t]:t:[]},k=(t,e,a)=>{if(a)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},K=async()=>{N(!0);const t=J(),e=S(U()).values,a=S(t.categoryFilter),o=k(e,a.values,a.isExplicitNone),r=S(t.countryFilter);if(a.isExplicitNone){F([]),N(!1);return}if(r.isExplicitNone){F([]),N(!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 v=o?o.join(","):void 0,C={after:t.after,before:t.before,perPage:Number(b||10),page:m.page||1,locale:H||"en",postType:c,taxonomy:t.categoryTaxonomy||void 0,category:v||void 0,taxonomyFilters:n,ordering:"date",orderingDirection:"desc"};await $.getCustomPosts(C).then(s=>{if(s){let h=null,y=null;if(s&&typeof s=="object"&&"data"in s?(h=s.data,y=s.meta):(Array.isArray(s),h=s),F(Array.isArray(h)?h:[]),y){const _=y["x-wp-totalpages"]?y["x-wp-totalpages"]:1,G=y["x-wp-total"]?y["x-wp-total"]:0;_&&G&&z({type:"SET_POSTS_PAGINATION",group:u,totalPages:Number(_),totalItems:Number(G)})}}else F([])}).finally(()=>{N(!1)})};return T.useEffect(()=>{(async()=>await K())()},[I,c,l,b,x,O,w]),i.jsx(f.Container,{fluid:!0,children:q?i.jsx(f.Loader,{active:!0,inline:"centered"}):!q&&P&&P.length>0?i.jsx(et,{posts:P,postWidth:Number(g),postHeight:Number(d),numberOfColumns:Number(E),sortFirstBy:O,countryCategory:w}):i.jsx(Z.default,{noDataMsg:"No posts found",group:u})})},ot=X.injectIntl(T.memo(rt));exports.default=ot;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import K, { useState as
|
|
3
|
-
import { Container as
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import K, { useState as Y, useEffect as Q } from "react";
|
|
3
|
+
import { Container as j, Loader as X, Grid as B, GridRow as Z } from "semantic-ui-react";
|
|
4
4
|
import $ from "../connected-templates/PostIntro.js";
|
|
5
5
|
import { injectIntl as tt } from "react-intl";
|
|
6
|
-
import { getStartDateAndEndDateFromYear as
|
|
6
|
+
import { getStartDateAndEndDateFromYear as R } from "./utils.js";
|
|
7
7
|
import et from "./NoData.js";
|
|
8
8
|
import { useDispatch as ot, useSelector as rt } from "react-redux";
|
|
9
9
|
import { getCustomPosts as nt } from "../reducers/data-api.js";
|
|
10
|
-
import { useParams as
|
|
11
|
-
import { toNumber as
|
|
12
|
-
const lt = (
|
|
13
|
-
const { posts:
|
|
14
|
-
if (
|
|
15
|
-
const
|
|
16
|
-
|
|
10
|
+
import { useParams as at } from "react-router";
|
|
11
|
+
import { toNumber as st, toBoolean as it } from "../../utils/data.js";
|
|
12
|
+
const lt = (T) => {
|
|
13
|
+
const { posts: u, numberOfColumns: E, sortFirstBy: c, countryCategory: l, postWidth: h, postHeight: D } = T, f = [];
|
|
14
|
+
if (l && c && c !== "none") {
|
|
15
|
+
const m = u.filter((y) => y[l].includes(Number(c))), N = u.filter((y) => !y[l].includes(Number(c)));
|
|
16
|
+
f.push(...m), f.push(...N);
|
|
17
17
|
} else
|
|
18
|
-
|
|
19
|
-
return /* @__PURE__ */
|
|
18
|
+
f.push(...u);
|
|
19
|
+
return /* @__PURE__ */ i(B, { className: "filtered-posts", columns: E, children: /* @__PURE__ */ i(Z, { children: f.map((m) => /* @__PURE__ */ i(B.Column, { children: /* @__PURE__ */ i("div", { className: "filtered-posts-column", style: { width: h, height: D, overflow: "hidden" }, children: /* @__PURE__ */ i(
|
|
20
20
|
$,
|
|
21
21
|
{
|
|
22
22
|
style: {
|
|
@@ -26,139 +26,141 @@ const lt = (b) => {
|
|
|
26
26
|
margin: 0,
|
|
27
27
|
padding: 0
|
|
28
28
|
},
|
|
29
|
-
as:
|
|
29
|
+
as: j,
|
|
30
30
|
fluid: !0,
|
|
31
|
-
post:
|
|
31
|
+
post: m
|
|
32
32
|
},
|
|
33
|
-
|
|
34
|
-
) }) },
|
|
35
|
-
}, ut = (
|
|
33
|
+
m.id
|
|
34
|
+
) }) }, m.id)) }) });
|
|
35
|
+
}, ut = (T) => {
|
|
36
36
|
const {
|
|
37
|
-
"data-group":
|
|
38
|
-
"data-number-of-columns":
|
|
39
|
-
"data-type":
|
|
40
|
-
"data-taxonomy":
|
|
41
|
-
"data-categories":
|
|
42
|
-
"data-height":
|
|
43
|
-
"data-post-width":
|
|
44
|
-
"data-post-height":
|
|
45
|
-
"data-number-of-items-per-page":
|
|
46
|
-
"data-enable-sorting":
|
|
47
|
-
"data-sort-first-by":
|
|
48
|
-
"data-sorting-taxonomy":
|
|
37
|
+
"data-group": u,
|
|
38
|
+
"data-number-of-columns": E,
|
|
39
|
+
"data-type": c,
|
|
40
|
+
"data-taxonomy": l,
|
|
41
|
+
"data-categories": h,
|
|
42
|
+
"data-height": D,
|
|
43
|
+
"data-post-width": f,
|
|
44
|
+
"data-post-height": m,
|
|
45
|
+
"data-number-of-items-per-page": N,
|
|
46
|
+
"data-enable-sorting": y,
|
|
47
|
+
"data-sort-first-by": v,
|
|
48
|
+
"data-sorting-taxonomy": w,
|
|
49
49
|
editing: z
|
|
50
|
-
} =
|
|
50
|
+
} = T, M = ot(), { locale: H } = at(), [A, b] = Y(!1), I = rt((t) => t).getIn(["data", "posts", u]), [P, x] = Y([]), O = it(y) && v !== "none" ? st(v) : null, g = I ?? {
|
|
51
51
|
yearFilter: null,
|
|
52
52
|
categoryFilter: null,
|
|
53
53
|
countryFilter: null,
|
|
54
54
|
page: 1,
|
|
55
55
|
countryTaxonomy: null,
|
|
56
56
|
categoryTaxonomy: null
|
|
57
|
-
},
|
|
57
|
+
}, F = (t) => {
|
|
58
58
|
if (t == null)
|
|
59
59
|
return { values: [], isExplicitNone: !1 };
|
|
60
|
-
const e = Array.isArray(t) ? t : [t],
|
|
60
|
+
const e = Array.isArray(t) ? t : [t], a = e.some(
|
|
61
61
|
(o) => Number(o) === Number.MIN_SAFE_INTEGER
|
|
62
62
|
);
|
|
63
63
|
return {
|
|
64
64
|
values: e.map((o) => Number(o)).filter((o) => Number.isFinite(o) && o !== Number.MIN_SAFE_INTEGER),
|
|
65
|
-
isExplicitNone:
|
|
65
|
+
isExplicitNone: a
|
|
66
66
|
};
|
|
67
|
-
},
|
|
67
|
+
}, W = (t) => {
|
|
68
68
|
if (!t || t.length === 0)
|
|
69
69
|
return null;
|
|
70
|
-
const e = Array.from(new Set(t)).sort((
|
|
70
|
+
const e = Array.from(new Set(t)).sort((S, C) => S - C);
|
|
71
71
|
if (e.length === 0)
|
|
72
72
|
return null;
|
|
73
|
-
const
|
|
73
|
+
const a = e[0], r = e[e.length - 1], o = R(a), n = R(r);
|
|
74
74
|
return !(o != null && o.startDate) || !(n != null && n.endDate) ? null : {
|
|
75
75
|
startDate: o.startDate,
|
|
76
76
|
endDate: n.endDate
|
|
77
77
|
};
|
|
78
|
-
},
|
|
79
|
-
const t =
|
|
78
|
+
}, J = () => {
|
|
79
|
+
const t = F(g.yearFilter), e = t.isExplicitNone ? null : W(t.values), a = g.countryFilter ?? null, r = g.categoryFilter ?? null, o = g.categoryTaxonomy || (l && l !== "none" ? l : null), n = g.countryTaxonomy || null;
|
|
80
80
|
return {
|
|
81
81
|
before: (e == null ? void 0 : e.endDate) || null,
|
|
82
82
|
after: (e == null ? void 0 : e.startDate) || null,
|
|
83
83
|
categoryFilter: r,
|
|
84
84
|
categoryTaxonomy: o,
|
|
85
|
-
countryFilter:
|
|
85
|
+
countryFilter: a,
|
|
86
86
|
countryTaxonomy: n
|
|
87
87
|
};
|
|
88
|
-
},
|
|
88
|
+
}, _ = (t) => z ? t : decodeURIComponent(t), L = (t) => {
|
|
89
89
|
try {
|
|
90
|
-
return JSON.parse(
|
|
90
|
+
return JSON.parse(_(t));
|
|
91
91
|
} catch (e) {
|
|
92
|
-
return console.warn("JSON parsing failed for value:", t, "- treating as plain string. Error:", e),
|
|
92
|
+
return console.warn("JSON parsing failed for value:", t, "- treating as plain string. Error:", e), _(t);
|
|
93
93
|
}
|
|
94
|
-
},
|
|
95
|
-
const t =
|
|
94
|
+
}, q = () => {
|
|
95
|
+
const t = L(h);
|
|
96
96
|
return t ? typeof t == "string" ? t.split(",").map(Number) : typeof t == "number" ? [t] : t : [];
|
|
97
|
-
},
|
|
98
|
-
if (
|
|
97
|
+
}, U = (t, e, a) => {
|
|
98
|
+
if (a) return null;
|
|
99
99
|
if (t.length === 0) return e.length > 0 ? e : null;
|
|
100
100
|
if (e.length === 0) return t;
|
|
101
101
|
const r = new Set(t), o = e.filter((n) => r.has(n));
|
|
102
102
|
return o.length > 0 ? o : null;
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
const t =
|
|
103
|
+
}, k = async () => {
|
|
104
|
+
b(!0);
|
|
105
|
+
const t = J(), e = F(q()).values, a = F(t.categoryFilter), r = U(
|
|
106
106
|
e,
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
), o =
|
|
110
|
-
if (
|
|
111
|
-
|
|
107
|
+
a.values,
|
|
108
|
+
a.isExplicitNone
|
|
109
|
+
), o = F(t.countryFilter);
|
|
110
|
+
if (a.isExplicitNone) {
|
|
111
|
+
x([]), b(!1);
|
|
112
112
|
return;
|
|
113
113
|
}
|
|
114
114
|
if (o.isExplicitNone) {
|
|
115
|
-
|
|
115
|
+
x([]), b(!1);
|
|
116
116
|
return;
|
|
117
117
|
}
|
|
118
118
|
const n = /* @__PURE__ */ new Map();
|
|
119
119
|
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
|
|
120
|
+
const S = r ? r.join(",") : void 0, C = {
|
|
121
121
|
after: t.after,
|
|
122
122
|
before: t.before,
|
|
123
|
-
perPage: Number(
|
|
123
|
+
perPage: Number(N || 10),
|
|
124
124
|
page: g.page || 1,
|
|
125
|
-
locale:
|
|
126
|
-
postType:
|
|
125
|
+
locale: H || "en",
|
|
126
|
+
postType: c,
|
|
127
127
|
taxonomy: t.categoryTaxonomy || void 0,
|
|
128
|
-
category:
|
|
128
|
+
category: S || void 0,
|
|
129
129
|
taxonomyFilters: n,
|
|
130
130
|
ordering: "date",
|
|
131
131
|
orderingDirection: "desc"
|
|
132
132
|
};
|
|
133
|
-
await nt(
|
|
134
|
-
if (
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
133
|
+
await nt(C).then((s) => {
|
|
134
|
+
if (s) {
|
|
135
|
+
let p = null, d = null;
|
|
136
|
+
if (s && typeof s == "object" && "data" in s ? (p = s.data, d = s.meta) : (Array.isArray(s), p = s), x(Array.isArray(p) ? p : []), d) {
|
|
137
|
+
const G = d["x-wp-totalpages"] ? d["x-wp-totalpages"] : 1, V = d["x-wp-total"] ? d["x-wp-total"] : 0;
|
|
138
|
+
G && V && M({
|
|
139
|
+
type: "SET_POSTS_PAGINATION",
|
|
140
|
+
group: u,
|
|
141
|
+
totalPages: Number(G),
|
|
142
|
+
totalItems: Number(V)
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
} else
|
|
146
|
+
x([]);
|
|
145
147
|
}).finally(() => {
|
|
146
|
-
|
|
148
|
+
b(!1);
|
|
147
149
|
});
|
|
148
150
|
};
|
|
149
151
|
return Q(() => {
|
|
150
|
-
(async () => await
|
|
151
|
-
}, [
|
|
152
|
+
(async () => await k())();
|
|
153
|
+
}, [I, c, l, N, h, O, w]), /* @__PURE__ */ i(j, { fluid: !0, children: A ? /* @__PURE__ */ i(X, { active: !0, inline: "centered" }) : !A && P && P.length > 0 ? /* @__PURE__ */ i(
|
|
152
154
|
lt,
|
|
153
155
|
{
|
|
154
|
-
posts:
|
|
155
|
-
postWidth: Number(
|
|
156
|
-
postHeight: Number(
|
|
157
|
-
numberOfColumns: Number(
|
|
158
|
-
sortFirstBy:
|
|
159
|
-
countryCategory:
|
|
156
|
+
posts: P,
|
|
157
|
+
postWidth: Number(f),
|
|
158
|
+
postHeight: Number(m),
|
|
159
|
+
numberOfColumns: Number(E),
|
|
160
|
+
sortFirstBy: O,
|
|
161
|
+
countryCategory: w
|
|
160
162
|
}
|
|
161
|
-
) : /* @__PURE__ */
|
|
163
|
+
) : /* @__PURE__ */ i(et, { noDataMsg: "No posts found", group: u }) });
|
|
162
164
|
}, Tt = tt(K.memo(ut));
|
|
163
165
|
export {
|
|
164
166
|
Tt as default
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devgateway/dvz-ui-react",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/esm/index.js",
|
|
6
6
|
"types": "dist/types/index.d.ts",
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
"vite-plugin-env-compatible": "^2.0.1",
|
|
122
122
|
"vite-plugin-eslint": "^1.8.1",
|
|
123
123
|
"vite-tsconfig-paths": "^5.1.4",
|
|
124
|
-
"@devgateway/wp-react-lib": "0.
|
|
124
|
+
"@devgateway/wp-react-lib": "0.5.1"
|
|
125
125
|
},
|
|
126
126
|
"peerDependencies": {
|
|
127
127
|
"react": "^18.3.1",
|