@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.
Files changed (182) hide show
  1. package/package.json +1 -1
  2. package/public/ClickOutside-63071e7a.js +15 -1
  3. package/public/ClickOutside-63071e7a.js.map +1 -1
  4. package/public/DataTableDefaultAction.nested-4da4dc44.js +759 -1
  5. package/public/DataTableDefaultAction.nested-4da4dc44.js.map +1 -1
  6. package/public/DataTableUtilities-60220c78.js +370 -1
  7. package/public/DataTableUtilities-60220c78.js.map +1 -1
  8. package/public/EventForward-8492ff62.js +109 -1
  9. package/public/EventForward-8492ff62.js.map +1 -1
  10. package/public/EventHandler-02058705.js +15 -1
  11. package/public/EventHandler-02058705.js.map +1 -1
  12. package/public/adeo/components/select/Select.js +1 -1
  13. package/public/adeo/components/select/Select.js.map +1 -1
  14. package/public/adeo/components/select/Select.svelte +1 -1
  15. package/public/array-5b770a93.js +13 -1
  16. package/public/array-5b770a93.js.map +1 -1
  17. package/public/axis-fbc0f7b5.js +174 -1
  18. package/public/axis-fbc0f7b5.js.map +1 -1
  19. package/public/band-d7a07d2c.js +186 -1
  20. package/public/band-d7a07d2c.js.map +1 -1
  21. package/public/bricoman/components/select/Select.js +1 -1
  22. package/public/bricoman/components/select/Select.js.map +1 -1
  23. package/public/bricoman/components/select/Select.svelte +1 -1
  24. package/public/components/accordion/Accordion.js +365 -1
  25. package/public/components/accordion/Accordion.js.map +1 -1
  26. package/public/components/autocomplete/Autocomplete.js +1515 -1
  27. package/public/components/autocomplete/Autocomplete.js.map +1 -1
  28. package/public/components/badge/Badge.js +155 -1
  29. package/public/components/badge/Badge.js.map +1 -1
  30. package/public/components/badge/Badge.nested.js +101 -1
  31. package/public/components/badge/Badge.nested.js.map +1 -1
  32. package/public/components/breadcrumb/Breadcrumb.js +372 -1
  33. package/public/components/breadcrumb/Breadcrumb.js.map +1 -1
  34. package/public/components/breadcrumb/Breadcrumb.nested.js +319 -1
  35. package/public/components/breadcrumb/Breadcrumb.nested.js.map +1 -1
  36. package/public/components/button/Button.js +1138 -1
  37. package/public/components/button/Button.js.map +1 -1
  38. package/public/components/card/Card.js +369 -1
  39. package/public/components/card/Card.js.map +1 -1
  40. package/public/components/chart/BarChart.js +582 -1
  41. package/public/components/chart/BarChart.js.map +1 -1
  42. package/public/components/chart/Donut.js +1189 -1
  43. package/public/components/chart/Donut.js.map +1 -1
  44. package/public/components/chart/GroupedBarChart.js +750 -1
  45. package/public/components/chart/GroupedBarChart.js.map +1 -1
  46. package/public/components/chart/LineChart.js +1731 -1
  47. package/public/components/chart/LineChart.js.map +1 -1
  48. package/public/components/chart/Radar.js +729 -1
  49. package/public/components/chart/Radar.js.map +1 -1
  50. package/public/components/chart/StackedBarChart.js +745 -1
  51. package/public/components/chart/StackedBarChart.js.map +1 -1
  52. package/public/components/checkbox/Checkbox.js +307 -1
  53. package/public/components/checkbox/Checkbox.js.map +1 -1
  54. package/public/components/checkboxgroup/checkboxGroup.js +404 -1
  55. package/public/components/checkboxgroup/checkboxGroup.js.map +1 -1
  56. package/public/components/datatable/DataTable.js +3064 -1
  57. package/public/components/datatable/DataTable.js.map +1 -1
  58. package/public/components/datatable/DataTableDefaultAction.nested.js +4 -1
  59. package/public/components/datatable/DataTableDefaultAction.nested.js.map +1 -1
  60. package/public/components/datatable/DataTableDefaultEdtion.nested.js +164 -1
  61. package/public/components/datatable/DataTableDefaultEdtion.nested.js.map +1 -1
  62. package/public/components/datatable/DataTableDefaultFilterTags.nested.js +380 -1
  63. package/public/components/datatable/DataTableDefaultFilterTags.nested.js.map +1 -1
  64. package/public/components/datatable/DataTableDefaultSelection.nested.js +424 -1
  65. package/public/components/datatable/DataTableDefaultSelection.nested.js.map +1 -1
  66. package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js +263 -1
  67. package/public/components/datatable/DataTableDefaultSelectionLabel.nested.js.map +1 -1
  68. package/public/components/datatable/DataTableFooter.nested.js +637 -1
  69. package/public/components/datatable/DataTableFooter.nested.js.map +1 -1
  70. package/public/components/dropdown/Dropdown.js +1426 -1
  71. package/public/components/dropdown/Dropdown.js.map +1 -1
  72. package/public/components/field/Field.js +375 -1
  73. package/public/components/field/Field.js.map +1 -1
  74. package/public/components/fileuploader/FileUploader.js +555 -1
  75. package/public/components/fileuploader/FileUploader.js.map +1 -1
  76. package/public/components/fileuploader/ResultFile.nested.js +265 -1
  77. package/public/components/fileuploader/ResultFile.nested.js.map +1 -1
  78. package/public/components/flag/Flag.js +174 -1
  79. package/public/components/flag/Flag.js.map +1 -1
  80. package/public/components/header/Header.js +903 -1
  81. package/public/components/header/Header.js.map +1 -1
  82. package/public/components/hero/Hero.js +271 -1
  83. package/public/components/hero/Hero.js.map +1 -1
  84. package/public/components/layer/Layer.js +453 -1
  85. package/public/components/layer/Layer.js.map +1 -1
  86. package/public/components/link/Link.js +380 -1
  87. package/public/components/link/Link.js.map +1 -1
  88. package/public/components/listbox/Listbox.js +595 -1
  89. package/public/components/listbox/Listbox.js.map +1 -1
  90. package/public/components/listbox/Listbox.nested.js +629 -1
  91. package/public/components/listbox/Listbox.nested.js.map +1 -1
  92. package/public/components/loader/Loader.js +246 -1
  93. package/public/components/loader/Loader.js.map +1 -1
  94. package/public/components/loader/Loader.nested.js +176 -1
  95. package/public/components/loader/Loader.nested.js.map +1 -1
  96. package/public/components/modal/Modal.js +395 -1
  97. package/public/components/modal/Modal.js.map +1 -1
  98. package/public/components/notification/Notification.js +458 -1
  99. package/public/components/notification/Notification.js.map +1 -1
  100. package/public/components/optionbutton/OptionButton.js +316 -1
  101. package/public/components/optionbutton/OptionButton.js.map +1 -1
  102. package/public/components/overlay/Overlay.js +104 -1
  103. package/public/components/overlay/Overlay.js.map +1 -1
  104. package/public/components/overlay/OverlayLoader.js +151 -1
  105. package/public/components/overlay/OverlayLoader.js.map +1 -1
  106. package/public/components/pagination/Pagination.js +613 -1
  107. package/public/components/pagination/Pagination.js.map +1 -1
  108. package/public/components/passwordinput/PasswordInput.js +291 -1
  109. package/public/components/passwordinput/PasswordInput.js.map +1 -1
  110. package/public/components/phonenumber/PhoneNumber.js +6894 -1
  111. package/public/components/phonenumber/PhoneNumber.js.map +1 -1
  112. package/public/components/phonenumber/PhoneNumber.svelte +72 -9
  113. package/public/components/price/Price.js +768 -1
  114. package/public/components/price/Price.js.map +1 -1
  115. package/public/components/progressbar/ProgressBar.js +278 -1
  116. package/public/components/progressbar/ProgressBar.js.map +1 -1
  117. package/public/components/quantityselector/QuantitySelector.js +333 -1
  118. package/public/components/quantityselector/QuantitySelector.js.map +1 -1
  119. package/public/components/radio/Radio.js +273 -1
  120. package/public/components/radio/Radio.js.map +1 -1
  121. package/public/components/radiogroup/RadioGroup.js +414 -1
  122. package/public/components/radiogroup/RadioGroup.js.map +1 -1
  123. package/public/components/ratings/StarsInput.js +292 -1
  124. package/public/components/ratings/StarsInput.js.map +1 -1
  125. package/public/components/ratings/StarsResult.js +246 -1
  126. package/public/components/ratings/StarsResult.js.map +1 -1
  127. package/public/components/select/Select.js +451 -1
  128. package/public/components/select/Select.js.map +1 -1
  129. package/public/components/select/Select.svelte +1 -1
  130. package/public/components/sidebar/Sidebar.js +784 -1
  131. package/public/components/sidebar/Sidebar.js.map +1 -1
  132. package/public/components/sidebar/sidebar-feature-group.nested.js +594 -1
  133. package/public/components/sidebar/sidebar-feature-group.nested.js.map +1 -1
  134. package/public/components/sidebar/sidebar-feature.nested.js +402 -1
  135. package/public/components/sidebar/sidebar-feature.nested.js.map +1 -1
  136. package/public/components/sidebar/sidebar-section.nested.js +394 -1
  137. package/public/components/sidebar/sidebar-section.nested.js.map +1 -1
  138. package/public/components/sidebar/sidebar-segment.nested.js +200 -1
  139. package/public/components/sidebar/sidebar-segment.nested.js.map +1 -1
  140. package/public/components/sidebar/sidebar-separator.nested.js +49 -1
  141. package/public/components/sidebar/sidebar-separator.nested.js.map +1 -1
  142. package/public/components/sidebar/sidebar-sub-features.nested.js +312 -1
  143. package/public/components/sidebar/sidebar-sub-features.nested.js.map +1 -1
  144. package/public/components/sidebar/sidebar-user.nested.js +733 -1
  145. package/public/components/sidebar/sidebar-user.nested.js.map +1 -1
  146. package/public/components/stepper/Stepper.js +371 -1
  147. package/public/components/stepper/Stepper.js.map +1 -1
  148. package/public/components/tabs/Tabs.js +615 -1
  149. package/public/components/tabs/Tabs.js.map +1 -1
  150. package/public/components/tabs/Tabs.nested.js +472 -1
  151. package/public/components/tabs/Tabs.nested.js.map +1 -1
  152. package/public/components/tag/Tag.js +665 -1
  153. package/public/components/tag/Tag.js.map +1 -1
  154. package/public/components/tag/Tag.nested.js +554 -1
  155. package/public/components/tag/Tag.nested.js.map +1 -1
  156. package/public/components/taglist/TagList.js +475 -1
  157. package/public/components/taglist/TagList.js.map +1 -1
  158. package/public/components/textarea/Textarea.js +303 -1
  159. package/public/components/textarea/Textarea.js.map +1 -1
  160. package/public/components/textinput/Textinput.js +497 -1
  161. package/public/components/textinput/Textinput.js.map +1 -1
  162. package/public/components/textinput/Textinput.nested.js +320 -1
  163. package/public/components/textinput/Textinput.nested.js.map +1 -1
  164. package/public/components/toggle/Toggle.js +278 -1
  165. package/public/components/toggle/Toggle.js.map +1 -1
  166. package/public/components/tooltip/Tooltip.js +173 -1
  167. package/public/components/tooltip/Tooltip.js.map +1 -1
  168. package/public/index-c33b3772.js +873 -1
  169. package/public/index-c33b3772.js.map +1 -1
  170. package/public/linear-f46d7e9e.js +700 -1
  171. package/public/linear-f46d7e9e.js.map +1 -1
  172. package/public/path-1b5da959.js +186 -1
  173. package/public/path-1b5da959.js.map +1 -1
  174. package/public/sidebar-service-275bf9ef.js +129 -1
  175. package/public/sidebar-service-275bf9ef.js.map +1 -1
  176. package/public/symbol-b05a6e2b.js +169 -1
  177. package/public/symbol-b05a6e2b.js.map +1 -1
  178. package/public/transform-15d69d5d.js +2743 -1
  179. package/public/transform-15d69d5d.js.map +1 -1
  180. package/public/utilities/stories/phonenumber/PhoneNumber.stories.d.ts.map +1 -1
  181. package/public/utilities/stories/select/Select.stories.d.ts.map +1 -1
  182. 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
- $: phoneNumber = phonenumber ? getNumber() : '';
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="-1"
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;