@devgateway/dvz-ui-react 1.5.4 → 1.6.0

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.
Files changed (70) hide show
  1. package/dist/cjs/common.css +1 -1
  2. package/dist/cjs/embeddable/chart/Bar.js +1 -1
  3. package/dist/cjs/embeddable/chart/Line.js +1 -1
  4. package/dist/cjs/embeddable/chart/Pie.js +1 -1
  5. package/dist/cjs/embeddable/chart/colors/ManualColors.js +1 -1
  6. package/dist/cjs/embeddable/chart/data/Bar.js +1 -1
  7. package/dist/cjs/embeddable/chart/index.js +1 -1
  8. package/dist/cjs/embeddable/common/colors/ManualColors.js +1 -1
  9. package/dist/cjs/embeddable/d3Map/BaseLayer.js +1 -1
  10. package/dist/cjs/embeddable/d3Map/DataLayer.js +1 -1
  11. package/dist/cjs/embeddable/filtered-posts/NoData.js +2 -2
  12. package/dist/cjs/embeddable/filtered-posts/index.js +1 -1
  13. package/dist/cjs/embeddable/filtered-posts/utils.js +1 -1
  14. package/dist/cjs/embeddable/posts-filter/CategoricalFilter.js +1 -0
  15. package/dist/cjs/embeddable/posts-filter/PostsFilterDropdown.js +1 -1
  16. package/dist/cjs/embeddable/posts-filter/YearFilter.js +1 -0
  17. package/dist/cjs/embeddable/posts-filter/index.js +1 -1
  18. package/dist/cjs/embeddable/posts-filters-reset-button/index.js +1 -1
  19. package/dist/cjs/embeddable/posts-pagination/index.js +1 -1
  20. package/dist/cjs/embeddable/reducers/data-api.js +1 -1
  21. package/dist/cjs/embeddable/reducers/data.js +1 -1
  22. package/dist/cjs/embeddable/reducers/embeddable-api.js +1 -1
  23. package/dist/cjs/embeddable/time-line/mobile.js +1 -1
  24. package/dist/cjs/embeddable/vertical-featuredtabs/index.js +2 -2
  25. package/dist/cjs/index.js +1 -1
  26. package/dist/cjs/layout/Layout.js +1 -1
  27. package/dist/cjs/styles.css +1 -1
  28. package/dist/esm/common.css +1 -1
  29. package/dist/esm/embeddable/chart/Bar.js +253 -235
  30. package/dist/esm/embeddable/chart/Line.js +122 -121
  31. package/dist/esm/embeddable/chart/Pie.js +82 -81
  32. package/dist/esm/embeddable/chart/colors/ManualColors.js +33 -33
  33. package/dist/esm/embeddable/chart/data/Bar.js +18 -16
  34. package/dist/esm/embeddable/chart/index.js +298 -286
  35. package/dist/esm/embeddable/common/colors/ManualColors.js +22 -22
  36. package/dist/esm/embeddable/d3Map/BaseLayer.js +4 -1
  37. package/dist/esm/embeddable/d3Map/DataLayer.js +5 -1
  38. package/dist/esm/embeddable/filtered-posts/NoData.js +25 -18
  39. package/dist/esm/embeddable/filtered-posts/index.js +131 -89
  40. package/dist/esm/embeddable/filtered-posts/utils.js +3 -2
  41. package/dist/esm/embeddable/posts-filter/CategoricalFilter.js +72 -0
  42. package/dist/esm/embeddable/posts-filter/PostsFilterDropdown.js +106 -92
  43. package/dist/esm/embeddable/posts-filter/YearFilter.js +60 -0
  44. package/dist/esm/embeddable/posts-filter/index.js +160 -191
  45. package/dist/esm/embeddable/posts-filters-reset-button/index.js +21 -15
  46. package/dist/esm/embeddable/posts-pagination/index.js +36 -33
  47. package/dist/esm/embeddable/reducers/data-api.js +35 -35
  48. package/dist/esm/embeddable/reducers/data.js +116 -107
  49. package/dist/esm/embeddable/reducers/embeddable-api.js +8 -8
  50. package/dist/esm/embeddable/time-line/mobile.js +119 -118
  51. package/dist/esm/embeddable/vertical-featuredtabs/index.js +202 -131
  52. package/dist/esm/index.js +66 -64
  53. package/dist/esm/layout/Layout.js +8 -6
  54. package/dist/esm/styles.css +1 -1
  55. package/dist/types/dvz-ui/src/embeddable/chart/colors/ManualColors.d.ts +1 -1
  56. package/dist/types/dvz-ui/src/embeddable/filtered-posts/NoData.d.ts +1 -0
  57. package/dist/types/dvz-ui/src/embeddable/filtered-posts/index.d.ts +2 -1
  58. package/dist/types/dvz-ui/src/embeddable/filtered-posts/utils.d.ts +3 -0
  59. package/dist/types/dvz-ui/src/embeddable/posts-filter/CategoricalFilter.d.ts +9 -0
  60. package/dist/types/dvz-ui/src/embeddable/posts-filter/PostsFilterDropdown.d.ts +1 -0
  61. package/dist/types/dvz-ui/src/embeddable/posts-filter/YearFilter.d.ts +12 -0
  62. package/dist/types/dvz-ui/src/embeddable/posts-filter/index.d.ts +2 -0
  63. package/dist/types/dvz-ui/src/embeddable/reducers/data-api.d.ts +3 -1
  64. package/dist/types/dvz-ui/src/embeddable/reducers/data.d.ts +5 -0
  65. package/dist/types/dvz-ui/src/embeddable/time-line/mobile.d.ts +2 -1
  66. package/dist/types/dvz-ui/src/translations/af.json.d.ts +1 -2
  67. package/dist/types/dvz-ui/src/translations/am.json.d.ts +35 -35
  68. package/dist/types/dvz-ui/src/translations/index.d.ts +2 -1
  69. package/dist/types/dvz-ui/src/utils/data.d.ts +2 -0
  70. package/package.json +4 -3
@@ -1,116 +1,128 @@
1
- import { jsx as l, jsxs as m, Fragment as F } from "react/jsx-runtime";
2
- import { useState as U, useRef as L, useEffect as P } from "react";
3
- import { Dropdown as h, Segment as Y, Label as R, Container as O, Icon as q, Divider as z, Radio as H, Checkbox as J } from "semantic-ui-react";
4
- const T = "multi-select", g = "single-select", Z = (b) => {
1
+ import { jsx as l, jsxs as h, Fragment as D } from "react/jsx-runtime";
2
+ import { useState as Q, useRef as A, useEffect as _, useMemo as W } from "react";
3
+ import { Dropdown as v, Segment as X, Label as K, Container as G, Icon as Z, Divider as ee, Radio as te, Checkbox as ne } from "semantic-ui-react";
4
+ const F = "multi-select", p = "single-select", N = Number.MIN_SAFE_INTEGER, E = (m) => m == null ? null : String(m), se = (m) => {
5
5
  const {
6
- allLabel: D,
7
- noneLabel: M,
8
- placeholder: w,
9
- options: r,
6
+ allLabel: U,
7
+ noneLabel: j,
8
+ placeholder: S,
9
+ options: n,
10
10
  // group,
11
- current: C,
11
+ current: L,
12
12
  onChange: i,
13
- useSingleColumn: y,
14
- enableTextSearch: p,
15
- filterType: o,
13
+ useSingleColumn: k,
14
+ enableTextSearch: C,
15
+ filterType: c,
16
16
  // defaultValues,
17
17
  // showNoDataOption,
18
18
  // defaultValueCriteria,
19
- allNoneSameBehaviour: N,
20
- hiddenFilters: f,
19
+ allNoneSameBehaviour: R,
20
+ hiddenFilters: g,
21
21
  // autoApply,
22
22
  // taxonomy,
23
23
  // type,
24
- value: a,
25
- closeOnSelect: v = !0
26
- } = b, u = o === T, s = Array.isArray(a) ? a : C || [], [c, V] = U(""), A = (e, t) => {
27
- if (o === T) {
28
- let n = Array.isArray(s) ? [...s] : [];
29
- return n.indexOf(t) > -1 ? n = n.filter((I) => I !== t) : n = [...n, t], i && i(e, n);
24
+ value: o,
25
+ closeOnSelect: I = !0,
26
+ noneFunction: V
27
+ } = m, u = c === F, x = Array.isArray(o) ? o : L || [], d = (Array.isArray(x) ? x.some((e) => e === N) : !1) ? x.filter((e) => e !== N) : x, [a, B] = Q(""), M = (e, t) => {
28
+ if (c === F) {
29
+ const r = E(t), s = Array.isArray(d) ? [...d] : [];
30
+ let T = s.some((w) => E(w) === r) ? s.filter((w) => E(w) !== r) : [...s, t];
31
+ return !R && T.length === 0 && (T = [N]), i && i(e, T);
30
32
  }
31
- if (o === g)
33
+ if (c === p)
32
34
  return i && i(e, t);
33
- v && d.current && d.current.close();
34
- }, $ = () => {
35
- const e = (r || []).filter((t) => {
36
- var n;
37
- return p && c && c.trim().length > 0 && t.text ? (n = t.text) == null ? void 0 : n.toString().toLowerCase().includes(c.toLowerCase()) : !0;
35
+ I && f.current && f.current.close();
36
+ }, Y = () => {
37
+ const e = (n || []).filter((t) => {
38
+ var r;
39
+ return C && a && a.trim().length > 0 && t.text ? (r = t.text) == null ? void 0 : r.toString().toLowerCase().includes(a.toLowerCase()) : !0;
38
40
  }).map((t) => t.value);
39
- u && i && i({}, e), !u && v && d.current && d.current.close();
40
- }, K = () => {
41
- let e = [];
42
- N && (e = (r || []).filter((t) => {
43
- var n;
44
- return p && c && c.trim().length > 0 && t.text ? (n = t.text) == null ? void 0 : n.toString().toLowerCase().includes(c.toLowerCase()) : !0;
45
- }).map((t) => t.value)), u && i && i({}, e), !u && v && d.current && d.current.close();
46
- }, _ = (e) => {
47
- V(e);
48
- }, E = L(!1);
49
- P(() => {
50
- if (!(!u || E.current) && r && r.length > 0)
51
- if (!(Array.isArray(s) ? s.length > 0 : !!s) && i) {
52
- E.current = !0;
53
- const t = r.map((n) => n.value);
41
+ u && i && i({}, e), !u && I && f.current && f.current.close();
42
+ }, q = (e) => {
43
+ if (V) {
44
+ V(e);
45
+ return;
46
+ } else {
47
+ if (!n) return [];
48
+ const t = n.filter((r) => {
49
+ var s;
50
+ return C && a && a.trim().length > 0 && r.text ? (s = r.text) == null ? void 0 : s.toString().toLowerCase().includes(a == null ? void 0 : a.toString().toLowerCase()) : !0;
51
+ });
52
+ if (u && i) {
53
+ const r = R ? t.map((s) => s.value) : [N];
54
+ i({}, r);
55
+ }
56
+ !u && I && f.current && f.current.close();
57
+ }
58
+ }, O = (e) => {
59
+ B(e);
60
+ }, y = A(!1);
61
+ _(() => {
62
+ if (!(!u || y.current) && n && n.length > 0)
63
+ if (!(Array.isArray(d) ? d.length > 0 : !!d) && i) {
64
+ y.current = !0;
65
+ const t = n.map((r) => r.value);
54
66
  i({}, t);
55
67
  } else
56
- E.current = !0;
57
- }, [u, r]), P(() => {
58
- if (u && r && r.length > 0 && i) {
59
- const e = r.map((t) => t.value);
68
+ y.current = !0;
69
+ }, [u, n]), _(() => {
70
+ if (u && n && n.length > 0 && i) {
71
+ const e = n.map((t) => t.value);
60
72
  i({}, e);
61
73
  }
62
- }, []);
63
- const j = () => {
64
- if (o == g) {
65
- const e = a ? r == null ? void 0 : r.filter((t) => t.value == a)[0] : null;
66
- return e ? e.text : "";
74
+ }, [u]);
75
+ const z = W(() => {
76
+ if (c == p) {
77
+ const e = o ? n == null ? void 0 : n.filter((t) => t.value == o)[0] : null;
78
+ return e ? `${S ? S + " " : ""}${e.text}` : "";
67
79
  } else {
68
- const e = s ? s.filter((n) => n == Number.MIN_SAFE_INTEGER ? !1 : f && f.length > 0 ? f.indexOf(n) == -1 : !0).length : 0, t = (r == null ? void 0 : r.filter((n) => f && f.length > 0 ? f.indexOf(n.id) == -1 : !0).length) || 0;
69
- return `${w} (${e}/${t})`;
80
+ const e = d ? d.filter((r) => r == Number.MIN_SAFE_INTEGER ? !1 : g && g.length > 0 ? g.indexOf(r) == -1 : !0).length : 0, t = (n == null ? void 0 : n.filter((r) => g && g.length > 0 ? g.indexOf(r.id) == -1 : !0).length) || 0;
81
+ return `${S} (${e}/${t})`;
70
82
  }
71
- }, d = L(null), k = j(), x = typeof k == "string" ? k : "", B = x && x.length > 0 ? x : w || "", S = L(void 0);
72
- P(() => {
73
- o === g && S.current === void 0 && a !== void 0 && (S.current = a);
74
- }, [o, a]);
75
- const G = o === g ? a != null && a !== S.current : C && C.length > 0;
83
+ }, [n, d, c]), f = A(null), $ = z, b = typeof $ == "string" ? $ : "", H = b && b.length > 0 ? b : S || "", P = A(void 0);
84
+ _(() => {
85
+ c === p && P.current === void 0 && o !== void 0 && (P.current = o);
86
+ }, [c, o]);
87
+ const J = c === p ? o != null && o !== P.current : L && L.length > 0;
76
88
  return (
77
89
  // @ts-ignore
78
90
  /* @__PURE__ */ l(
79
- h,
91
+ v,
80
92
  {
81
- ...b,
82
- ref: d,
93
+ ...m,
94
+ ref: f,
83
95
  fluid: !0,
84
- text: B,
96
+ text: H,
85
97
  scrolling: !1,
86
98
  button: !0,
87
99
  icon: "angle down",
88
100
  multiple: u,
89
101
  search: !0,
90
102
  floating: !1,
91
- value: a,
92
- closeOnChange: v,
103
+ value: o,
104
+ closeOnChange: I,
93
105
  ...u ? { renderLabel: () => null } : {},
94
- className: `multiple ${G ? "applied " : ""}`,
95
- children: /* @__PURE__ */ m(h.Menu, { children: [
96
- o != g && /* @__PURE__ */ m(F, { children: [
97
- /* @__PURE__ */ l(Y, { children: /* @__PURE__ */ m(h.Item, { children: [
98
- /* @__PURE__ */ l(R, { basic: !0, onClick: $, children: D }),
106
+ className: `multiple ${J ? "applied " : ""}`,
107
+ children: /* @__PURE__ */ h(v.Menu, { children: [
108
+ c != p && /* @__PURE__ */ h(D, { children: [
109
+ /* @__PURE__ */ l(X, { children: /* @__PURE__ */ h(v.Item, { children: [
110
+ /* @__PURE__ */ l(K, { basic: !0, onClick: Y, children: U }),
99
111
  " ",
100
112
  "|",
101
113
  " ",
102
- /* @__PURE__ */ l(R, { basic: !0, onClick: K, children: M })
114
+ /* @__PURE__ */ l(K, { basic: !0, onClick: q, children: j })
103
115
  ] }) }),
104
- p && /* @__PURE__ */ m(F, { children: [
105
- /* @__PURE__ */ l(O, { children: /* @__PURE__ */ l(h.Item, { children: /* @__PURE__ */ l("div", { className: "ui action input", children: /* @__PURE__ */ m("div", { className: "ui input", children: [
116
+ C && /* @__PURE__ */ h(D, { children: [
117
+ /* @__PURE__ */ l(G, { children: /* @__PURE__ */ l(v.Item, { children: /* @__PURE__ */ l("div", { className: "ui action input", children: /* @__PURE__ */ h("div", { className: "ui input", children: [
106
118
  /* @__PURE__ */ l(
107
119
  "input",
108
120
  {
109
121
  className: "filter-search",
110
- value: c,
122
+ value: a,
111
123
  placeholder: "Search...",
112
124
  onChange: (e) => {
113
- e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation(), _(e.target.value);
125
+ e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation(), O(e.target.value);
114
126
  },
115
127
  onKeyDown: (e) => {
116
128
  e && e.nativeEvent && e.nativeEvent.stopImmediatePropagation && e.nativeEvent.stopImmediatePropagation();
@@ -135,50 +147,52 @@ const T = "multi-select", g = "single-select", Z = (b) => {
135
147
  }
136
148
  ),
137
149
  /* @__PURE__ */ l(
138
- q,
150
+ Z,
139
151
  {
140
152
  name: "remove",
141
153
  link: !0,
142
154
  className: "clear-icon ignore",
143
155
  onClick: (e) => {
144
- _("");
156
+ O("");
145
157
  }
146
158
  }
147
159
  )
148
160
  ] }) }) }) }),
149
- /* @__PURE__ */ l(z, {})
161
+ /* @__PURE__ */ l(ee, {})
150
162
  ] })
151
163
  ] }),
152
164
  /* @__PURE__ */ l("br", {}),
153
- /* @__PURE__ */ l(O, { className: y ? "dropdown-single-column" : "", children: r == null ? void 0 : r.filter((e) => {
165
+ /* @__PURE__ */ l(G, { className: k ? "dropdown-single-column" : "", children: n == null ? void 0 : n.filter((e) => {
154
166
  var t;
155
- return p && c && c.trim().length > 0 && e.text ? (t = e.text) == null ? void 0 : t.toString().toLowerCase().includes(c.toLowerCase()) : !0;
156
- }).map(({ value: e, text: t }, n) => /* @__PURE__ */ m(
157
- h.Item,
167
+ return C && a && a.trim().length > 0 && e.text ? (t = e.text) == null ? void 0 : t.toString().toLowerCase().includes(a.toLowerCase()) : !0;
168
+ }).map(({ value: e, text: t }, r) => /* @__PURE__ */ h(
169
+ v.Item,
158
170
  {
159
- className: y ? "dropdown-item-single-column" : "",
171
+ className: k ? "dropdown-item-single-column" : "",
160
172
  children: [
161
- o === g && /* @__PURE__ */ l(
162
- H,
173
+ c === p && /* @__PURE__ */ l(
174
+ te,
163
175
  {
164
- checked: a === e,
165
- onChange: (I) => {
166
- A(I, e);
176
+ checked: o == e,
177
+ onChange: (s) => {
178
+ M(s, e);
167
179
  },
168
180
  label: t
169
181
  }
170
182
  ),
171
- o === T && /* @__PURE__ */ l(
172
- J,
183
+ c === F && /* @__PURE__ */ l(
184
+ ne,
173
185
  {
174
- checked: !!(s && s.indexOf(e) > -1 && !(r.length == s.length && N)),
175
- onChange: () => A(null, e),
186
+ checked: d && d.some(
187
+ (s) => E(s) === E(e)
188
+ ),
189
+ onChange: () => M(null, e),
176
190
  label: t
177
191
  }
178
192
  )
179
193
  ]
180
194
  },
181
- n
195
+ r
182
196
  )) })
183
197
  ] })
184
198
  }
@@ -186,5 +200,5 @@ const T = "multi-select", g = "single-select", Z = (b) => {
186
200
  );
187
201
  };
188
202
  export {
189
- Z as default
203
+ se as default
190
204
  };
@@ -0,0 +1,60 @@
1
+ import { jsx as w } from "react/jsx-runtime";
2
+ import { useEffect as x } from "react";
3
+ import y from "./PostsFilterDropdown.js";
4
+ import { getYearRange as F } from "@devgateway/wp-react-lib";
5
+ const T = (t) => {
6
+ const {
7
+ group: r,
8
+ placeholder: n,
9
+ allLabel: s,
10
+ noneLabel: l,
11
+ useSingleColumn: c,
12
+ enableTextSearch: i,
13
+ filterType: p,
14
+ showNoDataOption: f,
15
+ closeOnSelect: m,
16
+ allNoneSameBehaviour: u,
17
+ autoApply: h,
18
+ alphabeticalSort: d,
19
+ ascOrder: g,
20
+ onChange: Y,
21
+ setYearOptions: S,
22
+ setYearFilterLoading: a
23
+ } = t, D = async () => {
24
+ a(!0);
25
+ const b = (await F()).data.map((e) => ({
26
+ key: e,
27
+ value: e,
28
+ text: e.toString()
29
+ }));
30
+ return a(!1), b;
31
+ };
32
+ return x(() => {
33
+ (async () => {
34
+ const o = await D();
35
+ S(o);
36
+ })();
37
+ }, []), /* @__PURE__ */ w(
38
+ y,
39
+ {
40
+ ...t,
41
+ group: r,
42
+ placeholder: n,
43
+ allLabel: s,
44
+ noneLabel: l,
45
+ useSingleColumn: c,
46
+ enableTextSearch: i,
47
+ filterType: p,
48
+ showNoDataOption: f,
49
+ closeOnSelect: m,
50
+ allNoneSameBehaviour: u,
51
+ autoApply: h,
52
+ alphabeticalSort: d,
53
+ ascOrder: g,
54
+ onChange: Y
55
+ }
56
+ );
57
+ };
58
+ export {
59
+ T as default
60
+ };