@pronto-tools-and-more/components 10.36.0 → 10.38.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/main.js CHANGED
@@ -46,13 +46,36 @@ var ArticleAuthors = ({
46
46
  return /* @__PURE__ */ React.createElement("div", { className: "ArticleAuthors" }, /* @__PURE__ */ React.createElement(JsonComponent, { json }));
47
47
  };
48
48
 
49
+ // src/parts/CreatePropertiesFilter/CreatePropertiesFilter.ts
50
+ var createPropertiesFilter = (properties) => {
51
+ const entries = Object.entries(properties);
52
+ if (entries.length === 0) {
53
+ return [];
54
+ }
55
+ const outerFilter = [];
56
+ for (const [key, value] of Object.entries(properties)) {
57
+ if (Array.isArray(value)) {
58
+ const innerFilter = [];
59
+ for (const item of value) {
60
+ innerFilter.push({
61
+ properties: {
62
+ key,
63
+ value: item
64
+ }
65
+ });
66
+ }
67
+ if (innerFilter.length > 0) {
68
+ outerFilter.push({
69
+ OR: innerFilter
70
+ });
71
+ }
72
+ }
73
+ }
74
+ return outerFilter;
75
+ };
76
+
49
77
  // src/parts/CreateFilterFromProperties/CreateFilterFromProperties.ts
50
- var createFilterFromProperties = ({
51
- properties,
52
- authorId,
53
- categoryId,
54
- bundleId
55
- }) => {
78
+ var createBundleFilter = (bundleId) => {
56
79
  if (bundleId) {
57
80
  return [
58
81
  {
@@ -64,6 +87,9 @@ var createFilterFromProperties = ({
64
87
  }
65
88
  ];
66
89
  }
90
+ return [];
91
+ };
92
+ var createCategoryFilter = (categoryId) => {
67
93
  if (categoryId) {
68
94
  return [
69
95
  {
@@ -79,6 +105,9 @@ var createFilterFromProperties = ({
79
105
  }
80
106
  ];
81
107
  }
108
+ return [];
109
+ };
110
+ var createAuthorFilter = (authorId) => {
82
111
  if (authorId) {
83
112
  return [
84
113
  {
@@ -94,30 +123,39 @@ var createFilterFromProperties = ({
94
123
  }
95
124
  ];
96
125
  }
97
- const entries = Object.entries(properties);
98
- if (entries.length === 0) {
126
+ return [];
127
+ };
128
+ var mergeFilters = (filters) => {
129
+ const relevantFilters = filters.filter((f) => f.length > 0);
130
+ if (relevantFilters.length === 0) {
99
131
  return [];
100
132
  }
101
- const outerFilter = [];
102
- for (const [key, value] of Object.entries(properties)) {
103
- if (Array.isArray(value)) {
104
- const innerFilter = [];
105
- for (const item of value) {
106
- innerFilter.push({
107
- properties: {
108
- key,
109
- value: item
110
- }
111
- });
112
- }
113
- if (innerFilter.length > 0) {
114
- outerFilter.push({
115
- OR: innerFilter
116
- });
117
- }
118
- }
133
+ if (relevantFilters.length === 1) {
134
+ return relevantFilters[0];
119
135
  }
120
- return outerFilter;
136
+ return [
137
+ {
138
+ AND: relevantFilters.flat(1)
139
+ }
140
+ ];
141
+ };
142
+ var createFilterFromProperties = ({
143
+ properties,
144
+ authorId,
145
+ categoryId,
146
+ bundleId
147
+ }) => {
148
+ const categoryFilter = createCategoryFilter(categoryId);
149
+ const authorFilter = createAuthorFilter(authorId);
150
+ const bundleFilter = createBundleFilter(bundleId);
151
+ const propertiesFilter = createPropertiesFilter(properties);
152
+ const merged = mergeFilters([
153
+ categoryFilter,
154
+ authorFilter,
155
+ bundleFilter,
156
+ propertiesFilter
157
+ ]);
158
+ return merged;
121
159
  };
122
160
 
123
161
  // src/parts/GetArticleListDataSource/GetArticleListDataSource.ts
@@ -0,0 +1 @@
1
+ export declare const createPropertiesFilter: (properties: any) => any[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pronto-tools-and-more/components",
3
- "version": "10.36.0",
3
+ "version": "10.38.0",
4
4
  "description": "",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",