@211la/search-client 0.13.0 → 0.13.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.
package/dist/index.js CHANGED
@@ -60,16 +60,6 @@ function __generator(thisArg, body) {
60
60
  } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
61
61
  if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
62
62
  }
63
- }
64
-
65
- function __spreadArray(to, from, pack) {
66
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
67
- if (ar || !(i in from)) {
68
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
69
- ar[i] = from[i];
70
- }
71
- }
72
- return to.concat(ar || from);
73
63
  }
74
64
 
75
65
  var INDEX_NAME = 'instant_search';
@@ -140,7 +130,7 @@ function sanitizeForES(value) {
140
130
  return value
141
131
  .split(' ')
142
132
  .filter(Boolean)
143
- .map(function (term) { return sanitizeKeyword(term) + "*"; })
133
+ .map(function (term) { return "".concat(sanitizeKeyword(term), "*"); })
144
134
  .join(' ');
145
135
  }
146
136
  var keyword = (function (options, settings) {
@@ -150,14 +140,14 @@ var keyword = (function (options, settings) {
150
140
  }
151
141
  var splittedKeyword = options.query.split(':');
152
142
  var sanitizedKeyword = splittedKeyword.length > 1
153
- ? splittedKeyword[0] + ":" + sanitizeForES(splittedKeyword[1])
143
+ ? "".concat(splittedKeyword[0], ":").concat(sanitizeForES(splittedKeyword[1]))
154
144
  : sanitizeForES(options.query);
155
145
  var fields = options.restrictSearchableAttributes
156
146
  ? options.restrictSearchableAttributes
157
147
  : (_a = settings.keywordSearchFields) !== null && _a !== void 0 ? _a : [];
158
148
  var weightedFields = fields.map(function (field) {
159
149
  if (settings.fieldSettings && settings.fieldSettings[field]) {
160
- return field + "^" + settings.fieldSettings[field].boost;
150
+ return "".concat(field, "^").concat(settings.fieldSettings[field].boost);
161
151
  }
162
152
  return field;
163
153
  });
@@ -177,14 +167,28 @@ var sanitizeFilterItem = function (item) {
177
167
  sanitizedValue = sanitizedValue
178
168
  .split(' ')
179
169
  .filter(Boolean)
180
- .map(function (term) { return "" + term; })
170
+ .map(function (term) { return "".concat(term); })
181
171
  .join(' ');
182
- return key + ":" + sanitizedValue;
172
+ return "".concat(key, ":").concat(sanitizedValue);
173
+ };
174
+ var parseFilters = function (filters) {
175
+ if (typeof filters === 'string') {
176
+ return filters;
177
+ }
178
+ return filters
179
+ .map(function (item) {
180
+ if (typeof item === 'string') {
181
+ return sanitizeFilterItem(item);
182
+ }
183
+ var sanitizedItems = item.map(function (i) { return sanitizeFilterItem(i); });
184
+ return "(".concat(sanitizedItems.join(' OR '), ")");
185
+ })
186
+ .join(' AND ');
183
187
  };
184
188
  var normalizeCanadianPostalCode = function (postalCode) {
185
189
  var match = postalCode.match(/^([A-Z]\d[A-Z])[\s-]?(\d[A-Z]\d)$/);
186
190
  if (match) {
187
- return match[1] + " " + match[2];
191
+ return "".concat(match[1], " ").concat(match[2]);
188
192
  }
189
193
  return null;
190
194
  };
@@ -192,7 +196,7 @@ var buildZipCodeTermQuery = function (zipCode) {
192
196
  var normalizedPostalCode = normalizeCanadianPostalCode(zipCode);
193
197
  if (normalizedPostalCode) {
194
198
  var zipPrefix = normalizedPostalCode.split(' ')[0];
195
- var wildcardZip = zipPrefix + " ***";
199
+ var wildcardZip = "".concat(zipPrefix, " ***");
196
200
  return {
197
201
  bool: {
198
202
  should: [
@@ -217,86 +221,43 @@ var buildZipCodeTermQuery = function (zipCode) {
217
221
  },
218
222
  };
219
223
  };
220
- var isZipCodeFilter = function (filter) {
221
- return filter.includes('metadata.serviceAreaZipCodes:');
222
- };
223
- var extractZipCodeValue = function (filter) {
224
- var match = filter.match(/metadata\.serviceAreaZipCodes:"([^"]+)"/);
225
- return match ? match[1] : null;
226
- };
227
- var buildQueryFromFilters = function (filters, zipCodeQuery) {
228
- var queries = [];
229
- if (filters.length > 0) {
230
- var queryStringParts = [];
231
- for (var _i = 0, filters_1 = filters; _i < filters_1.length; _i++) {
232
- var item = filters_1[_i];
233
- if (typeof item === 'string') {
234
- queryStringParts.push(sanitizeFilterItem(item));
235
- }
236
- else {
237
- var sanitizedItems = item.map(function (i) { return sanitizeFilterItem(i); });
238
- queryStringParts.push("(" + sanitizedItems.join(' OR ') + ")");
239
- }
240
- }
241
- if (queryStringParts.length > 0) {
242
- queries.push({
243
- query_string: {
244
- query: queryStringParts.join(' AND '),
245
- },
246
- });
247
- }
248
- }
249
- if (zipCodeQuery) {
250
- queries.push(zipCodeQuery);
251
- }
252
- if (queries.length === 0) {
253
- return null;
254
- }
255
- if (queries.length === 1) {
256
- return queries[0];
257
- }
258
- return {
259
- bool: {
260
- must: queries,
261
- },
262
- };
263
- };
264
224
  var facetFilters = (function (facetFilters) {
265
225
  if (!facetFilters || !facetFilters.length) {
266
226
  return null;
267
227
  }
268
- if (typeof facetFilters === 'string') {
269
- if (isZipCodeFilter(facetFilters)) {
270
- var zipCodeValue_1 = extractZipCodeValue(facetFilters);
271
- if (zipCodeValue_1) {
272
- var normalizedZipCode = zipCodeValue_1.toUpperCase().trim();
273
- return buildZipCodeTermQuery(normalizedZipCode);
274
- }
275
- }
276
- return {
277
- query_string: {
278
- query: facetFilters,
279
- },
280
- };
281
- }
282
- var zipCodeValue = null;
283
- var otherFilters = [];
284
- for (var _i = 0, facetFilters_1 = facetFilters; _i < facetFilters_1.length; _i++) {
285
- var item = facetFilters_1[_i];
286
- if (typeof item === 'string' && isZipCodeFilter(item)) {
287
- var extracted = extractZipCodeValue(item);
288
- if (extracted && !zipCodeValue) {
289
- zipCodeValue = extracted;
228
+ var parsedFilters = parseFilters(facetFilters);
229
+ if (parsedFilters.includes('metadata.serviceAreaZipCodes')) {
230
+ var match = parsedFilters.match(/metadata\.serviceAreaZipCodes:"([^"]+)"/);
231
+ if (match) {
232
+ var zipCode = match[1].toUpperCase().trim();
233
+ var zipCodeQuery = buildZipCodeTermQuery(zipCode);
234
+ var remainingFilters = parsedFilters
235
+ .replace(/\(metadata\.serviceAreaZipCodes:"[^"]+"\)\s+AND\s+/g, '')
236
+ .replace(/\s+AND\s+\(metadata\.serviceAreaZipCodes:"[^"]+"\)/g, '')
237
+ .replace(/\(metadata\.serviceAreaZipCodes:"[^"]+"\)/g, '')
238
+ .trim();
239
+ if (remainingFilters) {
240
+ return {
241
+ bool: {
242
+ must: [
243
+ {
244
+ query_string: {
245
+ query: remainingFilters,
246
+ },
247
+ },
248
+ zipCodeQuery,
249
+ ],
250
+ },
251
+ };
290
252
  }
291
- }
292
- else {
293
- otherFilters.push(Array.isArray(item) ? __spreadArray([], item) : item);
253
+ return zipCodeQuery;
294
254
  }
295
255
  }
296
- var zipCodeQuery = zipCodeValue
297
- ? buildZipCodeTermQuery(zipCodeValue.toUpperCase().trim())
298
- : undefined;
299
- return buildQueryFromFilters(otherFilters, zipCodeQuery);
256
+ return {
257
+ query_string: {
258
+ query: parsedFilters,
259
+ },
260
+ };
300
261
  });
301
262
 
302
263
  var buildElasticSearchQuery = function (settings, instantSearchParams) {
@@ -371,7 +332,7 @@ var buildQueryParams = function (settings, instantSearchParams) {
371
332
  query.aggregations = JSON.stringify(instantSearchParams.facets.reduce(function (aggregations, facet) {
372
333
  aggregations[facet] = {
373
334
  terms: {
374
- field: facet + ".keyword",
335
+ field: "".concat(facet, ".keyword"),
375
336
  min_doc_count: (instantSearchParams === null || instantSearchParams === void 0 ? void 0 : instantSearchParams.facetMinDocCount) || 0,
376
337
  size: 100,
377
338
  },
@@ -407,7 +368,7 @@ var wrapSubstringInTags = function (_a) {
407
368
  var text = _a.text, start = _a.start, length = _a.length, preTag = _a.preTag, postTag = _a.postTag;
408
369
  var before = text.slice(0, start);
409
370
  var after = text.slice(start + length);
410
- return "" + before + preTag + text.slice(start, start + length) + postTag + after;
371
+ return "".concat(before).concat(preTag).concat(text.slice(start, start + length)).concat(postTag).concat(after);
411
372
  };
412
373
  var matchTextWithQuery = function (value, query) {
413
374
  var keyword = query.options.query;
@@ -462,7 +423,7 @@ var highlight = function (query, hit) {
462
423
  deepSet(_highlightResult, field, matchTextWithQuery(value, query));
463
424
  }
464
425
  else {
465
- console.warn("The value of field \"" + field + "\" is not a string or an array of strings. Skipping highlighting for this field.");
426
+ console.warn("The value of field \"".concat(field, "\" is not a string or an array of strings. Skipping highlighting for this field."));
466
427
  }
467
428
  });
468
429
  if (query.isSearchableAttributesRestricted()) {
@@ -557,10 +518,10 @@ var SearchClient = (function () {
557
518
  if (!this.settings.token) {
558
519
  throw new Error('You must provide a valid SearchApi or PublicSearchApi token. Visit https://admin.211cs.org to create one.');
559
520
  }
560
- return [4, fetch("" + this.settings.endpoint + this.settings.searchUri, {
521
+ return [4, fetch("".concat(this.settings.endpoint).concat(this.settings.searchUri), {
561
522
  headers: {
562
523
  cache: 'no-cache',
563
- authorization: "SearchApi " + this.settings.token,
524
+ authorization: "SearchApi ".concat(this.settings.token),
564
525
  'content-type': 'application/json',
565
526
  },
566
527
  method: 'POST',
@@ -570,7 +531,7 @@ var SearchClient = (function () {
570
531
  response = _a.sent();
571
532
  if (response.status !== 200) {
572
533
  text = response.text();
573
- throw new Error("Unexpected status " + response.status + ": " + text);
534
+ throw new Error("Unexpected status ".concat(response.status, ": ").concat(text));
574
535
  }
575
536
  return [2, response.json()];
576
537
  }
@@ -727,7 +688,7 @@ var makeFieldSearch = function (exact, type) { return function (props) {
727
688
  var suffix = exact ? '' : '*';
728
689
  var init = function (opts) {
729
690
  var helper = opts.helper;
730
- container.innerHTML = "<input class=\"ais-SearchBox-input\" type=" + inputType + " placeholder=" + placeholder + " autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" maxlength=\"512\">";
691
+ container.innerHTML = "<input class=\"ais-SearchBox-input\" type=".concat(inputType, " placeholder=").concat(placeholder, " autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" maxlength=\"512\">");
731
692
  var input = container.querySelector('input');
732
693
  input.addEventListener('input', debouncer(function (value) {
733
694
  helper.clearRefinements(attribute);
@@ -745,8 +706,8 @@ var makeFieldSearch = function (exact, type) { return function (props) {
745
706
  };
746
707
  }; };
747
708
 
748
- var renderField = function (field) { return "<li class=\"ais-RefinementList-item\">\n <label class=\"ais-RefinementList-label\">\n <input class=\"ais-RefinementList-checkbox\" type=\"checkbox\" value=\"" + field.fieldName + "\" checked />\n <span class=\"ais-RefinementList-labelText\">" + field.title + "</span>\n </label>\n </li>"; };
749
- var renderContainer$1 = function (children) { return "<div class=\"ais-RefinementList\">\n <ul class=\"ais-RefinementList-list\">\n " + children + "\n </ul>\n </div>"; };
709
+ var renderField = function (field) { return "<li class=\"ais-RefinementList-item\">\n <label class=\"ais-RefinementList-label\">\n <input class=\"ais-RefinementList-checkbox\" type=\"checkbox\" value=\"".concat(field.fieldName, "\" checked />\n <span class=\"ais-RefinementList-labelText\">").concat(field.title, "</span>\n </label>\n </li>"); };
710
+ var renderContainer$1 = function (children) { return "<div class=\"ais-RefinementList\">\n <ul class=\"ais-RefinementList-list\">\n ".concat(children, "\n </ul>\n </div>"); };
750
711
  var searchBoxFields = function (params) { return ({
751
712
  init: function (initOptions) {
752
713
  params.container.innerHTML = renderContainer$1(params.attributes.map(function (field) { return renderField(field); }).join('\n'));
@@ -778,7 +739,7 @@ var placeAutocomplete = function (opts) {
778
739
  var container = opts.container, placeholder = opts.placeholder;
779
740
  var init = function (props) {
780
741
  var helper = props.helper;
781
- container.innerHTML = "<input class=\"ais-SearchBox-input\" type=\"search\" placeholder=" + placeholder + "/>";
742
+ container.innerHTML = "<input class=\"ais-SearchBox-input\" type=\"search\" placeholder=".concat(placeholder, "/>");
782
743
  var input = container.querySelector('input[type=search]');
783
744
  var autocomplete = new google.maps.places.Autocomplete(input);
784
745
  autocomplete.setFields([
@@ -799,12 +760,12 @@ var placeAutocomplete = function (opts) {
799
760
  }
800
761
  geocoder.geocode({ placeId: place.place_id }, function (results, status) {
801
762
  if (status !== 'OK') {
802
- console.warn("Geocoder failed due to: " + status);
763
+ console.warn("Geocoder failed due to: ".concat(status));
803
764
  return;
804
765
  }
805
766
  var location = results[0].geometry.location;
806
767
  helper
807
- .setQueryParameter('aroundLatLng', location.lat() + ", " + location.lng())
768
+ .setQueryParameter('aroundLatLng', "".concat(location.lat(), ", ").concat(location.lng()))
808
769
  .search();
809
770
  });
810
771
  });
@@ -814,8 +775,8 @@ var placeAutocomplete = function (opts) {
814
775
  };
815
776
  };
816
777
 
817
- var renderMileItem = function (n) { return "<li class=\"ais-RefinementList-item\">\n <label class=\"ais-RefinementList-label\">\n <input class=\"ais-RefinementList-checkbox\" type=\"checkbox\" value=" + n + " />\n <span class=\"ais-RefinementList-labelText\">" + n + " miles</span>\n </label>\n </li>"; };
818
- var renderContainer = function (children) { return "<div class=\"ais-RefinementList\">\n <ul class=\"ais-RefinementList-list\">\n " + children + "\n </ul>\n </div>"; };
778
+ var renderMileItem = function (n) { return "<li class=\"ais-RefinementList-item\">\n <label class=\"ais-RefinementList-label\">\n <input class=\"ais-RefinementList-checkbox\" type=\"checkbox\" value=".concat(n, " />\n <span class=\"ais-RefinementList-labelText\">").concat(n, " miles</span>\n </label>\n </li>"); };
779
+ var renderContainer = function (children) { return "<div class=\"ais-RefinementList\">\n <ul class=\"ais-RefinementList-list\">\n ".concat(children, "\n </ul>\n </div>"); };
819
780
  var locationDistanceFilter = function (props) {
820
781
  var container = props.container;
821
782
  var miles = props.miles || [5, 10, 20, 50];
@@ -938,9 +899,9 @@ var createTaxonomyRefinementListRenderer = function (widgetParams) { return ({
938
899
  return item.type === 'disjunctive' && item.name === code;
939
900
  });
940
901
  });
941
- return "\n <li>\n <label>\n <input\n type=\"checkbox\"\n value=\"" + value + "\"\n " + (isRefined ? 'checked' : '') + "\n />\n " + staticLabel + "\n </label>\n </li>\n ";
902
+ return "\n <li>\n <label>\n <input\n type=\"checkbox\"\n value=\"".concat(value, "\"\n ").concat(isRefined ? 'checked' : '', "\n />\n ").concat(staticLabel, "\n </label>\n </li>\n ");
942
903
  });
943
- container.innerHTML = "<ul>" + list.join('') + "</ul>";
904
+ container.innerHTML = "<ul>".concat(list.join(''), "</ul>");
944
905
  },
945
906
  dispose: function () { },
946
907
  }); };
@@ -12,4 +12,4 @@ var SearchWidget=function(e){"use strict";
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{u(r.next(e))}catch(e){a(e)}}function s(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}u((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(a){return function(s){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,s])}}}function i(e,t,n){if(n||2===arguments.length)for(var r,i=0,a=t.length;i<a;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||t)}var a=function(e){var t=e.indexOf(".");return-1===t?[e]:[e.slice(0,t),e.slice(t+1)]},o=function(e,t,n){var r=a(t);if(1!==r.length){var i=r[0],s=r[1];e[i]||(e[i]={}),o(e[i],s,n)}else e[r[0]]=n},s=function(e,t){var n=a(t);if(1===n.length){var r=e[n[0]];return void 0===r?null:r}var i=n[0],o=n[1],u=e[i];return u?s(u,o):null},u=function(e){return["+"," -","&&","||","!","(",")","{","}","[","]","^","~","*","?",":","/"].forEach((function(t){e=e.replaceAll(t," ")})),e.replaceAll(/\s+/g," ")};function c(e){return e.split(" ").filter(Boolean).map((function(e){return u(e)+"*"})).join(" ")}var l=function(e,n){var r;if(!e.query)return null;var i=e.query.split(":"),a=i.length>1?i[0]+":"+c(i[1]):c(e.query),o=(e.restrictSearchableAttributes?e.restrictSearchableAttributes:null!==(r=n.keywordSearchFields)&&void 0!==r?r:[]).map((function(e){return n.fieldSettings&&n.fieldSettings[e]?e+"^"+n.fieldSettings[e].boost:e}));return{query_string:t({query:a,default_operator:"AND"},o.length&&{fields:o})}},f=function(e){var t=e.indexOf(":");if(-1===t)return e;var n=e.substring(0,t),r=e.substring(t+1),i=u(r);return n+":"+(i=i.split(" ").filter(Boolean).map((function(e){return""+e})).join(" "))},d=function(e){var t,n=(t=e.match(/^([A-Z]\d[A-Z])[\s-]?(\d[A-Z]\d)$/))?t[1]+" "+t[2]:null;if(n){var r=n.split(" ")[0];return{bool:{should:[{term:{"metadata.serviceAreaZipCodes.keyword":n}},{term:{"metadata.serviceAreaZipCodes.keyword":r+" ***"}}],minimum_should_match:1}}}return{term:{"metadata.serviceAreaZipCodes.keyword":e}}},h=function(e){return e.includes("metadata.serviceAreaZipCodes:")},p=function(e){var t=e.match(/metadata\.serviceAreaZipCodes:"([^"]+)"/);return t?t[1]:null},g=function(e){if(!e||!e.length)return null;if("string"==typeof e){if(h(e)){var t=p(e);if(t){var n=t.toUpperCase().trim();return d(n)}}return{query_string:{query:e}}}for(var r=null,a=[],o=0,s=e;o<s.length;o++){var u=s[o];if("string"==typeof u&&h(u)){var c=p(u);c&&!r&&(r=c)}else a.push(Array.isArray(u)?i([],u):u)}return function(e,t){var n=[];if(e.length>0){for(var r=[],i=0,a=e;i<a.length;i++){var o=a[i];if("string"==typeof o)r.push(f(o));else{var s=o.map((function(e){return f(e)}));r.push("("+s.join(" OR ")+")")}}r.length>0&&n.push({query_string:{query:r.join(" AND ")}})}return t&&n.push(t),0===n.length?null:1===n.length?n[0]:{bool:{must:n}}}(a,r?d(r.toUpperCase().trim()):void 0)},m=function(e,t){var n,r=function(e,t){var n=[l(t,e),g(t.facetFilters)].filter((function(e){return null!==e}));return n.length?n:"*"}(e,t),i={query:"string"==typeof r?r:JSON.stringify(r)};e.networkId&&(i.networkId=e.networkId),e.sortByDistance&&(i.sortByDistance=e.sortByDistance),e.zipcode&&(i.zipcode=e.zipcode),t.filters&&(i.filters=JSON.stringify((n=t.filters)?n.map((function(e){var t,n;return"exists"===e.queryType?{exists:{field:e.field}}:"raw"===e.queryType?e.query:((t={})[e.queryType]=((n={})[e.field]=e.query,n),t)})).filter(Boolean):[]));var a=t.hitsPerPage||20;if(i.$limit=a,i.$skip=a&&a*t.page||0,t.aroundLatLng&&t.aroundRadius){var o=t.aroundLatLng.split(",",2).map((function(e){return parseFloat(e.trim())})),s=o[0],u=o[1];i.distance=Number(t.aroundRadius),i.distanceUnit="mi",i.lat=s,i.lon=u}return t.openNow&&(i.openAtDay=t.openAtDay,i.openAtMinute=t.openAtMinute),t.facets&&t.facets.length&&(i.aggregations=JSON.stringify(t.facets.reduce((function(e,n){return e[n]={terms:{field:n+".keyword",min_doc_count:(null==t?void 0:t.facetMinDocCount)||0,size:100}},e}),{}))),i},v=function(){function e(e,t){this.settings=e,this.options=t,this.body=this.getNexus211QueryParams()}return e.prototype.getKeywordSearchFields=function(){return this.options.restrictSearchableAttributes?this.options.restrictSearchableAttributes:this.settings.keywordSearchFields},e.prototype.isSearchableAttributesRestricted=function(){var e;return(null===(e=this.options.restrictSearchableAttributes)||void 0===e?void 0:e.length)>0},e.prototype.getNexus211QueryParams=function(){return m(this.settings,this.options)},e}(),y=function(e,t){var n=t.options.query;if(!e)return{matchLevel:"none",matchedWords:[],value:e};var r="";"string"==typeof e?r=e:Array.isArray(e)&&e.length>0&&(r=e.join(" "));var i,a,o,s,u,c,l,f,d=r.toLowerCase().search(n.toLowerCase());return-1===d?{matchLevel:"none",matchedWords:[],value:e}:{fullyHighlighted:0===d&&r.length===n.length,matchLevel:"full",matchedWords:[n],value:(i={text:r,start:d,length:n.length,preTag:t.options.highlightPreTag,postTag:t.options.highlightPostTag},a=i.text,o=i.start,s=i.length,u=i.preTag,c=i.postTag,l=a.slice(0,o),f=a.slice(o+s),""+l+u+a.slice(o,o+s)+c+f)}},b=function(e,n){return n.map((function(n){return function(e,n){var r={};return e.getKeywordSearchFields().forEach((function(t){var i=s(n,t);i&&(Array.isArray(i)&&i.length>0&&"string"==typeof i[0]?o(r,t,i.map((function(t){return y(t,e)}))):"string"==typeof i?o(r,t,y(i,e)):console.warn('The value of field "'+t+'" is not a string or an array of strings. Skipping highlighting for this field.'))})),e.isSearchableAttributesRestricted()&&e.settings.keywordSearchFields.forEach((function(e){s(r,e)||o(r,e,{matchLevel:"none",matchedWords:[],value:s(n,e)})})),t(t({},n),{_highlightResult:r})}(e,t({objectID:n.id},n))}))},S=function(e){return e.aggregations?Object.entries(e.aggregations).reduce((function(e,t){var n=t[0],r=t[1];return e[n]=r.buckets.reduce((function(e,t){return e[t.key]=t.doc_count,e}),{}),e}),{}):{}},w=function(e,t){return{results:[{index:"instant_search",query:e.options.query,params:e.body.query,nbHits:t.__meta.total,hits:b(e,t.data),hitsPerPage:+t.__meta.perPage,page:e.options.page,nbPages:t.__meta.perPage?Math.ceil(t.__meta.total/t.__meta.perPage):0,processingTimeMS:1,exhaustiveNbHits:!0,exhaustiveFacetsCount:!0,facets:S(t)}]}},L=function(){function e(e){this.settings=t(t({},this.getDefaultSettings()),e)}return e.prototype.getDefaultSettings=function(){return{endpoint:"https://admin.211cs.org",searchUri:"/api/search",keywordSearchFields:["service.name","site.name","site.agency.name","site.agency.description"]}},e.prototype.search=function(e){return n(this,void 0,void 0,(function(){var t,n;return r(this,(function(r){switch(r.label){case 0:return t=new v(this.settings,e[0].params),[4,this.makeSearchRequest(t.body)];case 1:return n=r.sent(),[2,w(t,n)]}}))}))},e.prototype.makeSearchRequest=function(e){return n(this,void 0,void 0,(function(){var t,n;return r(this,(function(r){switch(r.label){case 0:if(!this.settings.token)throw new Error("You must provide a valid SearchApi or PublicSearchApi token. Visit https://admin.211cs.org to create one.");return[4,fetch(""+this.settings.endpoint+this.settings.searchUri,{headers:{cache:"no-cache",authorization:"SearchApi "+this.settings.token,"content-type":"application/json"},method:"POST",body:JSON.stringify({search:e})})];case 1:if(200!==(t=r.sent()).status)throw n=t.text(),new Error("Unexpected status "+t.status+": "+n);return[2,t.json()]}}))}))},e.prototype.searchForFacetValues=function(e){return n(this,void 0,void 0,(function(){var i=this;return r(this,(function(a){return[2,Promise.all(e.map((function(a){return n(i,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return n=new v(this.settings,t(t({},e[0].params),{facets:[e[0].params.facetName],hitsPerPage:0})),[4,this.makeSearchRequest(n.body)];case 1:return[2,{facetHits:r.sent().aggregations[a.params.facetName].buckets.map((function(e){return{value:e.key,highlighted:e.key,count:e.doc_count,isRefined:!1}})),exhaustiveFacetsCount:!0,processingTimeMS:1}]}}))}))})))]}))}))},e.prototype.addAlgoliaAgent=function(e,t){console.warn("Unhandled addAlgoliaAgent",e,t)},e.prototype.clearCache=function(){return console.warn("Unhandled clearCache"),Promise.resolve()},e}(),k=function(e){switch(typeof e){case"string":return parseFloat(e);case"number":return e;default:return null}};var R=function(e){if(!e.addresses||0===e.addresses.length)return null;var t=e.addresses[0];return{lat:k(t.latitude),lng:k(t.longitude),hit:e}},x=function(e,t){return function(n){var r,i=n.container,a=n.attribute,o=n.placeholder||"",s=(r=n.debounce||200,function(e){var t=null;return function(n){null!==t&&(clearTimeout(t),t=null);var i=n.target.value;t=setTimeout((function(){e(i),t=null}),r)}}),u=t&&"number"===t?"number":"search",c=e?"":"*";return{init:function(e){var t=e.helper;i.innerHTML='<input class="ais-SearchBox-input" type='+u+" placeholder="+o+' autocomplete="off" autocorrect="off" autocapitalize="off" maxlength="512">',i.querySelector("input").addEventListener("input",s((function(e){t.clearRefinements(a),e&&t.addFacetRefinement(a,[e+c]),t.search()})))},getWidgetSearchParameters:function(e){return e.addFacet(a)}}}},A=function(e){return'<li class="ais-RefinementList-item">\n <label class="ais-RefinementList-label">\n <input class="ais-RefinementList-checkbox" type="checkbox" value='+e+' />\n <span class="ais-RefinementList-labelText">'+e+" miles</span>\n </label>\n </li>"},P=x(!0,"number"),q=x(!0,"string"),_=x(!1,"string"),T=function(){};function F(e,n){return void 0===n&&(n=T),function(r){var i=r.attribute,a=r.transformItems,o=void 0===a?function(e){return e}:a;return{$$type:"cs.taxonomyRefinementList",init:function(n){e(t(t({},this.getWidgetRenderState(n)),{instantSearchInstance:n.instantSearchInstance}),!0)},render:function(n){e(t(t({},this.getWidgetRenderState(n)),{instantSearchInstance:n.instantSearchInstance}),!1)},getRenderState:function(e,n){var r;return t(t({},e),{taxonomyRefinementList:t(t({},e.taxonomyRefinementList),(r={},r[i]=this.getWidgetRenderState(n),r))})},getWidgetRenderState:function(e){var t=e.results,n=e.helper,a=function(e){e.split("|").forEach((function(e){return n.isDisjunctiveRefined(i,e)?n.removeDisjunctiveFacetRefinement(i,e):n.addDisjunctiveFacetRefinement(i,e)})),n.search()};return t?{items:o(t.getRefinements(i)),refine:a,widgetParams:r}:{items:[],refine:a,widgetParams:r}},getWidgetUiState:function(e,n){var r,a=n.searchParameters;return t(t({},e),{taxonomyRefinementList:t(t({},e.taxonomyRefinementList),(r={},r[i]=a.getRefinements(i),r))})},getWidgetSearchParameters:function(e){return e.addDisjunctiveFacet(i)},dispose:function(){n()}}}}var j=function(e){return{render:function(t,n){var r=t.items,i=t.refine,a="string"==typeof e.container?document.querySelector(e.container):e.container;if(n)a.addEventListener("click",(function(e){if(e.target instanceof HTMLElement){var t=e.target.closest("input");t&&i(t.value)}}));else{var o=e.items.map((function(e){var t=e.label,n=e.value,i=n.split("|").every((function(e){return r.find((function(t){return"disjunctive"===t.type&&t.name===e}))}));return'\n <li>\n <label>\n <input\n type="checkbox"\n value="'+n+'"\n '+(i?"checked":"")+"\n />\n "+t+"\n </label>\n </li>\n "}));a.innerHTML="<ul>"+o.join("")+"</ul>"}},dispose:function(){}}};return e.SearchClient=L,e.connectTaxonomyRefinementList=F,e.createTaxonomyRefinementListRenderer=j,e.exactNumberFieldSearch=P,e.exactStringFieldSearch=q,e.googleMaps=function(e){var t=e.container,n=e.renderInfo,r=e.transformHits||R,i="string"==typeof t?document.querySelector(t):t,a=null,o={},s=new google.maps.InfoWindow;return{init:function(){a=new google.maps.Map(i,{})},render:function(e){if(a){Object.keys(o).forEach((function(e){o[e].marker.setMap(null),delete o[e]}));var t=function(e,t){return e.map(t).filter((function(e){return null!=e&&null!==e.lat&&null!==e.lng}))}(e.results.hits,r);t.forEach((function(e){if(!o[e.hit.id]){var t=new google.maps.Marker({position:{lat:e.lat,lng:e.lng},map:a});n&&t.addListener("click",(function(){s.setContent(n(e)),s.open(a,t)})),t.setMap(a),o[e.hit.id]={marker:t,data:e}}})),function(e,t){e.fitBounds(t.reduce((function(e,t){return e.extend(new google.maps.LatLng(t.lat,t.lng)),e}),new google.maps.LatLngBounds))}(a,t)}},dispose:function(e){},getWidgetState:function(e,t){return e},getWidgetSearchParameters:function(e,t){return e}}},e.locationDistanceFilter=function(e){var t=e.container,n=e.miles||[5,10,20,50];return{init:function(e){var r=e.helper,i=n.map(A).join("\n");t.innerHTML='<div class="ais-RefinementList">\n <ul class="ais-RefinementList-list">\n '+i+"\n </ul>\n </div>";var a=t.querySelectorAll("input[type=checkbox]");a.forEach((function(e){e.addEventListener("change",(function(t){var n=!1;a.forEach((function(t){t.value!==e.value&&(t.checked=!1),t.checked&&(n=!0)})),n?r.setQueryParameter("aroundRadius",t.target.value).search():r.setQueryParameter("aroundRadius").search()}))}))}}},e.makeFieldSearch=x,e.noop=T,e.placeAutocomplete=function(e){var t=e.container,n=e.placeholder;return{init:function(e){var r=e.helper;t.innerHTML='<input class="ais-SearchBox-input" type="search" placeholder='+n+"/>";var i=t.querySelector("input[type=search]"),a=new google.maps.places.Autocomplete(i);a.setFields(["place_id","geometry","name","formatted_address"]);var o=new google.maps.Geocoder;a.addListener("place_changed",(function(){var e=a.getPlace();""!==e.name?e.place_id&&o.geocode({placeId:e.place_id},(function(e,t){if("OK"===t){var n=e[0].geometry.location;r.setQueryParameter("aroundLatLng",n.lat()+", "+n.lng()).search()}else console.warn("Geocoder failed due to: "+t)})):r.setQueryParameter("aroundLatLng").search()}))}}},e.searchBoxFields=function(e){return{init:function(t){e.container.innerHTML='<div class="ais-RefinementList">\n <ul class="ais-RefinementList-list">\n '+e.attributes.map((function(e){return function(e){return'<li class="ais-RefinementList-item">\n <label class="ais-RefinementList-label">\n <input class="ais-RefinementList-checkbox" type="checkbox" value="'+e.fieldName+'" checked />\n <span class="ais-RefinementList-labelText">'+e.title+"</span>\n </label>\n </li>"}(e)})).join("\n")+"\n </ul>\n </div>";e.container.querySelectorAll("input[type=checkbox]").forEach((function(n){n.addEventListener("change",(function(){!function(){var n=e.container.querySelectorAll("input[type=checkbox]:checked");if(n.length){for(var r=[],i=0;i<n.length;i+=1)r.push(n[i].getAttribute("value"));t.helper.setQueryParameter("restrictSearchableAttributes",r)}else t.helper.setQueryParameter("restrictSearchableAttributes");t.helper.search()}()}))}))}}},e.stringFieldSearch=_,e.taxonomyRefinementList=function(e){var n=j(e),r=F(n.render,n.dispose);return t(t({},r(e)),{$$widgetType:"cs.taxonomyRefinementList"})},Object.defineProperty(e,"__esModule",{value:!0}),e}({});
15
+ ***************************************************************************** */var t=function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},t.apply(this,arguments)};function n(e,t,n,r){return new(n||(n=Promise))((function(i,a){function o(e){try{s(r.next(e))}catch(e){a(e)}}function c(e){try{s(r.throw(e))}catch(e){a(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,c)}s((r=r.apply(e,t||[])).next())}))}function r(e,t){var n,r,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:c(0),throw:c(1),return:c(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;o;)try{if(n=1,r&&(i=2&a[0]?r.return:a[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,a[1])).done)return i;switch(r=0,i&&(a=[2&a[0],i.value]),a[0]){case 0:case 1:i=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,r=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!i||a[1]>i[0]&&a[1]<i[3])){o.label=a[1];break}if(6===a[0]&&o.label<i[1]){o.label=i[1],i=a;break}if(i&&o.label<i[2]){o.label=i[2],o.ops.push(a);break}i[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],r=0}finally{n=i=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}var i=function(e){var t=e.indexOf(".");return-1===t?[e]:[e.slice(0,t),e.slice(t+1)]},a=function(e,t,n){var r=i(t);if(1!==r.length){var o=r[0],c=r[1];e[o]||(e[o]={}),a(e[o],c,n)}else e[r[0]]=n},o=function(e,t){var n=i(t);if(1===n.length){var r=e[n[0]];return void 0===r?null:r}var a=n[0],c=n[1],s=e[a];return s?o(s,c):null},c=function(e){return["+"," -","&&","||","!","(",")","{","}","[","]","^","~","*","?",":","/"].forEach((function(t){e=e.replaceAll(t," ")})),e.replaceAll(/\s+/g," ")};function s(e){return e.split(" ").filter(Boolean).map((function(e){return"".concat(c(e),"*")})).join(" ")}var u=function(e,n){var r;if(!e.query)return null;var i=e.query.split(":"),a=i.length>1?"".concat(i[0],":").concat(s(i[1])):s(e.query),o=(e.restrictSearchableAttributes?e.restrictSearchableAttributes:null!==(r=n.keywordSearchFields)&&void 0!==r?r:[]).map((function(e){return n.fieldSettings&&n.fieldSettings[e]?"".concat(e,"^").concat(n.fieldSettings[e].boost):e}));return{query_string:t({query:a,default_operator:"AND"},o.length&&{fields:o})}},l=function(e){var t=e.indexOf(":");if(-1===t)return e;var n=e.substring(0,t),r=e.substring(t+1),i=c(r);return i=i.split(" ").filter(Boolean).map((function(e){return"".concat(e)})).join(" "),"".concat(n,":").concat(i)},f=function(e){if(!e||!e.length)return null;var t,n="string"==typeof(t=e)?t:t.map((function(e){if("string"==typeof e)return l(e);var t=e.map((function(e){return l(e)}));return"(".concat(t.join(" OR "),")")})).join(" AND ");if(n.includes("metadata.serviceAreaZipCodes")){var r=n.match(/metadata\.serviceAreaZipCodes:"([^"]+)"/);if(r){var i=function(e){var t,n=(t=e.match(/^([A-Z]\d[A-Z])[\s-]?(\d[A-Z]\d)$/))?"".concat(t[1]," ").concat(t[2]):null;if(n){var r=n.split(" ")[0];return{bool:{should:[{term:{"metadata.serviceAreaZipCodes.keyword":n}},{term:{"metadata.serviceAreaZipCodes.keyword":"".concat(r," ***")}}],minimum_should_match:1}}}return{term:{"metadata.serviceAreaZipCodes.keyword":e}}}(r[1].toUpperCase().trim()),a=n.replace(/\(metadata\.serviceAreaZipCodes:"[^"]+"\)\s+AND\s+/g,"").replace(/\s+AND\s+\(metadata\.serviceAreaZipCodes:"[^"]+"\)/g,"").replace(/\(metadata\.serviceAreaZipCodes:"[^"]+"\)/g,"").trim();return a?{bool:{must:[{query_string:{query:a}},i]}}:i}}return{query_string:{query:n}}},d=function(e,t){var n,r=function(e,t){var n=[u(t,e),f(t.facetFilters)].filter((function(e){return null!==e}));return n.length?n:"*"}(e,t),i={query:"string"==typeof r?r:JSON.stringify(r)};e.networkId&&(i.networkId=e.networkId),e.sortByDistance&&(i.sortByDistance=e.sortByDistance),e.zipcode&&(i.zipcode=e.zipcode),t.filters&&(i.filters=JSON.stringify((n=t.filters)?n.map((function(e){var t,n;return"exists"===e.queryType?{exists:{field:e.field}}:"raw"===e.queryType?e.query:((t={})[e.queryType]=((n={})[e.field]=e.query,n),t)})).filter(Boolean):[]));var a=t.hitsPerPage||20;if(i.$limit=a,i.$skip=a&&a*t.page||0,t.aroundLatLng&&t.aroundRadius){var o=t.aroundLatLng.split(",",2).map((function(e){return parseFloat(e.trim())})),c=o[0],s=o[1];i.distance=Number(t.aroundRadius),i.distanceUnit="mi",i.lat=c,i.lon=s}return t.openNow&&(i.openAtDay=t.openAtDay,i.openAtMinute=t.openAtMinute),t.facets&&t.facets.length&&(i.aggregations=JSON.stringify(t.facets.reduce((function(e,n){return e[n]={terms:{field:"".concat(n,".keyword"),min_doc_count:(null==t?void 0:t.facetMinDocCount)||0,size:100}},e}),{}))),i},h=function(){function e(e,t){this.settings=e,this.options=t,this.body=this.getNexus211QueryParams()}return e.prototype.getKeywordSearchFields=function(){return this.options.restrictSearchableAttributes?this.options.restrictSearchableAttributes:this.settings.keywordSearchFields},e.prototype.isSearchableAttributesRestricted=function(){var e;return(null===(e=this.options.restrictSearchableAttributes)||void 0===e?void 0:e.length)>0},e.prototype.getNexus211QueryParams=function(){return d(this.settings,this.options)},e}(),p=function(e,t){var n=t.options.query;if(!e)return{matchLevel:"none",matchedWords:[],value:e};var r="";"string"==typeof e?r=e:Array.isArray(e)&&e.length>0&&(r=e.join(" "));var i,a,o,c,s,u,l,f,d=r.toLowerCase().search(n.toLowerCase());return-1===d?{matchLevel:"none",matchedWords:[],value:e}:{fullyHighlighted:0===d&&r.length===n.length,matchLevel:"full",matchedWords:[n],value:(i={text:r,start:d,length:n.length,preTag:t.options.highlightPreTag,postTag:t.options.highlightPostTag},a=i.text,o=i.start,c=i.length,s=i.preTag,u=i.postTag,l=a.slice(0,o),f=a.slice(o+c),"".concat(l).concat(s).concat(a.slice(o,o+c)).concat(u).concat(f))}},g=function(e,n){return n.map((function(n){return function(e,n){var r={};return e.getKeywordSearchFields().forEach((function(t){var i=o(n,t);i&&(Array.isArray(i)&&i.length>0&&"string"==typeof i[0]?a(r,t,i.map((function(t){return p(t,e)}))):"string"==typeof i?a(r,t,p(i,e)):console.warn('The value of field "'.concat(t,'" is not a string or an array of strings. Skipping highlighting for this field.')))})),e.isSearchableAttributesRestricted()&&e.settings.keywordSearchFields.forEach((function(e){o(r,e)||a(r,e,{matchLevel:"none",matchedWords:[],value:o(n,e)})})),t(t({},n),{_highlightResult:r})}(e,t({objectID:n.id},n))}))},m=function(e){return e.aggregations?Object.entries(e.aggregations).reduce((function(e,t){var n=t[0],r=t[1];return e[n]=r.buckets.reduce((function(e,t){return e[t.key]=t.doc_count,e}),{}),e}),{}):{}},v=function(e,t){return{results:[{index:"instant_search",query:e.options.query,params:e.body.query,nbHits:t.__meta.total,hits:g(e,t.data),hitsPerPage:+t.__meta.perPage,page:e.options.page,nbPages:t.__meta.perPage?Math.ceil(t.__meta.total/t.__meta.perPage):0,processingTimeMS:1,exhaustiveNbHits:!0,exhaustiveFacetsCount:!0,facets:m(t)}]}},y=function(){function e(e){this.settings=t(t({},this.getDefaultSettings()),e)}return e.prototype.getDefaultSettings=function(){return{endpoint:"https://admin.211cs.org",searchUri:"/api/search",keywordSearchFields:["service.name","site.name","site.agency.name","site.agency.description"]}},e.prototype.search=function(e){return n(this,void 0,void 0,(function(){var t,n;return r(this,(function(r){switch(r.label){case 0:return t=new h(this.settings,e[0].params),[4,this.makeSearchRequest(t.body)];case 1:return n=r.sent(),[2,v(t,n)]}}))}))},e.prototype.makeSearchRequest=function(e){return n(this,void 0,void 0,(function(){var t,n;return r(this,(function(r){switch(r.label){case 0:if(!this.settings.token)throw new Error("You must provide a valid SearchApi or PublicSearchApi token. Visit https://admin.211cs.org to create one.");return[4,fetch("".concat(this.settings.endpoint).concat(this.settings.searchUri),{headers:{cache:"no-cache",authorization:"SearchApi ".concat(this.settings.token),"content-type":"application/json"},method:"POST",body:JSON.stringify({search:e})})];case 1:if(200!==(t=r.sent()).status)throw n=t.text(),new Error("Unexpected status ".concat(t.status,": ").concat(n));return[2,t.json()]}}))}))},e.prototype.searchForFacetValues=function(e){return n(this,void 0,void 0,(function(){var i=this;return r(this,(function(a){return[2,Promise.all(e.map((function(a){return n(i,void 0,void 0,(function(){var n;return r(this,(function(r){switch(r.label){case 0:return n=new h(this.settings,t(t({},e[0].params),{facets:[e[0].params.facetName],hitsPerPage:0})),[4,this.makeSearchRequest(n.body)];case 1:return[2,{facetHits:r.sent().aggregations[a.params.facetName].buckets.map((function(e){return{value:e.key,highlighted:e.key,count:e.doc_count,isRefined:!1}})),exhaustiveFacetsCount:!0,processingTimeMS:1}]}}))}))})))]}))}))},e.prototype.addAlgoliaAgent=function(e,t){console.warn("Unhandled addAlgoliaAgent",e,t)},e.prototype.clearCache=function(){return console.warn("Unhandled clearCache"),Promise.resolve()},e}(),b=function(e){switch(typeof e){case"string":return parseFloat(e);case"number":return e;default:return null}};var S=function(e){if(!e.addresses||0===e.addresses.length)return null;var t=e.addresses[0];return{lat:b(t.latitude),lng:b(t.longitude),hit:e}},w=function(e,t){return function(n){var r,i=n.container,a=n.attribute,o=n.placeholder||"",c=(r=n.debounce||200,function(e){var t=null;return function(n){null!==t&&(clearTimeout(t),t=null);var i=n.target.value;t=setTimeout((function(){e(i),t=null}),r)}}),s=t&&"number"===t?"number":"search",u=e?"":"*";return{init:function(e){var t=e.helper;i.innerHTML='<input class="ais-SearchBox-input" type='.concat(s," placeholder=").concat(o,' autocomplete="off" autocorrect="off" autocapitalize="off" maxlength="512">'),i.querySelector("input").addEventListener("input",c((function(e){t.clearRefinements(a),e&&t.addFacetRefinement(a,[e+u]),t.search()})))},getWidgetSearchParameters:function(e){return e.addFacet(a)}}}},L=function(e){return'<li class="ais-RefinementList-item">\n <label class="ais-RefinementList-label">\n <input class="ais-RefinementList-checkbox" type="checkbox" value='.concat(e,' />\n <span class="ais-RefinementList-labelText">').concat(e," miles</span>\n </label>\n </li>")},k=w(!0,"number"),A=w(!0,"string"),R=w(!1,"string"),x=function(){};function P(e,n){return void 0===n&&(n=x),function(r){var i=r.attribute,a=r.transformItems,o=void 0===a?function(e){return e}:a;return{$$type:"cs.taxonomyRefinementList",init:function(n){e(t(t({},this.getWidgetRenderState(n)),{instantSearchInstance:n.instantSearchInstance}),!0)},render:function(n){e(t(t({},this.getWidgetRenderState(n)),{instantSearchInstance:n.instantSearchInstance}),!1)},getRenderState:function(e,n){var r;return t(t({},e),{taxonomyRefinementList:t(t({},e.taxonomyRefinementList),(r={},r[i]=this.getWidgetRenderState(n),r))})},getWidgetRenderState:function(e){var t=e.results,n=e.helper,a=function(e){e.split("|").forEach((function(e){return n.isDisjunctiveRefined(i,e)?n.removeDisjunctiveFacetRefinement(i,e):n.addDisjunctiveFacetRefinement(i,e)})),n.search()};return t?{items:o(t.getRefinements(i)),refine:a,widgetParams:r}:{items:[],refine:a,widgetParams:r}},getWidgetUiState:function(e,n){var r,a=n.searchParameters;return t(t({},e),{taxonomyRefinementList:t(t({},e.taxonomyRefinementList),(r={},r[i]=a.getRefinements(i),r))})},getWidgetSearchParameters:function(e){return e.addDisjunctiveFacet(i)},dispose:function(){n()}}}}var q=function(e){return{render:function(t,n){var r=t.items,i=t.refine,a="string"==typeof e.container?document.querySelector(e.container):e.container;if(n)a.addEventListener("click",(function(e){if(e.target instanceof HTMLElement){var t=e.target.closest("input");t&&i(t.value)}}));else{var o=e.items.map((function(e){var t=e.label,n=e.value,i=n.split("|").every((function(e){return r.find((function(t){return"disjunctive"===t.type&&t.name===e}))}));return'\n <li>\n <label>\n <input\n type="checkbox"\n value="'.concat(n,'"\n ').concat(i?"checked":"","\n />\n ").concat(t,"\n </label>\n </li>\n ")}));a.innerHTML="<ul>".concat(o.join(""),"</ul>")}},dispose:function(){}}};return e.SearchClient=y,e.connectTaxonomyRefinementList=P,e.createTaxonomyRefinementListRenderer=q,e.exactNumberFieldSearch=k,e.exactStringFieldSearch=A,e.googleMaps=function(e){var t=e.container,n=e.renderInfo,r=e.transformHits||S,i="string"==typeof t?document.querySelector(t):t,a=null,o={},c=new google.maps.InfoWindow;return{init:function(){a=new google.maps.Map(i,{})},render:function(e){if(a){Object.keys(o).forEach((function(e){o[e].marker.setMap(null),delete o[e]}));var t=function(e,t){return e.map(t).filter((function(e){return null!=e&&null!==e.lat&&null!==e.lng}))}(e.results.hits,r);t.forEach((function(e){if(!o[e.hit.id]){var t=new google.maps.Marker({position:{lat:e.lat,lng:e.lng},map:a});n&&t.addListener("click",(function(){c.setContent(n(e)),c.open(a,t)})),t.setMap(a),o[e.hit.id]={marker:t,data:e}}})),function(e,t){e.fitBounds(t.reduce((function(e,t){return e.extend(new google.maps.LatLng(t.lat,t.lng)),e}),new google.maps.LatLngBounds))}(a,t)}},dispose:function(e){},getWidgetState:function(e,t){return e},getWidgetSearchParameters:function(e,t){return e}}},e.locationDistanceFilter=function(e){var t=e.container,n=e.miles||[5,10,20,50];return{init:function(e){var r=e.helper,i=n.map(L).join("\n");t.innerHTML='<div class="ais-RefinementList">\n <ul class="ais-RefinementList-list">\n '.concat(i,"\n </ul>\n </div>");var a=t.querySelectorAll("input[type=checkbox]");a.forEach((function(e){e.addEventListener("change",(function(t){var n=!1;a.forEach((function(t){t.value!==e.value&&(t.checked=!1),t.checked&&(n=!0)})),n?r.setQueryParameter("aroundRadius",t.target.value).search():r.setQueryParameter("aroundRadius").search()}))}))}}},e.makeFieldSearch=w,e.noop=x,e.placeAutocomplete=function(e){var t=e.container,n=e.placeholder;return{init:function(e){var r=e.helper;t.innerHTML='<input class="ais-SearchBox-input" type="search" placeholder='.concat(n,"/>");var i=t.querySelector("input[type=search]"),a=new google.maps.places.Autocomplete(i);a.setFields(["place_id","geometry","name","formatted_address"]);var o=new google.maps.Geocoder;a.addListener("place_changed",(function(){var e=a.getPlace();""!==e.name?e.place_id&&o.geocode({placeId:e.place_id},(function(e,t){if("OK"===t){var n=e[0].geometry.location;r.setQueryParameter("aroundLatLng","".concat(n.lat(),", ").concat(n.lng())).search()}else console.warn("Geocoder failed due to: ".concat(t))})):r.setQueryParameter("aroundLatLng").search()}))}}},e.searchBoxFields=function(e){return{init:function(t){var n;e.container.innerHTML=(n=e.attributes.map((function(e){return function(e){return'<li class="ais-RefinementList-item">\n <label class="ais-RefinementList-label">\n <input class="ais-RefinementList-checkbox" type="checkbox" value="'.concat(e.fieldName,'" checked />\n <span class="ais-RefinementList-labelText">').concat(e.title,"</span>\n </label>\n </li>")}(e)})).join("\n"),'<div class="ais-RefinementList">\n <ul class="ais-RefinementList-list">\n '.concat(n,"\n </ul>\n </div>"));e.container.querySelectorAll("input[type=checkbox]").forEach((function(n){n.addEventListener("change",(function(){!function(){var n=e.container.querySelectorAll("input[type=checkbox]:checked");if(n.length){for(var r=[],i=0;i<n.length;i+=1)r.push(n[i].getAttribute("value"));t.helper.setQueryParameter("restrictSearchableAttributes",r)}else t.helper.setQueryParameter("restrictSearchableAttributes");t.helper.search()}()}))}))}}},e.stringFieldSearch=R,e.taxonomyRefinementList=function(e){var n=q(e),r=P(n.render,n.dispose);return t(t({},r(e)),{$$widgetType:"cs.taxonomyRefinementList"})},Object.defineProperty(e,"__esModule",{value:!0}),e}({});
@@ -1,6 +1,6 @@
1
- export declare type FieldSetting = {
1
+ export type FieldSetting = {
2
2
  boost: number;
3
3
  };
4
- export declare type FieldSettings = {
4
+ export type FieldSettings = {
5
5
  [key: string]: FieldSetting;
6
6
  };
@@ -1,4 +1,4 @@
1
- export declare type FacetHit = {
1
+ export type FacetHit = {
2
2
  readonly value: string;
3
3
  readonly highlighted: string;
4
4
  readonly count: number;
@@ -1,3 +1,3 @@
1
- export declare type ESFilter = {
1
+ export type ESFilter = {
2
2
  [key: string]: string | Record<string, unknown> | string[] | number | boolean;
3
3
  };
@@ -1,20 +1,20 @@
1
- declare type HighlightMatch = {
1
+ type HighlightMatch = {
2
2
  readonly value: string;
3
3
  readonly matchLevel: 'none' | 'partial' | 'full';
4
4
  readonly matchedWords: readonly string[];
5
5
  readonly fullyHighlighted?: boolean;
6
6
  };
7
- export declare type HighlightResult<THit> = THit extends string | number ? HighlightMatch : {
7
+ export type HighlightResult<THit> = THit extends string | number ? HighlightMatch : {
8
8
  [KAttribute in keyof THit]?: HighlightResult<THit[KAttribute]>;
9
9
  };
10
- declare type SnippetMatch = {
10
+ type SnippetMatch = {
11
11
  readonly value: string;
12
12
  readonly matchLevel: 'none' | 'partial' | 'full';
13
13
  };
14
- export declare type SnippetResult<THit> = THit extends string | number ? SnippetMatch : {
14
+ export type SnippetResult<THit> = THit extends string | number ? SnippetMatch : {
15
15
  [KAttribute in keyof THit]: SnippetResult<THit[KAttribute]>;
16
16
  };
17
- export declare type RankingInfo = {
17
+ export type RankingInfo = {
18
18
  readonly promoted: boolean;
19
19
  readonly nbTypos: number;
20
20
  readonly firstMatchedWord: number;
@@ -36,7 +36,7 @@ export declare type RankingInfo = {
36
36
  readonly score: number;
37
37
  };
38
38
  };
39
- export declare type Hit<THit> = THit & {
39
+ export type Hit<THit> = THit & {
40
40
  readonly objectID: string;
41
41
  readonly _highlightResult?: HighlightResult<THit>;
42
42
  readonly _snippetResult?: SnippetResult<THit>;
@@ -1,5 +1,5 @@
1
1
  export declare const StrategyEnum: Readonly<Record<string, StrategyType>>;
2
- export declare type StrategyType = 'none' | 'stopIfEnoughMatches';
3
- export declare type MultipleQueriesOptions = {
2
+ export type StrategyType = 'none' | 'stopIfEnoughMatches';
3
+ export type MultipleQueriesOptions = {
4
4
  readonly strategy?: StrategyType;
5
5
  };
@@ -1,17 +1,17 @@
1
1
  import { SearchOptions } from './SearchOptions';
2
- export declare type SharedMultipleQueriesQuery = {
2
+ export type SharedMultipleQueriesQuery = {
3
3
  readonly type?: 'default' | 'facet';
4
4
  readonly indexName: string;
5
5
  readonly params?: SearchOptions;
6
6
  readonly query?: string;
7
7
  };
8
- export declare type FacetQuery = {
8
+ export type FacetQuery = {
9
9
  readonly type: 'facet';
10
10
  readonly facet: string;
11
11
  readonly params?: SharedMultipleQueriesQuery['params'] & {
12
12
  readonly facetQuery?: string;
13
13
  };
14
14
  };
15
- export declare type MultipleQueriesQuery = SharedMultipleQueriesQuery & ({
15
+ export type MultipleQueriesQuery = SharedMultipleQueriesQuery & ({
16
16
  readonly type?: 'default';
17
17
  } | FacetQuery);
@@ -1,4 +1,4 @@
1
1
  import { SearchResponse } from './SearchResponse';
2
- export declare type MultipleQueriesResponse<TObject> = {
2
+ export type MultipleQueriesResponse<TObject> = {
3
3
  results: Array<SearchResponse<TObject>>;
4
4
  };
@@ -1,5 +1,5 @@
1
1
  import { SearchOptions } from './SearchOptions';
2
- export declare type SearchForFacetValuesQueryParams = {
2
+ export type SearchForFacetValuesQueryParams = {
3
3
  readonly facetName: string;
4
4
  readonly facetQuery: string;
5
5
  facetMinDocCount?: number;
@@ -1,5 +1,5 @@
1
1
  import { FacetHit } from './FacetHit';
2
- export declare type SearchForFacetValuesResponse = {
2
+ export type SearchForFacetValuesResponse = {
3
3
  facetHits: FacetHit[];
4
4
  exhaustiveFacetsCount: boolean;
5
5
  processingTimeMS?: number;
@@ -1,4 +1,4 @@
1
- export declare type SearchOptions = {
1
+ export type SearchOptions = {
2
2
  readonly query?: string;
3
3
  readonly similarQuery?: string;
4
4
  readonly facetFilters?: string | readonly string[] | ReadonlyArray<string | readonly string[]>;
@@ -1,6 +1,6 @@
1
1
  import { Hit } from './Hit';
2
2
  import { Settings } from './Settings';
3
- export declare type SearchResponse<TObject = Record<string, unknown>> = {
3
+ export type SearchResponse<TObject = Record<string, unknown>> = {
4
4
  hits: Array<Hit<TObject>>;
5
5
  page: number;
6
6
  length?: number;
@@ -1,4 +1,4 @@
1
- export declare type Settings = {
1
+ export type Settings = {
2
2
  readonly searchableAttributes?: readonly string[];
3
3
  readonly attributesToIndex?: readonly string[];
4
4
  readonly attributesForFaceting?: readonly string[];
@@ -1,5 +1,5 @@
1
- declare type Coordinates = [number, number];
2
- declare type Polygon = Coordinates[];
1
+ type Coordinates = [number, number];
2
+ type Polygon = Coordinates[];
3
3
  export interface Area {
4
4
  type: 'Polygon' | 'Multipolygon';
5
5
  coordinates: Polygon[];
@@ -1,4 +1,4 @@
1
- export declare type SearchQueryParams = {
1
+ export type SearchQueryParams = {
2
2
  query: string;
3
3
  filters?: string;
4
4
  aggregations?: string;
@@ -1,9 +1,9 @@
1
1
  import { IndexedResource } from './IndexedResource';
2
- declare type AggregationBucket = {
2
+ type AggregationBucket = {
3
3
  key: string;
4
4
  doc_count: number;
5
5
  };
6
- export declare type SearchResponse = {
6
+ export type SearchResponse = {
7
7
  __meta: {
8
8
  total: number;
9
9
  perPage: number;
@@ -1,8 +1,8 @@
1
- declare type TaxonomyRefinementItem = {
1
+ type TaxonomyRefinementItem = {
2
2
  label: string;
3
3
  value: string;
4
4
  };
5
- export declare type TaxonomyRefinementListParams = {
5
+ export type TaxonomyRefinementListParams = {
6
6
  container: HTMLElement | string;
7
7
  attribute: string;
8
8
  items: TaxonomyRefinementItem[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@211la/search-client",
3
- "version": "0.13.0",
3
+ "version": "0.13.5",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/types/index.d.ts",
6
6
  "files": [
@@ -8,6 +8,7 @@
8
8
  ],
9
9
  "scripts": {
10
10
  "lint": "eslint . --ext .ts",
11
+ "tsc": "tsc --noEmit",
11
12
  "test": "jest --config jest-config.json",
12
13
  "test:watch": "jest --config jest-config.json --watchAll",
13
14
  "build": "rm -rf ./dist && rollup -c && tsc --p ./tsconfig.build.json --emitDeclarationOnly",
@@ -26,9 +27,9 @@
26
27
  "ts-jest": "^26.4.4",
27
28
  "ts-loader": "^8.0.12",
28
29
  "tslib": "^2.3.0",
29
- "typescript": "^4.0.5"
30
+ "typescript": "^4.9.5"
30
31
  },
31
32
  "dependencies": {
32
33
  "qs": "^6.11.2"
33
34
  }
34
- }
35
+ }