@popsure/dirty-swan 0.66.31 → 0.67.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +355 -344
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/components/autocompleteAddress/index.d.ts +3 -1
- package/dist/cjs/lib/components/autocompleteAddress/index.stories.d.ts +14 -0
- package/dist/esm/components/autocompleteAddress/index.js +35 -20
- package/dist/esm/components/autocompleteAddress/index.js.map +1 -1
- package/dist/esm/components/autocompleteAddress/index.stories.js +25 -4
- package/dist/esm/components/autocompleteAddress/index.stories.js.map +1 -1
- package/dist/esm/components/autocompleteAddress/index.test.js +85 -4
- package/dist/esm/components/autocompleteAddress/index.test.js.map +1 -1
- package/dist/esm/{index-BYyiyH6K.js → index-DbXDuiSV.js} +2 -2
- package/dist/esm/{index-BYyiyH6K.js.map → index-DbXDuiSV.js.map} +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/lib/components/autocompleteAddress/index.d.ts +3 -1
- package/dist/esm/lib/components/autocompleteAddress/index.stories.d.ts +14 -0
- package/dist/esm/util/images/index.stories.js +1 -1
- package/package.json +1 -1
- package/src/lib/components/autocompleteAddress/index.stories.tsx +24 -2
- package/src/lib/components/autocompleteAddress/index.test.tsx +59 -1
- package/src/lib/components/autocompleteAddress/index.tsx +58 -16
|
@@ -27,12 +27,14 @@ export interface AutocompleteAddressProps {
|
|
|
27
27
|
additionalInformation?: string;
|
|
28
28
|
postcode?: string;
|
|
29
29
|
city?: string;
|
|
30
|
+
country?: string;
|
|
31
|
+
countrySearch?: string;
|
|
30
32
|
};
|
|
31
33
|
manualAddressEntryTexts?: {
|
|
32
34
|
preText?: string;
|
|
33
35
|
cta?: string;
|
|
34
36
|
};
|
|
35
|
-
countryCode?: string;
|
|
37
|
+
countryCode?: string | null;
|
|
36
38
|
}
|
|
37
39
|
declare const AutocompleteAddress: ({ apiKey, address: initialAddress, onAddressChange, placeholders, manualAddressEntryTexts, inputProps, countryCode }: AutocompleteAddressProps) => JSX.Element;
|
|
38
40
|
export { AutocompleteAddress };
|
|
@@ -42,6 +42,17 @@ declare const story: {
|
|
|
42
42
|
};
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
|
+
countryCode: {
|
|
46
|
+
description: string;
|
|
47
|
+
table: {
|
|
48
|
+
type: {
|
|
49
|
+
summary: string;
|
|
50
|
+
};
|
|
51
|
+
defaultValue: {
|
|
52
|
+
summary: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
45
56
|
};
|
|
46
57
|
args: {
|
|
47
58
|
apiKey: string;
|
|
@@ -62,6 +73,9 @@ export declare const AutocompleteAddressStory: {
|
|
|
62
73
|
export declare const WithAddress: {
|
|
63
74
|
render: ({ apiKey, onAddressChange, placeholders, }: AutocompleteAddressProps) => JSX.Element;
|
|
64
75
|
};
|
|
76
|
+
export declare const Worldwide: {
|
|
77
|
+
render: ({ apiKey, onAddressChange }: AutocompleteAddressProps) => JSX.Element;
|
|
78
|
+
};
|
|
65
79
|
export declare const WithLocalisationEntryText: {
|
|
66
80
|
render: ({ apiKey, onAddressChange }: AutocompleteAddressProps) => JSX.Element;
|
|
67
81
|
};
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { b as __assign } from '../../tslib.es6-CVlKGIvp.js';
|
|
2
2
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
3
|
+
import { useState, useRef, useMemo, useEffect, useCallback } from 'react';
|
|
4
4
|
import { c as classNames } from '../../index-DLQEsiym.js';
|
|
5
5
|
import { d as debounce } from '../../index-BClARCFl.js';
|
|
6
6
|
import { Input } from '../input/index.js';
|
|
7
|
-
import {
|
|
7
|
+
import { S as SearchableDropdown } from '../../index-B18M6b67.js';
|
|
8
|
+
import { f as f7, $ as $5 } from '../../index-DbXDuiSV.js';
|
|
8
9
|
import { s as styleInject } from '../../style-inject.es-tgCJW-Cu.js';
|
|
9
10
|
import '../../_commonjsHelpers-BFTU3MAI.js';
|
|
10
11
|
import '../../index-CNcEE5dn.js';
|
|
12
|
+
import '../icon/icons/ChevronDown.js';
|
|
13
|
+
import '../icon/IconWrapper/IconWrapper.js';
|
|
14
|
+
import '../../useOnClickOutside-B5hujnpp.js';
|
|
11
15
|
|
|
12
16
|
var geocoderAddressComponentToPartialAddress = function (input) {
|
|
13
17
|
var mapping = {
|
|
@@ -82,20 +86,29 @@ var loadGoogleMapsApiDynamically = function (callback, apiKey) {
|
|
|
82
86
|
};
|
|
83
87
|
var AutocompleteAddress = function (_a) {
|
|
84
88
|
var _b;
|
|
85
|
-
var _c;
|
|
86
|
-
var apiKey = _a.apiKey, initialAddress = _a.address, onAddressChange = _a.onAddressChange, placeholders = _a.placeholders, manualAddressEntryTexts = _a.manualAddressEntryTexts, inputProps = _a.inputProps,
|
|
87
|
-
var
|
|
88
|
-
var
|
|
89
|
+
var _c, _d;
|
|
90
|
+
var apiKey = _a.apiKey, initialAddress = _a.address, onAddressChange = _a.onAddressChange, placeholders = _a.placeholders, manualAddressEntryTexts = _a.manualAddressEntryTexts, inputProps = _a.inputProps, _e = _a.countryCode, countryCode = _e === void 0 ? GERMANY_ALPHA_CODE : _e;
|
|
91
|
+
var _f = useState(false), manualAddressEntry = _f[0], setManualAddressEntry = _f[1];
|
|
92
|
+
var _g = useState(false), isLoading = _g[0], setIsLoading = _g[1];
|
|
89
93
|
var autocomplete = useRef(null);
|
|
90
94
|
var autocompleteElement = useRef(null);
|
|
91
95
|
var map = useRef(null);
|
|
92
96
|
var marker = useRef(null);
|
|
93
|
-
var
|
|
94
|
-
var
|
|
97
|
+
var _h = useState(initialAddress), address = _h[0], setAddress = _h[1];
|
|
98
|
+
var _j = useState(((_c = window.google) === null || _c === void 0 ? void 0 : _c.maps) !== undefined), hasLoadedGoogleAPI = _j[0], setHasLoadedGoogleAPI = _j[1];
|
|
95
99
|
loadGoogleMapsApiDynamically(function () {
|
|
96
100
|
setHasLoadedGoogleAPI(true);
|
|
97
101
|
}, apiKey);
|
|
98
|
-
var
|
|
102
|
+
var _k = useState(null), place = _k[0], setPlace = _k[1];
|
|
103
|
+
var isWorldwide = countryCode === null;
|
|
104
|
+
var countryOptions = useMemo(function () {
|
|
105
|
+
return isWorldwide
|
|
106
|
+
? f7().map(function (_a) {
|
|
107
|
+
var code = _a.code, name = _a.name;
|
|
108
|
+
return ({ id: code, label: name });
|
|
109
|
+
})
|
|
110
|
+
: [];
|
|
111
|
+
}, [isWorldwide]);
|
|
99
112
|
useEffect(function () {
|
|
100
113
|
if (address) {
|
|
101
114
|
if (autocompleteElement.current && address.street) {
|
|
@@ -109,10 +122,7 @@ var AutocompleteAddress = function (_a) {
|
|
|
109
122
|
return;
|
|
110
123
|
}
|
|
111
124
|
var reference = document.getElementById('autocomplete');
|
|
112
|
-
autocomplete.current = new google.maps.places.Autocomplete(reference, {
|
|
113
|
-
types: ['address'],
|
|
114
|
-
componentRestrictions: { country: countryCode },
|
|
115
|
-
});
|
|
125
|
+
autocomplete.current = new google.maps.places.Autocomplete(reference, __assign({ types: ['address'] }, (countryCode && { componentRestrictions: { country: countryCode } })));
|
|
116
126
|
autocomplete.current.addListener('place_changed', onPlaceChanged);
|
|
117
127
|
map.current = new google.maps.Map(document.getElementById('map'), MAP_CONFIG_OBJ);
|
|
118
128
|
import('../../mapStyle-C69a9tQ6.js').then(function (_a) {
|
|
@@ -171,22 +181,27 @@ var AutocompleteAddress = function (_a) {
|
|
|
171
181
|
var handleEnterAddressManually = function () {
|
|
172
182
|
setManualAddressEntry(true);
|
|
173
183
|
};
|
|
184
|
+
var updateManualAddress = function (changes, _a) {
|
|
185
|
+
var _b;
|
|
186
|
+
var _c = _a === void 0 ? { updatePlace: true } : _a, updatePlace = _c.updatePlace;
|
|
187
|
+
var newAddress = __assign(__assign(__assign({}, address), changes), { country: (_b = countryCode !== null && countryCode !== void 0 ? countryCode : changes.country) !== null && _b !== void 0 ? _b : address === null || address === void 0 ? void 0 : address.country });
|
|
188
|
+
setAddress(newAddress);
|
|
189
|
+
onAddressChange(newAddress);
|
|
190
|
+
if (updatePlace) {
|
|
191
|
+
debouncedSetPlace(newAddress);
|
|
192
|
+
}
|
|
193
|
+
};
|
|
174
194
|
var onManualAddressChange = function (_a) {
|
|
175
195
|
var _b = _a === void 0 ? { updatePlace: true } : _a, updatePlace = _b.updatePlace;
|
|
176
196
|
return function (e) {
|
|
177
197
|
var _a;
|
|
178
|
-
|
|
179
|
-
setAddress(newAddress);
|
|
180
|
-
onAddressChange(newAddress);
|
|
181
|
-
if (updatePlace) {
|
|
182
|
-
debouncedSetPlace(newAddress);
|
|
183
|
-
}
|
|
198
|
+
return updateManualAddress((_a = {}, _a[e.target.name] = e.target.value, _a), { updatePlace: updatePlace });
|
|
184
199
|
};
|
|
185
200
|
};
|
|
186
201
|
return (jsxs(Fragment, { children: [jsxs("div", { className: classNames("wmx8 bg-neutral-600 ".concat(styles['map-container']), (_b = {},
|
|
187
202
|
_b[styles['map-container--hidden']] = place === null,
|
|
188
203
|
_b)), children: [jsx("div", { className: styles.map, id: "map", "aria-hidden": "true" }), isLoading && (jsx("div", { className: styles['loading-spinner'], children: jsx("div", { className: "ds-spinner ds-spinner__m" }) }))] }), jsx("div", { className: "wmx8", children: manualAddressEntry === false ? (jsxs("div", { style: { position: 'relative' }, children: [jsx(Input, { className: "w100", id: "autocomplete", "data-testid": "autocomplete", type: "text", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.manualAddressEntry) || 'Search for address', ref: autocompleteElement, disabled: hasLoadedGoogleAPI === false }, "autocomplete-search"), hasLoadedGoogleAPI === false && (jsx("div", { "data-testid": "google-api-loader", className: styles['loading-spinner'], children: jsx("div", { className: "ds-spinner ds-spinner__m" }) }))] })) : (jsxs(Fragment, { children: [jsxs("div", { className: "d-flex c-gap16 ".concat(styles['input-line']), children: [jsx(Input, __assign({ className: "w100", "data-testid": "autocomplete", type: "text", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.street) || 'Street', value: (address === null || address === void 0 ? void 0 : address.street) || '', onChange: onManualAddressChange(), name: "street" }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.street), "autocomplete-street"), jsx(Input, __assign({ className: "wmx2 ".concat(styles['house-number-input']), "data-testid": "autocomplete-house-number", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.houseNumber) || 'House number', value: (address === null || address === void 0 ? void 0 : address.houseNumber) || '', name: "houseNumber", onChange: onManualAddressChange() }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.houseNumber), "autocomplete-house-number")] }), jsx(Input, __assign({ className: "mt16", "data-testid": "autocomplete-additional-info", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.additionalInformation) ||
|
|
189
|
-
'Additional information (C/O, apartment, etc.)', value: (address === null || address === void 0 ? void 0 : address.additionalInformation) || '', name: "additionalInformation", onChange: onManualAddressChange({ updatePlace: false }) }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.additionalInformation), "autocomplete-additional-info"), jsxs("div", { className: "d-flex mt16 c-gap16 ".concat(styles['input-line']), children: [jsx(Input, __assign({ className: "w100", "data-testid": "autocomplete-postcode", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.postcode) || 'Postcode', value: (address === null || address === void 0 ? void 0 : address.postcode) || '', name: "postcode", onChange: onManualAddressChange() }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.postcode), "autocomplete-postcode"), jsx(Input, __assign({ className: "w100", "data-testid": "autocomplete-city", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.city) || 'City', value: (address === null || address === void 0 ? void 0 : address.city) || '', name: "city", onChange: onManualAddressChange() }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.city), "autocomplete-city")] })] })) }), manualAddressEntry === false && (jsxs("div", { className: "p-p mt8", children: [(manualAddressEntryTexts === null || manualAddressEntryTexts === void 0 ? void 0 : manualAddressEntryTexts.preText) || 'Or ', jsx("button", { className: 'p-a p-p fw-bold c-pointer bg-transparent', onClick: handleEnterAddressManually, type: "button", children: (manualAddressEntryTexts === null || manualAddressEntryTexts === void 0 ? void 0 : manualAddressEntryTexts.cta) || 'enter address manually' })] }))] }));
|
|
204
|
+
'Additional information (C/O, apartment, etc.)', value: (address === null || address === void 0 ? void 0 : address.additionalInformation) || '', name: "additionalInformation", onChange: onManualAddressChange({ updatePlace: false }) }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.additionalInformation), "autocomplete-additional-info"), jsxs("div", { className: "d-flex mt16 c-gap16 ".concat(styles['input-line']), children: [jsx(Input, __assign({ className: "w100", "data-testid": "autocomplete-postcode", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.postcode) || 'Postcode', value: (address === null || address === void 0 ? void 0 : address.postcode) || '', name: "postcode", onChange: onManualAddressChange() }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.postcode), "autocomplete-postcode"), jsx(Input, __assign({ className: "w100", "data-testid": "autocomplete-city", placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.city) || 'City', value: (address === null || address === void 0 ? void 0 : address.city) || '', name: "city", onChange: onManualAddressChange() }, inputProps === null || inputProps === void 0 ? void 0 : inputProps.city), "autocomplete-city")] }), isWorldwide && (jsx("div", { className: "mt16", "data-testid": "autocomplete-country", children: jsx(SearchableDropdown, { options: countryOptions, value: (_d = address === null || address === void 0 ? void 0 : address.country) !== null && _d !== void 0 ? _d : null, onChange: function (country) { return updateManualAddress({ country: country }); }, searchable: true, bordered: true, showChevron: true, groupName: "autocomplete-country", triggerPlaceholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.country) || 'Country', placeholder: (placeholders === null || placeholders === void 0 ? void 0 : placeholders.countrySearch) || 'Search country' }) }))] })) }), manualAddressEntry === false && (jsxs("div", { className: "p-p mt8", children: [(manualAddressEntryTexts === null || manualAddressEntryTexts === void 0 ? void 0 : manualAddressEntryTexts.preText) || 'Or ', jsx("button", { className: 'p-a p-p fw-bold c-pointer bg-transparent', onClick: handleEnterAddressManually, type: "button", children: (manualAddressEntryTexts === null || manualAddressEntryTexts === void 0 ? void 0 : manualAddressEntryTexts.cta) || 'enter address manually' })] }))] }));
|
|
190
205
|
};
|
|
191
206
|
|
|
192
207
|
export { AutocompleteAddress };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/lib/components/autocompleteAddress/util/index.ts","../../../../../src/lib/components/autocompleteAddress/index.tsx"],"sourcesContent":["import {\n Address,\n countryNameFromAlphaCode,\n Alpha2CountryCode,\n} from '@popsure/public-models';\n\nexport const geocoderAddressComponentToPartialAddress = (\n input: google.maps.GeocoderAddressComponent[]\n): Partial<Address> => {\n interface MappedType {\n key: keyof Address;\n value: 'long_name' | 'short_name';\n }\n\n const mapping: {\n route: MappedType;\n street_number: MappedType;\n postal_code: MappedType;\n locality: MappedType;\n country: MappedType;\n } = {\n route: {\n key: 'street',\n value: 'long_name',\n },\n street_number: {\n key: 'houseNumber',\n value: 'long_name',\n },\n postal_code: {\n key: 'postcode',\n value: 'long_name',\n },\n locality: {\n key: 'city',\n value: 'long_name',\n },\n country: {\n key: 'country',\n value: 'short_name',\n },\n };\n\n const toReturn: Partial<Address> = {};\n input.forEach((value) => {\n const type = value.types[0] as keyof typeof mapping;\n const mappedValue = mapping[type];\n if (mappedValue) {\n const isPostalCodePrefix = value.types.includes(\n 'postal_code_prefix' as string\n );\n if (mappedValue.key === 'postcode' && isPostalCodePrefix) {\n return;\n }\n toReturn[mappedValue.key] = value[mappedValue.value];\n }\n });\n\n return toReturn;\n};\n\nexport const inlineAddress = (address: Address) =>\n `${address.street} ${address.houseNumber}, ${\n address.city\n }, ${countryNameFromAlphaCode(address.country as Alpha2CountryCode)}`;\n","import { ChangeEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { Input } from '../input';\nimport {\n Address,\n Alpha2CountryCode,\n countryNameFromAlphaCode,\n} from '@popsure/public-models';\n\nimport { geocoderAddressComponentToPartialAddress } from './util';\n\nimport styles from './style.module.scss';\n\nconst GERMANY_LAT_LNG = { lat: 51.54317, lng: 10.3181503 };\n\nconst GERMANY_ALPHA_CODE = 'DE';\n\nconst MAP_CONFIG_OBJ = {\n zoom: 6,\n center: GERMANY_LAT_LNG,\n fullscreenControl: false,\n mapTypeControl: false,\n panControl: false,\n zoomControl: false,\n streetViewControl: false,\n scrollwheel: false,\n scaleControl: false,\n rotateControl: false,\n draggable: false,\n};\n\nconst loadGoogleMapsApiDynamically = (callback: () => void, apiKey: string) => {\n const existingScript = document.getElementById('googleMapsImportScript');\n\n if (existingScript) {\n return;\n }\n\n const googleMapImportScript = document.createElement('script');\n googleMapImportScript.id = 'googleMapsImportScript';\n googleMapImportScript.type = 'text/javascript';\n googleMapImportScript.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places`;\n document.head.appendChild(googleMapImportScript);\n\n googleMapImportScript.onload = () => {\n callback();\n };\n};\n\nexport interface AutocompleteAddressProps {\n apiKey: string;\n address?: Partial<Address>;\n onAddressChange: (address: Partial<Address>) => void;\n inputProps?: {\n street?: {\n name?: string;\n };\n houseNumber?: {\n name?: string;\n };\n additionalInformation?: {\n name?: string;\n };\n postcode?: {\n name?: string;\n };\n city?: {\n name?: string;\n };\n };\n placeholders?: {\n manualAddressEntry?: string;\n street?: string;\n houseNumber?: string;\n additionalInformation?: string;\n postcode?: string;\n city?: string;\n };\n manualAddressEntryTexts?: {\n preText?: string;\n cta?: string;\n };\n countryCode?: string;\n}\n\nconst AutocompleteAddress = ({\n apiKey,\n address: initialAddress,\n onAddressChange,\n placeholders,\n manualAddressEntryTexts,\n inputProps,\n countryCode = GERMANY_ALPHA_CODE\n}: AutocompleteAddressProps) => {\n const [manualAddressEntry, setManualAddressEntry] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const autocomplete = useRef<google.maps.places.Autocomplete | null>(null);\n const autocompleteElement = useRef<HTMLInputElement | null>(null);\n const map = useRef<google.maps.Map | null>(null);\n const marker = useRef<google.maps.Marker | null>(null);\n const [address, setAddress] = useState(initialAddress);\n const [hasLoadedGoogleAPI, setHasLoadedGoogleAPI] = useState(\n window.google?.maps !== undefined\n );\n\n loadGoogleMapsApiDynamically(() => {\n setHasLoadedGoogleAPI(true);\n }, apiKey);\n\n const [place, setPlace] = useState<google.maps.places.PlaceResult | null>(\n null\n );\n\n useEffect(() => {\n if (address) {\n if (autocompleteElement.current && address.street) {\n autocompleteElement.current.value = address.street;\n }\n\n handleEnterAddressManually();\n }\n }, [address, onAddressChange, hasLoadedGoogleAPI]);\n\n useEffect(() => {\n if (!hasLoadedGoogleAPI) {\n return;\n }\n\n const reference = document.getElementById(\n 'autocomplete'\n ) as HTMLInputElement;\n\n autocomplete.current = new google.maps.places.Autocomplete(reference, {\n types: ['address'],\n componentRestrictions: { country: countryCode },\n });\n\n autocomplete.current.addListener('place_changed', onPlaceChanged);\n\n map.current = new google.maps.Map(\n document.getElementById('map')!,\n MAP_CONFIG_OBJ\n );\n\n import('./mapStyle').then(({ style }) => {\n map.current?.mapTypes.set('styled_map', style);\n map.current?.setMapTypeId('styled_map');\n });\n\n marker.current = new google.maps.Marker({\n map: map.current,\n });\n\n setPlaceFromAddress(address);\n }, [hasLoadedGoogleAPI, countryCode]); // eslint-disable-line\n\n const onPlaceChanged = (\n newPlace:\n | google.maps.places.PlaceResult\n | undefined = autocomplete.current?.getPlace(),\n updateAddress: boolean = true\n ) => {\n if (newPlace?.geometry?.location) {\n const geocoderAddress = geocoderAddressComponentToPartialAddress(\n newPlace.address_components!\n );\n\n setPlace(newPlace);\n if (updateAddress) {\n setAddress((oldValue) => ({\n ...geocoderAddress,\n additionalInformation: oldValue?.additionalInformation,\n }));\n onAddressChange?.(geocoderAddress);\n }\n\n map.current?.panTo(newPlace.geometry.location);\n map.current?.setZoom(15);\n\n marker.current?.setPosition(newPlace.geometry.location);\n }\n };\n\n const setPlaceFromAddress = useCallback(\n (address: Partial<Address> | undefined) => {\n if (!map.current) {\n return;\n }\n\n if (address) {\n const service = new google.maps.places.PlacesService(map.current);\n const query = `${address.street ?? ''} ${address.houseNumber ?? ''}, ${\n address.city ?? ''\n }, ${\n address.country\n ? countryNameFromAlphaCode(address.country as Alpha2CountryCode)\n : ''\n }`;\n setIsLoading(true);\n service.findPlaceFromQuery(\n {\n fields: ['place_id'],\n query,\n },\n (results) => {\n const firstResult = results && results[0];\n if (firstResult && firstResult.place_id) {\n service.getDetails(\n { placeId: firstResult.place_id },\n (newPlace) => {\n onPlaceChanged(newPlace ?? undefined, false);\n }\n );\n }\n setIsLoading(false);\n }\n );\n }\n },\n []\n );\n\n const debouncedSetPlace = debounce(setPlaceFromAddress, 2000);\n\n const handleEnterAddressManually = () => {\n setManualAddressEntry(true);\n };\n\n const onManualAddressChange =\n ({ updatePlace } = { updatePlace: true }) =>\n (e: ChangeEvent<HTMLInputElement>) => {\n const newAddress = {\n ...address,\n [e.target.name]: e.target.value,\n country: countryCode,\n };\n setAddress(newAddress);\n onAddressChange(newAddress);\n\n if (updatePlace) {\n debouncedSetPlace(newAddress);\n }\n };\n\n return (\n <>\n <div\n className={classNames(`wmx8 bg-neutral-600 ${styles['map-container']}`, {\n [styles['map-container--hidden']]: place === null,\n })}\n >\n <div className={styles.map} id=\"map\" aria-hidden=\"true\" />\n {isLoading && (\n <div className={styles['loading-spinner']}>\n <div className=\"ds-spinner ds-spinner__m\" />\n </div>\n )}\n </div>\n <div className={`wmx8`}>\n {manualAddressEntry === false ? (\n <div style={{ position: 'relative' }}>\n <Input\n className=\"w100\"\n id=\"autocomplete\"\n key=\"autocomplete-search\"\n data-testid=\"autocomplete\"\n type=\"text\"\n placeholder={\n placeholders?.manualAddressEntry || 'Search for address'\n }\n ref={autocompleteElement}\n disabled={hasLoadedGoogleAPI === false}\n />\n {hasLoadedGoogleAPI === false && (\n <div\n data-testid=\"google-api-loader\"\n className={styles['loading-spinner']}\n >\n <div className=\"ds-spinner ds-spinner__m\" />\n </div>\n )}\n </div>\n ) : (\n <>\n <div className={`d-flex c-gap16 ${styles['input-line']}`}>\n <Input\n className=\"w100\"\n data-testid=\"autocomplete\"\n key=\"autocomplete-street\"\n type=\"text\"\n placeholder={placeholders?.street || 'Street'}\n value={address?.street || ''}\n onChange={onManualAddressChange()}\n name=\"street\"\n {...inputProps?.street}\n />\n <Input\n className={`wmx2 ${styles['house-number-input']}`}\n data-testid=\"autocomplete-house-number\"\n key=\"autocomplete-house-number\"\n placeholder={placeholders?.houseNumber || 'House number'}\n value={address?.houseNumber || ''}\n name=\"houseNumber\"\n onChange={onManualAddressChange()}\n {...inputProps?.houseNumber}\n />\n </div>\n <Input\n className=\"mt16\"\n data-testid=\"autocomplete-additional-info\"\n key=\"autocomplete-additional-info\"\n placeholder={\n placeholders?.additionalInformation ||\n 'Additional information (C/O, apartment, etc.)'\n }\n value={address?.additionalInformation || ''}\n name=\"additionalInformation\"\n onChange={onManualAddressChange({ updatePlace: false })}\n {...inputProps?.additionalInformation}\n />\n <div className={`d-flex mt16 c-gap16 ${styles['input-line']}`}>\n <Input\n className=\"w100\"\n data-testid=\"autocomplete-postcode\"\n key=\"autocomplete-postcode\"\n placeholder={placeholders?.postcode || 'Postcode'}\n value={address?.postcode || ''}\n name=\"postcode\"\n onChange={onManualAddressChange()}\n {...inputProps?.postcode}\n />\n <Input\n className=\"w100\"\n data-testid=\"autocomplete-city\"\n key=\"autocomplete-city\"\n placeholder={placeholders?.city || 'City'}\n value={address?.city || ''}\n name=\"city\"\n onChange={onManualAddressChange()}\n {...inputProps?.city}\n />\n </div>\n </>\n )}\n </div>\n {manualAddressEntry === false && (\n <div className=\"p-p mt8\">\n {manualAddressEntryTexts?.preText || 'Or '}\n <button\n className={'p-a p-p fw-bold c-pointer bg-transparent'}\n onClick={handleEnterAddressManually}\n type=\"button\"\n >\n {manualAddressEntryTexts?.cta || 'enter address manually'}\n </button>\n </div>\n )}\n </>\n );\n};\n\nexport { AutocompleteAddress };\n"],"names":["countryNameFromAlphaCode","_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/lib/components/autocompleteAddress/util/index.ts","../../../../../src/lib/components/autocompleteAddress/index.tsx"],"sourcesContent":["import {\n Address,\n countryNameFromAlphaCode,\n Alpha2CountryCode,\n} from '@popsure/public-models';\n\nexport const geocoderAddressComponentToPartialAddress = (\n input: google.maps.GeocoderAddressComponent[]\n): Partial<Address> => {\n interface MappedType {\n key: keyof Address;\n value: 'long_name' | 'short_name';\n }\n\n const mapping: {\n route: MappedType;\n street_number: MappedType;\n postal_code: MappedType;\n locality: MappedType;\n country: MappedType;\n } = {\n route: {\n key: 'street',\n value: 'long_name',\n },\n street_number: {\n key: 'houseNumber',\n value: 'long_name',\n },\n postal_code: {\n key: 'postcode',\n value: 'long_name',\n },\n locality: {\n key: 'city',\n value: 'long_name',\n },\n country: {\n key: 'country',\n value: 'short_name',\n },\n };\n\n const toReturn: Partial<Address> = {};\n input.forEach((value) => {\n const type = value.types[0] as keyof typeof mapping;\n const mappedValue = mapping[type];\n if (mappedValue) {\n const isPostalCodePrefix = value.types.includes(\n 'postal_code_prefix' as string\n );\n if (mappedValue.key === 'postcode' && isPostalCodePrefix) {\n return;\n }\n toReturn[mappedValue.key] = value[mappedValue.value];\n }\n });\n\n return toReturn;\n};\n\nexport const inlineAddress = (address: Address) =>\n `${address.street} ${address.houseNumber}, ${\n address.city\n }, ${countryNameFromAlphaCode(address.country as Alpha2CountryCode)}`;\n","import {\n ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { Input } from '../input';\nimport { SearchableDropdown } from '../searchableDropdown';\nimport {\n Address,\n Alpha2CountryCode,\n countryNameFromAlphaCode,\n getAllCountries,\n} from '@popsure/public-models';\n\nimport { geocoderAddressComponentToPartialAddress } from './util';\n\nimport styles from './style.module.scss';\n\nconst GERMANY_LAT_LNG = { lat: 51.54317, lng: 10.3181503 };\n\nconst GERMANY_ALPHA_CODE = 'DE';\n\nconst MAP_CONFIG_OBJ = {\n zoom: 6,\n center: GERMANY_LAT_LNG,\n fullscreenControl: false,\n mapTypeControl: false,\n panControl: false,\n zoomControl: false,\n streetViewControl: false,\n scrollwheel: false,\n scaleControl: false,\n rotateControl: false,\n draggable: false,\n};\n\nconst loadGoogleMapsApiDynamically = (callback: () => void, apiKey: string) => {\n const existingScript = document.getElementById('googleMapsImportScript');\n\n if (existingScript) {\n return;\n }\n\n const googleMapImportScript = document.createElement('script');\n googleMapImportScript.id = 'googleMapsImportScript';\n googleMapImportScript.type = 'text/javascript';\n googleMapImportScript.src = `https://maps.googleapis.com/maps/api/js?key=${apiKey}&libraries=places`;\n document.head.appendChild(googleMapImportScript);\n\n googleMapImportScript.onload = () => {\n callback();\n };\n};\n\nexport interface AutocompleteAddressProps {\n apiKey: string;\n address?: Partial<Address>;\n onAddressChange: (address: Partial<Address>) => void;\n inputProps?: {\n street?: {\n name?: string;\n };\n houseNumber?: {\n name?: string;\n };\n additionalInformation?: {\n name?: string;\n };\n postcode?: {\n name?: string;\n };\n city?: {\n name?: string;\n };\n };\n placeholders?: {\n manualAddressEntry?: string;\n street?: string;\n houseNumber?: string;\n additionalInformation?: string;\n postcode?: string;\n city?: string;\n country?: string;\n countrySearch?: string;\n };\n manualAddressEntryTexts?: {\n preText?: string;\n cta?: string;\n };\n countryCode?: string | null;\n}\n\nconst AutocompleteAddress = ({\n apiKey,\n address: initialAddress,\n onAddressChange,\n placeholders,\n manualAddressEntryTexts,\n inputProps,\n countryCode = GERMANY_ALPHA_CODE\n}: AutocompleteAddressProps) => {\n const [manualAddressEntry, setManualAddressEntry] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const autocomplete = useRef<google.maps.places.Autocomplete | null>(null);\n const autocompleteElement = useRef<HTMLInputElement | null>(null);\n const map = useRef<google.maps.Map | null>(null);\n const marker = useRef<google.maps.Marker | null>(null);\n const [address, setAddress] = useState(initialAddress);\n const [hasLoadedGoogleAPI, setHasLoadedGoogleAPI] = useState(\n window.google?.maps !== undefined\n );\n\n loadGoogleMapsApiDynamically(() => {\n setHasLoadedGoogleAPI(true);\n }, apiKey);\n\n const [place, setPlace] = useState<google.maps.places.PlaceResult | null>(\n null\n );\n\n const isWorldwide = countryCode === null;\n\n const countryOptions = useMemo(\n () =>\n isWorldwide\n ? getAllCountries().map(({ code, name }) => ({ id: code, label: name }))\n : [],\n [isWorldwide]\n );\n\n useEffect(() => {\n if (address) {\n if (autocompleteElement.current && address.street) {\n autocompleteElement.current.value = address.street;\n }\n\n handleEnterAddressManually();\n }\n }, [address, onAddressChange, hasLoadedGoogleAPI]);\n\n useEffect(() => {\n if (!hasLoadedGoogleAPI) {\n return;\n }\n\n const reference = document.getElementById(\n 'autocomplete'\n ) as HTMLInputElement;\n\n autocomplete.current = new google.maps.places.Autocomplete(reference, {\n types: ['address'],\n ...(countryCode && { componentRestrictions: { country: countryCode } }),\n });\n\n autocomplete.current.addListener('place_changed', onPlaceChanged);\n\n map.current = new google.maps.Map(\n document.getElementById('map')!,\n MAP_CONFIG_OBJ\n );\n\n import('./mapStyle').then(({ style }) => {\n map.current?.mapTypes.set('styled_map', style);\n map.current?.setMapTypeId('styled_map');\n });\n\n marker.current = new google.maps.Marker({\n map: map.current,\n });\n\n setPlaceFromAddress(address);\n }, [hasLoadedGoogleAPI, countryCode]); // eslint-disable-line\n\n const onPlaceChanged = (\n newPlace:\n | google.maps.places.PlaceResult\n | undefined = autocomplete.current?.getPlace(),\n updateAddress: boolean = true\n ) => {\n if (newPlace?.geometry?.location) {\n const geocoderAddress = geocoderAddressComponentToPartialAddress(\n newPlace.address_components!\n );\n\n setPlace(newPlace);\n if (updateAddress) {\n setAddress((oldValue) => ({\n ...geocoderAddress,\n additionalInformation: oldValue?.additionalInformation,\n }));\n onAddressChange?.(geocoderAddress);\n }\n\n map.current?.panTo(newPlace.geometry.location);\n map.current?.setZoom(15);\n\n marker.current?.setPosition(newPlace.geometry.location);\n }\n };\n\n const setPlaceFromAddress = useCallback(\n (address: Partial<Address> | undefined) => {\n if (!map.current) {\n return;\n }\n\n if (address) {\n const service = new google.maps.places.PlacesService(map.current);\n const query = `${address.street ?? ''} ${address.houseNumber ?? ''}, ${\n address.city ?? ''\n }, ${\n address.country\n ? countryNameFromAlphaCode(address.country as Alpha2CountryCode)\n : ''\n }`;\n setIsLoading(true);\n service.findPlaceFromQuery(\n {\n fields: ['place_id'],\n query,\n },\n (results) => {\n const firstResult = results && results[0];\n if (firstResult && firstResult.place_id) {\n service.getDetails(\n { placeId: firstResult.place_id },\n (newPlace) => {\n onPlaceChanged(newPlace ?? undefined, false);\n }\n );\n }\n setIsLoading(false);\n }\n );\n }\n },\n []\n );\n\n const debouncedSetPlace = debounce(setPlaceFromAddress, 2000);\n\n const handleEnterAddressManually = () => {\n setManualAddressEntry(true);\n };\n\n const updateManualAddress = (\n changes: Partial<Address>,\n { updatePlace } = { updatePlace: true }\n ) => {\n const newAddress = {\n ...address,\n ...changes,\n country: countryCode ?? changes.country ?? address?.country,\n };\n setAddress(newAddress);\n onAddressChange(newAddress);\n\n if (updatePlace) {\n debouncedSetPlace(newAddress);\n }\n };\n\n const onManualAddressChange =\n ({ updatePlace } = { updatePlace: true }) =>\n (e: ChangeEvent<HTMLInputElement>) =>\n updateManualAddress({ [e.target.name]: e.target.value }, { updatePlace });\n\n return (\n <>\n <div\n className={classNames(`wmx8 bg-neutral-600 ${styles['map-container']}`, {\n [styles['map-container--hidden']]: place === null,\n })}\n >\n <div className={styles.map} id=\"map\" aria-hidden=\"true\" />\n {isLoading && (\n <div className={styles['loading-spinner']}>\n <div className=\"ds-spinner ds-spinner__m\" />\n </div>\n )}\n </div>\n <div className={`wmx8`}>\n {manualAddressEntry === false ? (\n <div style={{ position: 'relative' }}>\n <Input\n className=\"w100\"\n id=\"autocomplete\"\n key=\"autocomplete-search\"\n data-testid=\"autocomplete\"\n type=\"text\"\n placeholder={\n placeholders?.manualAddressEntry || 'Search for address'\n }\n ref={autocompleteElement}\n disabled={hasLoadedGoogleAPI === false}\n />\n {hasLoadedGoogleAPI === false && (\n <div\n data-testid=\"google-api-loader\"\n className={styles['loading-spinner']}\n >\n <div className=\"ds-spinner ds-spinner__m\" />\n </div>\n )}\n </div>\n ) : (\n <>\n <div className={`d-flex c-gap16 ${styles['input-line']}`}>\n <Input\n className=\"w100\"\n data-testid=\"autocomplete\"\n key=\"autocomplete-street\"\n type=\"text\"\n placeholder={placeholders?.street || 'Street'}\n value={address?.street || ''}\n onChange={onManualAddressChange()}\n name=\"street\"\n {...inputProps?.street}\n />\n <Input\n className={`wmx2 ${styles['house-number-input']}`}\n data-testid=\"autocomplete-house-number\"\n key=\"autocomplete-house-number\"\n placeholder={placeholders?.houseNumber || 'House number'}\n value={address?.houseNumber || ''}\n name=\"houseNumber\"\n onChange={onManualAddressChange()}\n {...inputProps?.houseNumber}\n />\n </div>\n <Input\n className=\"mt16\"\n data-testid=\"autocomplete-additional-info\"\n key=\"autocomplete-additional-info\"\n placeholder={\n placeholders?.additionalInformation ||\n 'Additional information (C/O, apartment, etc.)'\n }\n value={address?.additionalInformation || ''}\n name=\"additionalInformation\"\n onChange={onManualAddressChange({ updatePlace: false })}\n {...inputProps?.additionalInformation}\n />\n <div className={`d-flex mt16 c-gap16 ${styles['input-line']}`}>\n <Input\n className=\"w100\"\n data-testid=\"autocomplete-postcode\"\n key=\"autocomplete-postcode\"\n placeholder={placeholders?.postcode || 'Postcode'}\n value={address?.postcode || ''}\n name=\"postcode\"\n onChange={onManualAddressChange()}\n {...inputProps?.postcode}\n />\n <Input\n className=\"w100\"\n data-testid=\"autocomplete-city\"\n key=\"autocomplete-city\"\n placeholder={placeholders?.city || 'City'}\n value={address?.city || ''}\n name=\"city\"\n onChange={onManualAddressChange()}\n {...inputProps?.city}\n />\n </div>\n {isWorldwide && (\n <div className=\"mt16\" data-testid=\"autocomplete-country\">\n <SearchableDropdown\n options={countryOptions}\n value={address?.country ?? null}\n onChange={(country) => updateManualAddress({ country })}\n searchable\n bordered\n showChevron\n groupName=\"autocomplete-country\"\n triggerPlaceholder={placeholders?.country || 'Country'}\n placeholder={placeholders?.countrySearch || 'Search country'}\n />\n </div>\n )}\n </>\n )}\n </div>\n {manualAddressEntry === false && (\n <div className=\"p-p mt8\">\n {manualAddressEntryTexts?.preText || 'Or '}\n <button\n className={'p-a p-p fw-bold c-pointer bg-transparent'}\n onClick={handleEnterAddressManually}\n type=\"button\"\n >\n {manualAddressEntryTexts?.cta || 'enter address manually'}\n </button>\n </div>\n )}\n </>\n );\n};\n\nexport { AutocompleteAddress };\n"],"names":["getAllCountries","countryNameFromAlphaCode","_jsxs","_Fragment","_jsx"],"mappings":"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"}
|
|
@@ -8,7 +8,11 @@ import '../../index-BClARCFl.js';
|
|
|
8
8
|
import '../input/index.js';
|
|
9
9
|
import '../../index-CNcEE5dn.js';
|
|
10
10
|
import '../../style-inject.es-tgCJW-Cu.js';
|
|
11
|
-
import '../../index-
|
|
11
|
+
import '../../index-B18M6b67.js';
|
|
12
|
+
import '../icon/icons/ChevronDown.js';
|
|
13
|
+
import '../icon/IconWrapper/IconWrapper.js';
|
|
14
|
+
import '../../useOnClickOutside-B5hujnpp.js';
|
|
15
|
+
import '../../index-DbXDuiSV.js';
|
|
12
16
|
|
|
13
17
|
var story = {
|
|
14
18
|
title: 'JSX/AutocompleteAddress',
|
|
@@ -49,7 +53,18 @@ var story = {
|
|
|
49
53
|
description: 'Placeholder text',
|
|
50
54
|
table: {
|
|
51
55
|
type: {
|
|
52
|
-
summary: '{ manualAddressEntry?: string; street: string?; houseNumber?: string; additionalInformation?: string; postcode?: string; city?: string; }',
|
|
56
|
+
summary: '{ manualAddressEntry?: string; street: string?; houseNumber?: string; additionalInformation?: string; postcode?: string; city?: string; country?: string; countrySearch?: string; }',
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
countryCode: {
|
|
61
|
+
description: 'Alpha-2 country code to restrict the search to. Pass `null` to search worldwide and let the user pick the country when entering the address manually.',
|
|
62
|
+
table: {
|
|
63
|
+
type: {
|
|
64
|
+
summary: 'string | null',
|
|
65
|
+
},
|
|
66
|
+
defaultValue: {
|
|
67
|
+
summary: 'DE',
|
|
53
68
|
},
|
|
54
69
|
},
|
|
55
70
|
},
|
|
@@ -61,7 +76,7 @@ var story = {
|
|
|
61
76
|
componentSubtitle: 'Autocomplete Address are user interface elements which allow users start typing an address and get autocompletion suggestions on the address.',
|
|
62
77
|
docs: {
|
|
63
78
|
description: {
|
|
64
|
-
component: 'This component is
|
|
79
|
+
component: 'This component is restricted to "address" types and restricts every query to Germany by default. Use `countryCode` to restrict it to another country, or `null` to search worldwide.',
|
|
65
80
|
},
|
|
66
81
|
},
|
|
67
82
|
},
|
|
@@ -90,6 +105,12 @@ var WithAddress = {
|
|
|
90
105
|
}, apiKey: apiKey, onAddressChange: onAddressChange }));
|
|
91
106
|
},
|
|
92
107
|
};
|
|
108
|
+
var Worldwide = {
|
|
109
|
+
render: function (_a) {
|
|
110
|
+
var apiKey = _a.apiKey, onAddressChange = _a.onAddressChange;
|
|
111
|
+
return (jsx(AutocompleteAddress, { apiKey: apiKey, countryCode: null, onAddressChange: onAddressChange }));
|
|
112
|
+
},
|
|
113
|
+
};
|
|
93
114
|
var WithLocalisationEntryText = {
|
|
94
115
|
render: function (_a) {
|
|
95
116
|
var apiKey = _a.apiKey, onAddressChange = _a.onAddressChange;
|
|
@@ -116,5 +137,5 @@ var AddressType = function () {
|
|
|
116
137
|
return (jsx("pre", { children: "interface Address {\n street: string;\n houseNumber: string;\n postcode: string;\n city: string;\n additionalInformation?: string;\n country: string;\n }" }));
|
|
117
138
|
};
|
|
118
139
|
|
|
119
|
-
export { AddressType, AutocompleteAddressStory, WithAddress, WithLocalisationEntryText, WithLocalisationPlaceholders, story as default };
|
|
140
|
+
export { AddressType, AutocompleteAddressStory, WithAddress, WithLocalisationEntryText, WithLocalisationPlaceholders, Worldwide, story as default };
|
|
120
141
|
//# sourceMappingURL=index.stories.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.stories.js","sources":["../../../../../src/lib/components/autocompleteAddress/index.stories.tsx"],"sourcesContent":["import { Address } from '@popsure/public-models';\nimport { useState } from 'react';\nimport { AutocompleteAddress, AutocompleteAddressProps } from '.';\n\nconst story = {\n title: 'JSX/AutocompleteAddress',\n component: AutocompleteAddress,\n argTypes: {\n address: {\n description: 'The address properties',\n table: {\n type: {\n summary: 'Partial<Address>',\n },\n },\n },\n apiKey: {\n description:\n 'Your private API key for the [Google Places API](https://developers.google.com/maps/documentation/places/web-service/overview)',\n table: {\n type: {\n summary: 'Partial<Address>',\n },\n },\n },\n onAddressChange: {\n description:\n 'Callback with the updated address, this function will get called everytime the address gets updated',\n action: true,\n table: {\n category: 'Callbacks',\n },\n },\n manualAddressEntryTexts: {\n description:\n 'The CTA that enables manual address entry and the text preceding it',\n table: {\n type: {\n summary: '{ preText?: string; cta: string?; }',\n },\n },\n },\n placeholders: {\n description: 'Placeholder text',\n table: {\n type: {\n summary:\n '{ manualAddressEntry?: string; street: string?; houseNumber?: string; additionalInformation?: string; postcode?: string; city?: string; }',\n },\n },\n },\n },\n args: {\n apiKey: 'AIzaSyDg0DSrjYKt5smmsjkVasDz7c4T5rbOXT8',\n },\n parameters: {\n componentSubtitle:\n 'Autocomplete Address are user interface elements which allow users start typing an address and get autocompletion suggestions on the address.',\n docs: {\n description: {\n component:\n 'This component is
|
|
1
|
+
{"version":3,"file":"index.stories.js","sources":["../../../../../src/lib/components/autocompleteAddress/index.stories.tsx"],"sourcesContent":["import { Address } from '@popsure/public-models';\nimport { useState } from 'react';\nimport { AutocompleteAddress, AutocompleteAddressProps } from '.';\n\nconst story = {\n title: 'JSX/AutocompleteAddress',\n component: AutocompleteAddress,\n argTypes: {\n address: {\n description: 'The address properties',\n table: {\n type: {\n summary: 'Partial<Address>',\n },\n },\n },\n apiKey: {\n description:\n 'Your private API key for the [Google Places API](https://developers.google.com/maps/documentation/places/web-service/overview)',\n table: {\n type: {\n summary: 'Partial<Address>',\n },\n },\n },\n onAddressChange: {\n description:\n 'Callback with the updated address, this function will get called everytime the address gets updated',\n action: true,\n table: {\n category: 'Callbacks',\n },\n },\n manualAddressEntryTexts: {\n description:\n 'The CTA that enables manual address entry and the text preceding it',\n table: {\n type: {\n summary: '{ preText?: string; cta: string?; }',\n },\n },\n },\n placeholders: {\n description: 'Placeholder text',\n table: {\n type: {\n summary:\n '{ manualAddressEntry?: string; street: string?; houseNumber?: string; additionalInformation?: string; postcode?: string; city?: string; country?: string; countrySearch?: string; }',\n },\n },\n },\n countryCode: {\n description:\n 'Alpha-2 country code to restrict the search to. Pass `null` to search worldwide and let the user pick the country when entering the address manually.',\n table: {\n type: {\n summary: 'string | null',\n },\n defaultValue: {\n summary: 'DE',\n },\n },\n },\n },\n args: {\n apiKey: 'AIzaSyDg0DSrjYKt5smmsjkVasDz7c4T5rbOXT8',\n },\n parameters: {\n componentSubtitle:\n 'Autocomplete Address are user interface elements which allow users start typing an address and get autocompletion suggestions on the address.',\n docs: {\n description: {\n component:\n 'This component is restricted to \"address\" types and restricts every query to Germany by default. Use `countryCode` to restrict it to another country, or `null` to search worldwide.',\n },\n },\n },\n};\n\nexport const AutocompleteAddressStory = {\n render: ({\n address: defaultAddress,\n apiKey,\n manualAddressEntryTexts,\n onAddressChange,\n placeholders,\n countryCode,\n }: AutocompleteAddressProps) => {\n const [address, setAddress] = useState<Partial<Address> | undefined>(\n defaultAddress\n );\n const handleOnAddressChange = (newAddress: Partial<Address>) => {\n onAddressChange?.(newAddress);\n setAddress(newAddress);\n };\n\n return (\n <AutocompleteAddress\n address={address}\n apiKey={apiKey}\n manualAddressEntryTexts={manualAddressEntryTexts}\n onAddressChange={handleOnAddressChange}\n placeholders={placeholders}\n countryCode={countryCode}\n />\n );\n },\n\n name: 'AutocompleteAddress',\n};\n\nexport const WithAddress = {\n render: ({\n apiKey,\n onAddressChange,\n placeholders,\n }: AutocompleteAddressProps) => (\n <AutocompleteAddress\n address={{\n street: 'Lohmuehlenstraße',\n houseNumber: '65',\n city: 'Berlin',\n country: 'DE',\n additionalInformation: 'c/o Factory',\n }}\n apiKey={apiKey}\n onAddressChange={onAddressChange}\n />\n ),\n};\n\nexport const Worldwide = {\n render: ({ apiKey, onAddressChange }: AutocompleteAddressProps) => (\n <AutocompleteAddress\n apiKey={apiKey}\n countryCode={null}\n onAddressChange={onAddressChange}\n />\n ),\n};\n\nexport const WithLocalisationEntryText = {\n render: ({ apiKey, onAddressChange }: AutocompleteAddressProps) => (\n <AutocompleteAddress\n apiKey={apiKey}\n manualAddressEntryTexts={{\n preText: 'Oder ',\n cta: 'Adresse direkt eingeben',\n }}\n onAddressChange={onAddressChange}\n />\n ),\n};\n\nexport const WithLocalisationPlaceholders = {\n render: ({ apiKey, onAddressChange }: AutocompleteAddressProps) => (\n <AutocompleteAddress\n address={{}}\n apiKey={apiKey}\n placeholders={{\n manualAddressEntry: 'Adresse suchen',\n street: 'Straße',\n houseNumber: 'Hausnummer',\n additionalInformation: 'Adresszusatz (c/o, z.Hd., o.V.i.A, ...)',\n postcode: 'PLZ',\n city: 'Stadt',\n }}\n onAddressChange={onAddressChange}\n />\n ),\n};\n\nexport const AddressType = () => {\n return (\n <pre>\n {`interface Address {\n street: string;\n houseNumber: string;\n postcode: string;\n city: string;\n additionalInformation?: string;\n country: string;\n }`}\n </pre>\n );\n};\n\nexport default story;\n"],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __awaiter, a as __generator } from '../../tslib.es6-CVlKGIvp.js';
|
|
1
|
+
import { _ as __awaiter, a as __generator, b as __assign } from '../../tslib.es6-CVlKGIvp.js';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { f as fireEvent, c as customRender } from '../../customRender-DzdqZxUd.js';
|
|
4
4
|
import { AutocompleteAddress } from './index.js';
|
|
@@ -12,7 +12,11 @@ import '../../index-BClARCFl.js';
|
|
|
12
12
|
import '../input/index.js';
|
|
13
13
|
import '../../index-CNcEE5dn.js';
|
|
14
14
|
import '../../style-inject.es-tgCJW-Cu.js';
|
|
15
|
-
import '../../index-
|
|
15
|
+
import '../../index-B18M6b67.js';
|
|
16
|
+
import '../icon/icons/ChevronDown.js';
|
|
17
|
+
import '../icon/IconWrapper/IconWrapper.js';
|
|
18
|
+
import '../../useOnClickOutside-B5hujnpp.js';
|
|
19
|
+
import '../../index-DbXDuiSV.js';
|
|
16
20
|
|
|
17
21
|
var address = {
|
|
18
22
|
street: 'Köpeniker Strasse',
|
|
@@ -21,10 +25,10 @@ var address = {
|
|
|
21
25
|
city: 'Berlin',
|
|
22
26
|
country: 'DE',
|
|
23
27
|
};
|
|
24
|
-
var setup = function (address, onAddressChange) {
|
|
28
|
+
var setup = function (address, onAddressChange, countryCode) {
|
|
25
29
|
if (address === void 0) { address = undefined; }
|
|
26
30
|
if (onAddressChange === void 0) { onAddressChange = function () { }; }
|
|
27
|
-
return customRender(jsx(AutocompleteAddress, { address: address, apiKey: '', onAddressChange: onAddressChange }));
|
|
31
|
+
return customRender(jsx(AutocompleteAddress, { address: address, apiKey: '', onAddressChange: onAddressChange, countryCode: countryCode }));
|
|
28
32
|
};
|
|
29
33
|
var addressFieldTestIds = [
|
|
30
34
|
'autocomplete',
|
|
@@ -111,6 +115,83 @@ describe('AutocompleteAddress component', function () {
|
|
|
111
115
|
}
|
|
112
116
|
});
|
|
113
117
|
}); });
|
|
118
|
+
it('Should not show a country field when restricted to a country', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
119
|
+
var _a, findByText, queryByTestId, user, _b, _c;
|
|
120
|
+
return __generator(this, function (_d) {
|
|
121
|
+
switch (_d.label) {
|
|
122
|
+
case 0:
|
|
123
|
+
_a = setup(), findByText = _a.findByText, queryByTestId = _a.queryByTestId, user = _a.user;
|
|
124
|
+
_c = (_b = user).click;
|
|
125
|
+
return [4 /*yield*/, findByText('enter address manually')];
|
|
126
|
+
case 1: return [4 /*yield*/, _c.apply(_b, [_d.sent()])];
|
|
127
|
+
case 2:
|
|
128
|
+
_d.sent();
|
|
129
|
+
expect(queryByTestId('autocomplete-country')).not.toBeInTheDocument();
|
|
130
|
+
return [2 /*return*/];
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}); });
|
|
134
|
+
it('Should let the user pick the country when searching worldwide', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
135
|
+
var callback, _a, findByText, getByRole, getByTestId, user, _b, _c;
|
|
136
|
+
return __generator(this, function (_d) {
|
|
137
|
+
switch (_d.label) {
|
|
138
|
+
case 0:
|
|
139
|
+
callback = jest.fn();
|
|
140
|
+
_a = setup(undefined, callback, null), findByText = _a.findByText, getByRole = _a.getByRole, getByTestId = _a.getByTestId, user = _a.user;
|
|
141
|
+
_c = (_b = user).click;
|
|
142
|
+
return [4 /*yield*/, findByText('enter address manually')];
|
|
143
|
+
case 1: return [4 /*yield*/, _c.apply(_b, [_d.sent()])];
|
|
144
|
+
case 2:
|
|
145
|
+
_d.sent();
|
|
146
|
+
return [4 /*yield*/, user.type(getByTestId('autocomplete'), 'Calle Mayor')];
|
|
147
|
+
case 3:
|
|
148
|
+
_d.sent();
|
|
149
|
+
return [4 /*yield*/, user.type(getByTestId('autocomplete-house-number'), '1')];
|
|
150
|
+
case 4:
|
|
151
|
+
_d.sent();
|
|
152
|
+
return [4 /*yield*/, user.type(getByTestId('autocomplete-postcode'), '28013')];
|
|
153
|
+
case 5:
|
|
154
|
+
_d.sent();
|
|
155
|
+
return [4 /*yield*/, user.type(getByTestId('autocomplete-city'), 'Madrid')];
|
|
156
|
+
case 6:
|
|
157
|
+
_d.sent();
|
|
158
|
+
expect(callback).toHaveBeenLastCalledWith(expect.objectContaining({ country: undefined }));
|
|
159
|
+
return [4 /*yield*/, user.click(getByRole('button', { name: 'Country' }))];
|
|
160
|
+
case 7:
|
|
161
|
+
_d.sent();
|
|
162
|
+
return [4 /*yield*/, user.type(getByRole('textbox', { name: 'Search country' }), 'Spain')];
|
|
163
|
+
case 8:
|
|
164
|
+
_d.sent();
|
|
165
|
+
return [4 /*yield*/, user.click(getByRole('radio', { name: 'Spain' }))];
|
|
166
|
+
case 9:
|
|
167
|
+
_d.sent();
|
|
168
|
+
expect(callback).toHaveBeenLastCalledWith({
|
|
169
|
+
street: 'Calle Mayor',
|
|
170
|
+
houseNumber: '1',
|
|
171
|
+
postcode: '28013',
|
|
172
|
+
city: 'Madrid',
|
|
173
|
+
country: 'ES',
|
|
174
|
+
});
|
|
175
|
+
return [2 /*return*/];
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}); });
|
|
179
|
+
it('Should keep the country of a worldwide address when editing it', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
180
|
+
var callback, _a, getByTestId, user;
|
|
181
|
+
return __generator(this, function (_b) {
|
|
182
|
+
switch (_b.label) {
|
|
183
|
+
case 0:
|
|
184
|
+
callback = jest.fn();
|
|
185
|
+
_a = setup(__assign(__assign({}, address), { country: 'ES' }), callback, null), getByTestId = _a.getByTestId, user = _a.user;
|
|
186
|
+
return [4 /*yield*/, user.type(getByTestId('autocomplete-house-number'), '1')];
|
|
187
|
+
case 1:
|
|
188
|
+
_b.sent();
|
|
189
|
+
expect(callback).toHaveBeenLastCalledWith(expect.objectContaining({ houseNumber: '40001', country: 'ES' }));
|
|
190
|
+
expect(getByTestId('autocomplete-country')).toHaveTextContent('Spain');
|
|
191
|
+
return [2 /*return*/];
|
|
192
|
+
}
|
|
193
|
+
});
|
|
194
|
+
}); });
|
|
114
195
|
it('Should prefill fields if an address is provided', function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
115
196
|
var getByDisplayValue;
|
|
116
197
|
return __generator(this, function (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sources":["../../../../../src/lib/components/autocompleteAddress/index.test.tsx"],"sourcesContent":["import { Address } from '@popsure/public-models';\nimport { fireEvent, render } from '../../util/testUtils';\n\nimport { AutocompleteAddress } from '.';\n\nconst address = {\n street: 'Köpeniker Strasse',\n houseNumber: '4000',\n postcode: '10179',\n city: 'Berlin',\n country: 'DE',\n};\n\nconst setup = (\n address: Partial<Address> | undefined = undefined,\n onAddressChange: (address: Partial<Address>) => void = () => {}\n) => {\n return render(\n <AutocompleteAddress\n address={address}\n apiKey={''}\n onAddressChange={onAddressChange}\n />\n );\n};\n\nconst addressFieldTestIds = [\n 'autocomplete',\n 'autocomplete-house-number',\n 'autocomplete-additional-info',\n 'autocomplete-postcode',\n 'autocomplete-city',\n];\n\ndescribe('AutocompleteAddress component', () => {\n it('Should show all address fields once a search is completed', async () => {\n // @ts-ignore\n window.google.maps.places.Autocomplete = class {\n reference: HTMLElement;\n constructor(reference: HTMLElement) {\n this.reference = reference;\n }\n // @ts-ignore\n addListener(_action, callback) {\n this.reference.addEventListener('change', (e: Event) =>\n (e.target as HTMLInputElement).value !== ''\n ? callback({\n geometry: {\n location: class {},\n },\n address_components: [\n {\n long_name: 'Köpeniker Strasse',\n short_name: 'Köpeniker Strasse',\n types: ['route'],\n },\n ],\n })\n : null\n );\n }\n };\n\n const { getByDisplayValue, getByTestId } = setup();\n\n fireEvent.change(getByTestId('autocomplete'), {\n target: { value: 'Köpeniker' },\n });\n\n addressFieldTestIds.forEach((testId) =>\n expect(getByTestId(testId)).toBeInTheDocument()\n );\n expect(getByDisplayValue('Köpeniker Strasse')).toBeVisible();\n });\n\n it('Should enable to enter the address manually', async () => {\n const callback = jest.fn();\n const { findByText, getByTestId, user } = setup(undefined, callback);\n const btn = await findByText('enter address manually');\n\n await user.click(btn);\n\n // fill out all fields\n await user.type(getByTestId('autocomplete'), 'Köpeniker Strasse');\n await user.type(getByTestId('autocomplete-house-number'), '4000');\n await user.type(getByTestId('autocomplete-postcode'), '10179');\n await user.type(getByTestId('autocomplete-city'), 'Berlin');\n\n // callback should be called with a complete address\n expect(callback).toHaveBeenCalledWith(address);\n });\n\n it('Should prefill fields if an address is provided', async () => {\n const { getByDisplayValue } = setup(address);\n\n expect(getByDisplayValue('Köpeniker Strasse')).toBeVisible();\n expect(getByDisplayValue('4000')).toBeVisible();\n expect(getByDisplayValue('10179')).toBeVisible();\n expect(getByDisplayValue('Berlin')).toBeVisible();\n });\n});\n"],"names":["render","_jsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sources":["../../../../../src/lib/components/autocompleteAddress/index.test.tsx"],"sourcesContent":["import { Address } from '@popsure/public-models';\nimport { fireEvent, render } from '../../util/testUtils';\n\nimport { AutocompleteAddress } from '.';\n\nconst address = {\n street: 'Köpeniker Strasse',\n houseNumber: '4000',\n postcode: '10179',\n city: 'Berlin',\n country: 'DE',\n};\n\nconst setup = (\n address: Partial<Address> | undefined = undefined,\n onAddressChange: (address: Partial<Address>) => void = () => {},\n countryCode?: string | null\n) => {\n return render(\n <AutocompleteAddress\n address={address}\n apiKey={''}\n onAddressChange={onAddressChange}\n countryCode={countryCode}\n />\n );\n};\n\nconst addressFieldTestIds = [\n 'autocomplete',\n 'autocomplete-house-number',\n 'autocomplete-additional-info',\n 'autocomplete-postcode',\n 'autocomplete-city',\n];\n\ndescribe('AutocompleteAddress component', () => {\n it('Should show all address fields once a search is completed', async () => {\n // @ts-ignore\n window.google.maps.places.Autocomplete = class {\n reference: HTMLElement;\n constructor(reference: HTMLElement) {\n this.reference = reference;\n }\n // @ts-ignore\n addListener(_action, callback) {\n this.reference.addEventListener('change', (e: Event) =>\n (e.target as HTMLInputElement).value !== ''\n ? callback({\n geometry: {\n location: class {},\n },\n address_components: [\n {\n long_name: 'Köpeniker Strasse',\n short_name: 'Köpeniker Strasse',\n types: ['route'],\n },\n ],\n })\n : null\n );\n }\n };\n\n const { getByDisplayValue, getByTestId } = setup();\n\n fireEvent.change(getByTestId('autocomplete'), {\n target: { value: 'Köpeniker' },\n });\n\n addressFieldTestIds.forEach((testId) =>\n expect(getByTestId(testId)).toBeInTheDocument()\n );\n expect(getByDisplayValue('Köpeniker Strasse')).toBeVisible();\n });\n\n it('Should enable to enter the address manually', async () => {\n const callback = jest.fn();\n const { findByText, getByTestId, user } = setup(undefined, callback);\n const btn = await findByText('enter address manually');\n\n await user.click(btn);\n\n // fill out all fields\n await user.type(getByTestId('autocomplete'), 'Köpeniker Strasse');\n await user.type(getByTestId('autocomplete-house-number'), '4000');\n await user.type(getByTestId('autocomplete-postcode'), '10179');\n await user.type(getByTestId('autocomplete-city'), 'Berlin');\n\n // callback should be called with a complete address\n expect(callback).toHaveBeenCalledWith(address);\n });\n\n it('Should not show a country field when restricted to a country', async () => {\n const { findByText, queryByTestId, user } = setup();\n\n await user.click(await findByText('enter address manually'));\n\n expect(queryByTestId('autocomplete-country')).not.toBeInTheDocument();\n });\n\n it('Should let the user pick the country when searching worldwide', async () => {\n const callback = jest.fn();\n const { findByText, getByRole, getByTestId, user } = setup(\n undefined,\n callback,\n null\n );\n\n await user.click(await findByText('enter address manually'));\n\n await user.type(getByTestId('autocomplete'), 'Calle Mayor');\n await user.type(getByTestId('autocomplete-house-number'), '1');\n await user.type(getByTestId('autocomplete-postcode'), '28013');\n await user.type(getByTestId('autocomplete-city'), 'Madrid');\n\n expect(callback).toHaveBeenLastCalledWith(\n expect.objectContaining({ country: undefined })\n );\n\n await user.click(getByRole('button', { name: 'Country' }));\n await user.type(getByRole('textbox', { name: 'Search country' }), 'Spain');\n await user.click(getByRole('radio', { name: 'Spain' }));\n\n expect(callback).toHaveBeenLastCalledWith({\n street: 'Calle Mayor',\n houseNumber: '1',\n postcode: '28013',\n city: 'Madrid',\n country: 'ES',\n });\n });\n\n it('Should keep the country of a worldwide address when editing it', async () => {\n const callback = jest.fn();\n const { getByTestId, user } = setup(\n { ...address, country: 'ES' },\n callback,\n null\n );\n\n await user.type(getByTestId('autocomplete-house-number'), '1');\n\n expect(callback).toHaveBeenLastCalledWith(\n expect.objectContaining({ houseNumber: '40001', country: 'ES' })\n );\n expect(getByTestId('autocomplete-country')).toHaveTextContent('Spain');\n });\n\n it('Should prefill fields if an address is provided', async () => {\n const { getByDisplayValue } = setup(address);\n\n expect(getByDisplayValue('Köpeniker Strasse')).toBeVisible();\n expect(getByDisplayValue('4000')).toBeVisible();\n expect(getByDisplayValue('10179')).toBeVisible();\n expect(getByDisplayValue('Berlin')).toBeVisible();\n });\n});\n"],"names":["render","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA,IAAM,OAAO,GAAG;AACd,IAAA,MAAM,EAAE,mBAAmB;AAC3B,IAAA,WAAW,EAAE,MAAM;AACnB,IAAA,QAAQ,EAAE,OAAO;AACjB,IAAA,IAAI,EAAE,QAAQ;AACd,IAAA,OAAO,EAAE,IAAI;CACd;AAED,IAAM,KAAK,GAAG,UACZ,OAAiD,EACjD,eAA+D,EAC/D,WAA2B,EAAA;AAF3B,IAAA,IAAA,OAAA,KAAA,MAAA,EAAA,EAAA,OAAA,GAAA,SAAiD,CAAA,CAAA;IACjD,IAAA,eAAA,KAAA,MAAA,EAAA,EAAA,gCAA8D,CAAC,CAAA,CAAA;IAG/D,OAAOA,YAAM,CACXC,GAAA,CAAC,mBAAmB,IAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,EAAE,EACV,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EAAA,CACxB,CACH;AACH,CAAC;AAED,IAAM,mBAAmB,GAAG;IAC1B,cAAc;IACd,2BAA2B;IAC3B,8BAA8B;IAC9B,uBAAuB;IACvB,mBAAmB;CACpB;AAED,QAAQ,CAAC,+BAA+B,EAAE,YAAA;IACxC,EAAE,CAAC,2DAA2D,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;AAE9D,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,kBAAA,YAAA;AAEpC,gBAAA,SAAA,OAAA,CAAY,SAAsB,EAAA;AAChC,oBAAA,IAAI,CAAC,SAAS,GAAG,SAAS;gBAC5B;;AAEA,gBAAA,OAAA,CAAA,SAAA,CAAA,WAAW,GAAX,UAAY,OAAO,EAAE,QAAQ,EAAA;oBAC3B,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,UAAC,CAAQ,EAAA;AACjD,wBAAA,OAAC,CAAC,CAAC,MAA2B,CAAC,KAAK,KAAK;8BACrC,QAAQ,CAAC;AACP,gCAAA,QAAQ,EAAE;oCACR,QAAQ,iBAAA,YAAA;AAAE,wCAAA,SAAA,QAAA,GAAA;wCAAO;wCAAA,OAAA,QAAC;AAAD,oCAAA,CAAC,EAAR,CAAQ;AACnB,iCAAA;AACD,gCAAA,kBAAkB,EAAE;AAClB,oCAAA;AACE,wCAAA,SAAS,EAAE,mBAAmB;AAC9B,wCAAA,UAAU,EAAE,mBAAmB;wCAC/B,KAAK,EAAE,CAAC,OAAO,CAAC;AACjB,qCAAA;AACF,iCAAA;6BACF;AACH,8BAAE,IAAI;AAbR,oBAAA,CAaQ,CACT;gBACH,CAAC;gBACH,OAAA,OAAC;YAAD,CAxByC,GAwBxC;YAEK,EAAA,GAAqC,KAAK,EAAE,EAA1C,iBAAiB,uBAAA,EAAE,WAAW,iBAAA;AAEtC,YAAA,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE;AAC5C,gBAAA,MAAM,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;AAC/B,aAAA,CAAC;AAEF,YAAA,mBAAmB,CAAC,OAAO,CAAC,UAAC,MAAM,EAAA;gBACjC,OAAA,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,iBAAiB,EAAE;AAA/C,YAAA,CAA+C,CAChD;YACD,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,EAAE;;;AAC7D,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;IAEF,EAAE,CAAC,6CAA6C,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;AAC1C,oBAAA,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE;AACpB,oBAAA,EAAA,GAAoC,KAAK,CAAC,SAAS,EAAE,QAAQ,CAAC,EAA5D,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,EAAE,IAAI,UAAA;AACzB,oBAAA,OAAA,CAAA,CAAA,YAAM,UAAU,CAAC,wBAAwB,CAAC,CAAA;;AAAhD,oBAAA,GAAG,GAAG,EAAA,CAAA,IAAA,EAA0C;AAEtD,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;;AAArB,oBAAA,EAAA,CAAA,IAAA,EAAqB;;oBAGrB,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAA;;;AAAjE,oBAAA,EAAA,CAAA,IAAA,EAAiE;oBACjE,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,EAAE,MAAM,CAAC,CAAA;;AAAjE,oBAAA,EAAA,CAAA,IAAA,EAAiE;oBACjE,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC,CAAA;;AAA9D,oBAAA,EAAA,CAAA,IAAA,EAA8D;oBAC9D,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAA;;AAA3D,oBAAA,EAAA,CAAA,IAAA,EAA2D;;oBAG3D,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC;;;;AAC/C,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;IAEF,EAAE,CAAC,8DAA8D,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;oBAC3D,EAAA,GAAsC,KAAK,EAAE,EAA3C,UAAU,GAAA,EAAA,CAAA,UAAA,EAAE,aAAa,GAAA,EAAA,CAAA,aAAA,EAAE,IAAI,GAAA,EAAA,CAAA,IAAA;AAEjC,oBAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,EAAC,KAAK;AAAC,oBAAA,OAAA,CAAA,CAAA,YAAM,UAAU,CAAC,wBAAwB,CAAC,CAAA;wBAA3D,OAAA,CAAA,CAAA,YAAM,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,CAAW,EAAA,CAAA,IAAA,EAA0C,CAAA,CAAC,CAAA;;AAA5D,oBAAA,EAAA,CAAA,IAAA,EAA4D;oBAE5D,MAAM,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,EAAE;;;;AACtE,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;IAEF,EAAE,CAAC,+DAA+D,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;AAC5D,oBAAA,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE;oBACpB,EAAA,GAA+C,KAAK,CACxD,SAAS,EACT,QAAQ,EACR,IAAI,CACL,EAJO,UAAU,gBAAA,EAAE,SAAS,eAAA,EAAE,WAAW,iBAAA,EAAE,IAAI,UAAA;AAM1C,oBAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,EAAC,KAAK;AAAC,oBAAA,OAAA,CAAA,CAAA,YAAM,UAAU,CAAC,wBAAwB,CAAC,CAAA;wBAA3D,OAAA,CAAA,CAAA,YAAM,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,CAAW,EAAA,CAAA,IAAA,EAA0C,CAAA,CAAC,CAAA;;AAA5D,oBAAA,EAAA,CAAA,IAAA,EAA4D;oBAE5D,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,CAAA;;AAA3D,oBAAA,EAAA,CAAA,IAAA,EAA2D;oBAC3D,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAA;;AAA9D,oBAAA,EAAA,CAAA,IAAA,EAA8D;oBAC9D,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC,CAAA;;AAA9D,oBAAA,EAAA,CAAA,IAAA,EAA8D;oBAC9D,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC,CAAA;;AAA3D,oBAAA,EAAA,CAAA,IAAA,EAA2D;AAE3D,oBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAChD;AAED,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA;;AAA1D,oBAAA,EAAA,CAAA,IAAA,EAA0D;AAC1D,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;;AAA1E,oBAAA,EAAA,CAAA,IAAA,EAA0E;AAC1E,oBAAA,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;;AAAvD,oBAAA,EAAA,CAAA,IAAA,EAAuD;AAEvD,oBAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CAAC;AACxC,wBAAA,MAAM,EAAE,aAAa;AACrB,wBAAA,WAAW,EAAE,GAAG;AAChB,wBAAA,QAAQ,EAAE,OAAO;AACjB,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,OAAO,EAAE,IAAI;AACd,qBAAA,CAAC;;;;AACH,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;IAEF,EAAE,CAAC,gEAAgE,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;;;AAC7D,oBAAA,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE;AACpB,oBAAA,EAAA,GAAwB,KAAK,CAAA,QAAA,CAAA,QAAA,CAAA,EAAA,EAC5B,OAAO,KAAE,OAAO,EAAE,IAAI,EAAA,CAAA,EAC3B,QAAQ,EACR,IAAI,CACL,EAJO,WAAW,iBAAA,EAAE,IAAI,UAAA;oBAMzB,OAAA,CAAA,CAAA,YAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,EAAE,GAAG,CAAC,CAAA;;AAA9D,oBAAA,EAAA,CAAA,IAAA,EAA8D;oBAE9D,MAAM,CAAC,QAAQ,CAAC,CAAC,wBAAwB,CACvC,MAAM,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CACjE;oBACD,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC;;;;AACvE,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;IAEF,EAAE,CAAC,iDAAiD,EAAE,YAAA,EAAA,OAAA,SAAA,CAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA;;;AAC5C,YAAA,iBAAiB,GAAK,KAAK,CAAC,OAAO,CAAC,kBAAnB;YAEzB,MAAM,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,EAAE;YAC5D,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,EAAE;YAC/C,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE;YAChD,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE;;;AAClD,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var z7=Object.defineProperty;var V=(t,a)=>{for(var z in a)z7(t,z,{get:a[z],enumerable:true});};var s=["AF","AL","DZ","AD","AS","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BA","BW","BV","BR","IO","BN","BG","BF","BI","KH","CM","CA","CV","KY","CF","TD","CL","CN","CX","CC","CO","KM","CG","CD","CK","CR","CI","HR","CU","CY","CZ","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IL","IT","JM","JP","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MK","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","MS","ME","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","RE","RO","RU","RW","SH","KN","LC","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SK","SI","SB","SO","ZA","GS","ES","LK","SD","SR","SJ","SZ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","US","UM","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX","BQ","CW","GG","IM","JE","BL","MF","SX","XK","SS"];var r={};V(r,{countries:()=>L,default:()=>p7,locale:()=>y});var y="en",L={AF:"Afghanistan",AL:"Albania",DZ:"Algeria",AS:"American Samoa",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarctica",AG:"Antigua and Barbuda",AR:"Argentina",AM:"Armenia",AW:"Aruba",AU:"Australia",AT:"Austria",AZ:"Azerbaijan",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesh",BB:"Barbados",BY:"Belarus",BE:"Belgium",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivia",BA:"Bosnia and Herzegovina",BW:"Botswana",BV:"Bouvet Island",BR:"Brazil",IO:"British Indian Ocean Territory",BN:"Brunei Darussalam",BG:"Bulgaria",BF:"Burkina Faso",BI:"Burundi",KH:"Cambodia",CM:"Cameroon",CA:"Canada",CV:"Cape Verde",KY:"Cayman Islands",CF:"Central African Republic",TD:"Chad",CL:"Chile",CN:"China",CX:"Christmas Island",CC:"Cocos (Keeling) Islands",CO:"Colombia",KM:"Comoros",CG:"Republic of the Congo",CD:"Democratic Republic of the Congo",CK:"Cook Islands",CR:"Costa Rica",CI:"Cote D'Ivoire",HR:"Croatia",CU:"Cuba",CY:"Cyprus",CZ:"Czech Republic",DK:"Denmark",DJ:"Djibouti",DM:"Dominica",DO:"Dominican Republic",EC:"Ecuador",EG:"Egypt",SV:"El Salvador",GQ:"Equatorial Guinea",ER:"Eritrea",EE:"Estonia",ET:"Ethiopia",FK:"Falkland Islands (Malvinas)",FO:"Faroe Islands",FJ:"Fiji",FI:"Finland",FR:"France",GF:"French Guiana",PF:"French Polynesia",TF:"French Southern Territories",GA:"Gabon",GM:"Gambia",GE:"Georgia",DE:"Germany",GH:"Ghana",GI:"Gibraltar",GR:"Greece",GL:"Greenland",GD:"Grenada",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard Island and McDonald Islands",VA:"Holy See (Vatican City State)",HN:"Honduras",HK:"Hong Kong",HU:"Hungary",IS:"Iceland",IN:"India",ID:"Indonesia",IR:"Iran",IQ:"Iraq",IE:"Ireland",IL:"Israel",IT:"Italy",JM:"Jamaica",JP:"Japan",JO:"Jordan",KZ:"Kazakhstan",KE:"Kenya",KI:"Kiribati",KP:"North Korea",KR:"South Korea",KW:"Kuwait",KG:"Kyrgyzstan",LA:"Lao People's Democratic Republic",LV:"Latvia",LB:"Lebanon",LS:"Lesotho",LR:"Liberia",LY:"Libya",LI:"Liechtenstein",LT:"Lithuania",LU:"Luxembourg",MO:"Macao",MG:"Madagascar",MW:"Malawi",MY:"Malaysia",MV:"Maldives",ML:"Mali",MT:"Malta",MH:"Marshall Islands",MQ:"Martinique",MR:"Mauritania",MU:"Mauritius",YT:"Mayotte",MX:"Mexico",FM:"Micronesia, Federated States of",MD:"Moldova, Republic of",MC:"Monaco",MN:"Mongolia",MS:"Montserrat",MA:"Morocco",MZ:"Mozambique",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NL:"Netherlands",NC:"New Caledonia",NZ:"New Zealand",NI:"Nicaragua",NE:"Niger",NG:"Nigeria",NU:"Niue",NF:"Norfolk Island",MK:"North Macedonia",MP:"Northern Mariana Islands",NO:"Norway",OM:"Oman",PK:"Pakistan",PW:"Palau",PS:"Palestine",PA:"Panama",PG:"Papua New Guinea",PY:"Paraguay",PE:"Peru",PH:"Philippines",PN:"Pitcairn",PL:"Poland",PT:"Portugal",PR:"Puerto Rico",QA:"Qatar",RE:"Reunion",RO:"Romania",RU:"Russia",RW:"Rwanda",SH:"Saint Helena",KN:"Saint Kitts and Nevis",LC:"Saint Lucia",PM:"Saint Pierre and Miquelon",VC:"Saint Vincent and the Grenadines",WS:"Samoa",SM:"San Marino",ST:"Sao Tome and Principe",SA:"Saudi Arabia",SN:"Senegal",SC:"Seychelles",SL:"Sierra Leone",SG:"Singapore",SK:"Slovakia",SI:"Slovenia",SB:"Solomon Islands",SO:"Somalia",ZA:"South Africa",GS:"South Georgia and the South Sandwich Islands",ES:"Spain",LK:"Sri Lanka",SD:"Sudan",SR:"Suriname",SJ:"Svalbard and Jan Mayen",SZ:"Eswatini",SE:"Sweden",CH:"Switzerland",SY:"Syrian Arab Republic",TW:"Taiwan",TJ:"Tajikistan",TZ:"Tanzania",TH:"Thailand",TL:"Timor-Leste",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad and Tobago",TN:"Tunisia",TR:"Turkey",TM:"Turkmenistan",TC:"Turks and Caicos Islands",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",AE:"United Arab Emirates",GB:"United Kingdom",US:"United States",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Uzbekistan",VU:"Vanuatu",VE:"Venezuela",VN:"Vietnam",VG:"Virgin Islands, British",VI:"Virgin Islands, U.S.",WF:"Wallis and Futuna",EH:"Western Sahara",YE:"Yemen",ZM:"Zambia",ZW:"Zimbabwe",AX:"\xC5land Islands",BQ:"Bonaire, Sint Eustatius and Saba",CW:"Cura\xE7ao",GG:"Guernsey",IM:"Isle of Man",JE:"Jersey",ME:"Montenegro",BL:"Saint Barth\xE9lemy",MF:"Saint Martin (French part)",RS:"Serbia",SX:"Sint Maarten (Dutch part)",SS:"South Sudan",XK:"Kosovo"},p7={locale:y,countries:L};var m={};V(m,{countries:()=>S,default:()=>M7,locale:()=>B});var B="de",S={AF:"Afghanistan",EG:"\xC4gypten",AX:"\xC5land",AL:"Albanien",DZ:"Algerien",AS:"Amerikanisch-Samoa",VI:"Amerikanische Jungferninseln",AD:"Andorra",AO:"Angola",AI:"Anguilla",AQ:"Antarktis",AG:"Antigua und Barbuda",GQ:"\xC4quatorialguinea",AR:"Argentinien",AM:"Armenien",AW:"Aruba",AZ:"Aserbaidschan",ET:"\xC4thiopien",AU:"Australien",BS:"Bahamas",BH:"Bahrain",BD:"Bangladesch",BB:"Barbados",BY:"Belarus",BE:"Belgien",BZ:"Belize",BJ:"Benin",BM:"Bermuda",BT:"Bhutan",BO:"Bolivien",BQ:"Bonaire",BA:"Bosnien und Herzegowina",BW:"Botswana",BV:"Bouvetinsel",BR:"Brasilien",VG:"Britische Jungferninseln",IO:"Britisches Territorium im Indischen Ozean",BN:"Brunei Darussalam",BG:"Bulgarien",BF:"Burkina Faso",BI:"Burundi",CL:"Chile",CN:"China",CK:"Cookinseln",CR:"Costa Rica",CI:"Elfenbeink\xFCste",CW:"Cura\xE7ao",DK:"D\xE4nemark",DE:"Deutschland",DM:"Dominica",DO:"Dominikanische Republik",DJ:"Dschibuti",EC:"Ecuador",SV:"El Salvador",ER:"Eritrea",EE:"Estland",FK:"Falklandinseln",FO:"F\xE4r\xF6er",FJ:"Fidschi",FI:"Finnland",FR:"Frankreich",GF:"Franz\xF6sisch-Guayana",PF:"Franz\xF6sisch-Polynesien",TF:"Franz\xF6sische S\xFCd- und Antarktisgebiete",GA:"Gabun",GM:"Gambia",GE:"Georgien",GH:"Ghana",GI:"Gibraltar",GD:"Grenada",GR:"Griechenland",GL:"Gr\xF6nland",GP:"Guadeloupe",GU:"Guam",GT:"Guatemala",GG:"Guernsey",GN:"Guinea",GW:"Guinea-Bissau",GY:"Guyana",HT:"Haiti",HM:"Heard und McDonaldinseln",HN:"Honduras",HK:"Hongkong",IN:"Indien",ID:"Indonesien",IM:"Insel Man",IQ:"Irak",IR:"Iran",IE:"Irland",IS:"Island",IL:"Israel",IT:"Italien",JM:"Jamaika",JP:"Japan",YE:"Jemen",JE:"Jersey",JO:"Jordanien",KY:"Kaimaninseln",KH:"Kambodscha",CM:"Kamerun",CA:"Kanada",CV:"Kap Verde",KZ:"Kasachstan",QA:"Katar",KE:"Kenia",KG:"Kirgisistan",KI:"Kiribati",CC:"Kokosinseln",CO:"Kolumbien",KM:"Komoren",CD:"Kongo",KP:"Nordkorea",KR:"S\xFCdkorea",HR:"Kroatien",CU:"Kuba",KW:"Kuwait",LA:"Laos",LS:"Lesotho",LV:"Lettland",LB:"Libanon",LR:"Liberia",LY:"Libyen",LI:"Liechtenstein",LT:"Litauen",LU:"Luxemburg",MO:"Macao",MG:"Madagaskar",MW:"Malawi",MY:"Malaysia",MV:"Malediven",ML:"Mali",MT:"Malta",MA:"Marokko",MH:"Marshallinseln",MQ:"Martinique",MR:"Mauretanien",MU:"Mauritius",YT:"Mayotte",MX:"Mexiko",FM:"Mikronesien",MD:"Moldawien",MC:"Monaco",MN:"Mongolei",ME:"Montenegro",MS:"Montserrat",MZ:"Mosambik",MM:"Myanmar",NA:"Namibia",NR:"Nauru",NP:"Nepal",NC:"Neukaledonien",NZ:"Neuseeland",NI:"Nicaragua",NL:"Niederlande",NE:"Niger",NG:"Nigeria",NU:"Niue",MK:"Nordmazedonien",MP:"N\xF6rdliche Marianen",NF:"Norfolkinsel",NO:"Norwegen",OM:"Oman",AT:"\xD6sterreich",TL:"Osttimor",PK:"Pakistan",PS:"Staat Pal\xE4stina",PW:"Palau",PA:"Panama",PG:"Papua-Neuguinea",PY:"Paraguay",PE:"Peru",PH:"Philippinen",PN:"Pitcairninseln",PL:"Polen",PT:"Portugal",PR:"Puerto Rico",TW:"Taiwan",CG:"Republik Kongo",RE:"R\xE9union",RW:"Ruanda",RO:"Rum\xE4nien",RU:"Russische F\xF6deration",BL:"Saint-Barth\xE9lemy",MF:"Saint-Martin",SB:"Salomonen",ZM:"Sambia",WS:"Samoa",SM:"San Marino",ST:"S\xE3o Tom\xE9 und Pr\xEDncipe",SA:"Saudi-Arabien",SE:"Schweden",CH:"Schweiz",SN:"Senegal",RS:"Serbien",SC:"Seychellen",SL:"Sierra Leone",ZW:"Simbabwe",SG:"Singapur",SX:"Sint Maarten",SK:"Slowakei",SI:"Slowenien",SO:"Somalia",ES:"Spanien",LK:"Sri Lanka",SH:"St. Helena",KN:"St. Kitts und Nevis",LC:"St. Lucia",PM:"Saint-Pierre und Miquelon",VC:"St. Vincent und die Grenadinen",ZA:"S\xFCdafrika",SD:"Sudan",GS:"S\xFCdgeorgien und die S\xFCdlichen Sandwichinseln",SS:"S\xFCdsudan",SR:"Suriname",SJ:"Svalbard und Jan Mayen",SZ:"Eswatini",SY:"Syrien, Arabische Republik",TJ:"Tadschikistan",TZ:"Tansania, Vereinigte Republik",TH:"Thailand",TG:"Togo",TK:"Tokelau",TO:"Tonga",TT:"Trinidad und Tobago",TD:"Tschad",CZ:"Tschechische Republik",TN:"Tunesien",TR:"T\xFCrkei",TM:"Turkmenistan",TC:"Turks- und Caicosinseln",TV:"Tuvalu",UG:"Uganda",UA:"Ukraine",HU:"Ungarn",UM:"United States Minor Outlying Islands",UY:"Uruguay",UZ:"Usbekistan",VU:"Vanuatu",VA:"Vatikanstadt",VE:"Venezuela",AE:"Vereinigte Arabische Emirate",US:"Vereinigte Staaten",GB:"Vereinigtes K\xF6nigreich",VN:"Vietnam",WF:"Wallis und Futuna",CX:"Weihnachtsinsel",EH:"Westsahara",CF:"Zentralafrikanische Republik",CY:"Zypern",XK:"Kosovo"},M7={locale:B,countries:S};var c7={en:r,de:m};function $5(t,a="en"){return c7[a].countries[t]}var f7=(t="en")=>s.map(a=>({name:c7[t].countries[a],code:a}));f7();
|
|
2
2
|
|
|
3
|
-
export { $5 as
|
|
4
|
-
//# sourceMappingURL=index-
|
|
3
|
+
export { $5 as $, f7 as f };
|
|
4
|
+
//# sourceMappingURL=index-DbXDuiSV.js.map
|