@searchspring/snap-client 0.46.0 → 0.47.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.
@@ -120,93 +120,110 @@ transformSearchResponse.filters = function (response) {
120
120
  };
121
121
  };
122
122
  transformSearchResponse.facets = function (response, request) {
123
+ var _a, _b;
123
124
  if (request === void 0) { request = {}; }
124
125
  var filters = request.filters || [];
125
126
  var facets = (response === null || response === void 0 ? void 0 : response.facets) || [];
126
- return {
127
- facets: facets.map(function (facet) {
128
- var _a;
129
- var transformedFacet = {
130
- field: facet.field,
131
- type: 'value',
132
- filtered: Boolean(facet.facet_active),
133
- };
134
- if (facet.step) {
135
- if (facet.range) {
136
- transformedFacet = __assign(__assign({}, transformedFacet), { type: 'range', step: facet.step, range: {
137
- // TODO: change to null
138
- low: facet.range[0] == '*' ? undefined : +facet.range[0],
139
- high: facet.range[1] == '*' ? undefined : +facet.range[1],
140
- } });
141
- }
142
- if (facet.active && typeof facet.active != 'boolean' && facet.active.length > 1) {
143
- transformedFacet.active = {
127
+ var limit = (_a = request === null || request === void 0 ? void 0 : request.facets) === null || _a === void 0 ? void 0 : _a.limit;
128
+ var valueLimit = (_b = request === null || request === void 0 ? void 0 : request.facets) === null || _b === void 0 ? void 0 : _b.valueLimit;
129
+ var transformedFacets = facets.map(function (facet) {
130
+ var _a;
131
+ var transformedFacet = {
132
+ field: facet.field,
133
+ type: 'value',
134
+ filtered: Boolean(facet.facet_active),
135
+ };
136
+ if (facet.step) {
137
+ if (facet.range) {
138
+ transformedFacet = __assign(__assign({}, transformedFacet), { type: 'range', step: facet.step, range: {
144
139
  // TODO: change to null
145
- low: facet.active[0] == '*' ? undefined : +facet.active[0],
146
- high: facet.active[1] == '*' ? undefined : +facet.active[1],
147
- };
148
- }
140
+ low: facet.range[0] == '*' ? undefined : +facet.range[0],
141
+ high: facet.range[1] == '*' ? undefined : +facet.range[1],
142
+ } });
149
143
  }
150
- else if (facet.values instanceof Array) {
151
- if (facet.type == 'hierarchy') {
152
- transformedFacet.type = 'value';
153
- transformedFacet.values = (facet.values || []).map(function (value) {
154
- return {
155
- filtered: Boolean(value.active),
156
- value: value.value,
157
- label: value.label,
158
- count: value.count,
159
- };
160
- });
161
- var filterSelected = filters.find(function (f) { return f.field == facet.field; });
162
- var newValues = [];
163
- if (filterSelected && !filterSelected.background) {
164
- var valueLevels = (_a = filterSelected.value) === null || _a === void 0 ? void 0 : _a.split(facet.hierarchyDelimiter || '>');
165
- if (valueLevels) {
166
- for (var i = valueLevels.length - 1; i >= 0; i--) {
167
- var valueSplit = valueLevels.slice(0, i + 1);
168
- var value = valueSplit.join(facet.hierarchyDelimiter);
169
- newValues.unshift({
170
- value: value,
171
- filtered: value == filterSelected.value,
172
- label: valueSplit[valueSplit.length - 1],
173
- });
174
- }
144
+ if (facet.active && typeof facet.active != 'boolean' && facet.active.length > 1) {
145
+ transformedFacet.active = {
146
+ // TODO: change to null
147
+ low: facet.active[0] == '*' ? undefined : +facet.active[0],
148
+ high: facet.active[1] == '*' ? undefined : +facet.active[1],
149
+ };
150
+ }
151
+ }
152
+ else if (facet.values instanceof Array) {
153
+ if (facet.type == 'hierarchy') {
154
+ transformedFacet.type = 'value';
155
+ transformedFacet.values = (facet.values || []).map(function (value) {
156
+ return {
157
+ filtered: Boolean(value.active),
158
+ value: value.value,
159
+ label: value.label,
160
+ count: value.count,
161
+ };
162
+ });
163
+ var filterSelected = filters.find(function (f) { return f.field == facet.field; });
164
+ var newValues = [];
165
+ if (filterSelected && !filterSelected.background) {
166
+ var valueLevels = (_a = filterSelected.value) === null || _a === void 0 ? void 0 : _a.split(facet.hierarchyDelimiter || '>');
167
+ if (valueLevels) {
168
+ for (var i = valueLevels.length - 1; i >= 0; i--) {
169
+ var valueSplit = valueLevels.slice(0, i + 1);
170
+ var value = valueSplit.join(facet.hierarchyDelimiter);
171
+ newValues.unshift({
172
+ value: value,
173
+ filtered: value == filterSelected.value,
174
+ label: valueSplit[valueSplit.length - 1],
175
+ });
175
176
  }
176
- newValues.unshift({
177
- value: null,
178
- filtered: false,
179
- label: 'View All',
180
- });
181
177
  }
182
- transformedFacet.values = newValues.concat(transformedFacet.values);
183
- }
184
- else if (facet.values[0].type == 'value') {
185
- transformedFacet.type = 'value';
186
- transformedFacet.values = facet.values.map(function (value) {
187
- return {
188
- filtered: value.active,
189
- value: value.value,
190
- label: value.label,
191
- count: value.count,
192
- };
193
- });
194
- }
195
- else if (facet.values[0].type == 'range') {
196
- transformedFacet.type = 'range-buckets';
197
- transformedFacet.values = facet.values.map(function (value) {
198
- return {
199
- filtered: value.active,
200
- low: value.low == '*' ? null : value.low ? +value.low : null,
201
- high: value.high == '*' ? null : value.high ? +value.high : null,
202
- label: value.label,
203
- count: value.count,
204
- };
178
+ newValues.unshift({
179
+ value: null,
180
+ filtered: false,
181
+ label: 'View All',
205
182
  });
206
183
  }
184
+ transformedFacet.values = newValues.concat(transformedFacet.values);
207
185
  }
208
- return transformedFacet;
209
- }),
186
+ else if (facet.values[0].type == 'value') {
187
+ transformedFacet.type = 'value';
188
+ transformedFacet.values = facet.values.map(function (value) {
189
+ return {
190
+ filtered: value.active,
191
+ value: value.value,
192
+ label: value.label,
193
+ count: value.count,
194
+ };
195
+ });
196
+ }
197
+ else if (facet.values[0].type == 'range') {
198
+ transformedFacet.type = 'range-buckets';
199
+ transformedFacet.values = facet.values.map(function (value) {
200
+ return {
201
+ filtered: value.active,
202
+ low: value.low == '*' ? null : value.low ? +value.low : null,
203
+ high: value.high == '*' ? null : value.high ? +value.high : null,
204
+ label: value.label,
205
+ count: value.count,
206
+ };
207
+ });
208
+ }
209
+ }
210
+ return transformedFacet;
211
+ });
212
+ // limit facets based on request
213
+ if (limit) {
214
+ transformedFacets = transformedFacets.slice(0, limit);
215
+ }
216
+ // limit facet values based on request
217
+ if (valueLimit) {
218
+ transformedFacets = transformedFacets.map(function (facet) {
219
+ if (facet.values) {
220
+ facet.values = facet.values.slice(0, valueLimit);
221
+ }
222
+ return facet;
223
+ });
224
+ }
225
+ return {
226
+ facets: transformedFacets,
210
227
  };
211
228
  };
212
229
  transformSearchResponse.sorting = function (response) {
@@ -121,94 +121,110 @@ transformSearchResponse.filters = (response) => {
121
121
  transformSearchResponse.facets = (response, request = {}) => {
122
122
  const filters = request.filters || [];
123
123
  const facets = response?.facets || [];
124
- return {
125
- facets: facets.map((facet) => {
126
- let transformedFacet = {
127
- field: facet.field,
128
- type: 'value',
129
- filtered: Boolean(facet.facet_active),
130
- };
131
- if (facet.step) {
132
- if (facet.range) {
133
- transformedFacet = {
134
- ...transformedFacet,
135
- type: 'range',
136
- step: facet.step,
137
- range: {
138
- // TODO: change to null
139
- low: facet.range[0] == '*' ? undefined : +facet.range[0],
140
- high: facet.range[1] == '*' ? undefined : +facet.range[1],
141
- },
142
- };
143
- }
144
- if (facet.active && typeof facet.active != 'boolean' && facet.active.length > 1) {
145
- transformedFacet.active = {
124
+ const limit = request?.facets?.limit;
125
+ const valueLimit = request?.facets?.valueLimit;
126
+ let transformedFacets = facets.map((facet) => {
127
+ let transformedFacet = {
128
+ field: facet.field,
129
+ type: 'value',
130
+ filtered: Boolean(facet.facet_active),
131
+ };
132
+ if (facet.step) {
133
+ if (facet.range) {
134
+ transformedFacet = {
135
+ ...transformedFacet,
136
+ type: 'range',
137
+ step: facet.step,
138
+ range: {
146
139
  // TODO: change to null
147
- low: facet.active[0] == '*' ? undefined : +facet.active[0],
148
- high: facet.active[1] == '*' ? undefined : +facet.active[1],
149
- };
150
- }
140
+ low: facet.range[0] == '*' ? undefined : +facet.range[0],
141
+ high: facet.range[1] == '*' ? undefined : +facet.range[1],
142
+ },
143
+ };
151
144
  }
152
- else if (facet.values instanceof Array) {
153
- if (facet.type == 'hierarchy') {
154
- transformedFacet.type = 'value';
155
- transformedFacet.values = (facet.values || []).map((value) => {
156
- return {
157
- filtered: Boolean(value.active),
158
- value: value.value,
159
- label: value.label,
160
- count: value.count,
161
- };
162
- });
163
- const filterSelected = filters.find((f) => f.field == facet.field);
164
- const newValues = [];
165
- if (filterSelected && !filterSelected.background) {
166
- const valueLevels = filterSelected.value?.split(facet.hierarchyDelimiter || '>');
167
- if (valueLevels) {
168
- for (let i = valueLevels.length - 1; i >= 0; i--) {
169
- const valueSplit = valueLevels.slice(0, i + 1);
170
- const value = valueSplit.join(facet.hierarchyDelimiter);
171
- newValues.unshift({
172
- value,
173
- filtered: value == filterSelected.value,
174
- label: valueSplit[valueSplit.length - 1],
175
- });
176
- }
145
+ if (facet.active && typeof facet.active != 'boolean' && facet.active.length > 1) {
146
+ transformedFacet.active = {
147
+ // TODO: change to null
148
+ low: facet.active[0] == '*' ? undefined : +facet.active[0],
149
+ high: facet.active[1] == '*' ? undefined : +facet.active[1],
150
+ };
151
+ }
152
+ }
153
+ else if (facet.values instanceof Array) {
154
+ if (facet.type == 'hierarchy') {
155
+ transformedFacet.type = 'value';
156
+ transformedFacet.values = (facet.values || []).map((value) => {
157
+ return {
158
+ filtered: Boolean(value.active),
159
+ value: value.value,
160
+ label: value.label,
161
+ count: value.count,
162
+ };
163
+ });
164
+ const filterSelected = filters.find((f) => f.field == facet.field);
165
+ const newValues = [];
166
+ if (filterSelected && !filterSelected.background) {
167
+ const valueLevels = filterSelected.value?.split(facet.hierarchyDelimiter || '>');
168
+ if (valueLevels) {
169
+ for (let i = valueLevels.length - 1; i >= 0; i--) {
170
+ const valueSplit = valueLevels.slice(0, i + 1);
171
+ const value = valueSplit.join(facet.hierarchyDelimiter);
172
+ newValues.unshift({
173
+ value,
174
+ filtered: value == filterSelected.value,
175
+ label: valueSplit[valueSplit.length - 1],
176
+ });
177
177
  }
178
- newValues.unshift({
179
- value: null,
180
- filtered: false,
181
- label: 'View All',
182
- });
183
178
  }
184
- transformedFacet.values = newValues.concat(transformedFacet.values);
185
- }
186
- else if (facet.values[0].type == 'value') {
187
- transformedFacet.type = 'value';
188
- transformedFacet.values = facet.values.map((value) => {
189
- return {
190
- filtered: value.active,
191
- value: value.value,
192
- label: value.label,
193
- count: value.count,
194
- };
195
- });
196
- }
197
- else if (facet.values[0].type == 'range') {
198
- transformedFacet.type = 'range-buckets';
199
- transformedFacet.values = facet.values.map((value) => {
200
- return {
201
- filtered: value.active,
202
- low: value.low == '*' ? null : value.low ? +value.low : null,
203
- high: value.high == '*' ? null : value.high ? +value.high : null,
204
- label: value.label,
205
- count: value.count,
206
- };
179
+ newValues.unshift({
180
+ value: null,
181
+ filtered: false,
182
+ label: 'View All',
207
183
  });
208
184
  }
185
+ transformedFacet.values = newValues.concat(transformedFacet.values);
209
186
  }
210
- return transformedFacet;
211
- }),
187
+ else if (facet.values[0].type == 'value') {
188
+ transformedFacet.type = 'value';
189
+ transformedFacet.values = facet.values.map((value) => {
190
+ return {
191
+ filtered: value.active,
192
+ value: value.value,
193
+ label: value.label,
194
+ count: value.count,
195
+ };
196
+ });
197
+ }
198
+ else if (facet.values[0].type == 'range') {
199
+ transformedFacet.type = 'range-buckets';
200
+ transformedFacet.values = facet.values.map((value) => {
201
+ return {
202
+ filtered: value.active,
203
+ low: value.low == '*' ? null : value.low ? +value.low : null,
204
+ high: value.high == '*' ? null : value.high ? +value.high : null,
205
+ label: value.label,
206
+ count: value.count,
207
+ };
208
+ });
209
+ }
210
+ }
211
+ return transformedFacet;
212
+ });
213
+ // limit facets based on request
214
+ if (limit) {
215
+ transformedFacets = transformedFacets.slice(0, limit);
216
+ }
217
+ // limit facet values based on request
218
+ if (valueLimit) {
219
+ transformedFacets = transformedFacets.map((facet) => {
220
+ if (facet.values) {
221
+ facet.values = facet.values.slice(0, valueLimit);
222
+ }
223
+ return facet;
224
+ });
225
+ }
226
+ return {
227
+ facets: transformedFacets,
212
228
  };
213
229
  };
214
230
  transformSearchResponse.sorting = (response) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@searchspring/snap-client",
3
- "version": "0.46.0",
3
+ "version": "0.47.0",
4
4
  "description": "Snap Client",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -20,12 +20,12 @@
20
20
  "test:watch": "jest --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@searchspring/snap-toolbox": "^0.46.0",
23
+ "@searchspring/snap-toolbox": "^0.47.0",
24
24
  "deepmerge": "4.3.1"
25
25
  },
26
26
  "sideEffects": false,
27
27
  "files": [
28
28
  "dist/**/*"
29
29
  ],
30
- "gitHead": "b92fc5fe0dd848d4ccdd6242dce7a70be53cb99c"
30
+ "gitHead": "a63e30a2be1a74dabf22063eddb28e81ef1b1aa1"
31
31
  }