@zengenti/contensis-react-base 3.0.2-beta.19 → 3.0.2-beta.20

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/esm/forms.js CHANGED
@@ -2,7 +2,7 @@ import { produce } from 'immer';
2
2
  import { takeEvery, takeLatest, put, select, all, call } from '@redux-saga/core/effects';
3
3
  import { createSelector } from 'reselect';
4
4
  import { selectors as selectors$1 } from '@zengenti/contensis-react-base/routing';
5
- import React, { createContext, useState, useEffect } from 'react';
5
+ import React, { createContext, useState, useEffect, useRef, forwardRef } from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { useSelector, useDispatch } from 'react-redux';
8
8
  import styled, { ThemeProvider as ThemeProvider$1, css } from 'styled-components';
@@ -538,6 +538,9 @@ const doCreateMessage = (type, minLength, maxLength, currentLength, defaultLangu
538
538
  const getFieldType = field => {
539
539
  var _field$editor, _field$editor$propert;
540
540
  if (!field) return null;
541
+ if (field.id === 'country' && field.dataType === 'string') {
542
+ return 'country';
543
+ }
541
544
  if (field.dataType === 'string' && field.editor && field.editor.id === 'multiline') {
542
545
  return 'textarea';
543
546
  } else if (field.dataType === 'string' && field.editor && field.editor.id === 'list-dropdown') {
@@ -916,11 +919,11 @@ const Label = ({
916
919
  return /*#__PURE__*/React.createElement("label", {
917
920
  className: `${className} ${isHidden ? 'visuallyHidden' : ''}`,
918
921
  htmlFor: id
919
- }, label, isRequired && /*#__PURE__*/React.createElement("span", {
920
- className: "isRequired"
921
- }, "*"), isRequired && /*#__PURE__*/React.createElement("span", {
922
- className: "visuallyHidden"
923
- }, " (required)"));
922
+ }, label, isRequired ? /*#__PURE__*/React.createElement("span", {
923
+ className: "label__required"
924
+ }, "(required)") : /*#__PURE__*/React.createElement("span", {
925
+ className: "label__optional"
926
+ }, "(optional)"));
924
927
  };
925
928
  Label.propTypes = {
926
929
  className: PropTypes.string,
@@ -1324,11 +1327,11 @@ const Checkbox = ({
1324
1327
  value: val[defaultLanguage],
1325
1328
  className: `${className ? className : ''} input-checkbox`,
1326
1329
  onChange: e => _handleChange(e.target.value, e.target.checked)
1327
- }), /*#__PURE__*/React.createElement(Label, {
1330
+ }), /*#__PURE__*/React.createElement("label", {
1331
+ className: "label-checkbox",
1328
1332
  id: `checkbox-${idx}`,
1329
- label: val[defaultLanguage],
1330
- className: "label-checkbox"
1331
- }));
1333
+ htmlFor: `checkbox-${idx}`
1334
+ }, val[defaultLanguage]));
1332
1335
  }));
1333
1336
  }
1334
1337
  case 'single':
@@ -1414,11 +1417,11 @@ const RadioButton = ({
1414
1417
  onChange: e => {
1415
1418
  setValue(formId, id, e.target.value);
1416
1419
  }
1417
- }), /*#__PURE__*/React.createElement(Label, {
1420
+ }), /*#__PURE__*/React.createElement("label", {
1421
+ className: "label-radio",
1418
1422
  id: val[defaultLanguage],
1419
- label: val[defaultLanguage],
1420
- className: "label-radio"
1421
- }));
1423
+ htmlFor: val[defaultLanguage]
1424
+ }, val[defaultLanguage]));
1422
1425
  }));
1423
1426
  };
1424
1427
  RadioButton.propTypes = {
@@ -1701,6 +1704,1352 @@ EntryPicker.propTypes = {
1701
1704
  formId: PropTypes.string
1702
1705
  };
1703
1706
 
1707
+ function _extends() {
1708
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
1709
+ for (var i = 1; i < arguments.length; i++) {
1710
+ var source = arguments[i];
1711
+ for (var key in source) {
1712
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
1713
+ target[key] = source[key];
1714
+ }
1715
+ }
1716
+ }
1717
+ return target;
1718
+ };
1719
+ return _extends.apply(this, arguments);
1720
+ }
1721
+
1722
+ const countries = [{
1723
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1e8.svg",
1724
+ "country": "Ascension Island",
1725
+ "code": "ac"
1726
+ }, {
1727
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1e9.svg",
1728
+ "country": "Andorra",
1729
+ "code": "ad"
1730
+ }, {
1731
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1ea.svg",
1732
+ "country": "United Arab Emirates",
1733
+ "code": "ae"
1734
+ }, {
1735
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1eb.svg",
1736
+ "country": "Afghanistan",
1737
+ "code": "af"
1738
+ }, {
1739
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1ec.svg",
1740
+ "country": "Antigua & Barbuda",
1741
+ "code": "ag"
1742
+ }, {
1743
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1ee.svg",
1744
+ "country": "Anguilla",
1745
+ "code": "ai"
1746
+ }, {
1747
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f1.svg",
1748
+ "country": "Albania",
1749
+ "code": "al"
1750
+ }, {
1751
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f2.svg",
1752
+ "country": "Armenia",
1753
+ "code": "am"
1754
+ }, {
1755
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f4.svg",
1756
+ "country": "Angola",
1757
+ "code": "ad"
1758
+ }, {
1759
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f6.svg",
1760
+ "country": "Antarctica",
1761
+ "code": "aq"
1762
+ }, {
1763
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f7.svg",
1764
+ "country": "Argentina",
1765
+ "code": "ar"
1766
+ }, {
1767
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f8.svg",
1768
+ "country": "American Samoa",
1769
+ "code": "as"
1770
+ }, {
1771
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1f9.svg",
1772
+ "country": "Austria",
1773
+ "code": "at"
1774
+ }, {
1775
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1fa.svg",
1776
+ "country": "Australia",
1777
+ "code": "au"
1778
+ }, {
1779
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1fc.svg",
1780
+ "country": "Aruba",
1781
+ "code": "aw"
1782
+ }, {
1783
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1fd.svg",
1784
+ "country": "Åland Islands",
1785
+ "code": "ax"
1786
+ }, {
1787
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e6-1f1ff.svg",
1788
+ "country": "Azerbaijan",
1789
+ "code": "az"
1790
+ }, {
1791
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1e6.svg",
1792
+ "country": "Bosnia & Herzegovina",
1793
+ "code": "ba"
1794
+ }, {
1795
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1e7.svg",
1796
+ "country": "Barbados",
1797
+ "code": "bb"
1798
+ }, {
1799
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1e9.svg",
1800
+ "country": "Bangladesh",
1801
+ "code": "bd"
1802
+ }, {
1803
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1ea.svg",
1804
+ "country": "Belgium",
1805
+ "code": "be"
1806
+ }, {
1807
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1eb.svg",
1808
+ "country": "Burkina Faso",
1809
+ "code": "bf"
1810
+ }, {
1811
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1ec.svg",
1812
+ "country": "Bulgaria",
1813
+ "code": "bg"
1814
+ }, {
1815
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1ed.svg",
1816
+ "country": "Bahrain",
1817
+ "code": "bh"
1818
+ }, {
1819
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1ee.svg",
1820
+ "country": "Burundi",
1821
+ "code": "bi"
1822
+ }, {
1823
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1ef.svg",
1824
+ "country": "Benin",
1825
+ "code": "bj"
1826
+ }, {
1827
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f1.svg",
1828
+ "country": "St. Barthélemy",
1829
+ "code": "bl"
1830
+ }, {
1831
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f2.svg",
1832
+ "country": "Bermuda",
1833
+ "code": "bm"
1834
+ }, {
1835
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f3.svg",
1836
+ "country": "Brunei",
1837
+ "code": "bn"
1838
+ }, {
1839
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f4.svg",
1840
+ "country": "Bolivia",
1841
+ "code": "bo"
1842
+ }, {
1843
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f6.svg",
1844
+ "country": "Caribbean Netherlands"
1845
+ }, {
1846
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f7.svg",
1847
+ "country": "Brazil",
1848
+ "code": "br"
1849
+ }, {
1850
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f8.svg",
1851
+ "country": "Bahamas",
1852
+ "code": "bs"
1853
+ }, {
1854
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1f9.svg",
1855
+ "country": "Bhutan",
1856
+ "code": "bt"
1857
+ }, {
1858
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1fb.svg",
1859
+ "country": "Bouvet Island",
1860
+ "code": "bv"
1861
+ }, {
1862
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1fc.svg",
1863
+ "country": "Botswana",
1864
+ "code": "bw"
1865
+ }, {
1866
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1fe.svg",
1867
+ "country": "Belarus",
1868
+ "code": "by"
1869
+ }, {
1870
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e7-1f1ff.svg",
1871
+ "country": "Belize",
1872
+ "code": "bz"
1873
+ }, {
1874
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1e6.svg",
1875
+ "country": "Canada",
1876
+ "code": "ca"
1877
+ }, {
1878
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1e8.svg",
1879
+ "country": "Cocos (Keeling) Islands",
1880
+ "code": "cc"
1881
+ }, {
1882
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1e9.svg",
1883
+ "country": "Congo - Kinshasa",
1884
+ "code": "cg"
1885
+ }, {
1886
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1eb.svg",
1887
+ "country": "Central African Republic",
1888
+ "code": "cf"
1889
+ }, {
1890
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1ec.svg",
1891
+ "country": "Congo - Brazzaville",
1892
+ "code": "cd"
1893
+ }, {
1894
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1ed.svg",
1895
+ "country": "Switzerland",
1896
+ "code": "ch"
1897
+ }, {
1898
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1ee.svg",
1899
+ "country": "Côte d’Ivoire",
1900
+ "code": "ci"
1901
+ }, {
1902
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f0.svg",
1903
+ "country": "Cook Islands",
1904
+ "code": "ck"
1905
+ }, {
1906
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f1.svg",
1907
+ "country": "Chile",
1908
+ "code": "cl"
1909
+ }, {
1910
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f2.svg",
1911
+ "country": "Cameroon",
1912
+ "code": "cm"
1913
+ }, {
1914
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f3.svg",
1915
+ "country": "China",
1916
+ "code": "cn"
1917
+ }, {
1918
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f4.svg",
1919
+ "country": "Colombia",
1920
+ "code": "co"
1921
+ }, {
1922
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f5.svg",
1923
+ "country": "Clipperton Island",
1924
+ "code": "cp"
1925
+ }, {
1926
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1f7.svg",
1927
+ "country": "Costa Rica",
1928
+ "code": "cr"
1929
+ }, {
1930
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1fa.svg",
1931
+ "country": "Cuba",
1932
+ "code": "cu"
1933
+ }, {
1934
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1fb.svg",
1935
+ "country": "Cape Verde",
1936
+ "code": "cv"
1937
+ }, {
1938
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1fc.svg",
1939
+ "country": "Curaçao",
1940
+ "code": "cw"
1941
+ }, {
1942
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1fd.svg",
1943
+ "country": "Christmas Island",
1944
+ "code": "cx"
1945
+ }, {
1946
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1fe.svg",
1947
+ "country": "Cyprus",
1948
+ "code": "cy"
1949
+ }, {
1950
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e8-1f1ff.svg",
1951
+ "country": "Czechia",
1952
+ "code": "cz"
1953
+ }, {
1954
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1ea.svg",
1955
+ "country": "Germany",
1956
+ "code": "de"
1957
+ }, {
1958
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1ec.svg",
1959
+ "country": "Diego Garcia",
1960
+ "code": "dg"
1961
+ }, {
1962
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1ef.svg",
1963
+ "country": "Djibouti",
1964
+ "code": "dj"
1965
+ }, {
1966
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1f0.svg",
1967
+ "country": "Denmark",
1968
+ "code": "dk"
1969
+ }, {
1970
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1f2.svg",
1971
+ "country": "Dominica",
1972
+ "code": "dm"
1973
+ }, {
1974
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1f4.svg",
1975
+ "country": "Dominican Republic",
1976
+ "code": "do"
1977
+ }, {
1978
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1e9-1f1ff.svg",
1979
+ "country": "Algeria",
1980
+ "code": "dz"
1981
+ }, {
1982
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1e6.svg",
1983
+ "country": "Ceuta & Melilla",
1984
+ "code": "ea"
1985
+ }, {
1986
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1e8.svg",
1987
+ "country": "Ecuador",
1988
+ "code": "ec"
1989
+ }, {
1990
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1ea.svg",
1991
+ "country": "Estonia",
1992
+ "code": "ee"
1993
+ }, {
1994
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1ec.svg",
1995
+ "country": "Egypt",
1996
+ "code": "eg"
1997
+ }, {
1998
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1ed.svg",
1999
+ "country": "Western Sahara",
2000
+ "code": "eh"
2001
+ }, {
2002
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1f7.svg",
2003
+ "country": "Eritrea",
2004
+ "code": "er"
2005
+ }, {
2006
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1f8.svg",
2007
+ "country": "Spain",
2008
+ "code": "es"
2009
+ }, {
2010
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1f9.svg",
2011
+ "country": "Ethiopia",
2012
+ "code": "et"
2013
+ }, {
2014
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ea-1f1fa.svg",
2015
+ "country": "European Union",
2016
+ "code": "eu"
2017
+ }, {
2018
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1eb-1f1ee.svg",
2019
+ "country": "Finland",
2020
+ "code": "fi"
2021
+ }, {
2022
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1eb-1f1ef.svg",
2023
+ "country": "Fiji",
2024
+ "code": "fj"
2025
+ }, {
2026
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1eb-1f1f0.svg",
2027
+ "country": "Falkland Islands",
2028
+ "code": "fk"
2029
+ }, {
2030
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1eb-1f1f2.svg",
2031
+ "country": "Micronesia",
2032
+ "code": "fm"
2033
+ }, {
2034
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1eb-1f1f4.svg",
2035
+ "country": "Faroe Islands",
2036
+ "code": "fo"
2037
+ }, {
2038
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1eb-1f1f7.svg",
2039
+ "country": "France",
2040
+ "code": "fr"
2041
+ }, {
2042
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1e6.svg",
2043
+ "country": "Gabon",
2044
+ "code": "ga"
2045
+ }, {
2046
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1e7.svg",
2047
+ "country": "United Kingdom",
2048
+ "code": "gb"
2049
+ }, {
2050
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1e9.svg",
2051
+ "country": "Grenada",
2052
+ "code": "gd"
2053
+ }, {
2054
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1ea.svg",
2055
+ "country": "Georgia",
2056
+ "code": "ge"
2057
+ }, {
2058
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1eb.svg",
2059
+ "country": "French Guiana",
2060
+ "code": "gf"
2061
+ }, {
2062
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1ec.svg",
2063
+ "country": "Guernsey",
2064
+ "code": "gg"
2065
+ }, {
2066
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1ed.svg",
2067
+ "country": "Ghana",
2068
+ "code": "gh"
2069
+ }, {
2070
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1ee.svg",
2071
+ "country": "Gibraltar",
2072
+ "code": "gi"
2073
+ }, {
2074
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f1.svg",
2075
+ "country": "Greenland",
2076
+ "code": "gl"
2077
+ }, {
2078
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f2.svg",
2079
+ "country": "Gambia",
2080
+ "code": "gm"
2081
+ }, {
2082
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f3.svg",
2083
+ "country": "Guinea",
2084
+ "code": "gn"
2085
+ }, {
2086
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f5.svg",
2087
+ "country": "Guadeloupe",
2088
+ "code": "gp"
2089
+ }, {
2090
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f6.svg",
2091
+ "country": "Equatorial Guinea",
2092
+ "code": "gq"
2093
+ }, {
2094
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f7.svg",
2095
+ "country": "Greece",
2096
+ "code": "gr"
2097
+ }, {
2098
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f8.svg",
2099
+ "country": "South Georgia & South', Sandwich Islands",
2100
+ "code": "gs"
2101
+ }, {
2102
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1f9.svg",
2103
+ "country": "Guatemala",
2104
+ "code": "gt"
2105
+ }, {
2106
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1fa.svg",
2107
+ "country": "Guam",
2108
+ "code": "gu"
2109
+ }, {
2110
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1fc.svg",
2111
+ "country": "Guinea-Bissau",
2112
+ "code": "gw"
2113
+ }, {
2114
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ec-1f1fe.svg",
2115
+ "country": "Guyana",
2116
+ "code": "gy"
2117
+ }, {
2118
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ed-1f1f0.svg",
2119
+ "country": "Hong Kong SAR China",
2120
+ "code": "hk"
2121
+ }, {
2122
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ed-1f1f2.svg",
2123
+ "country": "Heard & McDonald Islands",
2124
+ "code": "hm"
2125
+ }, {
2126
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ed-1f1f3.svg",
2127
+ "country": "Honduras",
2128
+ "code": "hn"
2129
+ }, {
2130
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ed-1f1f7.svg",
2131
+ "country": "Croatia",
2132
+ "code": "hr"
2133
+ }, {
2134
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ed-1f1f9.svg",
2135
+ "country": "Haiti",
2136
+ "code": "ht"
2137
+ }, {
2138
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ed-1f1fa.svg",
2139
+ "country": "Hungary",
2140
+ "code": "hu"
2141
+ }, {
2142
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1e8.svg",
2143
+ "country": "Canary Islands",
2144
+ "code": "ic"
2145
+ }, {
2146
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1e9.svg",
2147
+ "country": "Indonesia",
2148
+ "code": "id"
2149
+ }, {
2150
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1ea.svg",
2151
+ "country": "Ireland",
2152
+ "code": "ie"
2153
+ }, {
2154
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f1.svg",
2155
+ "country": "Israel",
2156
+ "code": "il"
2157
+ }, {
2158
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f2.svg",
2159
+ "country": "Isle of Man",
2160
+ "code": "im"
2161
+ }, {
2162
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f3.svg",
2163
+ "country": "India",
2164
+ "code": "in"
2165
+ }, {
2166
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f4.svg",
2167
+ "country": "British Indian Ocean Territory",
2168
+ "code": "io"
2169
+ }, {
2170
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f6.svg",
2171
+ "country": "Iraq",
2172
+ "code": "iq"
2173
+ }, {
2174
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f7.svg",
2175
+ "country": "Iran"
2176
+ }, {
2177
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f8.svg",
2178
+ "country": "Iceland",
2179
+ "code": "is"
2180
+ }, {
2181
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ee-1f1f9.svg",
2182
+ "country": "Italy",
2183
+ "code": "it"
2184
+ }, {
2185
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ef-1f1ea.svg",
2186
+ "country": "Jersey",
2187
+ "code": "je"
2188
+ }, {
2189
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ef-1f1f2.svg",
2190
+ "country": "Jamaica",
2191
+ "code": "jm"
2192
+ }, {
2193
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ef-1f1f4.svg",
2194
+ "country": "Jordan",
2195
+ "code": "jo"
2196
+ }, {
2197
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ef-1f1f5.svg",
2198
+ "country": "Japan",
2199
+ "code": "jp"
2200
+ }, {
2201
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1ea.svg",
2202
+ "country": "Kenya",
2203
+ "code": "ke"
2204
+ }, {
2205
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1ec.svg",
2206
+ "country": "Kyrgyzstan",
2207
+ "code": "kg"
2208
+ }, {
2209
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1ed.svg",
2210
+ "country": "Cambodia",
2211
+ "code": "kh"
2212
+ }, {
2213
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1ee.svg",
2214
+ "country": "Kiribati",
2215
+ "code": "ki"
2216
+ }, {
2217
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1f2.svg",
2218
+ "country": "Comoros",
2219
+ "code": "km"
2220
+ }, {
2221
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1f3.svg",
2222
+ "country": "St. Kitts & Nevis",
2223
+ "code": "kn"
2224
+ }, {
2225
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1f5.svg",
2226
+ "country": "North Korea",
2227
+ "code": "kp"
2228
+ }, {
2229
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1f7.svg",
2230
+ "country": "South Korea",
2231
+ "code": "kr"
2232
+ }, {
2233
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1fc.svg",
2234
+ "country": "Kuwait",
2235
+ "code": "kw"
2236
+ }, {
2237
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1fe.svg",
2238
+ "country": "Cayman Islands",
2239
+ "code": "ky"
2240
+ }, {
2241
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f0-1f1ff.svg",
2242
+ "country": "Kazakhstan",
2243
+ "code": "kz"
2244
+ }, {
2245
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1e6.svg",
2246
+ "country": "Laos",
2247
+ "code": "la"
2248
+ }, {
2249
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1e7.svg",
2250
+ "country": "Lebanon",
2251
+ "code": "lb"
2252
+ }, {
2253
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1e8.svg",
2254
+ "country": "St. Lucia",
2255
+ "code": "lc"
2256
+ }, {
2257
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1ee.svg",
2258
+ "country": "Liechtenstein",
2259
+ "code": "li"
2260
+ }, {
2261
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1f0.svg",
2262
+ "country": "Sri Lanka",
2263
+ "code": "lk"
2264
+ }, {
2265
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1f7.svg",
2266
+ "country": "Liberia",
2267
+ "code": "lr"
2268
+ }, {
2269
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1f8.svg",
2270
+ "country": "Lesotho",
2271
+ "code": "ls"
2272
+ }, {
2273
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1f9.svg",
2274
+ "country": "Lithuania",
2275
+ "code": "lt"
2276
+ }, {
2277
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1fa.svg",
2278
+ "country": "Luxembourg",
2279
+ "code": "lu"
2280
+ }, {
2281
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1fb.svg",
2282
+ "country": "Latvia",
2283
+ "code": "lv"
2284
+ }, {
2285
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f1-1f1fe.svg",
2286
+ "country": "Libya",
2287
+ "code": "ly"
2288
+ }, {
2289
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1e6.svg",
2290
+ "country": "Morocco",
2291
+ "code": "ma"
2292
+ }, {
2293
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1e8.svg",
2294
+ "country": "Monaco",
2295
+ "code": "mc"
2296
+ }, {
2297
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1e9.svg",
2298
+ "country": "Moldova",
2299
+ "code": "md"
2300
+ }, {
2301
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1ea.svg",
2302
+ "country": "Montenegro",
2303
+ "code": "me"
2304
+ }, {
2305
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1eb.svg",
2306
+ "country": "St. Martin",
2307
+ "code": "mf"
2308
+ }, {
2309
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1ec.svg",
2310
+ "country": "Madagascar",
2311
+ "code": "mg"
2312
+ }, {
2313
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1ed.svg",
2314
+ "country": "Marshall Islands",
2315
+ "code": "mh"
2316
+ }, {
2317
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f0.svg",
2318
+ "country": "North Macedonia",
2319
+ "code": "mk"
2320
+ }, {
2321
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f1.svg",
2322
+ "country": "Mali",
2323
+ "code": "ml"
2324
+ }, {
2325
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f2.svg",
2326
+ "country": "Myanmar (Burma)",
2327
+ "code": "mm"
2328
+ }, {
2329
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f3.svg",
2330
+ "country": "Mongolia",
2331
+ "code": "mn"
2332
+ }, {
2333
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f4.svg",
2334
+ "country": "Macao Sar China",
2335
+ "code": "mo"
2336
+ }, {
2337
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f5.svg",
2338
+ "country": "Northern Mariana Islands",
2339
+ "code": "mp"
2340
+ }, {
2341
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f6.svg",
2342
+ "country": "Martinique",
2343
+ "code": "mq"
2344
+ }, {
2345
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f7.svg",
2346
+ "country": "Mauritania",
2347
+ "code": "mr"
2348
+ }, {
2349
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f8.svg",
2350
+ "country": "Montserrat",
2351
+ "code": "ms"
2352
+ }, {
2353
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1f9.svg",
2354
+ "country": "Malta",
2355
+ "code": "mt"
2356
+ }, {
2357
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1fa.svg",
2358
+ "country": "Mauritius",
2359
+ "code": "mu"
2360
+ }, {
2361
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1fb.svg",
2362
+ "country": "Maldives",
2363
+ "code": "mv"
2364
+ }, {
2365
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1fc.svg",
2366
+ "country": "Malawi",
2367
+ "code": "mw"
2368
+ }, {
2369
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1fd.svg",
2370
+ "country": "Mexico",
2371
+ "code": "mx"
2372
+ }, {
2373
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1fe.svg",
2374
+ "country": "Malaysia",
2375
+ "code": "my"
2376
+ }, {
2377
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f2-1f1ff.svg",
2378
+ "country": "Mozambique",
2379
+ "code": "mz"
2380
+ }, {
2381
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1e6.svg",
2382
+ "country": "Namibia",
2383
+ "code": "na"
2384
+ }, {
2385
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1e8.svg",
2386
+ "country": "New Caledonia",
2387
+ "code": "nc"
2388
+ }, {
2389
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1ea.svg",
2390
+ "country": "Niger",
2391
+ "code": "ne"
2392
+ }, {
2393
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1eb.svg",
2394
+ "country": "Norfolk Island",
2395
+ "code": "nf"
2396
+ }, {
2397
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1ec.svg",
2398
+ "country": "Nigeria",
2399
+ "code": "ng"
2400
+ }, {
2401
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1ee.svg",
2402
+ "country": "Nicaragua",
2403
+ "code": "ni"
2404
+ }, {
2405
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1f1.svg",
2406
+ "country": "Netherlands",
2407
+ "code": "nl"
2408
+ }, {
2409
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1f4.svg",
2410
+ "country": "Norway",
2411
+ "code": "no"
2412
+ }, {
2413
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1f5.svg",
2414
+ "country": "Nepal",
2415
+ "code": "np"
2416
+ }, {
2417
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1f7.svg",
2418
+ "country": "Nauru",
2419
+ "code": "nr"
2420
+ }, {
2421
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1fa.svg",
2422
+ "country": "Niue",
2423
+ "code": "nu"
2424
+ }, {
2425
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f3-1f1ff.svg",
2426
+ "country": "New Zealand",
2427
+ "code": "nz"
2428
+ }, {
2429
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f4-1f1f2.svg",
2430
+ "country": "Oman",
2431
+ "code": "om"
2432
+ }, {
2433
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1e6.svg",
2434
+ "country": "Panama",
2435
+ "code": "pa"
2436
+ }, {
2437
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1ea.svg",
2438
+ "country": "Peru",
2439
+ "code": "pe"
2440
+ }, {
2441
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1eb.svg",
2442
+ "country": "French Polynesia",
2443
+ "code": "pf"
2444
+ }, {
2445
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1ec.svg",
2446
+ "country": "Papua New Guinea",
2447
+ "code": "pg"
2448
+ }, {
2449
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1ed.svg",
2450
+ "country": "Philippines",
2451
+ "code": "ph"
2452
+ }, {
2453
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f0.svg",
2454
+ "country": "Pakistan",
2455
+ "code": "pk"
2456
+ }, {
2457
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f1.svg",
2458
+ "country": "Poland",
2459
+ "code": "pl"
2460
+ }, {
2461
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f2.svg",
2462
+ "country": "St. Pierre & Miquelon",
2463
+ "code": "pm"
2464
+ }, {
2465
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f3.svg",
2466
+ "country": "Pitcairn Islands",
2467
+ "code": "pn"
2468
+ }, {
2469
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f7.svg",
2470
+ "country": "Puerto Rico",
2471
+ "code": "pr"
2472
+ }, {
2473
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f8.svg",
2474
+ "country": "Palestinian Territories",
2475
+ "code": "ps"
2476
+ }, {
2477
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1f9.svg",
2478
+ "country": "Portugal",
2479
+ "code": "pt"
2480
+ }, {
2481
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1fc.svg",
2482
+ "country": "Palau",
2483
+ "code": "pw"
2484
+ }, {
2485
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f5-1f1fe.svg",
2486
+ "country": "Paraguay",
2487
+ "code": "py"
2488
+ }, {
2489
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f6-1f1e6.svg",
2490
+ "country": "Qatar",
2491
+ "code": "qa"
2492
+ }, {
2493
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f7-1f1ea.svg",
2494
+ "country": "Réunion",
2495
+ "code": "re"
2496
+ }, {
2497
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f7-1f1f4.svg",
2498
+ "country": "Romania",
2499
+ "code": "ro"
2500
+ }, {
2501
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f7-1f1f8.svg",
2502
+ "country": "Serbia",
2503
+ "code": "yu"
2504
+ }, {
2505
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f7-1f1fa.svg",
2506
+ "country": "Russia",
2507
+ "code": "ru"
2508
+ }, {
2509
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f7-1f1fc.svg",
2510
+ "country": "Rwanda",
2511
+ "code": "rw"
2512
+ }, {
2513
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1e6.svg",
2514
+ "country": "Saudi Arabia",
2515
+ "code": "sa"
2516
+ }, {
2517
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1e7.svg",
2518
+ "country": "Solomon Islands",
2519
+ "code": "sb"
2520
+ }, {
2521
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1e8.svg",
2522
+ "country": "Seychelles",
2523
+ "code": "sc"
2524
+ }, {
2525
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1e9.svg",
2526
+ "country": "Sudan",
2527
+ "code": "sd"
2528
+ }, {
2529
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1ea.svg",
2530
+ "country": "Sweden",
2531
+ "code": "se"
2532
+ }, {
2533
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1ec.svg",
2534
+ "country": "Singapore",
2535
+ "code": "sg"
2536
+ }, {
2537
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1ed.svg",
2538
+ "country": "St. Helena",
2539
+ "code": "sh"
2540
+ }, {
2541
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1ee.svg",
2542
+ "country": "Slovenia",
2543
+ "code": "si"
2544
+ }, {
2545
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1ef.svg",
2546
+ "country": "Svalbard & Jan Mayen",
2547
+ "code": "sj"
2548
+ }, {
2549
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f0.svg",
2550
+ "country": "Slovakia",
2551
+ "code": "sk"
2552
+ }, {
2553
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f1.svg",
2554
+ "country": "Sierra Leone",
2555
+ "code": "sl"
2556
+ }, {
2557
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f2.svg",
2558
+ "country": "San Marino",
2559
+ "code": "sm"
2560
+ }, {
2561
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f3.svg",
2562
+ "country": "Senegal",
2563
+ "code": "sn"
2564
+ }, {
2565
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f4.svg",
2566
+ "country": "Somalia",
2567
+ "code": "so"
2568
+ }, {
2569
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f7.svg",
2570
+ "country": "Suriname",
2571
+ "code": "sr"
2572
+ }, {
2573
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f8.svg",
2574
+ "country": "South Sudan",
2575
+ "code": "ss"
2576
+ }, {
2577
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1f9.svg",
2578
+ "country": "São Tomé & Príncipe",
2579
+ "code": "st"
2580
+ }, {
2581
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1fb.svg",
2582
+ "country": "El Salvador",
2583
+ "code": "sv"
2584
+ }, {
2585
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1fd.svg",
2586
+ "country": "Sint Maarten",
2587
+ "code": "sx"
2588
+ }, {
2589
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1fe.svg",
2590
+ "country": "Syria",
2591
+ "code": "sy"
2592
+ }, {
2593
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f8-1f1ff.svg",
2594
+ "country": "Eswatini",
2595
+ "code": "sz"
2596
+ }, {
2597
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1e6.svg",
2598
+ "country": "Tristan Da Cunha",
2599
+ "code": "sh"
2600
+ }, {
2601
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1e8.svg",
2602
+ "country": "Turks & Caicos Islands",
2603
+ "code": "tc"
2604
+ }, {
2605
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1e9.svg",
2606
+ "country": "Chad",
2607
+ "code": "td"
2608
+ }, {
2609
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1eb.svg",
2610
+ "country": "French Southern Territories",
2611
+ "code": "tf"
2612
+ }, {
2613
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1ec.svg",
2614
+ "country": "Togo",
2615
+ "code": "tg"
2616
+ }, {
2617
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1ed.svg",
2618
+ "country": "Thailand",
2619
+ "code": "th"
2620
+ }, {
2621
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1ef.svg",
2622
+ "country": "Tajikistan",
2623
+ "code": "tj"
2624
+ }, {
2625
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f0.svg",
2626
+ "country": "Tokelau",
2627
+ "code": "tk"
2628
+ }, {
2629
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f1.svg",
2630
+ "country": "Timor-Leste",
2631
+ "code": "tl"
2632
+ }, {
2633
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f2.svg",
2634
+ "country": "Turkmenistan",
2635
+ "code": "tm"
2636
+ }, {
2637
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f3.svg",
2638
+ "country": "Tunisia",
2639
+ "code": "tn"
2640
+ }, {
2641
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f4.svg",
2642
+ "country": "Tonga",
2643
+ "code": "to"
2644
+ }, {
2645
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f7.svg",
2646
+ "country": "Turkey",
2647
+ "code": "tr"
2648
+ }, {
2649
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1f9.svg",
2650
+ "country": "Trinidad & Tobago",
2651
+ "code": "tt"
2652
+ }, {
2653
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1fb.svg",
2654
+ "country": "Tuvalu",
2655
+ "code": "tv"
2656
+ }, {
2657
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1fc.svg",
2658
+ "country": "Taiwan",
2659
+ "code": "tw"
2660
+ }, {
2661
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1f9-1f1ff.svg",
2662
+ "country": "Tanzania",
2663
+ "code": "tz"
2664
+ }, {
2665
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1e6.svg",
2666
+ "country": "Ukraine",
2667
+ "code": "ua"
2668
+ }, {
2669
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1ec.svg",
2670
+ "country": "Uganda",
2671
+ "code": "ug"
2672
+ }, {
2673
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1f2.svg",
2674
+ "country": "U.S. Outlying Islands",
2675
+ "code": "um"
2676
+ }, {
2677
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1f3.svg",
2678
+ "country": "United Nations",
2679
+ "code": "un"
2680
+ }, {
2681
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1f8.svg",
2682
+ "country": "United States",
2683
+ "code": "us"
2684
+ }, {
2685
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1fe.svg",
2686
+ "country": "Uruguay",
2687
+ "code": "uy"
2688
+ }, {
2689
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fa-1f1ff.svg",
2690
+ "country": "Uzbekistan",
2691
+ "code": "uz"
2692
+ }, {
2693
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1e6.svg",
2694
+ "country": "Vatican City",
2695
+ "code": "va"
2696
+ }, {
2697
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1e8.svg",
2698
+ "country": "St. Vincent & Grenadines",
2699
+ "code": "vc"
2700
+ }, {
2701
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1ea.svg",
2702
+ "country": "Venezuela",
2703
+ "code": "ve"
2704
+ }, {
2705
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1ec.svg",
2706
+ "country": "British Virgin Islands",
2707
+ "code": "vg"
2708
+ }, {
2709
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1ee.svg",
2710
+ "country": "U.S. Virgin Islands",
2711
+ "code": "vi"
2712
+ }, {
2713
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1f3.svg",
2714
+ "country": "Vietnam",
2715
+ "code": "vn"
2716
+ }, {
2717
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fb-1f1fa.svg",
2718
+ "country": "Vanuatu",
2719
+ "code": "vu"
2720
+ }, {
2721
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fc-1f1eb.svg",
2722
+ "country": "Wallis & Futuna",
2723
+ "code": "wf"
2724
+ }, {
2725
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fc-1f1f8.svg",
2726
+ "country": "Samoa",
2727
+ "code": "ws"
2728
+ }, {
2729
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fd-1f1f0.svg",
2730
+ "country": "Kosovo",
2731
+ "code": "xk"
2732
+ }, {
2733
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fe-1f1ea.svg",
2734
+ "country": "Yemen",
2735
+ "code": "ye"
2736
+ }, {
2737
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1fe-1f1f9.svg",
2738
+ "country": "Mayotte",
2739
+ "code": "yt"
2740
+ }, {
2741
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ff-1f1e6.svg",
2742
+ "country": "South Africa",
2743
+ "code": "za"
2744
+ }, {
2745
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ff-1f1f2.svg",
2746
+ "country": "Zambia",
2747
+ "code": "zm"
2748
+ }, {
2749
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f1ff-1f1fc.svg",
2750
+ "country": "Zimbabwe",
2751
+ "code": "zw"
2752
+ }, {
2753
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f3f4-e0067-e0062-e0065-e006e-e0067-e007f.svg",
2754
+ "country": "England",
2755
+ "code": "uk"
2756
+ }, {
2757
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f3f4-e0067-e0062-e0073-e0063-e0074-e007f.svg",
2758
+ "country": "Scotland",
2759
+ "code": "uk"
2760
+ }, {
2761
+ "flag": "https://twemoji.maxcdn.com/2/svg/1f3f4-e0067-e0062-e0077-e006c-e0073-e007f.svg",
2762
+ "country": "Wales",
2763
+ "code": "uk"
2764
+ }];
2765
+
2766
+ const useClickOutside = (ref, callback) => {
2767
+ useEffect(() => {
2768
+ const element = ref === null || ref === void 0 ? void 0 : ref.current;
2769
+ const listener = evt => {
2770
+ if (!element || element.contains(evt.target)) return;
2771
+ callback(evt);
2772
+ };
2773
+ document.addEventListener('mousedown', listener);
2774
+ document.addEventListener('touchstart', listener);
2775
+ return () => {
2776
+ document.removeEventListener('mousedown', listener);
2777
+ document.removeEventListener('touchstart', listener);
2778
+ };
2779
+ }, [ref, callback]);
2780
+ };
2781
+ const useKeyPress = targetKey => {
2782
+ const [pressed, setPressed] = useState(false);
2783
+ useEffect(() => {
2784
+ const onKeydown = e => {
2785
+ const keyPressed = e.key;
2786
+ if (keyPressed === targetKey) setPressed(true);
2787
+ };
2788
+ const onKeyup = e => {
2789
+ const keyPressed = e.key;
2790
+ if (keyPressed === targetKey) setPressed(false);
2791
+ };
2792
+ window.addEventListener('keydown', onKeydown);
2793
+ window.addEventListener('keyup', onKeyup);
2794
+ return () => {
2795
+ window.removeEventListener('keydown', onKeydown);
2796
+ window.removeEventListener('keyup', onKeyup);
2797
+ };
2798
+ }, [targetKey]);
2799
+ return pressed;
2800
+ };
2801
+ const CountrySelectStyled = styled.div.withConfig({
2802
+ displayName: "country__CountrySelectStyled",
2803
+ componentId: "sc-93yqgk-0"
2804
+ })(["", ";"], ({
2805
+ theme
2806
+ }) => {
2807
+ return css(["div[aria-hidden=\"true\"]{display:none;}[aria-invalid='true']{background:#F9D7D7!important;border:1px solid #ca2121 !important;}[aria-invalid='false']{background:#D5FCE9 !important;border:1px solid #008A48 !important;}.country-select__label{display:block;margin:0 0 8px;}.country-select__wrapper{padding:16px 8px;margin:8px 0 0;}.country-select__btn--toggle{padding:8px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-family:inherit;background:#fff;border-radius:3px;border:1px solid #949494;height:40px;width:100%;max-width:100%;padding:8px;.country-select__icons{margin-left:auto;display:flex;align-items:center;}}.country-select__input{margin:0 8px 16px;font-family:inherit;background-color:#fff;border-radius:3px;border:1px solid #949494;height:40px;width:100%;max-width:calc(100% - 16px);padding:8px;}.country-select__options{overflow-y:scroll;height:247px;list-style:none;padding:0;margin:0;}.country-select__option{padding:8px;display:flex;align-items:center;cursor:pointer;background:transparent;border:none;width:100%;svg{margin-right:4px;}}img{margin-left:4px;width:16px;height:16px;}.required{color:", ";}"], theme.colors.red_darker);
2808
+ });
2809
+ const CountrySelect = ({
2810
+ formId,
2811
+ id,
2812
+ field,
2813
+ validations,
2814
+ defaultValue
2815
+ }) => {
2816
+ var _options$filter, _options$filter$;
2817
+ const [options, setOptions] = useState(countries);
2818
+ const [selected, setSelected] = useState(defaultValue || '');
2819
+ const [toggled, toggleDropdown] = useState(false);
2820
+ useEffect(() => {
2821
+ if (defaultValue) {
2822
+ var _countries$filter, _countries$filter$;
2823
+ const defaultCountry = ((_countries$filter = countries.filter(({
2824
+ country
2825
+ }) => country === defaultValue)) === null || _countries$filter === void 0 ? void 0 : (_countries$filter$ = _countries$filter[0]) === null || _countries$filter$ === void 0 ? void 0 : _countries$filter$.country) || '';
2826
+ if (defaultCountry) setSelected(defaultCountry);
2827
+ }
2828
+ }, [defaultValue]);
2829
+ const isRequired = validations && validations.required ? true : false;
2830
+ const onChange = value => {
2831
+ if (value && value.length >= 1) {
2832
+ const opts = countries;
2833
+ const optsfiltered = opts.filter(({
2834
+ country
2835
+ }) => country.toLowerCase().includes(value.toLowerCase()));
2836
+ setOptions(optsfiltered);
2837
+ } else setOptions(countries);
2838
+ };
2839
+
2840
+ // Validation
2841
+ const dispatch = useDispatch();
2842
+ const selectFormValidationSent = makeSelectFormValidationSent(formId);
2843
+ const formValidationSent = useSelector(selectFormValidationSent);
2844
+ const [a11yInvalid, setA11yInvalid] = useState('');
2845
+ useEffect(() => {
2846
+ if (formValidationSent) setA11yInvalid(doA11yValidation(selected, field, true));
2847
+ }, [formValidationSent]);
2848
+ const elOptionRef = useRef();
2849
+ const elContainerRef = useRef();
2850
+ const close = () => toggleDropdown(false);
2851
+ useClickOutside(elContainerRef, close);
2852
+
2853
+ // Keyboard Navigation
2854
+ const isArrowUpPressed = useKeyPress('ArrowUp');
2855
+ const isArrowDownPressed = useKeyPress('ArrowDown');
2856
+ const isEscapePressed = useKeyPress('Escape');
2857
+ const [initState, setInitState] = useState({
2858
+ selectedIndex: -1
2859
+ });
2860
+ const updateState = (type, i) => {
2861
+ const max = options.length - 1;
2862
+ if (type === 'ARROW_UP') {
2863
+ let updatedState = {
2864
+ ...initState
2865
+ };
2866
+ const updatedIndex = updatedState.selectedIndex !== 0 ? updatedState.selectedIndex - 1 : max;
2867
+ updatedState.selectedIndex = updatedIndex;
2868
+ setInitState(updatedState);
2869
+ }
2870
+ if (type === 'ARROW_DOWN') {
2871
+ let updatedState = {
2872
+ ...initState
2873
+ };
2874
+ const updatedIndex = updatedState.selectedIndex !== max ? updatedState.selectedIndex + 1 : 0;
2875
+ updatedState.selectedIndex = updatedIndex;
2876
+ setInitState(updatedState);
2877
+ }
2878
+ if (type === 'SELECT') {
2879
+ let updatedState = {
2880
+ ...initState
2881
+ };
2882
+ updatedState.selectedIndex = i;
2883
+ setInitState(updatedState);
2884
+ }
2885
+ };
2886
+ useEffect(() => {
2887
+ if (toggled) {
2888
+ if (isArrowDownPressed) updateState('ARROW_DOWN');
2889
+ if (isArrowUpPressed) updateState('ARROW_UP');
2890
+ if (isEscapePressed) toggleDropdown(false);
2891
+ doFocus();
2892
+ }
2893
+ }, [toggled, isArrowDownPressed, isArrowUpPressed, isEscapePressed]);
2894
+ const doFocus = () => {
2895
+ var _element$;
2896
+ const attr = `[aria-pressed="true"]`;
2897
+ const element = document.querySelectorAll(attr);
2898
+ if (element && element.length >= 1) (_element$ = element[0]) === null || _element$ === void 0 ? void 0 : _element$.focus();
2899
+ };
2900
+ return /*#__PURE__*/React.createElement(CountrySelectStyled, {
2901
+ ref: elContainerRef,
2902
+ role: "region",
2903
+ id: "country",
2904
+ "aria-live": "polite"
2905
+ }, /*#__PURE__*/React.createElement("span", {
2906
+ className: "country-select__label",
2907
+ role: "label",
2908
+ "aria-label": `Select a country ${isRequired ? 'required' : 'optional'} ${selected}`,
2909
+ htmlFor: "country"
2910
+ }, "Select a country", isRequired ? /*#__PURE__*/React.createElement("span", {
2911
+ className: "label__required"
2912
+ }, "(required)") : /*#__PURE__*/React.createElement("span", {
2913
+ className: "label__optional"
2914
+ }, "(optional)")), /*#__PURE__*/React.createElement("button", {
2915
+ className: "country-select__btn--toggle",
2916
+ "aria-controls": "country",
2917
+ "aria-invalid": a11yInvalid,
2918
+ "aria-expanded": toggled,
2919
+ onClick: e => {
2920
+ e.preventDefault();
2921
+ toggleDropdown(!toggled);
2922
+ }
2923
+ }, selected, selected && /*#__PURE__*/React.createElement("img", {
2924
+ src: (_options$filter = options.filter(opt => opt.country === selected)) === null || _options$filter === void 0 ? void 0 : (_options$filter$ = _options$filter[0]) === null || _options$filter$ === void 0 ? void 0 : _options$filter$.flag,
2925
+ alt: ""
2926
+ }), /*#__PURE__*/React.createElement("span", {
2927
+ className: "sr-only"
2928
+ }, "Open the Country select searchable dropdown"), /*#__PURE__*/React.createElement("div", {
2929
+ className: "country-select__icons"
2930
+ }, toggled ? /*#__PURE__*/React.createElement("svg", {
2931
+ xmlns: "http://www.w3.org/2000/svg",
2932
+ width: "24",
2933
+ height: "24",
2934
+ fill: "none",
2935
+ focusable: "false",
2936
+ "aria-hidden": "true",
2937
+ role: "presentation"
2938
+ }, /*#__PURE__*/React.createElement("path", {
2939
+ fill: "#333",
2940
+ d: "m7 15 4.293-4.293L15.586 15 17 13.586l-5.707-5.707-5.707 5.707L7 15Z"
2941
+ })) : /*#__PURE__*/React.createElement("svg", {
2942
+ xmlns: "http://www.w3.org/2000/svg",
2943
+ width: "24",
2944
+ height: "24",
2945
+ fill: "none",
2946
+ focusable: "false",
2947
+ "aria-hidden": "true",
2948
+ role: "presentation"
2949
+ }, /*#__PURE__*/React.createElement("path", {
2950
+ fill: "#333",
2951
+ d: "m16 8-4.293 4.293L7.414 8 6 9.414l5.707 5.707 5.707-5.707L16 8Z"
2952
+ })), a11yInvalid == 'true' && /*#__PURE__*/React.createElement("svg", {
2953
+ className: "svg",
2954
+ xmlns: "http://www.w3.org/2000/svg",
2955
+ focusable: "false",
2956
+ "aria-hidden": "true",
2957
+ role: "presentation",
2958
+ width: "16",
2959
+ height: "16",
2960
+ fill: "none"
2961
+ }, /*#__PURE__*/React.createElement("path", {
2962
+ fill: "#333",
2963
+ d: "M12.2 3.807a.664.664 0 0 0-.94 0L8 7.06 4.74 3.8a.665.665 0 0 0-.94.94L7.06 8 3.8 11.26a.664.664 0 1 0 .94.94L8 8.94l3.26 3.26a.665.665 0 0 0 .94-.94L8.94 8l3.26-3.26a.668.668 0 0 0 0-.933Z"
2964
+ })), a11yInvalid == 'false' && /*#__PURE__*/React.createElement("svg", {
2965
+ className: "svg",
2966
+ xmlns: "http://www.w3.org/2000/svg",
2967
+ focusable: "false",
2968
+ "aria-hidden": "true",
2969
+ role: "presentation",
2970
+ width: "16",
2971
+ height: "16",
2972
+ fill: "none"
2973
+ }, /*#__PURE__*/React.createElement("path", {
2974
+ fill: "#333",
2975
+ d: "m2 8 4.418 4.667L14 4.659l-1.246-1.326-6.336 6.692-3.18-3.332L2 8Z"
2976
+ })))), /*#__PURE__*/React.createElement("div", {
2977
+ className: "country-select__wrapper",
2978
+ "aria-hidden": !toggled
2979
+ }, /*#__PURE__*/React.createElement("label", {
2980
+ htmlFor: "search-country-name",
2981
+ className: "sr-only"
2982
+ }, "Search country name"), /*#__PURE__*/React.createElement("input", {
2983
+ id: "search-country-name",
2984
+ className: "country-select__input",
2985
+ placeholder: "Search country name",
2986
+ onChange: e => {
2987
+ e.preventDefault();
2988
+ onChange(e.target.value);
2989
+ }
2990
+ }), /*#__PURE__*/React.createElement("ul", {
2991
+ id: "contry",
2992
+ role: "select",
2993
+ name: "country",
2994
+ className: "country-select__options"
2995
+ }, options.map((option, i) => {
2996
+ const isSelected = selected === option.country;
2997
+ return /*#__PURE__*/React.createElement("li", {
2998
+ key: i,
2999
+ "aria-hidden": isSelected,
3000
+ "aria-selected": isSelected,
3001
+ role: "option"
3002
+ }, /*#__PURE__*/React.createElement(CountryOption, {
3003
+ onClick: e => {
3004
+ e.preventDefault();
3005
+ setSelected(option.country);
3006
+ dispatch(setValue(formId, id, e.target.value));
3007
+ setA11yInvalid(doA11yValidation(e.target.value, field, formValidationSent));
3008
+ },
3009
+ onKeyDown: e => {
3010
+ if (e.key === 'Enter' || e.key === ' ') {
3011
+ setSelected(option.country);
3012
+ dispatch(setValue(formId, id, e.target.value));
3013
+ setA11yInvalid(doA11yValidation(e.target.value, field, formValidationSent));
3014
+ updateState('SELECT', i);
3015
+ e.target.blur();
3016
+ }
3017
+ },
3018
+ ref: elOptionRef,
3019
+ value: option.country,
3020
+ "aria-pressed": i === initState.selectedIndex,
3021
+ tabIndex: 0
3022
+ }, isSelected && /*#__PURE__*/React.createElement("svg", {
3023
+ focusable: "false",
3024
+ "aria-hidden": "true",
3025
+ role: "presentation",
3026
+ xmlns: "http://www.w3.org/2000/svg",
3027
+ width: "16px",
3028
+ height: "16px",
3029
+ viewBox: "0 0 24 24",
3030
+ fill: "none"
3031
+ }, /*#__PURE__*/React.createElement("path", {
3032
+ fill: "#333",
3033
+ d: "m3 12 6.627 7L21 6.988 19.131 5 9.627 15.038 4.856 10.04 3 12Z"
3034
+ })), option.country, /*#__PURE__*/React.createElement("img", {
3035
+ src: option.flag,
3036
+ alt: ""
3037
+ })));
3038
+ }))));
3039
+ };
3040
+ const CountryOption = /*#__PURE__*/forwardRef(function SelectItem(props, ref = null) {
3041
+ const {
3042
+ className,
3043
+ children,
3044
+ ...rest
3045
+ } = props;
3046
+ return /*#__PURE__*/React.createElement("button", _extends({
3047
+ className: "country-select__option",
3048
+ role: "option",
3049
+ ref: ref
3050
+ }, rest), children);
3051
+ });
3052
+
1704
3053
  const FormComposer = ({
1705
3054
  fields,
1706
3055
  formData,
@@ -1853,6 +3202,18 @@ const FormComposer = ({
1853
3202
  placeholder: field.editor
1854
3203
  });
1855
3204
  }
3205
+ case 'country':
3206
+ {
3207
+ var _field$default;
3208
+ return /*#__PURE__*/React.createElement(CountrySelect, {
3209
+ key: `${field.id}-${idx}`,
3210
+ formId: formId,
3211
+ field: field,
3212
+ id: field.id,
3213
+ validations: field.validations,
3214
+ defaultValue: field === null || field === void 0 ? void 0 : (_field$default = field.default) === null || _field$default === void 0 ? void 0 : _field$default[defaultLanguage]
3215
+ });
3216
+ }
1856
3217
  }
1857
3218
  });
1858
3219
  };