@ta-interaktiv/react-municipality-search 2.1.0 → 2.1.2
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.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +122 -91
- package/dist/index.js.map +1 -1
- package/dist/municipalitySearch.d.ts +3 -2
- package/dist/municipalitySearch.d.ts.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.d.ts.map +1 -1
- package/es/index.js +99 -62
- package/es/index.js.map +1 -1
- package/es/municipalitySearch.d.ts +3 -2
- package/es/municipalitySearch.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +2 -6
- package/src/municipalitySearch.tsx +59 -29
- package/CHANGELOG.md +0 -330
package/es/index.js
CHANGED
|
@@ -3,50 +3,71 @@ import styled from 'styled-components';
|
|
|
3
3
|
import { Transition, config, animated } from '@react-spring/web';
|
|
4
4
|
import Cookies from 'js-cookie';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
6
|
+
/******************************************************************************
|
|
7
|
+
Copyright (c) Microsoft Corporation.
|
|
8
|
+
|
|
9
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
10
|
+
purpose with or without fee is hereby granted.
|
|
11
|
+
|
|
12
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
13
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
14
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
15
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
16
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
17
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
18
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
19
|
+
***************************************************************************** */
|
|
20
|
+
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
21
|
+
|
|
22
|
+
var extendStatics = function(d, b) {
|
|
23
|
+
extendStatics = Object.setPrototypeOf ||
|
|
24
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
25
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
26
|
+
return extendStatics(d, b);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
function __extends(d, b) {
|
|
30
|
+
if (typeof b !== "function" && b !== null)
|
|
31
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
32
|
+
extendStatics(d, b);
|
|
33
|
+
function __() { this.constructor = d; }
|
|
34
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function __read(o, n) {
|
|
38
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
39
|
+
if (!m) return o;
|
|
40
|
+
var i = m.call(o), r, ar = [], e;
|
|
41
|
+
try {
|
|
42
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
43
|
+
}
|
|
44
|
+
catch (error) { e = { error: error }; }
|
|
45
|
+
finally {
|
|
46
|
+
try {
|
|
47
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
48
|
+
}
|
|
49
|
+
finally { if (e) throw e.error; }
|
|
50
|
+
}
|
|
51
|
+
return ar;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function __spreadArray(to, from, pack) {
|
|
55
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
56
|
+
if (ar || !(i in from)) {
|
|
57
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
58
|
+
ar[i] = from[i];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function __makeTemplateObject(cooked, raw) {
|
|
65
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
66
|
+
return cooked;
|
|
67
|
+
}
|
|
68
|
+
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
69
|
+
var e = new Error(message);
|
|
70
|
+
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
50
71
|
};
|
|
51
72
|
|
|
52
73
|
var data$1 = { meta:{ forComponent:"MunicipalitySearch",
|
|
@@ -114,7 +135,7 @@ var startsWithNumber = /^\d/;
|
|
|
114
135
|
var containsOnlyLetters = /^\D+$/;
|
|
115
136
|
var containsFourDigits = /\d{4}/;
|
|
116
137
|
function showResults(results) {
|
|
117
|
-
return results.length > 0
|
|
138
|
+
return results.length > 0;
|
|
118
139
|
}
|
|
119
140
|
var MunicipalitySearch = (function (_super) {
|
|
120
141
|
__extends(MunicipalitySearch, _super);
|
|
@@ -156,15 +177,27 @@ var MunicipalitySearch = (function (_super) {
|
|
|
156
177
|
else if (containsOnlyLetters.test(searchTerm)) {
|
|
157
178
|
var sanitizedSearchTerm = searchTerm.replace('.', '\\.');
|
|
158
179
|
var r_1 = RegExp(sanitizedSearchTerm, 'i');
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
}
|
|
167
|
-
|
|
180
|
+
var exactWordRegex_1 = RegExp("\\b" + sanitizedSearchTerm + "\\b", 'i');
|
|
181
|
+
var rankResults = function (searchTerm, arrayToSort) {
|
|
182
|
+
return arrayToSort.sort(function (a, b) {
|
|
183
|
+
var aScore = scoreResult_1(searchTerm.toLowerCase(), a.NORMGEMEINDE.toLowerCase());
|
|
184
|
+
var bScore = scoreResult_1(searchTerm.toLowerCase(), b.NORMGEMEINDE.toLowerCase());
|
|
185
|
+
return bScore - aScore;
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
var scoreResult_1 = function (searchTerm, stringToCompare) {
|
|
189
|
+
if (stringToCompare === searchTerm) {
|
|
190
|
+
return 2;
|
|
191
|
+
}
|
|
192
|
+
else if (exactWordRegex_1.test(stringToCompare)) {
|
|
193
|
+
return 1;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
return 0;
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
var notExactMatches = municipalities.filter(function (municipality) { return r_1.test(municipality.NORMGEMEINDE); });
|
|
200
|
+
results = rankResults(sanitizedSearchTerm, notExactMatches).slice(0, _this.props.maxResults);
|
|
168
201
|
if (results.length < 1) {
|
|
169
202
|
_this.setState({ error: 'error.noResultsByName' });
|
|
170
203
|
}
|
|
@@ -400,20 +433,20 @@ var MunicipalitySearch = (function (_super) {
|
|
|
400
433
|
var _a, _b, _c;
|
|
401
434
|
var _d = this.state; _d.isLoading; var value = _d.value, results = _d.results;
|
|
402
435
|
var t = translationServiceFactory(MESSAGES, this.props.locale);
|
|
403
|
-
var preSelectedMunicipality = (_a = this.props.selectedMunicipality) !== null && _a !== void 0 ? _a : this.state.municipalities.find(function (muni) {
|
|
436
|
+
var preSelectedMunicipality = (_a = this.props.selectedMunicipality) !== null && _a !== void 0 ? _a : this.state.municipalities.find(function (muni) {
|
|
437
|
+
return muni.GDENR === _this.props.selectedMunicipalityId;
|
|
438
|
+
});
|
|
404
439
|
return (React.createElement(MunicipalitySearchContainer, { className: 'municipality-search' },
|
|
405
440
|
React.createElement(InputRow, { className: 'inputRow' },
|
|
406
441
|
React.createElement(FlexInput, { type: 'text', "$lessPaddingLeft": !!preSelectedMunicipality || this.props.iconOnRightSide, placeholder: this.props.placeholder || t('placeholder'), value: (_b = preSelectedMunicipality === null || preSelectedMunicipality === void 0 ? void 0 : preSelectedMunicipality.NORMGEMEINDE) !== null && _b !== void 0 ? _b : value, disabled: this.state.error === 'error.municipalitiesNotDownloaded' ||
|
|
407
442
|
!!preSelectedMunicipality, onChange: this.handleSearchChange, "$backgroundColor": this.props.inputBackgroundColor }),
|
|
408
443
|
preSelectedMunicipality ? (React.createElement(Icon, { onClick: function () { var _a, _b; return (_b = (_a = _this.props).onCloseHandler) === null || _b === void 0 ? void 0 : _b.call(_a); }, "$isClickable": true, id: 'search-closing-icon', "$isRight": true },
|
|
409
|
-
React.createElement("svg", { width: '20', height: '21', viewBox: '0 0 24 25', xmlns: 'http://www.w3.org/2000/svg', fill: 'currentColor', strokeWidth:
|
|
444
|
+
React.createElement("svg", { width: '20', height: '21', viewBox: '0 0 24 25', xmlns: 'http://www.w3.org/2000/svg', fill: 'currentColor', strokeWidth: '2' },
|
|
410
445
|
React.createElement("path", { d: 'M3.9 22L2 20.1L9.6 12.5L2 4.9L3.9 3L11.5 10.6L19.1 3L21 4.9L13.4 12.5L21 20.1L19.1 22L11.5 14.4L3.9 22Z', fill: 'currentColor' })))) : (React.createElement(Icon, { "$isRight": (_c = this.props) === null || _c === void 0 ? void 0 : _c.iconOnRightSide },
|
|
411
446
|
React.createElement("svg", { width: '18', height: '18', viewBox: '0 0 18 18', fill: 'none', xmlns: 'http://www.w3.org/2000/svg', stroke: 'currentColor', strokeWidth: '2' },
|
|
412
447
|
React.createElement("circle", { cx: '7.5', cy: '7.5', r: '6' }),
|
|
413
448
|
React.createElement("line", { x1: '11', y1: '11', x2: '17', y2: '17' }))))),
|
|
414
|
-
showResults(results) && (React.createElement(Results, { className: 'results', "$backgroundColor": this.props.resultBackgroundColor }, showResults(results) && (React.createElement(Transition, { native: true, items: results, keys: function (result) {
|
|
415
|
-
return _this.muniToString(result);
|
|
416
|
-
}, from: { transform: 'translate(0,-20px)', opacity: 0 }, enter: { transform: 'translate(0,0px)', opacity: 1 }, config: config.gentle }, function (values, result) {
|
|
449
|
+
showResults(results) && (React.createElement(Results, { className: 'results', "$backgroundColor": this.props.resultBackgroundColor }, showResults(results) && (React.createElement(Transition, { native: true, items: results, keys: function (result) { return _this.muniToString(result); }, from: { transform: 'translate(0,-20px)', opacity: 0 }, enter: { transform: 'translate(0,0px)', opacity: 1 }, config: config.gentle }, function (values, result) {
|
|
417
450
|
var _a;
|
|
418
451
|
return (React.createElement(animated.div, { onClick: function () {
|
|
419
452
|
_this.props.onSelectionHandler(result);
|
|
@@ -454,20 +487,24 @@ var MunicipalitySearch = (function (_super) {
|
|
|
454
487
|
numberOfLastSelectedMunicipalities: 1,
|
|
455
488
|
resultBackgroundColor: 'var(--site-background)',
|
|
456
489
|
inputBackgroundColor: 'var(--site-background)',
|
|
490
|
+
maxResults: 10,
|
|
457
491
|
};
|
|
458
492
|
return MunicipalitySearch;
|
|
459
493
|
}(Component));
|
|
460
494
|
var Icon = styled.i(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n cursor: ", ";\n position: absolute;\n top: 50%;\n ", "\n padding-left: 0.8em;\n transform: translateY(-50%);\n display: flex;\n opacity: 0.5;\n transition: opacity 0.5s ease-in-out;\n animation: fromLeft 0.3s ease-in-out;\n @keyframes fromLeft {\n 0% {\n transform: translateY(-50%) translateX(-10px);\n opacity: 0;\n }\n 100% {\n transform: translateY(-50%) translateX(0);\n }\n }\n &#search-closing-icon {\n &:hover {\n opacity: 1;\n }\n animation: fromRight 0.3s ease-in-out;\n @keyframes fromRight {\n 0% {\n transform: translateY(-50%) translateX(10px);\n opacity: 0;\n }\n 100% {\n transform: translateY(-50%) translateX(0);\n }\n }\n }\n"], ["\n cursor: ", ";\n position: absolute;\n top: 50%;\n ", "\n padding-left: 0.8em;\n transform: translateY(-50%);\n display: flex;\n opacity: 0.5;\n transition: opacity 0.5s ease-in-out;\n animation: fromLeft 0.3s ease-in-out;\n @keyframes fromLeft {\n 0% {\n transform: translateY(-50%) translateX(-10px);\n opacity: 0;\n }\n 100% {\n transform: translateY(-50%) translateX(0);\n }\n }\n &#search-closing-icon {\n &:hover {\n opacity: 1;\n }\n animation: fromRight 0.3s ease-in-out;\n @keyframes fromRight {\n 0% {\n transform: translateY(-50%) translateX(10px);\n opacity: 0;\n }\n 100% {\n transform: translateY(-50%) translateX(0);\n }\n }\n }\n"])), function (props) { return (props.$isClickable ? 'pointer' : 'default'); }, function (props) { return (props.$isRight ? 'right: 0; padding-right: 0.8em;' : ''); });
|
|
461
495
|
var MunicipalitySearchContainer = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n --border-radius: 0.3em;\n font-size: 18px;\n font-family: var(--font-plex);\n @media screen and (max-width: 599px) {\n max-width: 100%;\n }\n max-width: 300px;\n width: 100%;\n color: inherit;\n position: relative;\n"], ["\n --border-radius: 0.3em;\n font-size: 18px;\n font-family: var(--font-plex);\n @media screen and (max-width: 599px) {\n max-width: 100%;\n }\n max-width: 300px;\n width: 100%;\n color: inherit;\n position: relative;\n"])));
|
|
462
496
|
var InputRow = styled.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n input:focus ~ i {\n opacity: 1;\n }\n .ui.input {\n width: 100%;\n max-width: 100%;\n transition: all 0.5s ease-in-out;\n }\n"], ["\n position: relative;\n display: flex;\n flex-direction: row;\n align-items: center;\n input:focus ~ i {\n opacity: 1;\n }\n .ui.input {\n width: 100%;\n max-width: 100%;\n transition: all 0.5s ease-in-out;\n }\n"])));
|
|
463
|
-
var FlexInput = styled.input(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n // reset the default input styles\n color: inherit;\n background-color: ", ";\n border: solid 1px #7e7e7e7e;\n border-radius: var(--border-radius);\n box-shadow: none;\n font-size: 1em;\n outline: none;\n transition: all 0.3s ease-in-out;\n padding: 0.5em;\n padding-left: ", ";\n margin: 0;\n width: 100%;\n display: flex;\n &:disabled{\n opacity: 0.5;\n }\n &::placeholder{\n color: inherit;\n opacity: 0.5;\n }\n"], ["\n // reset the default input styles\n color: inherit;\n background-color: ",
|
|
497
|
+
var FlexInput = styled.input(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n // reset the default input styles\n color: inherit;\n background-color: ", ";\n border: solid 1px #7e7e7e7e;\n border-radius: var(--border-radius);\n box-shadow: none;\n font-size: 1em;\n outline: none;\n transition: all 0.3s ease-in-out;\n padding: 0.5em;\n padding-left: ", ";\n margin: 0;\n width: 100%;\n display: flex;\n &:disabled {\n opacity: 0.5;\n }\n &::placeholder {\n color: inherit;\n opacity: 0.5;\n }\n"], ["\n // reset the default input styles\n color: inherit;\n background-color: ",
|
|
498
|
+
";\n border: solid 1px #7e7e7e7e;\n border-radius: var(--border-radius);\n box-shadow: none;\n font-size: 1em;\n outline: none;\n transition: all 0.3s ease-in-out;\n padding: 0.5em;\n padding-left: ",
|
|
499
|
+
";\n margin: 0;\n width: 100%;\n display: flex;\n &:disabled {\n opacity: 0.5;\n }\n &::placeholder {\n color: inherit;\n opacity: 0.5;\n }\n"])), function (_a) {
|
|
464
500
|
var backgroundColor = _a.$backgroundColor;
|
|
465
501
|
return backgroundColor;
|
|
466
502
|
}, function (_a) {
|
|
467
503
|
var lessPaddingLeft = _a.$lessPaddingLeft;
|
|
468
|
-
return
|
|
504
|
+
return lessPaddingLeft ? '1em' : '2.4em';
|
|
469
505
|
});
|
|
470
|
-
var Results = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-top: .25em;\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 0;\n font-family: var(--font-plex);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n pointer-events: auto;\n position: absolute;\n background-color: ", ";\n width: 100%;\n border-radius: var(--border-radius);\n @media screen and (min-width: 599px) {\n max-width: 300px;\n }\n .result {\n max-width: 100%;\n color: currentColor;\n padding: calc(11 / 16 * 1em) calc(14 / 16 * 1em);\n border-radius: var(--border-radius);\n box-shadow: 0 0 0 rgba(0, 0, 0, 0.3);\n //border: 1px solid #007abf;\n color: inherit;\n line-height: 1.1em;\n cursor: pointer;\n transition: box-shadow 200ms ease-in-out;\n &:hover,\n &:focus {\n box-shadow:\n 0 0 0.5ex rgba(0, 0, 0, 0.2),\n 0 0 0 1px #007abf inset;\n }\n }\n"], ["\n margin-top: .25em;\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 0;\n font-family: var(--font-plex);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n pointer-events: auto;\n position: absolute;\n background-color: ",
|
|
506
|
+
var Results = styled.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n margin-top: 0.25em;\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 0;\n font-family: var(--font-plex);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n pointer-events: auto;\n position: absolute;\n background-color: ", ";\n width: 100%;\n border-radius: var(--border-radius);\n @media screen and (min-width: 599px) {\n max-width: 300px;\n }\n .result {\n max-width: 100%;\n color: currentColor;\n padding: calc(11 / 16 * 1em) calc(14 / 16 * 1em);\n border-radius: var(--border-radius);\n box-shadow: 0 0 0 rgba(0, 0, 0, 0.3);\n //border: 1px solid #007abf;\n color: inherit;\n line-height: 1.1em;\n cursor: pointer;\n transition: box-shadow 200ms ease-in-out;\n &:hover,\n &:focus {\n box-shadow:\n 0 0 0.5ex rgba(0, 0, 0, 0.2),\n 0 0 0 1px #007abf inset;\n }\n }\n"], ["\n margin-top: 0.25em;\n display: grid;\n grid-template-columns: 1fr;\n grid-gap: 0;\n font-family: var(--font-plex);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n pointer-events: auto;\n position: absolute;\n background-color: ",
|
|
507
|
+
";\n width: 100%;\n border-radius: var(--border-radius);\n @media screen and (min-width: 599px) {\n max-width: 300px;\n }\n .result {\n max-width: 100%;\n color: currentColor;\n padding: calc(11 / 16 * 1em) calc(14 / 16 * 1em);\n border-radius: var(--border-radius);\n box-shadow: 0 0 0 rgba(0, 0, 0, 0.3);\n //border: 1px solid #007abf;\n color: inherit;\n line-height: 1.1em;\n cursor: pointer;\n transition: box-shadow 200ms ease-in-out;\n &:hover,\n &:focus {\n box-shadow:\n 0 0 0.5ex rgba(0, 0, 0, 0.2),\n 0 0 0 1px #007abf inset;\n }\n }\n"])), function (_a) {
|
|
471
508
|
var backgroundColor = _a.$backgroundColor;
|
|
472
509
|
return backgroundColor;
|
|
473
510
|
});
|
package/es/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/tslib/tslib.es6.js"],"sourcesContent":["/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { Component } from 'react';
|
|
2
|
-
|
|
2
|
+
interface Municipality {
|
|
3
3
|
readonly GDENR: number;
|
|
4
4
|
readonly ORTNAME?: string;
|
|
5
5
|
readonly PLZ4?: number;
|
|
@@ -11,6 +11,7 @@ export interface Municipality {
|
|
|
11
11
|
readonly URL?: string;
|
|
12
12
|
timestamp?: number;
|
|
13
13
|
}
|
|
14
|
+
export type { Municipality };
|
|
14
15
|
export interface Props {
|
|
15
16
|
municipalityData: string;
|
|
16
17
|
dedupe?: boolean;
|
|
@@ -43,6 +44,7 @@ export declare class MunicipalitySearch extends Component<Props, State> {
|
|
|
43
44
|
numberOfLastSelectedMunicipalities: number;
|
|
44
45
|
resultBackgroundColor: string;
|
|
45
46
|
inputBackgroundColor: string;
|
|
47
|
+
maxResults: number;
|
|
46
48
|
};
|
|
47
49
|
state: {
|
|
48
50
|
isLoading: boolean;
|
|
@@ -65,5 +67,4 @@ export declare class MunicipalitySearch extends Component<Props, State> {
|
|
|
65
67
|
componentDidMount(): void;
|
|
66
68
|
render(): React.JSX.Element;
|
|
67
69
|
}
|
|
68
|
-
export {};
|
|
69
70
|
//# sourceMappingURL=municipalitySearch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"municipalitySearch.d.ts","sourceRoot":"","sources":["../src/municipalitySearch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAe,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"municipalitySearch.d.ts","sourceRoot":"","sources":["../src/municipalitySearch.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAe,SAAS,EAAE,MAAM,OAAO,CAAA;AAkBpD,UAAU,YAAY;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AACD,YAAY,EAAE,YAAY,EAAE,CAAA;AAC5B,MAAM,WAAW,KAAK;IAGpB,gBAAgB,EAAE,MAAM,CAAA;IAGxB,MAAM,CAAC,EAAE,OAAO,CAAA;IAGhB,aAAa,CAAC,EAAE,OAAO,CAAA;IAGvB,kBAAkB,EAAE,CAAC,YAAY,EAAE,YAAY,KAAK,IAAI,CAAA;IAGxD,MAAM,EAAE,IAAI,GAAG,IAAI,CAAA;IAGnB,WAAW,CAAC,EAAE,MAAM,CAAA;IAGpB,8BAA8B,CAAC,EAAE,OAAO,CAAA;IAGxC,kCAAkC,CAAC,EAAE,MAAM,CAAA;IAG3C,eAAe,CAAC,EAAE,OAAO,CAAA;IAGzB,UAAU,CAAC,EAAE,MAAM,CAAA;IAGnB,oBAAoB,CAAC,EAAE,YAAY,EAAE,CAAA;IAGrC,oBAAoB,CAAC,EAAE,YAAY,CAAA;IAGnC,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAG/B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAA;IAG3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAG7B,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B;AAED,UAAU,KAAK;IACb,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EACD,IAAI,GACJ,sBAAsB,GACtB,uBAAuB,GACvB,mCAAmC,CAAA;IACvC,cAAc,EAAE,YAAY,EAAE,CAAA;CAC/B;AAgED,qBAAa,kBAAmB,SAAQ,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC7D,OAAc,YAAY;;;;;;;MAOzB;IAEM,KAAK;;;;;;MAMX;IAED,OAAO,CAAC,cAAc,CAMrB;IAED,OAAO,CAAC,UAAU,CAqFjB;IAED,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,kBAAkB,CAezB;IAOD,OAAO,CAAC,kBAAkB,CAgBzB;IAKD,OAAO,CAAC,uBAAuB,CAkC9B;IAOD,OAAO,CAAC,4BAA4B,CAwBnC;IAQD,OAAO,CAAC,4BAA4B,CA6BnC;IAED,OAAO,CAAC,qBAAqB,CAiD5B;IAEM,kBAAkB,CAAC,SAAS,EAAE,KAAK;IAO1C,OAAO,CAAC,YAAY;IAIb,iBAAiB;IA2CjB,MAAM;CA8Id"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ta-interaktiv/react-municipality-search",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
4
|
"description": "React component that allows searching for Swiss municipalities with either ZIP code or place names.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"jsnext/main": "es/index.js",
|
|
17
17
|
"module": "es/index.js",
|
|
18
18
|
"types": "es/index.d.ts",
|
|
19
|
+
"type": "module",
|
|
19
20
|
"directories": {
|
|
20
21
|
"lib": "src",
|
|
21
22
|
"doc": "docs",
|
|
@@ -26,7 +27,6 @@
|
|
|
26
27
|
"src",
|
|
27
28
|
"es"
|
|
28
29
|
],
|
|
29
|
-
"private": false,
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"react-dom": ">=16.8.0",
|
|
53
53
|
"styled-components": "^6.1.1"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "67ff9606deaa086e9976be9e05fd1f7b8a88df15"
|
|
56
56
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
3
|
-
MunicipalitySearch as default,
|
|
4
|
-
Municipality,
|
|
5
|
-
Props as MunicipalitySearchProps
|
|
6
|
-
} from './municipalitySearch'
|
|
1
|
+
export { MunicipalitySearch, MunicipalitySearch as default } from './municipalitySearch';
|
|
2
|
+
export type { Municipality, Props as MunicipalitySearchProps } from './municipalitySearch';
|
|
@@ -17,7 +17,7 @@ interface LocalisedMessagesList {
|
|
|
17
17
|
[key: string]: MessageList
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
20
|
+
interface Municipality {
|
|
21
21
|
readonly GDENR: number
|
|
22
22
|
readonly ORTNAME?: string
|
|
23
23
|
readonly PLZ4?: number
|
|
@@ -29,7 +29,7 @@ export interface Municipality {
|
|
|
29
29
|
readonly URL?: string
|
|
30
30
|
timestamp?: number
|
|
31
31
|
}
|
|
32
|
-
|
|
32
|
+
export type { Municipality }
|
|
33
33
|
export interface Props {
|
|
34
34
|
/** Which year to use for the municipality data. For the 2019 data, this
|
|
35
35
|
* would be `2019`. */
|
|
@@ -152,7 +152,7 @@ const containsFourDigits = /\d{4}/
|
|
|
152
152
|
* browser) with hundreds of results. No one is going to need that.
|
|
153
153
|
*/
|
|
154
154
|
function showResults(results: any[]) {
|
|
155
|
-
return results.length > 0
|
|
155
|
+
return results.length > 0
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
export class MunicipalitySearch extends Component<Props, State> {
|
|
@@ -162,6 +162,7 @@ export class MunicipalitySearch extends Component<Props, State> {
|
|
|
162
162
|
numberOfLastSelectedMunicipalities: 1,
|
|
163
163
|
resultBackgroundColor: 'var(--site-background)',
|
|
164
164
|
inputBackgroundColor: 'var(--site-background)',
|
|
165
|
+
maxResults: 10,
|
|
165
166
|
}
|
|
166
167
|
|
|
167
168
|
public state = {
|
|
@@ -216,16 +217,41 @@ export class MunicipalitySearch extends Component<Props, State> {
|
|
|
216
217
|
// Also, we need to use two escape hatches because JS removes one? WTF?
|
|
217
218
|
const sanitizedSearchTerm = searchTerm.replace('.', '\\.')
|
|
218
219
|
const r = RegExp(sanitizedSearchTerm, 'i')
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
220
|
+
const exactWordRegex = RegExp(`\\b${sanitizedSearchTerm}\\b`, 'i')
|
|
221
|
+
const rankResults = (
|
|
222
|
+
searchTerm: string,
|
|
223
|
+
arrayToSort: Municipality[],
|
|
224
|
+
) => {
|
|
225
|
+
return arrayToSort.sort((a, b) => {
|
|
226
|
+
const aScore = scoreResult(
|
|
227
|
+
searchTerm.toLowerCase(),
|
|
228
|
+
a.NORMGEMEINDE.toLowerCase(),
|
|
229
|
+
)
|
|
230
|
+
const bScore = scoreResult(
|
|
231
|
+
searchTerm.toLowerCase(),
|
|
232
|
+
b.NORMGEMEINDE.toLowerCase(),
|
|
233
|
+
)
|
|
234
|
+
return bScore - aScore
|
|
235
|
+
})
|
|
236
|
+
}
|
|
228
237
|
|
|
238
|
+
const scoreResult = (searchTerm: string, stringToCompare:string) => {
|
|
239
|
+
if (stringToCompare === searchTerm) {
|
|
240
|
+
return 2 // Exact match
|
|
241
|
+
} else if (exactWordRegex.test(stringToCompare)) {
|
|
242
|
+
return 1 // Word match
|
|
243
|
+
} else {
|
|
244
|
+
return 0 // No match
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
const notExactMatches = municipalities.filter(
|
|
248
|
+
(municipality: Municipality) => r.test(municipality.NORMGEMEINDE),
|
|
249
|
+
)
|
|
250
|
+
// We need to sort the results by relevance so "bern" is higher ranked than "berneck"
|
|
251
|
+
results = rankResults(sanitizedSearchTerm, notExactMatches).slice(
|
|
252
|
+
0,
|
|
253
|
+
this.props.maxResults,
|
|
254
|
+
)
|
|
229
255
|
if (results.length < 1) {
|
|
230
256
|
this.setState({ error: 'error.noResultsByName' })
|
|
231
257
|
}
|
|
@@ -481,9 +507,9 @@ export class MunicipalitySearch extends Component<Props, State> {
|
|
|
481
507
|
}
|
|
482
508
|
}
|
|
483
509
|
|
|
484
|
-
private muniToString(muni: Municipality){
|
|
485
|
-
|
|
486
|
-
}
|
|
510
|
+
private muniToString(muni: Municipality) {
|
|
511
|
+
return muni.GDENR + (muni.ORTNAME ?? '') + (muni.PLZ4 ?? '')
|
|
512
|
+
}
|
|
487
513
|
/** Component mounting */
|
|
488
514
|
public componentDidMount() {
|
|
489
515
|
// Download municipalities list
|
|
@@ -499,9 +525,7 @@ private muniToString(muni: Municipality){
|
|
|
499
525
|
)
|
|
500
526
|
const filteredFromFetchedData: Municipality[] = data.filter(
|
|
501
527
|
(muni: Municipality) =>
|
|
502
|
-
allBfsIdsAndNames.includes(
|
|
503
|
-
this.muniToString(muni),
|
|
504
|
-
),
|
|
528
|
+
allBfsIdsAndNames.includes(this.muniToString(muni)),
|
|
505
529
|
)
|
|
506
530
|
// sort before deduplication
|
|
507
531
|
filteredFromFetchedData.sort((a, b) => {
|
|
@@ -538,7 +562,12 @@ private muniToString(muni: Municipality){
|
|
|
538
562
|
* once the context has changed.
|
|
539
563
|
*/
|
|
540
564
|
const t = translationServiceFactory(MESSAGES, this.props.locale)
|
|
541
|
-
const preSelectedMunicipality =
|
|
565
|
+
const preSelectedMunicipality =
|
|
566
|
+
this.props.selectedMunicipality ??
|
|
567
|
+
this.state.municipalities.find(
|
|
568
|
+
(muni: Municipality) =>
|
|
569
|
+
muni.GDENR === this.props.selectedMunicipalityId,
|
|
570
|
+
)
|
|
542
571
|
return (
|
|
543
572
|
<MunicipalitySearchContainer className='municipality-search'>
|
|
544
573
|
<InputRow className='inputRow'>
|
|
@@ -571,7 +600,7 @@ private muniToString(muni: Municipality){
|
|
|
571
600
|
viewBox='0 0 24 25'
|
|
572
601
|
xmlns='http://www.w3.org/2000/svg'
|
|
573
602
|
fill='currentColor'
|
|
574
|
-
strokeWidth=
|
|
603
|
+
strokeWidth='2'
|
|
575
604
|
>
|
|
576
605
|
<path
|
|
577
606
|
d='M3.9 22L2 20.1L9.6 12.5L2 4.9L3.9 3L11.5 10.6L19.1 3L21 4.9L13.4 12.5L21 20.1L19.1 22L11.5 14.4L3.9 22Z'
|
|
@@ -605,9 +634,7 @@ private muniToString(muni: Municipality){
|
|
|
605
634
|
<Transition
|
|
606
635
|
native
|
|
607
636
|
items={results}
|
|
608
|
-
keys={(result: Municipality) =>
|
|
609
|
-
this.muniToString(result)
|
|
610
|
-
}
|
|
637
|
+
keys={(result: Municipality) => this.muniToString(result)}
|
|
611
638
|
from={{ transform: 'translate(0,-20px)', opacity: 0 }}
|
|
612
639
|
enter={{ transform: 'translate(0,0px)', opacity: 1 }}
|
|
613
640
|
// leave={{ transform: 'translate(0, 60px)', opacity: 0 }}
|
|
@@ -738,7 +765,8 @@ const FlexInput = styled.input<{
|
|
|
738
765
|
}>`
|
|
739
766
|
// reset the default input styles
|
|
740
767
|
color: inherit;
|
|
741
|
-
background-color: ${({ $backgroundColor: backgroundColor }) =>
|
|
768
|
+
background-color: ${({ $backgroundColor: backgroundColor }) =>
|
|
769
|
+
backgroundColor};
|
|
742
770
|
border: solid 1px #7e7e7e7e;
|
|
743
771
|
border-radius: var(--border-radius);
|
|
744
772
|
box-shadow: none;
|
|
@@ -746,20 +774,21 @@ const FlexInput = styled.input<{
|
|
|
746
774
|
outline: none;
|
|
747
775
|
transition: all 0.3s ease-in-out;
|
|
748
776
|
padding: 0.5em;
|
|
749
|
-
padding-left: ${({ $lessPaddingLeft: lessPaddingLeft }) =>
|
|
777
|
+
padding-left: ${({ $lessPaddingLeft: lessPaddingLeft }) =>
|
|
778
|
+
lessPaddingLeft ? '1em' : '2.4em'};
|
|
750
779
|
margin: 0;
|
|
751
780
|
width: 100%;
|
|
752
781
|
display: flex;
|
|
753
|
-
&:disabled{
|
|
782
|
+
&:disabled {
|
|
754
783
|
opacity: 0.5;
|
|
755
784
|
}
|
|
756
|
-
&::placeholder{
|
|
785
|
+
&::placeholder {
|
|
757
786
|
color: inherit;
|
|
758
787
|
opacity: 0.5;
|
|
759
788
|
}
|
|
760
789
|
`
|
|
761
790
|
const Results = styled.div<{ $backgroundColor?: string }>`
|
|
762
|
-
margin-top: .25em;
|
|
791
|
+
margin-top: 0.25em;
|
|
763
792
|
display: grid;
|
|
764
793
|
grid-template-columns: 1fr;
|
|
765
794
|
grid-gap: 0;
|
|
@@ -769,7 +798,8 @@ const Results = styled.div<{ $backgroundColor?: string }>`
|
|
|
769
798
|
flex-direction: column;
|
|
770
799
|
pointer-events: auto;
|
|
771
800
|
position: absolute;
|
|
772
|
-
background-color: ${({ $backgroundColor: backgroundColor }) =>
|
|
801
|
+
background-color: ${({ $backgroundColor: backgroundColor }) =>
|
|
802
|
+
backgroundColor};
|
|
773
803
|
width: 100%;
|
|
774
804
|
border-radius: var(--border-radius);
|
|
775
805
|
@media screen and (min-width: 599px) {
|