@mozaic-ds/web-components 0.4.0 → 0.5.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/package.json +1 -1
- package/public/ClickOutside-63071e7a.js +15 -1
- package/public/ClickOutside-63071e7a.js.map +1 -1
- package/public/DataTableDefaultAction.nested-4da4dc44.js +759 -1
- package/public/DataTableDefaultAction.nested-4da4dc44.js.map +1 -1
- package/public/DataTableUtilities-60220c78.js +370 -1
- package/public/DataTableUtilities-60220c78.js.map +1 -1
- package/public/EventForward-8492ff62.js +109 -1
- package/public/EventForward-8492ff62.js.map +1 -1
- package/public/EventHandler-02058705.js +15 -1
- package/public/EventHandler-02058705.js.map +1 -1
- package/public/adeo/components/select/Select.js +1 -1
- package/public/adeo/components/select/Select.js.map +1 -1
- package/public/adeo/components/select/Select.svelte +1 -1
- package/public/array-5b770a93.js +13 -1
- package/public/array-5b770a93.js.map +1 -1
- package/public/axis-fbc0f7b5.js +174 -1
- package/public/axis-fbc0f7b5.js.map +1 -1
- package/public/band-d7a07d2c.js +186 -1
- package/public/band-d7a07d2c.js.map +1 -1
- package/public/bricoman/components/select/Select.js +1 -1
- package/public/bricoman/components/select/Select.js.map +1 -1
- package/public/bricoman/components/select/Select.svelte +1 -1
- package/public/components/accordion/Accordion.js +365 -1
- package/public/components/accordion/Accordion.js.map +1 -1
- package/public/components/autocomplete/Autocomplete.js +1515 -1
- package/public/components/autocomplete/Autocomplete.js.map +1 -1
- package/public/components/badge/Badge.js +155 -1
- package/public/components/badge/Badge.js.map +1 -1
- package/public/components/badge/Badge.nested.js +101 -1
- package/public/components/badge/Badge.nested.js.map +1 -1
- package/public/components/breadcrumb/Breadcrumb.js +372 -1
- package/public/components/breadcrumb/Breadcrumb.js.map +1 -1
- package/public/components/breadcrumb/Breadcrumb.nested.js +319 -1
- package/public/components/breadcrumb/Breadcrumb.nested.js.map +1 -1
- package/public/components/button/Button.js +1138 -1
- package/public/components/button/Button.js.map +1 -1
- package/public/components/card/Card.js +369 -1
- package/public/components/card/Card.js.map +1 -1
- package/public/components/chart/BarChart.js +582 -1
- package/public/components/chart/BarChart.js.map +1 -1
- package/public/components/chart/Donut.js +1189 -1
- package/public/components/chart/Donut.js.map +1 -1
- package/public/components/chart/GroupedBarChart.js +750 -1
- package/public/components/chart/GroupedBarChart.js.map +1 -1
- package/public/components/chart/LineChart.js +1731 -1
- package/public/components/chart/LineChart.js.map +1 -1
- package/public/components/chart/Radar.js +729 -1
- package/public/components/chart/Radar.js.map +1 -1
- package/public/components/chart/StackedBarChart.js +745 -1
- package/public/components/chart/StackedBarChart.js.map +1 -1
- package/public/components/checkbox/Checkbox.js +307 -1
- package/public/components/checkbox/Checkbox.js.map +1 -1
- package/public/components/checkboxgroup/checkboxGroup.js +404 -1
- package/public/components/checkboxgroup/checkboxGroup.js.map +1 -1
- package/public/components/datatable/DataTable.js +3064 -1
- package/public/components/datatable/DataTable.js.map +1 -1
- package/public/components/datatable/DataTableDefaultAction.nested.js +4 -1
- package/public/components/datatable/DataTableDefaultAction.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultEdtion.nested.js +164 -1
- package/public/components/datatable/DataTableDefaultEdtion.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultFilterTags.nested.js +380 -1
- package/public/components/datatable/DataTableDefaultFilterTags.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultSelection.nested.js +424 -1
- package/public/components/datatable/DataTableDefaultSelection.nested.js.map +1 -1
- package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js +263 -1
- package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js.map +1 -1
- package/public/components/datatable/DataTableFooter.nested.js +637 -1
- package/public/components/datatable/DataTableFooter.nested.js.map +1 -1
- package/public/components/dropdown/Dropdown.js +1426 -1
- package/public/components/dropdown/Dropdown.js.map +1 -1
- package/public/components/field/Field.js +375 -1
- package/public/components/field/Field.js.map +1 -1
- package/public/components/fileuploader/FileUploader.js +555 -1
- package/public/components/fileuploader/FileUploader.js.map +1 -1
- package/public/components/fileuploader/ResultFile.nested.js +265 -1
- package/public/components/fileuploader/ResultFile.nested.js.map +1 -1
- package/public/components/flag/Flag.js +174 -1
- package/public/components/flag/Flag.js.map +1 -1
- package/public/components/header/Header.js +903 -1
- package/public/components/header/Header.js.map +1 -1
- package/public/components/hero/Hero.js +271 -1
- package/public/components/hero/Hero.js.map +1 -1
- package/public/components/layer/Layer.js +453 -1
- package/public/components/layer/Layer.js.map +1 -1
- package/public/components/link/Link.js +380 -1
- package/public/components/link/Link.js.map +1 -1
- package/public/components/listbox/Listbox.js +595 -1
- package/public/components/listbox/Listbox.js.map +1 -1
- package/public/components/listbox/Listbox.nested.js +629 -1
- package/public/components/listbox/Listbox.nested.js.map +1 -1
- package/public/components/loader/Loader.js +246 -1
- package/public/components/loader/Loader.js.map +1 -1
- package/public/components/loader/Loader.nested.js +176 -1
- package/public/components/loader/Loader.nested.js.map +1 -1
- package/public/components/modal/Modal.js +395 -1
- package/public/components/modal/Modal.js.map +1 -1
- package/public/components/notification/Notification.js +458 -1
- package/public/components/notification/Notification.js.map +1 -1
- package/public/components/optionbutton/OptionButton.js +316 -1
- package/public/components/optionbutton/OptionButton.js.map +1 -1
- package/public/components/overlay/Overlay.js +104 -1
- package/public/components/overlay/Overlay.js.map +1 -1
- package/public/components/overlay/OverlayLoader.js +151 -1
- package/public/components/overlay/OverlayLoader.js.map +1 -1
- package/public/components/pagination/Pagination.js +613 -1
- package/public/components/pagination/Pagination.js.map +1 -1
- package/public/components/passwordinput/PasswordInput.js +291 -1
- package/public/components/passwordinput/PasswordInput.js.map +1 -1
- package/public/components/phonenumber/PhoneNumber.js +6894 -1
- package/public/components/phonenumber/PhoneNumber.js.map +1 -1
- package/public/components/phonenumber/PhoneNumber.svelte +72 -9
- package/public/components/price/Price.js +768 -1
- package/public/components/price/Price.js.map +1 -1
- package/public/components/progressbar/ProgressBar.js +278 -1
- package/public/components/progressbar/ProgressBar.js.map +1 -1
- package/public/components/quantityselector/QuantitySelector.js +333 -1
- package/public/components/quantityselector/QuantitySelector.js.map +1 -1
- package/public/components/radio/Radio.js +273 -1
- package/public/components/radio/Radio.js.map +1 -1
- package/public/components/radiogroup/RadioGroup.js +414 -1
- package/public/components/radiogroup/RadioGroup.js.map +1 -1
- package/public/components/ratings/StarsInput.js +292 -1
- package/public/components/ratings/StarsInput.js.map +1 -1
- package/public/components/ratings/StarsResult.js +246 -1
- package/public/components/ratings/StarsResult.js.map +1 -1
- package/public/components/select/Select.js +451 -1
- package/public/components/select/Select.js.map +1 -1
- package/public/components/select/Select.svelte +1 -1
- package/public/components/sidebar/Sidebar.js +784 -1
- package/public/components/sidebar/Sidebar.js.map +1 -1
- package/public/components/sidebar/sidebar-feature-group.nested.js +594 -1
- package/public/components/sidebar/sidebar-feature-group.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-feature.nested.js +402 -1
- package/public/components/sidebar/sidebar-feature.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-section.nested.js +394 -1
- package/public/components/sidebar/sidebar-section.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-segment.nested.js +200 -1
- package/public/components/sidebar/sidebar-segment.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-separator.nested.js +49 -1
- package/public/components/sidebar/sidebar-separator.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-sub-features.nested.js +312 -1
- package/public/components/sidebar/sidebar-sub-features.nested.js.map +1 -1
- package/public/components/sidebar/sidebar-user.nested.js +733 -1
- package/public/components/sidebar/sidebar-user.nested.js.map +1 -1
- package/public/components/stepper/Stepper.js +371 -1
- package/public/components/stepper/Stepper.js.map +1 -1
- package/public/components/tabs/Tabs.js +615 -1
- package/public/components/tabs/Tabs.js.map +1 -1
- package/public/components/tabs/Tabs.nested.js +472 -1
- package/public/components/tabs/Tabs.nested.js.map +1 -1
- package/public/components/tag/Tag.js +665 -1
- package/public/components/tag/Tag.js.map +1 -1
- package/public/components/tag/Tag.nested.js +554 -1
- package/public/components/tag/Tag.nested.js.map +1 -1
- package/public/components/taglist/TagList.js +475 -1
- package/public/components/taglist/TagList.js.map +1 -1
- package/public/components/textarea/Textarea.js +303 -1
- package/public/components/textarea/Textarea.js.map +1 -1
- package/public/components/textinput/Textinput.js +497 -1
- package/public/components/textinput/Textinput.js.map +1 -1
- package/public/components/textinput/Textinput.nested.js +320 -1
- package/public/components/textinput/Textinput.nested.js.map +1 -1
- package/public/components/toggle/Toggle.js +278 -1
- package/public/components/toggle/Toggle.js.map +1 -1
- package/public/components/tooltip/Tooltip.js +173 -1
- package/public/components/tooltip/Tooltip.js.map +1 -1
- package/public/index-c33b3772.js +873 -1
- package/public/index-c33b3772.js.map +1 -1
- package/public/linear-f46d7e9e.js +700 -1
- package/public/linear-f46d7e9e.js.map +1 -1
- package/public/path-1b5da959.js +186 -1
- package/public/path-1b5da959.js.map +1 -1
- package/public/sidebar-service-275bf9ef.js +129 -1
- package/public/sidebar-service-275bf9ef.js.map +1 -1
- package/public/symbol-b05a6e2b.js +169 -1
- package/public/symbol-b05a6e2b.js.map +1 -1
- package/public/transform-15d69d5d.js +2743 -1
- package/public/transform-15d69d5d.js.map +1 -1
- package/public/utilities/stories/phonenumber/PhoneNumber.stories.d.ts.map +1 -1
- package/public/utilities/stories/select/Select.stories.d.ts.map +1 -1
- package/public/utilities/stories/tabs/Tabs.stories.d.ts.map +1 -1
|
@@ -4,22 +4,34 @@
|
|
|
4
4
|
import {
|
|
5
5
|
parsePhoneNumber,
|
|
6
6
|
formatIncompletePhoneNumber,
|
|
7
|
+
AsYouType,
|
|
8
|
+
CountryCode,
|
|
7
9
|
} from 'libphonenumber-js';
|
|
10
|
+
import * as examples from 'libphonenumber-js/examples.mobile.json';
|
|
8
11
|
import type { CountryItems } from './phonenumber.types';
|
|
9
12
|
import { EventHandler } from '../../utilities/EventHandler';
|
|
13
|
+
import { onMount } from 'svelte';
|
|
14
|
+
import { clickOutside } from '../../utilities/ClickOutside';
|
|
15
|
+
|
|
10
16
|
export let phonenumber: string;
|
|
11
17
|
export let placeholder = '0102030405';
|
|
18
|
+
export let countrysearchplaceholder = 'Search Country';
|
|
12
19
|
export let buttonId = 'dropdown_country';
|
|
13
20
|
export let listId = 'phone_number_list';
|
|
14
21
|
export let countries: string;
|
|
15
22
|
export let selectedcountry: string;
|
|
16
23
|
export let isvalid: boolean;
|
|
17
24
|
export let isinvalid: boolean;
|
|
25
|
+
export let enablecountrysearch: boolean;
|
|
18
26
|
|
|
19
27
|
let isCountriesListOpened = false;
|
|
20
28
|
let maxlength = 25;
|
|
21
29
|
let eventHandler = new EventHandler();
|
|
22
30
|
let phoneNumber: string;
|
|
31
|
+
let searchcountrytext: string = '';
|
|
32
|
+
let rootElement: Element;
|
|
33
|
+
let selectedCountry: CountryItems;
|
|
34
|
+
let searchCountryDomElement: Element;
|
|
23
35
|
|
|
24
36
|
$: selectedCountry = selectedcountry
|
|
25
37
|
? JSON.parse(selectedcountry)
|
|
@@ -33,15 +45,26 @@
|
|
|
33
45
|
? (JSON.parse(countries) as CountryItems[])
|
|
34
46
|
: [];
|
|
35
47
|
|
|
36
|
-
$:
|
|
37
|
-
|
|
38
|
-
function getNumber(): string {
|
|
39
|
-
return parsePhoneNumber(
|
|
40
|
-
phonenumber,
|
|
41
|
-
selectedCountry.shortName,
|
|
42
|
-
).formatNational();
|
|
48
|
+
$: if (isCountriesListOpened && searchCountryDomElement) {
|
|
49
|
+
scrollIntoSearchElement();
|
|
43
50
|
}
|
|
51
|
+
$: placeholder = selectedCountry
|
|
52
|
+
? getSelectedCountryPlaceholder()
|
|
53
|
+
: 'Search Country';
|
|
54
|
+
|
|
55
|
+
onMount(() => {
|
|
56
|
+
phoneNumber = phonenumber
|
|
57
|
+
? parsePhoneNumber(
|
|
58
|
+
phonenumber,
|
|
59
|
+
selectedCountry?.shortName,
|
|
60
|
+
).formatNational()
|
|
61
|
+
: phoneNumber;
|
|
62
|
+
});
|
|
44
63
|
|
|
64
|
+
function getSelectedCountryPlaceholder(): string {
|
|
65
|
+
const example = examples.default[selectedCountry.shortName as CountryCode];
|
|
66
|
+
return new AsYouType(selectedCountry.shortName).input(example);
|
|
67
|
+
}
|
|
45
68
|
function dispatchEvent(
|
|
46
69
|
eventName: string,
|
|
47
70
|
data?: string | CountryItems,
|
|
@@ -92,7 +115,8 @@
|
|
|
92
115
|
phoneNumberValue,
|
|
93
116
|
selectedCountry.shortName,
|
|
94
117
|
).formatInternational();
|
|
95
|
-
|
|
118
|
+
isvalid = true;
|
|
119
|
+
isinvalid = false;
|
|
96
120
|
dispatchEvent('blur', formatInternational);
|
|
97
121
|
} catch (error) {
|
|
98
122
|
const formatIncomplete: string = formatIncompletePhoneNumber(
|
|
@@ -153,15 +177,34 @@
|
|
|
153
177
|
break;
|
|
154
178
|
}
|
|
155
179
|
}
|
|
180
|
+
function scrollIntoSearchElement(): void {
|
|
181
|
+
const searchElement = parsedCountries.find(
|
|
182
|
+
(country) =>
|
|
183
|
+
country.isd.toLowerCase().includes(searchcountrytext.toLowerCase()) ||
|
|
184
|
+
country.name.toLowerCase().includes(searchcountrytext.toLowerCase()),
|
|
185
|
+
);
|
|
186
|
+
const domElement = searchElement
|
|
187
|
+
? (rootElement.querySelector(`li#${searchElement.shortName}`) as Element)
|
|
188
|
+
: (rootElement.querySelector(`li.mc-phone-number__item`) as Element);
|
|
189
|
+
domElement.scrollIntoView({
|
|
190
|
+
behavior: 'auto',
|
|
191
|
+
block: 'center',
|
|
192
|
+
inline: 'nearest',
|
|
193
|
+
});
|
|
194
|
+
}
|
|
156
195
|
</script>
|
|
157
196
|
|
|
158
197
|
<div
|
|
198
|
+
bind:this={rootElement}
|
|
159
199
|
class="mc-phone-number
|
|
160
200
|
{isCountriesListOpened ? ' mc-phone-number--focused' : ''}"
|
|
161
201
|
>
|
|
162
202
|
<div
|
|
163
203
|
class="mc-phone-number__dropdown"
|
|
204
|
+
tabindex="-1"
|
|
164
205
|
on:keydown={initKeyboardNav}
|
|
206
|
+
use:clickOutside
|
|
207
|
+
on:outclick={closeCountriesList}
|
|
165
208
|
{...$$restProps}
|
|
166
209
|
>
|
|
167
210
|
<button
|
|
@@ -182,14 +225,29 @@
|
|
|
182
225
|
{#if isCountriesListOpened}
|
|
183
226
|
<ul
|
|
184
227
|
id={listId}
|
|
185
|
-
tabindex="
|
|
228
|
+
tabindex="0"
|
|
186
229
|
role="listbox"
|
|
187
230
|
aria-labelledby={listId}
|
|
188
231
|
class="mc-phone-number__list"
|
|
189
232
|
aria-activedescendant={selectedCountry.isd}
|
|
190
233
|
>
|
|
234
|
+
{#if enablecountrysearch}
|
|
235
|
+
<input
|
|
236
|
+
id="searchfield"
|
|
237
|
+
type="text"
|
|
238
|
+
class="mc-phone-number__input mc-phone-number__flag-search-field mc-text-input mc-text-input--m mc-field__input"
|
|
239
|
+
name="search-country-input"
|
|
240
|
+
spellcheck="false"
|
|
241
|
+
bind:value={searchcountrytext}
|
|
242
|
+
on:input={scrollIntoSearchElement}
|
|
243
|
+
placeholder={countrysearchplaceholder}
|
|
244
|
+
on:focus|preventDefault={scrollIntoSearchElement}
|
|
245
|
+
bind:this={searchCountryDomElement}
|
|
246
|
+
/>
|
|
247
|
+
{/if}
|
|
191
248
|
{#each parsedCountries as country}
|
|
192
249
|
<li
|
|
250
|
+
id={country.shortName}
|
|
193
251
|
role="option"
|
|
194
252
|
class="mc-phone-number__item
|
|
195
253
|
{country.isd === selectedCountry.isd
|
|
@@ -241,6 +299,11 @@
|
|
|
241
299
|
.mc-phone-number {
|
|
242
300
|
max-width: none;
|
|
243
301
|
|
|
302
|
+
&__flag-search-field {
|
|
303
|
+
position: sticky;
|
|
304
|
+
top: 0;
|
|
305
|
+
}
|
|
306
|
+
|
|
244
307
|
&__indicator,
|
|
245
308
|
&__country {
|
|
246
309
|
padding-left: 1rem;
|