@211la/search-client 0.12.1 → 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 +95 -26
- package/dist/search-client.min.js +1 -1
- package/dist/types/types/FieldSettings.d.ts +2 -2
- package/dist/types/types/algolia/FacetHit.d.ts +1 -1
- package/dist/types/types/algolia/Filter.d.ts +1 -1
- package/dist/types/types/algolia/Hit.d.ts +6 -6
- package/dist/types/types/algolia/MultipleQueriesOptions.d.ts +2 -2
- package/dist/types/types/algolia/MultipleQueriesQuery.d.ts +3 -3
- package/dist/types/types/algolia/MultipleQueriesResponse.d.ts +1 -1
- package/dist/types/types/algolia/SearchForFacetValuesQueryParams.d.ts +1 -1
- package/dist/types/types/algolia/SearchForFacetValuesResponse.d.ts +1 -1
- package/dist/types/types/algolia/SearchOptions.d.ts +1 -1
- package/dist/types/types/algolia/SearchResponse.d.ts +1 -1
- package/dist/types/types/algolia/Settings.d.ts +1 -1
- package/dist/types/types/nexus211/Area.d.ts +2 -2
- package/dist/types/types/nexus211/SearchQueryParams.d.ts +1 -1
- package/dist/types/types/nexus211/SearchResponse.d.ts +2 -2
- package/dist/types/widgets/taxonomyRefinementList/types.d.ts +2 -2
- package/package.json +6 -4
package/dist/index.js
CHANGED
|
@@ -121,16 +121,16 @@ var sanitizeKeyword = function (keyword) {
|
|
|
121
121
|
'/',
|
|
122
122
|
];
|
|
123
123
|
characters.forEach(function (char) {
|
|
124
|
-
keyword = keyword.
|
|
124
|
+
keyword = keyword.replaceAll(char, ' ');
|
|
125
125
|
});
|
|
126
|
-
return keyword.
|
|
126
|
+
return keyword.replaceAll(/\s+/g, ' ');
|
|
127
127
|
};
|
|
128
128
|
|
|
129
129
|
function sanitizeForES(value) {
|
|
130
130
|
return value
|
|
131
131
|
.split(' ')
|
|
132
132
|
.filter(Boolean)
|
|
133
|
-
.map(function (term) { return sanitizeKeyword(term)
|
|
133
|
+
.map(function (term) { return "".concat(sanitizeKeyword(term), "*"); })
|
|
134
134
|
.join(' ');
|
|
135
135
|
}
|
|
136
136
|
var keyword = (function (options, settings) {
|
|
@@ -140,14 +140,14 @@ var keyword = (function (options, settings) {
|
|
|
140
140
|
}
|
|
141
141
|
var splittedKeyword = options.query.split(':');
|
|
142
142
|
var sanitizedKeyword = splittedKeyword.length > 1
|
|
143
|
-
? splittedKeyword[0]
|
|
143
|
+
? "".concat(splittedKeyword[0], ":").concat(sanitizeForES(splittedKeyword[1]))
|
|
144
144
|
: sanitizeForES(options.query);
|
|
145
145
|
var fields = options.restrictSearchableAttributes
|
|
146
146
|
? options.restrictSearchableAttributes
|
|
147
147
|
: (_a = settings.keywordSearchFields) !== null && _a !== void 0 ? _a : [];
|
|
148
148
|
var weightedFields = fields.map(function (field) {
|
|
149
149
|
if (settings.fieldSettings && settings.fieldSettings[field]) {
|
|
150
|
-
return field
|
|
150
|
+
return "".concat(field, "^").concat(settings.fieldSettings[field].boost);
|
|
151
151
|
}
|
|
152
152
|
return field;
|
|
153
153
|
});
|
|
@@ -157,14 +157,19 @@ var keyword = (function (options, settings) {
|
|
|
157
157
|
});
|
|
158
158
|
|
|
159
159
|
var sanitizeFilterItem = function (item) {
|
|
160
|
-
var
|
|
160
|
+
var colonIndex = item.indexOf(':');
|
|
161
|
+
if (colonIndex === -1) {
|
|
162
|
+
return item;
|
|
163
|
+
}
|
|
164
|
+
var key = item.substring(0, colonIndex);
|
|
165
|
+
var value = item.substring(colonIndex + 1);
|
|
161
166
|
var sanitizedValue = sanitizeKeyword(value);
|
|
162
167
|
sanitizedValue = sanitizedValue
|
|
163
168
|
.split(' ')
|
|
164
169
|
.filter(Boolean)
|
|
165
|
-
.map(function (term) { return ""
|
|
170
|
+
.map(function (term) { return "".concat(term); })
|
|
166
171
|
.join(' ');
|
|
167
|
-
return key
|
|
172
|
+
return "".concat(key, ":").concat(sanitizedValue);
|
|
168
173
|
};
|
|
169
174
|
var parseFilters = function (filters) {
|
|
170
175
|
if (typeof filters === 'string') {
|
|
@@ -176,17 +181,81 @@ var parseFilters = function (filters) {
|
|
|
176
181
|
return sanitizeFilterItem(item);
|
|
177
182
|
}
|
|
178
183
|
var sanitizedItems = item.map(function (i) { return sanitizeFilterItem(i); });
|
|
179
|
-
return "("
|
|
184
|
+
return "(".concat(sanitizedItems.join(' OR '), ")");
|
|
180
185
|
})
|
|
181
186
|
.join(' AND ');
|
|
182
187
|
};
|
|
188
|
+
var normalizeCanadianPostalCode = function (postalCode) {
|
|
189
|
+
var match = postalCode.match(/^([A-Z]\d[A-Z])[\s-]?(\d[A-Z]\d)$/);
|
|
190
|
+
if (match) {
|
|
191
|
+
return "".concat(match[1], " ").concat(match[2]);
|
|
192
|
+
}
|
|
193
|
+
return null;
|
|
194
|
+
};
|
|
195
|
+
var buildZipCodeTermQuery = function (zipCode) {
|
|
196
|
+
var normalizedPostalCode = normalizeCanadianPostalCode(zipCode);
|
|
197
|
+
if (normalizedPostalCode) {
|
|
198
|
+
var zipPrefix = normalizedPostalCode.split(' ')[0];
|
|
199
|
+
var wildcardZip = "".concat(zipPrefix, " ***");
|
|
200
|
+
return {
|
|
201
|
+
bool: {
|
|
202
|
+
should: [
|
|
203
|
+
{
|
|
204
|
+
term: {
|
|
205
|
+
'metadata.serviceAreaZipCodes.keyword': normalizedPostalCode,
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
term: {
|
|
210
|
+
'metadata.serviceAreaZipCodes.keyword': wildcardZip,
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
],
|
|
214
|
+
minimum_should_match: 1,
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
return {
|
|
219
|
+
term: {
|
|
220
|
+
'metadata.serviceAreaZipCodes.keyword': zipCode,
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
};
|
|
183
224
|
var facetFilters = (function (facetFilters) {
|
|
184
225
|
if (!facetFilters || !facetFilters.length) {
|
|
185
226
|
return null;
|
|
186
227
|
}
|
|
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
|
+
};
|
|
252
|
+
}
|
|
253
|
+
return zipCodeQuery;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
187
256
|
return {
|
|
188
257
|
query_string: {
|
|
189
|
-
query:
|
|
258
|
+
query: parsedFilters,
|
|
190
259
|
},
|
|
191
260
|
};
|
|
192
261
|
});
|
|
@@ -263,7 +332,7 @@ var buildQueryParams = function (settings, instantSearchParams) {
|
|
|
263
332
|
query.aggregations = JSON.stringify(instantSearchParams.facets.reduce(function (aggregations, facet) {
|
|
264
333
|
aggregations[facet] = {
|
|
265
334
|
terms: {
|
|
266
|
-
field: facet
|
|
335
|
+
field: "".concat(facet, ".keyword"),
|
|
267
336
|
min_doc_count: (instantSearchParams === null || instantSearchParams === void 0 ? void 0 : instantSearchParams.facetMinDocCount) || 0,
|
|
268
337
|
size: 100,
|
|
269
338
|
},
|
|
@@ -299,7 +368,7 @@ var wrapSubstringInTags = function (_a) {
|
|
|
299
368
|
var text = _a.text, start = _a.start, length = _a.length, preTag = _a.preTag, postTag = _a.postTag;
|
|
300
369
|
var before = text.slice(0, start);
|
|
301
370
|
var after = text.slice(start + length);
|
|
302
|
-
return ""
|
|
371
|
+
return "".concat(before).concat(preTag).concat(text.slice(start, start + length)).concat(postTag).concat(after);
|
|
303
372
|
};
|
|
304
373
|
var matchTextWithQuery = function (value, query) {
|
|
305
374
|
var keyword = query.options.query;
|
|
@@ -354,7 +423,7 @@ var highlight = function (query, hit) {
|
|
|
354
423
|
deepSet(_highlightResult, field, matchTextWithQuery(value, query));
|
|
355
424
|
}
|
|
356
425
|
else {
|
|
357
|
-
console.warn("The value of field \""
|
|
426
|
+
console.warn("The value of field \"".concat(field, "\" is not a string or an array of strings. Skipping highlighting for this field."));
|
|
358
427
|
}
|
|
359
428
|
});
|
|
360
429
|
if (query.isSearchableAttributesRestricted()) {
|
|
@@ -449,10 +518,10 @@ var SearchClient = (function () {
|
|
|
449
518
|
if (!this.settings.token) {
|
|
450
519
|
throw new Error('You must provide a valid SearchApi or PublicSearchApi token. Visit https://admin.211cs.org to create one.');
|
|
451
520
|
}
|
|
452
|
-
return [4, fetch(""
|
|
521
|
+
return [4, fetch("".concat(this.settings.endpoint).concat(this.settings.searchUri), {
|
|
453
522
|
headers: {
|
|
454
523
|
cache: 'no-cache',
|
|
455
|
-
authorization: "SearchApi "
|
|
524
|
+
authorization: "SearchApi ".concat(this.settings.token),
|
|
456
525
|
'content-type': 'application/json',
|
|
457
526
|
},
|
|
458
527
|
method: 'POST',
|
|
@@ -462,7 +531,7 @@ var SearchClient = (function () {
|
|
|
462
531
|
response = _a.sent();
|
|
463
532
|
if (response.status !== 200) {
|
|
464
533
|
text = response.text();
|
|
465
|
-
throw new Error("Unexpected status "
|
|
534
|
+
throw new Error("Unexpected status ".concat(response.status, ": ").concat(text));
|
|
466
535
|
}
|
|
467
536
|
return [2, response.json()];
|
|
468
537
|
}
|
|
@@ -619,7 +688,7 @@ var makeFieldSearch = function (exact, type) { return function (props) {
|
|
|
619
688
|
var suffix = exact ? '' : '*';
|
|
620
689
|
var init = function (opts) {
|
|
621
690
|
var helper = opts.helper;
|
|
622
|
-
container.innerHTML = "<input class=\"ais-SearchBox-input\" type="
|
|
691
|
+
container.innerHTML = "<input class=\"ais-SearchBox-input\" type=".concat(inputType, " placeholder=").concat(placeholder, " autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" maxlength=\"512\">");
|
|
623
692
|
var input = container.querySelector('input');
|
|
624
693
|
input.addEventListener('input', debouncer(function (value) {
|
|
625
694
|
helper.clearRefinements(attribute);
|
|
@@ -637,8 +706,8 @@ var makeFieldSearch = function (exact, type) { return function (props) {
|
|
|
637
706
|
};
|
|
638
707
|
}; };
|
|
639
708
|
|
|
640
|
-
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=\""
|
|
641
|
-
var renderContainer$1 = function (children) { return "<div class=\"ais-RefinementList\">\n <ul class=\"ais-RefinementList-list\">\n "
|
|
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>"); };
|
|
642
711
|
var searchBoxFields = function (params) { return ({
|
|
643
712
|
init: function (initOptions) {
|
|
644
713
|
params.container.innerHTML = renderContainer$1(params.attributes.map(function (field) { return renderField(field); }).join('\n'));
|
|
@@ -670,7 +739,7 @@ var placeAutocomplete = function (opts) {
|
|
|
670
739
|
var container = opts.container, placeholder = opts.placeholder;
|
|
671
740
|
var init = function (props) {
|
|
672
741
|
var helper = props.helper;
|
|
673
|
-
container.innerHTML = "<input class=\"ais-SearchBox-input\" type=\"search\" placeholder="
|
|
742
|
+
container.innerHTML = "<input class=\"ais-SearchBox-input\" type=\"search\" placeholder=".concat(placeholder, "/>");
|
|
674
743
|
var input = container.querySelector('input[type=search]');
|
|
675
744
|
var autocomplete = new google.maps.places.Autocomplete(input);
|
|
676
745
|
autocomplete.setFields([
|
|
@@ -691,12 +760,12 @@ var placeAutocomplete = function (opts) {
|
|
|
691
760
|
}
|
|
692
761
|
geocoder.geocode({ placeId: place.place_id }, function (results, status) {
|
|
693
762
|
if (status !== 'OK') {
|
|
694
|
-
console.warn("Geocoder failed due to: "
|
|
763
|
+
console.warn("Geocoder failed due to: ".concat(status));
|
|
695
764
|
return;
|
|
696
765
|
}
|
|
697
766
|
var location = results[0].geometry.location;
|
|
698
767
|
helper
|
|
699
|
-
.setQueryParameter('aroundLatLng', location.lat()
|
|
768
|
+
.setQueryParameter('aroundLatLng', "".concat(location.lat(), ", ").concat(location.lng()))
|
|
700
769
|
.search();
|
|
701
770
|
});
|
|
702
771
|
});
|
|
@@ -706,8 +775,8 @@ var placeAutocomplete = function (opts) {
|
|
|
706
775
|
};
|
|
707
776
|
};
|
|
708
777
|
|
|
709
|
-
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="
|
|
710
|
-
var renderContainer = function (children) { return "<div class=\"ais-RefinementList\">\n <ul class=\"ais-RefinementList-list\">\n "
|
|
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>"); };
|
|
711
780
|
var locationDistanceFilter = function (props) {
|
|
712
781
|
var container = props.container;
|
|
713
782
|
var miles = props.miles || [5, 10, 20, 50];
|
|
@@ -830,9 +899,9 @@ var createTaxonomyRefinementListRenderer = function (widgetParams) { return ({
|
|
|
830
899
|
return item.type === 'disjunctive' && item.name === code;
|
|
831
900
|
});
|
|
832
901
|
});
|
|
833
|
-
return "\n <li>\n <label>\n <input\n type=\"checkbox\"\n value=\""
|
|
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 ");
|
|
834
903
|
});
|
|
835
|
-
container.innerHTML = "<ul>"
|
|
904
|
+
container.innerHTML = "<ul>".concat(list.join(''), "</ul>");
|
|
836
905
|
},
|
|
837
906
|
dispose: function () { },
|
|
838
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{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,s)}c((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])}}}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],s=r[1];e[o]||(e[o]={}),a(e[o],s,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],s=n[1],c=e[a];return c?o(c,s):null},s=function(e){return["+"," -","&&","||","!","(",")","{","}","[","]","^","~","*","?",":","/"].forEach((function(t){e=e.replace(t," ")})),e.replace(/\s+/g," ")};function c(e){return e.split(" ").filter(Boolean).map((function(e){return s(e)+"*"})).join(" ")}var u=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})}},l=function(e){var t=e.split(":"),n=t[0],r=t[1],i=s(r);return n+":"+(i=i.split(" ").filter(Boolean).map((function(e){return""+e})).join(" "))},f=function(e){return e&&e.length?{query_string:{query:(t=e,"string"==typeof t?t:t.map((function(e){return"string"==typeof e?l(e):"("+e.map((function(e){return l(e)})).join(" OR ")+")"})).join(" AND "))}}:null;var t},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())})),s=o[0],c=o[1];i.distance=Number(t.aroundRadius),i.distanceUnit="mi",i.lat=s,i.lon=c}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},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,s,c,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,s=i.length,c=i.preTag,u=i.postTag,l=a.slice(0,o),f=a.slice(o+s),""+l+c+a.slice(o,o+s)+u+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 "'+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(""+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 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}},L=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)}}),c=t&&"number"===t?"number":"search",u=e?"":"*";return{init:function(e){var t=e.helper;i.innerHTML='<input class="ais-SearchBox-input" type='+c+" 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+u]),t.search()})))},getWidgetSearchParameters:function(e){return e.addFacet(a)}}}},w=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>"},R=L(!0,"number"),k=L(!0,"string"),x=L(!1,"string"),P=function(){};function A(e,n){return void 0===n&&(n=P),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="'+n+'"\n '+(i?"checked":"")+"\n />\n "+t+"\n </label>\n </li>\n "}));a.innerHTML="<ul>"+o.join("")+"</ul>"}},dispose:function(){}}};return e.SearchClient=y,e.connectTaxonomyRefinementList=A,e.createTaxonomyRefinementListRenderer=q,e.exactNumberFieldSearch=R,e.exactStringFieldSearch=k,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={},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(w).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=L,e.noop=P,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=x,e.taxonomyRefinementList=function(e){var n=q(e),r=A(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,20 +1,20 @@
|
|
|
1
|
-
|
|
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
|
|
7
|
+
export type HighlightResult<THit> = THit extends string | number ? HighlightMatch : {
|
|
8
8
|
[KAttribute in keyof THit]?: HighlightResult<THit[KAttribute]>;
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
type SnippetMatch = {
|
|
11
11
|
readonly value: string;
|
|
12
12
|
readonly matchLevel: 'none' | 'partial' | 'full';
|
|
13
13
|
};
|
|
14
|
-
export
|
|
14
|
+
export type SnippetResult<THit> = THit extends string | number ? SnippetMatch : {
|
|
15
15
|
[KAttribute in keyof THit]: SnippetResult<THit[KAttribute]>;
|
|
16
16
|
};
|
|
17
|
-
export
|
|
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
|
|
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
|
|
3
|
-
export
|
|
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
|
|
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
|
|
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
|
|
15
|
+
export type MultipleQueriesQuery = SharedMultipleQueriesQuery & ({
|
|
16
16
|
readonly type?: 'default';
|
|
17
17
|
} | FacetQuery);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Hit } from './Hit';
|
|
2
2
|
import { Settings } from './Settings';
|
|
3
|
-
export
|
|
3
|
+
export type SearchResponse<TObject = Record<string, unknown>> = {
|
|
4
4
|
hits: Array<Hit<TObject>>;
|
|
5
5
|
page: number;
|
|
6
6
|
length?: number;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { IndexedResource } from './IndexedResource';
|
|
2
|
-
|
|
2
|
+
type AggregationBucket = {
|
|
3
3
|
key: string;
|
|
4
4
|
doc_count: number;
|
|
5
5
|
};
|
|
6
|
-
export
|
|
6
|
+
export type SearchResponse = {
|
|
7
7
|
__meta: {
|
|
8
8
|
total: number;
|
|
9
9
|
perPage: number;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
type TaxonomyRefinementItem = {
|
|
2
2
|
label: string;
|
|
3
3
|
value: string;
|
|
4
4
|
};
|
|
5
|
-
export
|
|
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.
|
|
3
|
+
"version": "0.13.5",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/types/index.d.ts",
|
|
6
6
|
"files": [
|
|
@@ -8,9 +8,11 @@
|
|
|
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
|
-
"build": "rm -rf ./dist && rollup -c && tsc --p ./tsconfig.build.json --emitDeclarationOnly"
|
|
14
|
+
"build": "rm -rf ./dist && rollup -c && tsc --p ./tsconfig.build.json --emitDeclarationOnly",
|
|
15
|
+
"build:watch": "rollup -c --watch"
|
|
14
16
|
},
|
|
15
17
|
"peerDependencies": {
|
|
16
18
|
"instantsearch.js": "4.x"
|
|
@@ -25,9 +27,9 @@
|
|
|
25
27
|
"ts-jest": "^26.4.4",
|
|
26
28
|
"ts-loader": "^8.0.12",
|
|
27
29
|
"tslib": "^2.3.0",
|
|
28
|
-
"typescript": "^4.
|
|
30
|
+
"typescript": "^4.9.5"
|
|
29
31
|
},
|
|
30
32
|
"dependencies": {
|
|
31
33
|
"qs": "^6.11.2"
|
|
32
34
|
}
|
|
33
|
-
}
|
|
35
|
+
}
|