@asdp/ferryui 0.1.22-dev.9415 → 0.1.22-dev.9462
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +1548 -345
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1549 -346
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { makeStyles, tokens, createLightTheme, createDarkTheme, shorthands, Popover, PopoverTrigger, Input, PopoverSurface, Field, Caption1Strong, Caption2, Button, Body1, Body1Strong, Caption1, Dialog, DialogSurface, DialogBody, DialogTitle, DialogTrigger, DialogContent, Carousel, CarouselButton, CarouselViewport, mergeClasses, CarouselSlider, CarouselNav, CarouselNavButton, CarouselCard, Skeleton, SkeletonItem, Subtitle2, Card, Tooltip, Badge, Title2, Divider, Title3, Label, Text, Subtitle1, Checkbox, MessageBar, MessageBarBody, Accordion, AccordionItem, AccordionHeader, AccordionPanel, RadioGroup,
|
|
1
|
+
import { makeStyles, tokens, createLightTheme, createDarkTheme, shorthands, Popover, PopoverTrigger, Input, PopoverSurface, Field, Caption1Strong, Caption2, Button, Body1, Body1Strong, Caption1, Dialog, DialogSurface, DialogBody, DialogTitle, DialogTrigger, DialogContent, Carousel, CarouselButton, CarouselViewport, mergeClasses, CarouselSlider, CarouselNav, CarouselNavButton, CarouselCard, Skeleton, SkeletonItem, Subtitle2, Card, Tooltip, Badge, Title2, Divider, Title3, Label, Text, Subtitle1, Checkbox, MessageBar, MessageBarBody, Accordion, AccordionItem, AccordionHeader, AccordionPanel, RadioGroup, Menu, MenuTrigger, MenuPopover, MenuList, Radio, DialogActions, Caption2Strong, Body1Stronger, Caption1Stronger, Display, Image, Title1, TabList, Tab, Body2, typographyStyles, Switch, Textarea, Link } from '@fluentui/react-components';
|
|
2
2
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
3
3
|
import React, { forwardRef, useState, useRef, useEffect, useCallback, useMemo, Fragment as Fragment$1 } from 'react';
|
|
4
4
|
import { ArrowDownloadRegular, Dismiss24Regular, DismissRegular, SubtractRegular, AddRegular, DeleteRegular, InfoRegular, SearchRegular } from '@fluentui/react-icons';
|
|
@@ -1397,7 +1397,7 @@ var CardTicket = ({
|
|
|
1397
1397
|
{
|
|
1398
1398
|
size: "large",
|
|
1399
1399
|
appearance: "filled",
|
|
1400
|
-
style: { backgroundColor: departureItem?.provider?.serviceColor },
|
|
1400
|
+
style: { backgroundColor: departureItem?.provider?.serviceColor, padding: "0.5rem" },
|
|
1401
1401
|
iconPosition: "before",
|
|
1402
1402
|
shape: "rounded",
|
|
1403
1403
|
icon: /* @__PURE__ */ jsx(Icon, { icon: "fluent:info-24-regular" }),
|
|
@@ -1714,27 +1714,27 @@ var CardTicket = ({
|
|
|
1714
1714
|
var BackgroundTicketCard = (props) => /* @__PURE__ */ jsxs(
|
|
1715
1715
|
"svg",
|
|
1716
1716
|
{
|
|
1717
|
-
viewBox: "0 0
|
|
1717
|
+
viewBox: "0 0 1296 495",
|
|
1718
1718
|
fill: "none",
|
|
1719
1719
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1720
1720
|
preserveAspectRatio: "none",
|
|
1721
1721
|
...props,
|
|
1722
1722
|
children: [
|
|
1723
|
-
/* @__PURE__ */ jsx("g", { filter: "url(#
|
|
1723
|
+
/* @__PURE__ */ jsx("g", { filter: "url(#filter0_dd_8563_16188)", children: /* @__PURE__ */ jsx(
|
|
1724
1724
|
"path",
|
|
1725
1725
|
{
|
|
1726
|
-
d: "
|
|
1726
|
+
d: "M278.91 4C287.803 17.835 303.331 27 321 27C338.669 27 354.197 17.835 363.09 4H1272C1280.84 4 1288 11.1634 1288 20V467C1288 475.837 1280.84 483 1272 483H363.09C354.197 469.165 338.669 460 321 460C303.331 460 287.803 469.165 278.91 483H24C15.1635 483 8.00003 475.837 8 467V20C8 11.1634 15.1634 4 24 4H278.91ZM321.5 407.5C319.015 407.5 317 409.515 317 412V439C317 441.485 319.015 443.5 321.5 443.5C323.985 443.5 326 441.485 326 439V412C326 409.515 323.985 407.5 321.5 407.5ZM321.5 355.5C319.015 355.5 317 357.515 317 360V387C317 389.485 319.015 391.5 321.5 391.5C323.985 391.5 326 389.485 326 387V360C326 357.515 323.985 355.5 321.5 355.5ZM321.5 303.5C319.015 303.5 317 305.515 317 308V335C317 337.485 319.015 339.5 321.5 339.5C323.985 339.5 326 337.485 326 335V308C326 305.515 323.985 303.5 321.5 303.5ZM321.5 251.5C319.015 251.5 317 253.515 317 256V283C317 285.485 319.015 287.5 321.5 287.5C323.985 287.5 326 285.485 326 283V256C326 253.515 323.985 251.5 321.5 251.5ZM321.5 199.5C319.015 199.5 317 201.515 317 204V231C317 233.485 319.015 235.5 321.5 235.5C323.985 235.5 326 233.485 326 231V204C326 201.515 323.985 199.5 321.5 199.5ZM321.5 147.5C319.015 147.5 317 149.515 317 152V179C317 181.485 319.015 183.5 321.5 183.5C323.985 183.5 326 181.485 326 179V152C326 149.515 323.985 147.5 321.5 147.5ZM321.5 95.5C319.015 95.5 317 97.5147 317 100V127C317 129.485 319.015 131.5 321.5 131.5C323.985 131.5 326 129.485 326 127V100C326 97.5147 323.985 95.5 321.5 95.5ZM321.5 43.5C319.015 43.5 317 45.5147 317 48V75C317 77.4853 319.015 79.5 321.5 79.5C323.985 79.5 326 77.4853 326 75V48C326 45.5147 323.985 43.5 321.5 43.5Z",
|
|
1727
1727
|
fill: "white"
|
|
1728
1728
|
}
|
|
1729
1729
|
) }),
|
|
1730
1730
|
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
1731
1731
|
"filter",
|
|
1732
1732
|
{
|
|
1733
|
-
id: "
|
|
1733
|
+
id: "filter0_dd_8563_16188",
|
|
1734
1734
|
x: "0",
|
|
1735
1735
|
y: "0",
|
|
1736
|
-
width: "
|
|
1737
|
-
height: "
|
|
1736
|
+
width: "1296",
|
|
1737
|
+
height: "495",
|
|
1738
1738
|
filterUnits: "userSpaceOnUse",
|
|
1739
1739
|
colorInterpolationFilters: "sRGB",
|
|
1740
1740
|
children: [
|
|
@@ -1752,7 +1752,7 @@ var BackgroundTicketCard = (props) => /* @__PURE__ */ jsxs(
|
|
|
1752
1752
|
/* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "1" }),
|
|
1753
1753
|
/* @__PURE__ */ jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
|
|
1754
1754
|
/* @__PURE__ */ jsx("feColorMatrix", { type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" }),
|
|
1755
|
-
/* @__PURE__ */ jsx("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "
|
|
1755
|
+
/* @__PURE__ */ jsx("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "effect1_dropShadow_8563_16188" }),
|
|
1756
1756
|
/* @__PURE__ */ jsx(
|
|
1757
1757
|
"feColorMatrix",
|
|
1758
1758
|
{
|
|
@@ -1762,16 +1762,16 @@ var BackgroundTicketCard = (props) => /* @__PURE__ */ jsxs(
|
|
|
1762
1762
|
result: "hardAlpha"
|
|
1763
1763
|
}
|
|
1764
1764
|
),
|
|
1765
|
-
/* @__PURE__ */ jsx("feOffset", { dy: "
|
|
1766
|
-
/* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "
|
|
1765
|
+
/* @__PURE__ */ jsx("feOffset", { dy: "4" }),
|
|
1766
|
+
/* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "4" }),
|
|
1767
1767
|
/* @__PURE__ */ jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
|
|
1768
1768
|
/* @__PURE__ */ jsx("feColorMatrix", { type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0" }),
|
|
1769
1769
|
/* @__PURE__ */ jsx(
|
|
1770
1770
|
"feBlend",
|
|
1771
1771
|
{
|
|
1772
1772
|
mode: "normal",
|
|
1773
|
-
in2: "
|
|
1774
|
-
result: "
|
|
1773
|
+
in2: "effect1_dropShadow_8563_16188",
|
|
1774
|
+
result: "effect2_dropShadow_8563_16188"
|
|
1775
1775
|
}
|
|
1776
1776
|
),
|
|
1777
1777
|
/* @__PURE__ */ jsx(
|
|
@@ -1779,7 +1779,7 @@ var BackgroundTicketCard = (props) => /* @__PURE__ */ jsxs(
|
|
|
1779
1779
|
{
|
|
1780
1780
|
mode: "normal",
|
|
1781
1781
|
in: "SourceGraphic",
|
|
1782
|
-
in2: "
|
|
1782
|
+
in2: "effect2_dropShadow_8563_16188",
|
|
1783
1783
|
result: "shape"
|
|
1784
1784
|
}
|
|
1785
1785
|
)
|
|
@@ -1793,27 +1793,27 @@ var BackgroundTicketCard_default = BackgroundTicketCard;
|
|
|
1793
1793
|
var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxs(
|
|
1794
1794
|
"svg",
|
|
1795
1795
|
{
|
|
1796
|
-
viewBox: "
|
|
1796
|
+
viewBox: "4 0 479 1166",
|
|
1797
1797
|
fill: "none",
|
|
1798
1798
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1799
1799
|
preserveAspectRatio: "none",
|
|
1800
1800
|
...props,
|
|
1801
1801
|
children: [
|
|
1802
|
-
/* @__PURE__ */ jsx("g", { filter: "url(#
|
|
1802
|
+
/* @__PURE__ */ jsx("g", { filter: "url(#filter0_dd_8563_16188_vert)", children: /* @__PURE__ */ jsx(
|
|
1803
1803
|
"path",
|
|
1804
1804
|
{
|
|
1805
|
-
d: "
|
|
1805
|
+
d: "M4 148.91C17.835 157.803 27 173.331 27 191C27 208.669 17.835 224.197 4 233.09V1142C4 1150.84 11.1634 1158 20 1158H467C475.837 1158 483 1150.84 483 1142V233.09C469.165 224.197 460 208.669 460 191C460 173.331 469.165 157.803 483 148.91V24C483 15.1635 475.837 8.00003 467 8H20C11.1634 8 4 15.1634 4 24V148.91ZM407.5 191.5C407.5 189.015 409.515 187 412 187H439C441.485 187 443.5 189.015 443.5 191.5C443.5 193.985 441.485 196 439 196H412C409.515 196 407.5 193.985 407.5 191.5ZM355.5 191.5C355.5 189.015 357.515 187 360 187H387C389.485 187 391.5 189.015 391.5 191.5C391.5 193.985 389.485 196 387 196H360C357.515 196 355.5 193.985 355.5 191.5ZM303.5 191.5C303.5 189.015 305.515 187 308 187H335C337.485 187 339.5 189.015 339.5 191.5C339.5 193.985 337.485 196 335 196H308C305.515 196 303.5 193.985 303.5 191.5ZM251.5 191.5C251.5 189.015 253.515 187 256 187H283C285.485 187 287.5 189.015 287.5 191.5C287.5 193.985 285.485 196 283 196H256C253.515 196 251.5 193.985 251.5 191.5ZM199.5 191.5C199.5 189.015 201.515 187 204 187H231C233.485 187 235.5 189.015 235.5 191.5C235.5 193.985 233.485 196 231 196H204C201.515 196 199.5 193.985 199.5 191.5ZM147.5 191.5C147.5 189.015 149.515 187 152 187H179C181.485 187 183.5 189.015 183.5 191.5C183.5 193.985 181.485 196 179 196H152C149.515 196 147.5 193.985 147.5 191.5ZM95.5 191.5C95.5 189.015 97.5147 187 100 187H127C129.485 187 131.5 189.015 131.5 191.5C131.5 193.985 129.485 196 127 196H100C97.5147 196 95.5 193.985 95.5 191.5ZM43.5 191.5C43.5 189.015 45.5147 187 48 187H75C77.4853 187 79.5 189.015 79.5 191.5C79.5 193.985 77.4853 196 75 196H48C45.5147 196 43.5 193.985 43.5 191.5Z",
|
|
1806
1806
|
fill: "white"
|
|
1807
1807
|
}
|
|
1808
1808
|
) }),
|
|
1809
1809
|
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
|
|
1810
1810
|
"filter",
|
|
1811
1811
|
{
|
|
1812
|
-
id: "
|
|
1813
|
-
x: "
|
|
1814
|
-
y: "
|
|
1815
|
-
width: "
|
|
1816
|
-
height: "
|
|
1812
|
+
id: "filter0_dd_8563_16188_vert",
|
|
1813
|
+
x: "-10",
|
|
1814
|
+
y: "-10",
|
|
1815
|
+
width: "515",
|
|
1816
|
+
height: "1190",
|
|
1817
1817
|
filterUnits: "userSpaceOnUse",
|
|
1818
1818
|
colorInterpolationFilters: "sRGB",
|
|
1819
1819
|
children: [
|
|
@@ -1830,21 +1830,8 @@ var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxs(
|
|
|
1830
1830
|
/* @__PURE__ */ jsx("feOffset", {}),
|
|
1831
1831
|
/* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "1" }),
|
|
1832
1832
|
/* @__PURE__ */ jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
|
|
1833
|
-
/* @__PURE__ */ jsx(
|
|
1834
|
-
|
|
1835
|
-
{
|
|
1836
|
-
type: "matrix",
|
|
1837
|
-
values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0"
|
|
1838
|
-
}
|
|
1839
|
-
),
|
|
1840
|
-
/* @__PURE__ */ jsx(
|
|
1841
|
-
"feBlend",
|
|
1842
|
-
{
|
|
1843
|
-
mode: "normal",
|
|
1844
|
-
in2: "BackgroundImageFix",
|
|
1845
|
-
result: "effect1_dropShadow_156_32115"
|
|
1846
|
-
}
|
|
1847
|
-
),
|
|
1833
|
+
/* @__PURE__ */ jsx("feColorMatrix", { type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0" }),
|
|
1834
|
+
/* @__PURE__ */ jsx("feBlend", { mode: "normal", in2: "BackgroundImageFix", result: "effect1_dropShadow_8563_16188_vert" }),
|
|
1848
1835
|
/* @__PURE__ */ jsx(
|
|
1849
1836
|
"feColorMatrix",
|
|
1850
1837
|
{
|
|
@@ -1854,22 +1841,16 @@ var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxs(
|
|
|
1854
1841
|
result: "hardAlpha"
|
|
1855
1842
|
}
|
|
1856
1843
|
),
|
|
1857
|
-
/* @__PURE__ */ jsx("feOffset", { dy: "
|
|
1858
|
-
/* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "
|
|
1844
|
+
/* @__PURE__ */ jsx("feOffset", { dy: "4" }),
|
|
1845
|
+
/* @__PURE__ */ jsx("feGaussianBlur", { stdDeviation: "4" }),
|
|
1859
1846
|
/* @__PURE__ */ jsx("feComposite", { in2: "hardAlpha", operator: "out" }),
|
|
1860
|
-
/* @__PURE__ */ jsx(
|
|
1861
|
-
"feColorMatrix",
|
|
1862
|
-
{
|
|
1863
|
-
type: "matrix",
|
|
1864
|
-
values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0"
|
|
1865
|
-
}
|
|
1866
|
-
),
|
|
1847
|
+
/* @__PURE__ */ jsx("feColorMatrix", { type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0" }),
|
|
1867
1848
|
/* @__PURE__ */ jsx(
|
|
1868
1849
|
"feBlend",
|
|
1869
1850
|
{
|
|
1870
1851
|
mode: "normal",
|
|
1871
|
-
in2: "
|
|
1872
|
-
result: "
|
|
1852
|
+
in2: "effect1_dropShadow_8563_16188_vert",
|
|
1853
|
+
result: "effect2_dropShadow_8563_16188_vert"
|
|
1873
1854
|
}
|
|
1874
1855
|
),
|
|
1875
1856
|
/* @__PURE__ */ jsx(
|
|
@@ -1877,7 +1858,7 @@ var BackgroundTicketCardVertical = (props) => /* @__PURE__ */ jsxs(
|
|
|
1877
1858
|
{
|
|
1878
1859
|
mode: "normal",
|
|
1879
1860
|
in: "SourceGraphic",
|
|
1880
|
-
in2: "
|
|
1861
|
+
in2: "effect2_dropShadow_8563_16188_vert",
|
|
1881
1862
|
result: "shape"
|
|
1882
1863
|
}
|
|
1883
1864
|
)
|
|
@@ -2147,11 +2128,13 @@ var useStyles7 = makeStyles({
|
|
|
2147
2128
|
},
|
|
2148
2129
|
// Desktop: vertical column list
|
|
2149
2130
|
menuList: {
|
|
2131
|
+
height: "100%",
|
|
2150
2132
|
display: "flex",
|
|
2151
2133
|
flexDirection: "column",
|
|
2152
|
-
justifyContent: "space-
|
|
2134
|
+
justifyContent: "space-between",
|
|
2153
2135
|
// Tablet + Mobile: horizontal scroll row
|
|
2154
2136
|
[`@media (${BP_TABLET2})`]: {
|
|
2137
|
+
justifyContent: "space-around",
|
|
2155
2138
|
flexDirection: "row",
|
|
2156
2139
|
overflowX: "auto",
|
|
2157
2140
|
overflowY: "visible",
|
|
@@ -2162,7 +2145,8 @@ var useStyles7 = makeStyles({
|
|
|
2162
2145
|
scrollbarWidth: "thin"
|
|
2163
2146
|
},
|
|
2164
2147
|
[`@media (${BP_MOBILE2})`]: {
|
|
2165
|
-
scrollbarWidth: "none"
|
|
2148
|
+
scrollbarWidth: "none",
|
|
2149
|
+
justifyContent: "space-around"
|
|
2166
2150
|
}
|
|
2167
2151
|
},
|
|
2168
2152
|
// Desktop: full-width horizontal row (icon left, text right)
|
|
@@ -2171,7 +2155,7 @@ var useStyles7 = makeStyles({
|
|
|
2171
2155
|
flexDirection: "row",
|
|
2172
2156
|
alignItems: "center",
|
|
2173
2157
|
justifyContent: "flex-start",
|
|
2174
|
-
padding:
|
|
2158
|
+
padding: tokens.spacingHorizontalS,
|
|
2175
2159
|
borderRadius: tokens.borderRadiusMedium,
|
|
2176
2160
|
cursor: "pointer",
|
|
2177
2161
|
textAlign: "left",
|
|
@@ -2181,6 +2165,7 @@ var useStyles7 = makeStyles({
|
|
|
2181
2165
|
border: "none",
|
|
2182
2166
|
gap: "12px",
|
|
2183
2167
|
width: "100%",
|
|
2168
|
+
height: "100%",
|
|
2184
2169
|
"&:hover": {
|
|
2185
2170
|
backgroundColor: brandColors["140"]
|
|
2186
2171
|
},
|
|
@@ -2234,8 +2219,8 @@ var useStyles7 = makeStyles({
|
|
|
2234
2219
|
}
|
|
2235
2220
|
},
|
|
2236
2221
|
logo: {
|
|
2237
|
-
height: "
|
|
2238
|
-
width: "
|
|
2222
|
+
height: "35px",
|
|
2223
|
+
width: "35px",
|
|
2239
2224
|
flexShrink: 0,
|
|
2240
2225
|
objectFit: "contain",
|
|
2241
2226
|
[`@media (${BP_TABLET2})`]: {
|
|
@@ -2285,7 +2270,7 @@ var useStyles7 = makeStyles({
|
|
|
2285
2270
|
WebkitBoxOrient: "vertical",
|
|
2286
2271
|
overflow: "hidden",
|
|
2287
2272
|
textOverflow: "ellipsis",
|
|
2288
|
-
lineHeight: "
|
|
2273
|
+
lineHeight: "18px",
|
|
2289
2274
|
// Tablet: 1-line clamp, compact
|
|
2290
2275
|
[`@media (${BP_TABLET2})`]: {
|
|
2291
2276
|
fontSize: tokens.fontSizeBase100,
|
|
@@ -2346,82 +2331,71 @@ var CardServiceMenu = ({
|
|
|
2346
2331
|
const displayItems = isOverflow ? menuItems.slice(0, MAX_ITEMS - 1) : menuItems;
|
|
2347
2332
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2348
2333
|
/* @__PURE__ */ jsx(Card, { className: mergeClasses(styles.card, className), children: /* @__PURE__ */ jsxs("div", { className: styles.menuList, children: [
|
|
2349
|
-
isLoading ? Array.from({ length: skeletonCount }).map((_, index) => /* @__PURE__ */
|
|
2350
|
-
|
|
2351
|
-
|
|
2334
|
+
isLoading ? Array.from({ length: skeletonCount }).map((_, index) => /* @__PURE__ */ jsx(React.Fragment, { children: /* @__PURE__ */ jsxs(
|
|
2335
|
+
"div",
|
|
2336
|
+
{
|
|
2337
|
+
className: mergeClasses(
|
|
2338
|
+
styles.menuItem,
|
|
2339
|
+
styles.skeletonOverride
|
|
2340
|
+
),
|
|
2341
|
+
children: [
|
|
2342
|
+
/* @__PURE__ */ jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
|
|
2343
|
+
SkeletonItem,
|
|
2344
|
+
{
|
|
2345
|
+
className: styles.logo,
|
|
2346
|
+
style: { borderRadius: "50%" }
|
|
2347
|
+
}
|
|
2348
|
+
) }) }),
|
|
2349
|
+
/* @__PURE__ */ jsxs("div", { className: styles.textContent, children: [
|
|
2350
|
+
/* @__PURE__ */ jsx(Skeleton, { children: /* @__PURE__ */ jsx(
|
|
2351
|
+
SkeletonItem,
|
|
2352
|
+
{
|
|
2353
|
+
style: { width: "60%", height: "16px" }
|
|
2354
|
+
}
|
|
2355
|
+
) }),
|
|
2356
|
+
showDescriptions && /* @__PURE__ */ jsx(Skeleton, { className: styles.description, children: /* @__PURE__ */ jsx(
|
|
2357
|
+
SkeletonItem,
|
|
2358
|
+
{
|
|
2359
|
+
style: {
|
|
2360
|
+
width: "90%",
|
|
2361
|
+
height: "12px",
|
|
2362
|
+
marginTop: "4px"
|
|
2363
|
+
}
|
|
2364
|
+
}
|
|
2365
|
+
) })
|
|
2366
|
+
] })
|
|
2367
|
+
]
|
|
2368
|
+
}
|
|
2369
|
+
) }, `skeleton-${index}`)) : displayItems.map((item, index) => {
|
|
2370
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(
|
|
2371
|
+
Button,
|
|
2352
2372
|
{
|
|
2353
|
-
className:
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
),
|
|
2373
|
+
className: getMenuItemClass(item.id),
|
|
2374
|
+
onClick: () => onServiceClick?.(item.id),
|
|
2375
|
+
"aria-label": item.name,
|
|
2357
2376
|
children: [
|
|
2358
|
-
/* @__PURE__ */ jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsx(
|
|
2359
|
-
|
|
2377
|
+
/* @__PURE__ */ jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsx(
|
|
2378
|
+
"img",
|
|
2360
2379
|
{
|
|
2361
|
-
|
|
2362
|
-
|
|
2380
|
+
src: item.imageUrl,
|
|
2381
|
+
alt: item.name,
|
|
2382
|
+
className: styles.logo
|
|
2363
2383
|
}
|
|
2364
|
-
) })
|
|
2384
|
+
) }),
|
|
2365
2385
|
/* @__PURE__ */ jsxs("div", { className: styles.textContent, children: [
|
|
2366
|
-
/* @__PURE__ */ jsx(
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
style: { width: "60%", height: "16px" }
|
|
2370
|
-
}
|
|
2371
|
-
) }),
|
|
2372
|
-
showDescriptions && /* @__PURE__ */ jsx(Skeleton, { className: styles.description, children: /* @__PURE__ */ jsx(
|
|
2373
|
-
SkeletonItem,
|
|
2386
|
+
/* @__PURE__ */ jsx(Body1Strong, { children: item.name }),
|
|
2387
|
+
showDescriptions && /* @__PURE__ */ jsx(
|
|
2388
|
+
MenuItemDescription,
|
|
2374
2389
|
{
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
height: "12px",
|
|
2378
|
-
marginTop: "4px"
|
|
2379
|
-
}
|
|
2390
|
+
description: item.description,
|
|
2391
|
+
className: styles.description
|
|
2380
2392
|
}
|
|
2381
|
-
)
|
|
2393
|
+
)
|
|
2382
2394
|
] })
|
|
2383
2395
|
]
|
|
2384
|
-
}
|
|
2385
|
-
|
|
2386
|
-
|
|
2387
|
-
/* @__PURE__ */ jsx(Divider, { className: styles.dividerHorizontal }),
|
|
2388
|
-
/* @__PURE__ */ jsx(Divider, { vertical: true, className: styles.dividerVertical })
|
|
2389
|
-
] })
|
|
2390
|
-
] }, `skeleton-${index}`)) : displayItems.map((item, index) => {
|
|
2391
|
-
return /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
2392
|
-
/* @__PURE__ */ jsxs(
|
|
2393
|
-
Button,
|
|
2394
|
-
{
|
|
2395
|
-
className: getMenuItemClass(item.id),
|
|
2396
|
-
onClick: () => onServiceClick?.(item.id),
|
|
2397
|
-
"aria-label": item.name,
|
|
2398
|
-
children: [
|
|
2399
|
-
/* @__PURE__ */ jsx("div", { className: styles.logoWrapper, children: /* @__PURE__ */ jsx(
|
|
2400
|
-
"img",
|
|
2401
|
-
{
|
|
2402
|
-
src: item.imageUrl,
|
|
2403
|
-
alt: item.name,
|
|
2404
|
-
className: styles.logo
|
|
2405
|
-
}
|
|
2406
|
-
) }),
|
|
2407
|
-
/* @__PURE__ */ jsxs("div", { className: styles.textContent, children: [
|
|
2408
|
-
/* @__PURE__ */ jsx("span", { className: styles.label, children: item.name }),
|
|
2409
|
-
showDescriptions && /* @__PURE__ */ jsx(
|
|
2410
|
-
MenuItemDescription,
|
|
2411
|
-
{
|
|
2412
|
-
description: item.description,
|
|
2413
|
-
className: styles.description
|
|
2414
|
-
}
|
|
2415
|
-
)
|
|
2416
|
-
] })
|
|
2417
|
-
]
|
|
2418
|
-
}
|
|
2419
|
-
),
|
|
2420
|
-
(index < displayItems.length - 1 || isOverflow) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2421
|
-
/* @__PURE__ */ jsx(Divider, { className: styles.dividerHorizontal }),
|
|
2422
|
-
/* @__PURE__ */ jsx(Divider, { vertical: true, className: styles.dividerVertical })
|
|
2423
|
-
] })
|
|
2424
|
-
] }, item.id);
|
|
2396
|
+
},
|
|
2397
|
+
index
|
|
2398
|
+
) });
|
|
2425
2399
|
}),
|
|
2426
2400
|
!isLoading && isOverflow && /* @__PURE__ */ jsxs(
|
|
2427
2401
|
Button,
|
|
@@ -2439,7 +2413,7 @@ var CardServiceMenu = ({
|
|
|
2439
2413
|
}
|
|
2440
2414
|
) }) }),
|
|
2441
2415
|
/* @__PURE__ */ jsxs("div", { className: styles.textContent, children: [
|
|
2442
|
-
/* @__PURE__ */ jsx(
|
|
2416
|
+
/* @__PURE__ */ jsx(Body1Strong, { children: mergedLabels.otherLabel }),
|
|
2443
2417
|
showDescriptions && /* @__PURE__ */ jsx(
|
|
2444
2418
|
MenuItemDescription,
|
|
2445
2419
|
{
|
|
@@ -2619,6 +2593,1020 @@ DatePickerInput.displayName = "DatePickerInput";
|
|
|
2619
2593
|
var DatePickerInput_default = DatePickerInput;
|
|
2620
2594
|
|
|
2621
2595
|
// src/components/InputDynamic/InputDynamic.constants.ts
|
|
2596
|
+
var CONTROL_KEYS = [
|
|
2597
|
+
"Backspace",
|
|
2598
|
+
"Delete",
|
|
2599
|
+
"Enter",
|
|
2600
|
+
"Tab",
|
|
2601
|
+
"Escape",
|
|
2602
|
+
"ArrowLeft",
|
|
2603
|
+
"ArrowRight",
|
|
2604
|
+
"ArrowUp",
|
|
2605
|
+
"ArrowDown",
|
|
2606
|
+
"Home",
|
|
2607
|
+
"End",
|
|
2608
|
+
"Shift",
|
|
2609
|
+
"Control",
|
|
2610
|
+
"Alt",
|
|
2611
|
+
"Meta",
|
|
2612
|
+
"CapsLock",
|
|
2613
|
+
"F1",
|
|
2614
|
+
"F2",
|
|
2615
|
+
"F3",
|
|
2616
|
+
"F4",
|
|
2617
|
+
"F5",
|
|
2618
|
+
"F6",
|
|
2619
|
+
"F7",
|
|
2620
|
+
"F8",
|
|
2621
|
+
"F9",
|
|
2622
|
+
"F10",
|
|
2623
|
+
"F11",
|
|
2624
|
+
"F12"
|
|
2625
|
+
];
|
|
2626
|
+
var PHONE_MIN_DIGITS = 4;
|
|
2627
|
+
var PHONE_MAX_DIGITS = 15;
|
|
2628
|
+
var EMAIL_REGEX = /^[a-zA-Z0-9._%+\-]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$/i;
|
|
2629
|
+
var DIGITS_ONLY_REGEX = /^[0-9]+$/;
|
|
2630
|
+
var stripNonDigits = (value) => value.replace(/\D/g, "");
|
|
2631
|
+
var removeLeadingZeroAfterDialCode = (value, knownDialCode) => {
|
|
2632
|
+
if (!value) return value;
|
|
2633
|
+
const str = String(value);
|
|
2634
|
+
if (knownDialCode) {
|
|
2635
|
+
if (str.startsWith(knownDialCode) && str[knownDialCode.length] === "0") {
|
|
2636
|
+
return knownDialCode + str.slice(knownDialCode.length + 1);
|
|
2637
|
+
}
|
|
2638
|
+
return str;
|
|
2639
|
+
}
|
|
2640
|
+
const match = str.match(/^(\d{1,4})(0)(\d+)$/);
|
|
2641
|
+
if (match) return match[1] + match[3];
|
|
2642
|
+
return str;
|
|
2643
|
+
};
|
|
2644
|
+
var normalizeRawPhoneInput = (value) => {
|
|
2645
|
+
if (!value) return value;
|
|
2646
|
+
const trimmed = value.trim();
|
|
2647
|
+
if (trimmed.startsWith("+")) {
|
|
2648
|
+
const digits = stripNonDigits(trimmed.slice(1));
|
|
2649
|
+
return "+" + digits;
|
|
2650
|
+
}
|
|
2651
|
+
return stripNonDigits(trimmed);
|
|
2652
|
+
};
|
|
2653
|
+
var COUNTRY_DIAL_CODES = {
|
|
2654
|
+
AC: "247",
|
|
2655
|
+
AD: "376",
|
|
2656
|
+
AE: "971",
|
|
2657
|
+
AF: "93",
|
|
2658
|
+
AG: "1268",
|
|
2659
|
+
AI: "1264",
|
|
2660
|
+
AL: "355",
|
|
2661
|
+
AM: "374",
|
|
2662
|
+
AO: "244",
|
|
2663
|
+
AQ: "672",
|
|
2664
|
+
AR: "54",
|
|
2665
|
+
AS: "1684",
|
|
2666
|
+
AT: "43",
|
|
2667
|
+
AU: "61",
|
|
2668
|
+
AW: "297",
|
|
2669
|
+
AX: "358",
|
|
2670
|
+
AZ: "994",
|
|
2671
|
+
BA: "387",
|
|
2672
|
+
BB: "1246",
|
|
2673
|
+
BD: "880",
|
|
2674
|
+
BE: "32",
|
|
2675
|
+
BF: "226",
|
|
2676
|
+
BG: "359",
|
|
2677
|
+
BH: "973",
|
|
2678
|
+
BI: "257",
|
|
2679
|
+
BJ: "229",
|
|
2680
|
+
BL: "590",
|
|
2681
|
+
BM: "1441",
|
|
2682
|
+
BN: "673",
|
|
2683
|
+
BO: "591",
|
|
2684
|
+
BQ: "599",
|
|
2685
|
+
BR: "55",
|
|
2686
|
+
BS: "1242",
|
|
2687
|
+
BT: "975",
|
|
2688
|
+
BW: "267",
|
|
2689
|
+
BY: "375",
|
|
2690
|
+
BZ: "501",
|
|
2691
|
+
CA: "1",
|
|
2692
|
+
CC: "61",
|
|
2693
|
+
CD: "243",
|
|
2694
|
+
CF: "236",
|
|
2695
|
+
CG: "242",
|
|
2696
|
+
CH: "41",
|
|
2697
|
+
CI: "225",
|
|
2698
|
+
CK: "682",
|
|
2699
|
+
CL: "56",
|
|
2700
|
+
CM: "237",
|
|
2701
|
+
CN: "86",
|
|
2702
|
+
CO: "57",
|
|
2703
|
+
CR: "506",
|
|
2704
|
+
CU: "53",
|
|
2705
|
+
CV: "238",
|
|
2706
|
+
CW: "599",
|
|
2707
|
+
CX: "61",
|
|
2708
|
+
CY: "357",
|
|
2709
|
+
CZ: "420",
|
|
2710
|
+
DE: "49",
|
|
2711
|
+
DJ: "253",
|
|
2712
|
+
DK: "45",
|
|
2713
|
+
DM: "1767",
|
|
2714
|
+
DO: "1809",
|
|
2715
|
+
DZ: "213",
|
|
2716
|
+
EC: "593",
|
|
2717
|
+
EE: "372",
|
|
2718
|
+
EG: "20",
|
|
2719
|
+
EH: "212",
|
|
2720
|
+
ER: "291",
|
|
2721
|
+
ES: "34",
|
|
2722
|
+
ET: "251",
|
|
2723
|
+
FI: "358",
|
|
2724
|
+
FJ: "679",
|
|
2725
|
+
FK: "500",
|
|
2726
|
+
FM: "691",
|
|
2727
|
+
FO: "298",
|
|
2728
|
+
FR: "33",
|
|
2729
|
+
GA: "241",
|
|
2730
|
+
GB: "44",
|
|
2731
|
+
GD: "1473",
|
|
2732
|
+
GE: "995",
|
|
2733
|
+
GF: "594",
|
|
2734
|
+
GG: "44",
|
|
2735
|
+
GH: "233",
|
|
2736
|
+
GI: "350",
|
|
2737
|
+
GL: "299",
|
|
2738
|
+
GM: "220",
|
|
2739
|
+
GN: "224",
|
|
2740
|
+
GP: "590",
|
|
2741
|
+
GQ: "240",
|
|
2742
|
+
GR: "30",
|
|
2743
|
+
GS: "500",
|
|
2744
|
+
GT: "502",
|
|
2745
|
+
GU: "1671",
|
|
2746
|
+
GW: "245",
|
|
2747
|
+
GY: "592",
|
|
2748
|
+
HK: "852",
|
|
2749
|
+
HM: "672",
|
|
2750
|
+
HN: "504",
|
|
2751
|
+
HR: "385",
|
|
2752
|
+
HT: "509",
|
|
2753
|
+
HU: "36",
|
|
2754
|
+
ID: "62",
|
|
2755
|
+
IE: "353",
|
|
2756
|
+
IL: "972",
|
|
2757
|
+
IM: "44",
|
|
2758
|
+
IN: "91",
|
|
2759
|
+
IO: "246",
|
|
2760
|
+
IQ: "964",
|
|
2761
|
+
IR: "98",
|
|
2762
|
+
IS: "354",
|
|
2763
|
+
IT: "39",
|
|
2764
|
+
JE: "44",
|
|
2765
|
+
JM: "1876",
|
|
2766
|
+
JO: "962",
|
|
2767
|
+
JP: "81",
|
|
2768
|
+
KE: "254",
|
|
2769
|
+
KG: "996",
|
|
2770
|
+
KH: "855",
|
|
2771
|
+
KI: "686",
|
|
2772
|
+
KM: "269",
|
|
2773
|
+
KN: "1869",
|
|
2774
|
+
KP: "850",
|
|
2775
|
+
KR: "82",
|
|
2776
|
+
KW: "965",
|
|
2777
|
+
KY: "1345",
|
|
2778
|
+
KZ: "7",
|
|
2779
|
+
LA: "856",
|
|
2780
|
+
LB: "961",
|
|
2781
|
+
LC: "1758",
|
|
2782
|
+
LI: "423",
|
|
2783
|
+
LK: "94",
|
|
2784
|
+
LR: "231",
|
|
2785
|
+
LS: "266",
|
|
2786
|
+
LT: "370",
|
|
2787
|
+
LU: "352",
|
|
2788
|
+
LV: "371",
|
|
2789
|
+
LY: "218",
|
|
2790
|
+
MA: "212",
|
|
2791
|
+
MC: "377",
|
|
2792
|
+
MD: "373",
|
|
2793
|
+
ME: "382",
|
|
2794
|
+
MF: "590",
|
|
2795
|
+
MG: "261",
|
|
2796
|
+
MH: "692",
|
|
2797
|
+
MK: "389",
|
|
2798
|
+
ML: "223",
|
|
2799
|
+
MM: "95",
|
|
2800
|
+
MN: "976",
|
|
2801
|
+
MO: "853",
|
|
2802
|
+
MP: "1670",
|
|
2803
|
+
MQ: "596",
|
|
2804
|
+
MR: "222",
|
|
2805
|
+
MS: "1664",
|
|
2806
|
+
MT: "356",
|
|
2807
|
+
MU: "230",
|
|
2808
|
+
MV: "960",
|
|
2809
|
+
MW: "265",
|
|
2810
|
+
MX: "52",
|
|
2811
|
+
MY: "60",
|
|
2812
|
+
MZ: "258",
|
|
2813
|
+
NA: "264",
|
|
2814
|
+
NC: "687",
|
|
2815
|
+
NE: "227",
|
|
2816
|
+
NF: "672",
|
|
2817
|
+
NG: "234",
|
|
2818
|
+
NI: "505",
|
|
2819
|
+
NL: "31",
|
|
2820
|
+
NO: "47",
|
|
2821
|
+
NP: "977",
|
|
2822
|
+
NR: "674",
|
|
2823
|
+
NU: "683",
|
|
2824
|
+
NZ: "64",
|
|
2825
|
+
OM: "968",
|
|
2826
|
+
PA: "507",
|
|
2827
|
+
PE: "51",
|
|
2828
|
+
PF: "689",
|
|
2829
|
+
PG: "675",
|
|
2830
|
+
PH: "63",
|
|
2831
|
+
PK: "92",
|
|
2832
|
+
PL: "48",
|
|
2833
|
+
PM: "508",
|
|
2834
|
+
PR: "1787",
|
|
2835
|
+
PS: "970",
|
|
2836
|
+
PT: "351",
|
|
2837
|
+
PW: "680",
|
|
2838
|
+
PY: "595",
|
|
2839
|
+
QA: "974",
|
|
2840
|
+
RE: "262",
|
|
2841
|
+
RO: "40",
|
|
2842
|
+
RS: "381",
|
|
2843
|
+
RU: "7",
|
|
2844
|
+
RW: "250",
|
|
2845
|
+
SA: "966",
|
|
2846
|
+
SB: "677",
|
|
2847
|
+
SC: "248",
|
|
2848
|
+
SD: "249",
|
|
2849
|
+
SE: "46",
|
|
2850
|
+
SG: "65",
|
|
2851
|
+
SH: "290",
|
|
2852
|
+
SI: "386",
|
|
2853
|
+
SJ: "47",
|
|
2854
|
+
SK: "421",
|
|
2855
|
+
SL: "232",
|
|
2856
|
+
SM: "378",
|
|
2857
|
+
SN: "221",
|
|
2858
|
+
SO: "252",
|
|
2859
|
+
SR: "597",
|
|
2860
|
+
SS: "211",
|
|
2861
|
+
ST: "239",
|
|
2862
|
+
SV: "503",
|
|
2863
|
+
SX: "1721",
|
|
2864
|
+
SY: "963",
|
|
2865
|
+
SZ: "268",
|
|
2866
|
+
TC: "1649",
|
|
2867
|
+
TD: "235",
|
|
2868
|
+
TF: "262",
|
|
2869
|
+
TG: "228",
|
|
2870
|
+
TH: "66",
|
|
2871
|
+
TJ: "992",
|
|
2872
|
+
TK: "690",
|
|
2873
|
+
TL: "670",
|
|
2874
|
+
TM: "993",
|
|
2875
|
+
TN: "216",
|
|
2876
|
+
TO: "676",
|
|
2877
|
+
TR: "90",
|
|
2878
|
+
TT: "1868",
|
|
2879
|
+
TV: "688",
|
|
2880
|
+
TW: "886",
|
|
2881
|
+
TZ: "255",
|
|
2882
|
+
UA: "380",
|
|
2883
|
+
UG: "256",
|
|
2884
|
+
US: "1",
|
|
2885
|
+
UY: "598",
|
|
2886
|
+
UZ: "998",
|
|
2887
|
+
VA: "379",
|
|
2888
|
+
VC: "1784",
|
|
2889
|
+
VE: "58",
|
|
2890
|
+
VG: "1284",
|
|
2891
|
+
VI: "1340",
|
|
2892
|
+
VN: "84",
|
|
2893
|
+
VU: "678",
|
|
2894
|
+
WF: "681",
|
|
2895
|
+
WS: "685",
|
|
2896
|
+
YE: "967",
|
|
2897
|
+
YT: "262",
|
|
2898
|
+
ZA: "27",
|
|
2899
|
+
ZM: "260",
|
|
2900
|
+
ZW: "263"
|
|
2901
|
+
};
|
|
2902
|
+
var getDialCode = (isoCode) => {
|
|
2903
|
+
if (!isoCode) return null;
|
|
2904
|
+
return COUNTRY_DIAL_CODES[isoCode.toUpperCase()] ?? null;
|
|
2905
|
+
};
|
|
2906
|
+
var LOCAL_TRUNK_TO_DIAL = [
|
|
2907
|
+
{ prefix: "08", dialCode: "62" }
|
|
2908
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
2909
|
+
// ASIA
|
|
2910
|
+
// ═══════════════════════════════════════════════════════════════════════
|
|
2911
|
+
// ── Indonesia (+62) ────────────────────────────────────────────────────
|
|
2912
|
+
// Telkomsel
|
|
2913
|
+
// { prefix: '0811', dialCode: '62' }, { prefix: '0812', dialCode: '62' },
|
|
2914
|
+
// { prefix: '0813', dialCode: '62' }, { prefix: '0821', dialCode: '62' },
|
|
2915
|
+
// { prefix: '0822', dialCode: '62' }, { prefix: '0823', dialCode: '62' },
|
|
2916
|
+
// { prefix: '0851', dialCode: '62' }, { prefix: '0852', dialCode: '62' },
|
|
2917
|
+
// { prefix: '0853', dialCode: '62' },
|
|
2918
|
+
// // Indosat Ooredoo
|
|
2919
|
+
// { prefix: '0814', dialCode: '62' }, { prefix: '0815', dialCode: '62' },
|
|
2920
|
+
// { prefix: '0816', dialCode: '62' }, { prefix: '0855', dialCode: '62' },
|
|
2921
|
+
// { prefix: '0856', dialCode: '62' }, { prefix: '0857', dialCode: '62' },
|
|
2922
|
+
// { prefix: '0858', dialCode: '62' },
|
|
2923
|
+
// // XL Axiata
|
|
2924
|
+
// { prefix: '0817', dialCode: '62' }, { prefix: '0818', dialCode: '62' },
|
|
2925
|
+
// { prefix: '0819', dialCode: '62' }, { prefix: '0859', dialCode: '62' },
|
|
2926
|
+
// { prefix: '0877', dialCode: '62' }, { prefix: '0878', dialCode: '62' },
|
|
2927
|
+
// // Axis
|
|
2928
|
+
// { prefix: '0831', dialCode: '62' }, { prefix: '0832', dialCode: '62' },
|
|
2929
|
+
// { prefix: '0833', dialCode: '62' }, { prefix: '0838', dialCode: '62' },
|
|
2930
|
+
// // Tri (3)
|
|
2931
|
+
// { prefix: '0895', dialCode: '62' }, { prefix: '0896', dialCode: '62' },
|
|
2932
|
+
// { prefix: '0897', dialCode: '62' }, { prefix: '0898', dialCode: '62' },
|
|
2933
|
+
// { prefix: '0899', dialCode: '62' },
|
|
2934
|
+
// // Smartfren
|
|
2935
|
+
// { prefix: '0881', dialCode: '62' }, { prefix: '0882', dialCode: '62' },
|
|
2936
|
+
// { prefix: '0883', dialCode: '62' }, { prefix: '0884', dialCode: '62' },
|
|
2937
|
+
// { prefix: '0885', dialCode: '62' }, { prefix: '0886', dialCode: '62' },
|
|
2938
|
+
// { prefix: '0887', dialCode: '62' }, { prefix: '0888', dialCode: '62' },
|
|
2939
|
+
// { prefix: '0889', dialCode: '62' },
|
|
2940
|
+
// // Byru / Hinet / other
|
|
2941
|
+
// { prefix: '0891', dialCode: '62' }, { prefix: '0892', dialCode: '62' },
|
|
2942
|
+
// { prefix: '0893', dialCode: '62' }, { prefix: '0894', dialCode: '62' },
|
|
2943
|
+
// // Fixed / PSTN area codes (trunk 0 + area code)
|
|
2944
|
+
// { prefix: '021', dialCode: '62' }, // Jakarta
|
|
2945
|
+
// { prefix: '022', dialCode: '62' }, // Bandung
|
|
2946
|
+
// { prefix: '024', dialCode: '62' }, // Semarang
|
|
2947
|
+
// { prefix: '031', dialCode: '62' }, // Surabaya
|
|
2948
|
+
// // ── Malaysia (+60) ─────────────────────────────────────────────────────
|
|
2949
|
+
// // Must appear before UK 2-char "01x" entries
|
|
2950
|
+
// { prefix: '010', dialCode: '60' }, // Maxis (010x)
|
|
2951
|
+
// { prefix: '011', dialCode: '60' }, // Celcom, Maxis, Digi, U Mobile
|
|
2952
|
+
// { prefix: '012', dialCode: '60' }, // Maxis
|
|
2953
|
+
// { prefix: '013', dialCode: '60' }, // Celcom
|
|
2954
|
+
// { prefix: '014', dialCode: '60' }, // Digi / U Mobile
|
|
2955
|
+
// { prefix: '015', dialCode: '60' }, // U Mobile
|
|
2956
|
+
// { prefix: '016', dialCode: '60' }, // Maxis
|
|
2957
|
+
// { prefix: '017', dialCode: '60' }, // Celcom
|
|
2958
|
+
// { prefix: '018', dialCode: '60' }, // Digi
|
|
2959
|
+
// { prefix: '019', dialCode: '60' }, // Maxis
|
|
2960
|
+
// // Fixed
|
|
2961
|
+
// { prefix: '03', dialCode: '60' }, // Kuala Lumpur / Selangor
|
|
2962
|
+
// // ── Japan (+81) ────────────────────────────────────────────────────────
|
|
2963
|
+
// { prefix: '070', dialCode: '81' }, // MVNO / data SIM
|
|
2964
|
+
// { prefix: '080', dialCode: '81' }, // Softbank / au / NTT Docomo
|
|
2965
|
+
// { prefix: '090', dialCode: '81' }, // NTT Docomo / au / Softbank
|
|
2966
|
+
// // ── China (+86) ────────────────────────────────────────────────────────
|
|
2967
|
+
// // China Mobile
|
|
2968
|
+
// { prefix: '0134', dialCode: '86' }, { prefix: '0135', dialCode: '86' },
|
|
2969
|
+
// { prefix: '0136', dialCode: '86' }, { prefix: '0137', dialCode: '86' },
|
|
2970
|
+
// { prefix: '0138', dialCode: '86' }, { prefix: '0139', dialCode: '86' },
|
|
2971
|
+
// { prefix: '0147', dialCode: '86' }, { prefix: '0150', dialCode: '86' },
|
|
2972
|
+
// { prefix: '0151', dialCode: '86' }, { prefix: '0152', dialCode: '86' },
|
|
2973
|
+
// { prefix: '0157', dialCode: '86' }, { prefix: '0158', dialCode: '86' },
|
|
2974
|
+
// { prefix: '0159', dialCode: '86' }, { prefix: '0165', dialCode: '86' },
|
|
2975
|
+
// { prefix: '0172', dialCode: '86' }, { prefix: '0178', dialCode: '86' },
|
|
2976
|
+
// { prefix: '0182', dialCode: '86' }, { prefix: '0183', dialCode: '86' },
|
|
2977
|
+
// { prefix: '0184', dialCode: '86' }, { prefix: '0187', dialCode: '86' },
|
|
2978
|
+
// { prefix: '0188', dialCode: '86' },
|
|
2979
|
+
// // China Unicom
|
|
2980
|
+
// { prefix: '0130', dialCode: '86' }, { prefix: '0131', dialCode: '86' },
|
|
2981
|
+
// { prefix: '0132', dialCode: '86' }, { prefix: '0145', dialCode: '86' },
|
|
2982
|
+
// { prefix: '0155', dialCode: '86' }, { prefix: '0156', dialCode: '86' },
|
|
2983
|
+
// { prefix: '0166', dialCode: '86' }, { prefix: '0167', dialCode: '86' },
|
|
2984
|
+
// { prefix: '0175', dialCode: '86' }, { prefix: '0176', dialCode: '86' },
|
|
2985
|
+
// { prefix: '0185', dialCode: '86' }, { prefix: '0186', dialCode: '86' },
|
|
2986
|
+
// // China Telecom
|
|
2987
|
+
// { prefix: '0133', dialCode: '86' }, { prefix: '0149', dialCode: '86' },
|
|
2988
|
+
// { prefix: '0153', dialCode: '86' }, { prefix: '0162', dialCode: '86' },
|
|
2989
|
+
// { prefix: '0173', dialCode: '86' }, { prefix: '0174', dialCode: '86' },
|
|
2990
|
+
// { prefix: '0177', dialCode: '86' }, { prefix: '0180', dialCode: '86' },
|
|
2991
|
+
// { prefix: '0181', dialCode: '86' }, { prefix: '0189', dialCode: '86' },
|
|
2992
|
+
// // Note: China uses 0 trunk then 11-digit mobile (0 + 10-digit); match on 4-char prefix
|
|
2993
|
+
// // ── India (+91) ────────────────────────────────────────────────────────
|
|
2994
|
+
// { prefix: '060', dialCode: '91' }, { prefix: '061', dialCode: '91' },
|
|
2995
|
+
// { prefix: '062', dialCode: '91' }, { prefix: '063', dialCode: '91' },
|
|
2996
|
+
// { prefix: '064', dialCode: '91' }, { prefix: '065', dialCode: '91' },
|
|
2997
|
+
// { prefix: '066', dialCode: '91' }, { prefix: '067', dialCode: '91' },
|
|
2998
|
+
// { prefix: '068', dialCode: '91' }, { prefix: '069', dialCode: '91' },
|
|
2999
|
+
// { prefix: '070', dialCode: '91' }, { prefix: '071', dialCode: '91' },
|
|
3000
|
+
// { prefix: '072', dialCode: '91' }, { prefix: '073', dialCode: '91' },
|
|
3001
|
+
// { prefix: '074', dialCode: '91' }, { prefix: '075', dialCode: '91' },
|
|
3002
|
+
// { prefix: '076', dialCode: '91' }, { prefix: '077', dialCode: '91' },
|
|
3003
|
+
// { prefix: '078', dialCode: '91' }, { prefix: '079', dialCode: '91' },
|
|
3004
|
+
// { prefix: '080', dialCode: '91' }, { prefix: '081', dialCode: '91' },
|
|
3005
|
+
// { prefix: '082', dialCode: '91' }, { prefix: '083', dialCode: '91' },
|
|
3006
|
+
// { prefix: '084', dialCode: '91' }, { prefix: '085', dialCode: '91' },
|
|
3007
|
+
// { prefix: '086', dialCode: '91' }, { prefix: '087', dialCode: '91' },
|
|
3008
|
+
// { prefix: '088', dialCode: '91' }, { prefix: '089', dialCode: '91' },
|
|
3009
|
+
// { prefix: '090', dialCode: '91' }, { prefix: '091', dialCode: '91' },
|
|
3010
|
+
// { prefix: '092', dialCode: '91' }, { prefix: '093', dialCode: '91' },
|
|
3011
|
+
// { prefix: '094', dialCode: '91' }, { prefix: '095', dialCode: '91' },
|
|
3012
|
+
// { prefix: '096', dialCode: '91' }, { prefix: '097', dialCode: '91' },
|
|
3013
|
+
// { prefix: '098', dialCode: '91' }, { prefix: '099', dialCode: '91' },
|
|
3014
|
+
// // ── Pakistan (+92) ─────────────────────────────────────────────────────
|
|
3015
|
+
// { prefix: '0300', dialCode: '92' }, { prefix: '0301', dialCode: '92' },
|
|
3016
|
+
// { prefix: '0302', dialCode: '92' }, { prefix: '0303', dialCode: '92' },
|
|
3017
|
+
// { prefix: '0304', dialCode: '92' }, { prefix: '0305', dialCode: '92' },
|
|
3018
|
+
// { prefix: '0306', dialCode: '92' }, { prefix: '0307', dialCode: '92' },
|
|
3019
|
+
// { prefix: '0308', dialCode: '92' }, { prefix: '0309', dialCode: '92' },
|
|
3020
|
+
// { prefix: '0310', dialCode: '92' }, { prefix: '0311', dialCode: '92' },
|
|
3021
|
+
// { prefix: '0312', dialCode: '92' }, { prefix: '0313', dialCode: '92' },
|
|
3022
|
+
// { prefix: '0314', dialCode: '92' }, { prefix: '0315', dialCode: '92' },
|
|
3023
|
+
// { prefix: '0316', dialCode: '92' }, { prefix: '0317', dialCode: '92' },
|
|
3024
|
+
// { prefix: '0318', dialCode: '92' }, { prefix: '0319', dialCode: '92' },
|
|
3025
|
+
// { prefix: '0320', dialCode: '92' }, { prefix: '0321', dialCode: '92' },
|
|
3026
|
+
// { prefix: '0322', dialCode: '92' }, { prefix: '0323', dialCode: '92' },
|
|
3027
|
+
// { prefix: '0324', dialCode: '92' }, { prefix: '0325', dialCode: '92' },
|
|
3028
|
+
// { prefix: '0326', dialCode: '92' }, { prefix: '0327', dialCode: '92' },
|
|
3029
|
+
// { prefix: '0328', dialCode: '92' }, { prefix: '0329', dialCode: '92' },
|
|
3030
|
+
// { prefix: '0330', dialCode: '92' }, { prefix: '0331', dialCode: '92' },
|
|
3031
|
+
// { prefix: '0332', dialCode: '92' }, { prefix: '0333', dialCode: '92' },
|
|
3032
|
+
// { prefix: '0334', dialCode: '92' }, { prefix: '0335', dialCode: '92' },
|
|
3033
|
+
// { prefix: '0336', dialCode: '92' }, { prefix: '0337', dialCode: '92' },
|
|
3034
|
+
// { prefix: '0338', dialCode: '92' }, { prefix: '0339', dialCode: '92' },
|
|
3035
|
+
// { prefix: '0340', dialCode: '92' }, { prefix: '0341', dialCode: '92' },
|
|
3036
|
+
// { prefix: '0342', dialCode: '92' }, { prefix: '0343', dialCode: '92' },
|
|
3037
|
+
// { prefix: '0344', dialCode: '92' }, { prefix: '0345', dialCode: '92' },
|
|
3038
|
+
// { prefix: '0346', dialCode: '92' }, { prefix: '0347', dialCode: '92' },
|
|
3039
|
+
// { prefix: '0348', dialCode: '92' }, { prefix: '0349', dialCode: '92' },
|
|
3040
|
+
// // ── Bangladesh (+880) ──────────────────────────────────────────────────
|
|
3041
|
+
// { prefix: '01311', dialCode: '880' }, { prefix: '01312', dialCode: '880' },
|
|
3042
|
+
// { prefix: '01313', dialCode: '880' }, { prefix: '01314', dialCode: '880' },
|
|
3043
|
+
// { prefix: '01315', dialCode: '880' }, { prefix: '01316', dialCode: '880' },
|
|
3044
|
+
// { prefix: '01317', dialCode: '880' }, { prefix: '01318', dialCode: '880' },
|
|
3045
|
+
// { prefix: '01319', dialCode: '880' }, // Teletalk
|
|
3046
|
+
// { prefix: '01400', dialCode: '880' }, { prefix: '01401', dialCode: '880' },
|
|
3047
|
+
// { prefix: '01402', dialCode: '880' }, { prefix: '01403', dialCode: '880' },
|
|
3048
|
+
// { prefix: '01404', dialCode: '880' }, { prefix: '01405', dialCode: '880' }, // Robi
|
|
3049
|
+
// { prefix: '01500', dialCode: '880' }, { prefix: '01501', dialCode: '880' },
|
|
3050
|
+
// { prefix: '01502', dialCode: '880' }, { prefix: '01503', dialCode: '880' },
|
|
3051
|
+
// { prefix: '01504', dialCode: '880' }, { prefix: '01505', dialCode: '880' }, // Banglalink
|
|
3052
|
+
// { prefix: '01600', dialCode: '880' }, { prefix: '01601', dialCode: '880' },
|
|
3053
|
+
// { prefix: '01602', dialCode: '880' }, { prefix: '01603', dialCode: '880' }, // Robi
|
|
3054
|
+
// { prefix: '01700', dialCode: '880' }, { prefix: '01701', dialCode: '880' },
|
|
3055
|
+
// { prefix: '01702', dialCode: '880' }, { prefix: '01703', dialCode: '880' }, // Grameenphone
|
|
3056
|
+
// { prefix: '01711', dialCode: '880' }, { prefix: '01712', dialCode: '880' },
|
|
3057
|
+
// { prefix: '01713', dialCode: '880' }, { prefix: '01714', dialCode: '880' },
|
|
3058
|
+
// { prefix: '01715', dialCode: '880' }, { prefix: '01716', dialCode: '880' },
|
|
3059
|
+
// { prefix: '01717', dialCode: '880' }, { prefix: '01718', dialCode: '880' },
|
|
3060
|
+
// { prefix: '01719', dialCode: '880' }, // Grameenphone
|
|
3061
|
+
// { prefix: '01811', dialCode: '880' }, { prefix: '01812', dialCode: '880' },
|
|
3062
|
+
// { prefix: '01813', dialCode: '880' }, { prefix: '01814', dialCode: '880' },
|
|
3063
|
+
// { prefix: '01815', dialCode: '880' }, { prefix: '01816', dialCode: '880' },
|
|
3064
|
+
// { prefix: '01817', dialCode: '880' }, { prefix: '01818', dialCode: '880' },
|
|
3065
|
+
// { prefix: '01819', dialCode: '880' }, // Robi
|
|
3066
|
+
// { prefix: '01911', dialCode: '880' }, { prefix: '01912', dialCode: '880' },
|
|
3067
|
+
// { prefix: '01913', dialCode: '880' }, { prefix: '01914', dialCode: '880' },
|
|
3068
|
+
// { prefix: '01915', dialCode: '880' }, { prefix: '01916', dialCode: '880' },
|
|
3069
|
+
// { prefix: '01917', dialCode: '880' }, { prefix: '01918', dialCode: '880' },
|
|
3070
|
+
// { prefix: '01919', dialCode: '880' }, // Banglalink
|
|
3071
|
+
// // ── Philippines (+63) ──────────────────────────────────────────────────
|
|
3072
|
+
// // Globe / TM
|
|
3073
|
+
// { prefix: '0817', dialCode: '63' }, { prefix: '0905', dialCode: '63' },
|
|
3074
|
+
// { prefix: '0906', dialCode: '63' }, { prefix: '0907', dialCode: '63' },
|
|
3075
|
+
// { prefix: '0908', dialCode: '63' }, { prefix: '0909', dialCode: '63' },
|
|
3076
|
+
// { prefix: '0910', dialCode: '63' }, { prefix: '0915', dialCode: '63' },
|
|
3077
|
+
// { prefix: '0916', dialCode: '63' }, { prefix: '0917', dialCode: '63' },
|
|
3078
|
+
// { prefix: '0926', dialCode: '63' }, { prefix: '0927', dialCode: '63' },
|
|
3079
|
+
// { prefix: '0935', dialCode: '63' }, { prefix: '0936', dialCode: '63' },
|
|
3080
|
+
// { prefix: '0937', dialCode: '63' }, { prefix: '0945', dialCode: '63' },
|
|
3081
|
+
// { prefix: '0953', dialCode: '63' }, { prefix: '0954', dialCode: '63' },
|
|
3082
|
+
// { prefix: '0955', dialCode: '63' }, { prefix: '0956', dialCode: '63' },
|
|
3083
|
+
// { prefix: '0965', dialCode: '63' }, { prefix: '0966', dialCode: '63' },
|
|
3084
|
+
// { prefix: '0967', dialCode: '63' }, { prefix: '0975', dialCode: '63' },
|
|
3085
|
+
// { prefix: '0976', dialCode: '63' }, { prefix: '0977', dialCode: '63' },
|
|
3086
|
+
// { prefix: '0978', dialCode: '63' }, { prefix: '0979', dialCode: '63' },
|
|
3087
|
+
// { prefix: '0995', dialCode: '63' }, { prefix: '0996', dialCode: '63' },
|
|
3088
|
+
// { prefix: '0997', dialCode: '63' },
|
|
3089
|
+
// // SMART / TNT
|
|
3090
|
+
// { prefix: '0813', dialCode: '63' }, { prefix: '0908', dialCode: '63' },
|
|
3091
|
+
// { prefix: '0911', dialCode: '63' }, { prefix: '0912', dialCode: '63' },
|
|
3092
|
+
// { prefix: '0913', dialCode: '63' }, { prefix: '0914', dialCode: '63' },
|
|
3093
|
+
// { prefix: '0918', dialCode: '63' }, { prefix: '0919', dialCode: '63' },
|
|
3094
|
+
// { prefix: '0920', dialCode: '63' }, { prefix: '0921', dialCode: '63' },
|
|
3095
|
+
// { prefix: '0928', dialCode: '63' }, { prefix: '0929', dialCode: '63' },
|
|
3096
|
+
// { prefix: '0930', dialCode: '63' }, { prefix: '0938', dialCode: '63' },
|
|
3097
|
+
// { prefix: '0939', dialCode: '63' }, { prefix: '0940', dialCode: '63' },
|
|
3098
|
+
// { prefix: '0946', dialCode: '63' }, { prefix: '0947', dialCode: '63' },
|
|
3099
|
+
// { prefix: '0948', dialCode: '63' }, { prefix: '0949', dialCode: '63' },
|
|
3100
|
+
// { prefix: '0950', dialCode: '63' }, { prefix: '0989', dialCode: '63' },
|
|
3101
|
+
// { prefix: '0998', dialCode: '63' }, { prefix: '0999', dialCode: '63' },
|
|
3102
|
+
// // DITO
|
|
3103
|
+
// { prefix: '0895', dialCode: '63' }, { prefix: '0896', dialCode: '63' },
|
|
3104
|
+
// { prefix: '0897', dialCode: '63' }, { prefix: '0898', dialCode: '63' },
|
|
3105
|
+
// { prefix: '0991', dialCode: '63' }, { prefix: '0992', dialCode: '63' },
|
|
3106
|
+
// { prefix: '0993', dialCode: '63' }, { prefix: '0994', dialCode: '63' },
|
|
3107
|
+
// // ── Vietnam (+84) ──────────────────────────────────────────────────────
|
|
3108
|
+
// // Viettel
|
|
3109
|
+
// { prefix: '032', dialCode: '84' }, { prefix: '033', dialCode: '84' },
|
|
3110
|
+
// { prefix: '034', dialCode: '84' }, { prefix: '035', dialCode: '84' },
|
|
3111
|
+
// { prefix: '036', dialCode: '84' }, { prefix: '037', dialCode: '84' },
|
|
3112
|
+
// { prefix: '038', dialCode: '84' }, { prefix: '039', dialCode: '84' },
|
|
3113
|
+
// { prefix: '086', dialCode: '84' }, { prefix: '096', dialCode: '84' },
|
|
3114
|
+
// { prefix: '097', dialCode: '84' }, { prefix: '098', dialCode: '84' },
|
|
3115
|
+
// // Mobifone
|
|
3116
|
+
// { prefix: '070', dialCode: '84' }, { prefix: '079', dialCode: '84' },
|
|
3117
|
+
// { prefix: '077', dialCode: '84' }, { prefix: '076', dialCode: '84' },
|
|
3118
|
+
// { prefix: '078', dialCode: '84' }, { prefix: '089', dialCode: '84' },
|
|
3119
|
+
// { prefix: '090', dialCode: '84' }, { prefix: '093', dialCode: '84' },
|
|
3120
|
+
// // Vinaphone
|
|
3121
|
+
// { prefix: '081', dialCode: '84' }, { prefix: '082', dialCode: '84' },
|
|
3122
|
+
// { prefix: '083', dialCode: '84' }, { prefix: '084', dialCode: '84' },
|
|
3123
|
+
// { prefix: '085', dialCode: '84' }, { prefix: '091', dialCode: '84' },
|
|
3124
|
+
// { prefix: '094', dialCode: '84' },
|
|
3125
|
+
// // Vietnamobile / Gmobile
|
|
3126
|
+
// { prefix: '052', dialCode: '84' }, { prefix: '056', dialCode: '84' },
|
|
3127
|
+
// { prefix: '058', dialCode: '84' }, { prefix: '059', dialCode: '84' },
|
|
3128
|
+
// { prefix: '092', dialCode: '84' }, { prefix: '099', dialCode: '84' },
|
|
3129
|
+
// // ── Thailand (+66) ─────────────────────────────────────────────────────
|
|
3130
|
+
// { prefix: '061', dialCode: '66' }, { prefix: '062', dialCode: '66' },
|
|
3131
|
+
// { prefix: '063', dialCode: '66' }, { prefix: '064', dialCode: '66' },
|
|
3132
|
+
// { prefix: '065', dialCode: '66' }, { prefix: '066', dialCode: '66' },
|
|
3133
|
+
// { prefix: '067', dialCode: '66' }, { prefix: '068', dialCode: '66' },
|
|
3134
|
+
// { prefix: '069', dialCode: '66' },
|
|
3135
|
+
// { prefix: '080', dialCode: '66' }, { prefix: '081', dialCode: '66' },
|
|
3136
|
+
// { prefix: '082', dialCode: '66' }, { prefix: '083', dialCode: '66' },
|
|
3137
|
+
// { prefix: '084', dialCode: '66' }, { prefix: '085', dialCode: '66' },
|
|
3138
|
+
// { prefix: '086', dialCode: '66' }, { prefix: '087', dialCode: '66' },
|
|
3139
|
+
// { prefix: '088', dialCode: '66' }, { prefix: '089', dialCode: '66' },
|
|
3140
|
+
// { prefix: '091', dialCode: '66' }, { prefix: '092', dialCode: '66' },
|
|
3141
|
+
// { prefix: '093', dialCode: '66' }, { prefix: '094', dialCode: '66' },
|
|
3142
|
+
// { prefix: '095', dialCode: '66' }, { prefix: '098', dialCode: '66' },
|
|
3143
|
+
// { prefix: '099', dialCode: '66' },
|
|
3144
|
+
// // ── South Korea (+82) ──────────────────────────────────────────────────
|
|
3145
|
+
// { prefix: '010', dialCode: '82' }, // all operators
|
|
3146
|
+
// { prefix: '016', dialCode: '82' }, // legacy KTF
|
|
3147
|
+
// { prefix: '017', dialCode: '82' }, // legacy SK Telecom
|
|
3148
|
+
// { prefix: '018', dialCode: '82' }, // legacy LG Telecom
|
|
3149
|
+
// { prefix: '019', dialCode: '82' }, // legacy Hansol
|
|
3150
|
+
// // ── Taiwan (+886) ──────────────────────────────────────────────────────
|
|
3151
|
+
// { prefix: '09', dialCode: '886' }, // all mobile operators
|
|
3152
|
+
// // ── Hong Kong (+852) ── (no trunk digit — all 8-digit numbers direct) ──
|
|
3153
|
+
// // No trunk prefix; local numbers start directly with 2,3,4,5,6,9
|
|
3154
|
+
// // Include common first digits for detection if needed:
|
|
3155
|
+
// { prefix: '5', dialCode: '852' }, { prefix: '6', dialCode: '852' },
|
|
3156
|
+
// { prefix: '9', dialCode: '852' },
|
|
3157
|
+
// // ── Macau (+853) ───────────────────────────────────────────────────────
|
|
3158
|
+
// { prefix: '6', dialCode: '853' },
|
|
3159
|
+
// // ── Singapore (+65) ── (no trunk digit) ───────────────────────────────
|
|
3160
|
+
// { prefix: '8', dialCode: '65' }, { prefix: '9', dialCode: '65' },
|
|
3161
|
+
// // ── Myanmar (+95) ──────────────────────────────────────────────────────
|
|
3162
|
+
// { prefix: '09', dialCode: '95' },
|
|
3163
|
+
// // ── Cambodia (+855) ────────────────────────────────────────────────────
|
|
3164
|
+
// { prefix: '010', dialCode: '855' }, { prefix: '011', dialCode: '855' },
|
|
3165
|
+
// { prefix: '012', dialCode: '855' }, { prefix: '015', dialCode: '855' },
|
|
3166
|
+
// { prefix: '016', dialCode: '855' }, { prefix: '017', dialCode: '855' },
|
|
3167
|
+
// { prefix: '018', dialCode: '855' }, { prefix: '069', dialCode: '855' },
|
|
3168
|
+
// { prefix: '070', dialCode: '855' }, { prefix: '071', dialCode: '855' },
|
|
3169
|
+
// { prefix: '077', dialCode: '855' }, { prefix: '078', dialCode: '855' },
|
|
3170
|
+
// { prefix: '085', dialCode: '855' }, { prefix: '086', dialCode: '855' },
|
|
3171
|
+
// { prefix: '087', dialCode: '855' }, { prefix: '088', dialCode: '855' },
|
|
3172
|
+
// { prefix: '089', dialCode: '855' }, { prefix: '090', dialCode: '855' },
|
|
3173
|
+
// { prefix: '092', dialCode: '855' }, { prefix: '095', dialCode: '855' },
|
|
3174
|
+
// { prefix: '096', dialCode: '855' }, { prefix: '097', dialCode: '855' },
|
|
3175
|
+
// { prefix: '098', dialCode: '855' },
|
|
3176
|
+
// // ── Sri Lanka (+94) ────────────────────────────────────────────────────
|
|
3177
|
+
// { prefix: '071', dialCode: '94' }, { prefix: '072', dialCode: '94' },
|
|
3178
|
+
// { prefix: '074', dialCode: '94' }, { prefix: '075', dialCode: '94' },
|
|
3179
|
+
// { prefix: '076', dialCode: '94' }, { prefix: '077', dialCode: '94' },
|
|
3180
|
+
// { prefix: '078', dialCode: '94' },
|
|
3181
|
+
// // ── Nepal (+977) ────────────────────────────────────────────────────────
|
|
3182
|
+
// { prefix: '097', dialCode: '977' }, { prefix: '098', dialCode: '977' },
|
|
3183
|
+
// // ── Afghanistan (+93) ──────────────────────────────────────────────────
|
|
3184
|
+
// { prefix: '070', dialCode: '93' }, { prefix: '071', dialCode: '93' },
|
|
3185
|
+
// { prefix: '072', dialCode: '93' }, { prefix: '073', dialCode: '93' },
|
|
3186
|
+
// { prefix: '074', dialCode: '93' }, { prefix: '075', dialCode: '93' },
|
|
3187
|
+
// { prefix: '076', dialCode: '93' }, { prefix: '077', dialCode: '93' },
|
|
3188
|
+
// { prefix: '078', dialCode: '93' }, { prefix: '079', dialCode: '93' },
|
|
3189
|
+
// // ── Iran (+98) ─────────────────────────────────────────────────────────
|
|
3190
|
+
// { prefix: '0901', dialCode: '98' }, { prefix: '0902', dialCode: '98' },
|
|
3191
|
+
// { prefix: '0903', dialCode: '98' }, { prefix: '0910', dialCode: '98' },
|
|
3192
|
+
// { prefix: '0911', dialCode: '98' }, { prefix: '0912', dialCode: '98' },
|
|
3193
|
+
// { prefix: '0913', dialCode: '98' }, { prefix: '0914', dialCode: '98' },
|
|
3194
|
+
// { prefix: '0915', dialCode: '98' }, { prefix: '0916', dialCode: '98' },
|
|
3195
|
+
// { prefix: '0917', dialCode: '98' }, { prefix: '0918', dialCode: '98' },
|
|
3196
|
+
// { prefix: '0919', dialCode: '98' }, { prefix: '0920', dialCode: '98' },
|
|
3197
|
+
// { prefix: '0930', dialCode: '98' }, { prefix: '0933', dialCode: '98' },
|
|
3198
|
+
// { prefix: '0935', dialCode: '98' }, { prefix: '0936', dialCode: '98' },
|
|
3199
|
+
// { prefix: '0937', dialCode: '98' }, { prefix: '0938', dialCode: '98' },
|
|
3200
|
+
// { prefix: '0939', dialCode: '98' }, { prefix: '0941', dialCode: '98' },
|
|
3201
|
+
// // ── Iraq (+964) ─────────────────────────────────────────────────────────
|
|
3202
|
+
// { prefix: '075', dialCode: '964' }, { prefix: '076', dialCode: '964' },
|
|
3203
|
+
// { prefix: '077', dialCode: '964' }, { prefix: '078', dialCode: '964' },
|
|
3204
|
+
// { prefix: '079', dialCode: '964' },
|
|
3205
|
+
// // ── Saudi Arabia (+966) ────────────────────────────────────────────────
|
|
3206
|
+
// { prefix: '05', dialCode: '966' }, // all mobile (050–059)
|
|
3207
|
+
// // ── UAE (+971) ─────────────────────────────────────────────────────────
|
|
3208
|
+
// { prefix: '050', dialCode: '971' }, { prefix: '052', dialCode: '971' },
|
|
3209
|
+
// { prefix: '054', dialCode: '971' }, { prefix: '055', dialCode: '971' },
|
|
3210
|
+
// { prefix: '056', dialCode: '971' }, { prefix: '058', dialCode: '971' },
|
|
3211
|
+
// // ── Kuwait (+965) ── (no trunk) ────────────────────────────────────────
|
|
3212
|
+
// { prefix: '5', dialCode: '965' }, { prefix: '6', dialCode: '965' },
|
|
3213
|
+
// { prefix: '9', dialCode: '965' },
|
|
3214
|
+
// // ── Qatar (+974) ── (no trunk) ─────────────────────────────────────────
|
|
3215
|
+
// { prefix: '3', dialCode: '974' }, { prefix: '5', dialCode: '974' },
|
|
3216
|
+
// { prefix: '6', dialCode: '974' }, { prefix: '7', dialCode: '974' },
|
|
3217
|
+
// // ── Bahrain (+973) ── (no trunk) ───────────────────────────────────────
|
|
3218
|
+
// { prefix: '3', dialCode: '973' }, { prefix: '6', dialCode: '973' },
|
|
3219
|
+
// // ── Oman (+968) ── (no trunk) ──────────────────────────────────────────
|
|
3220
|
+
// { prefix: '7', dialCode: '968' }, { prefix: '9', dialCode: '968' },
|
|
3221
|
+
// // ── Jordan (+962) ──────────────────────────────────────────────────────
|
|
3222
|
+
// { prefix: '077', dialCode: '962' }, { prefix: '078', dialCode: '962' },
|
|
3223
|
+
// { prefix: '079', dialCode: '962' },
|
|
3224
|
+
// // ── Lebanon (+961) ─────────────────────────────────────────────────────
|
|
3225
|
+
// { prefix: '03', dialCode: '961' }, { prefix: '07', dialCode: '961' },
|
|
3226
|
+
// { prefix: '08', dialCode: '961' }, { prefix: '09', dialCode: '961' },
|
|
3227
|
+
// // ── Israel (+972) ──────────────────────────────────────────────────────
|
|
3228
|
+
// { prefix: '050', dialCode: '972' }, { prefix: '051', dialCode: '972' },
|
|
3229
|
+
// { prefix: '052', dialCode: '972' }, { prefix: '053', dialCode: '972' },
|
|
3230
|
+
// { prefix: '054', dialCode: '972' }, { prefix: '055', dialCode: '972' },
|
|
3231
|
+
// { prefix: '056', dialCode: '972' }, { prefix: '057', dialCode: '972' },
|
|
3232
|
+
// { prefix: '058', dialCode: '972' }, { prefix: '059', dialCode: '972' },
|
|
3233
|
+
// // ── Turkey (+90) ───────────────────────────────────────────────────────
|
|
3234
|
+
// { prefix: '0530', dialCode: '90' }, { prefix: '0531', dialCode: '90' },
|
|
3235
|
+
// { prefix: '0532', dialCode: '90' }, { prefix: '0533', dialCode: '90' },
|
|
3236
|
+
// { prefix: '0534', dialCode: '90' }, { prefix: '0535', dialCode: '90' },
|
|
3237
|
+
// { prefix: '0536', dialCode: '90' }, { prefix: '0537', dialCode: '90' },
|
|
3238
|
+
// { prefix: '0538', dialCode: '90' }, { prefix: '0539', dialCode: '90' },
|
|
3239
|
+
// { prefix: '0540', dialCode: '90' }, { prefix: '0541', dialCode: '90' },
|
|
3240
|
+
// { prefix: '0542', dialCode: '90' }, { prefix: '0543', dialCode: '90' },
|
|
3241
|
+
// { prefix: '0544', dialCode: '90' }, { prefix: '0545', dialCode: '90' },
|
|
3242
|
+
// { prefix: '0546', dialCode: '90' }, { prefix: '0547', dialCode: '90' },
|
|
3243
|
+
// { prefix: '0548', dialCode: '90' }, { prefix: '0549', dialCode: '90' },
|
|
3244
|
+
// { prefix: '0550', dialCode: '90' }, { prefix: '0551', dialCode: '90' },
|
|
3245
|
+
// { prefix: '0552', dialCode: '90' }, { prefix: '0553', dialCode: '90' },
|
|
3246
|
+
// { prefix: '0554', dialCode: '90' }, { prefix: '0555', dialCode: '90' },
|
|
3247
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3248
|
+
// // EUROPE
|
|
3249
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3250
|
+
// // ── UK (+44) ── (2-char, intentionally lowest priority in short list) ──
|
|
3251
|
+
// { prefix: '07', dialCode: '44' }, // mobile
|
|
3252
|
+
// { prefix: '01', dialCode: '44' }, // geographic fixed
|
|
3253
|
+
// { prefix: '02', dialCode: '44' }, // geographic fixed (London 020)
|
|
3254
|
+
// { prefix: '03', dialCode: '44' }, // non-geographic
|
|
3255
|
+
// // ── Germany (+49) ─────────────────────────────────────────────────────
|
|
3256
|
+
// { prefix: '015', dialCode: '49' }, { prefix: '016', dialCode: '49' },
|
|
3257
|
+
// { prefix: '017', dialCode: '49' },
|
|
3258
|
+
// // ── France (+33) ──────────────────────────────────────────────────────
|
|
3259
|
+
// { prefix: '06', dialCode: '33' }, { prefix: '07', dialCode: '33' },
|
|
3260
|
+
// // ── Italy (+39) ───────────────────────────────────────────────────────
|
|
3261
|
+
// { prefix: '03', dialCode: '39' }, // mobile 3xx
|
|
3262
|
+
// // ── Spain (+34) ── (no trunk digit) ───────────────────────────────────
|
|
3263
|
+
// { prefix: '6', dialCode: '34' }, { prefix: '7', dialCode: '34' },
|
|
3264
|
+
// // ── Netherlands (+31) ─────────────────────────────────────────────────
|
|
3265
|
+
// { prefix: '06', dialCode: '31' },
|
|
3266
|
+
// // ── Belgium (+32) ─────────────────────────────────────────────────────
|
|
3267
|
+
// { prefix: '04', dialCode: '32' },
|
|
3268
|
+
// // ── Sweden (+46) ──────────────────────────────────────────────────────
|
|
3269
|
+
// { prefix: '07', dialCode: '46' },
|
|
3270
|
+
// // ── Norway (+47) ── (no trunk) ─────────────────────────────────────────
|
|
3271
|
+
// { prefix: '4', dialCode: '47' }, { prefix: '9', dialCode: '47' },
|
|
3272
|
+
// // ── Denmark (+45) ── (no trunk) ────────────────────────────────────────
|
|
3273
|
+
// { prefix: '2', dialCode: '45' }, { prefix: '3', dialCode: '45' },
|
|
3274
|
+
// { prefix: '4', dialCode: '45' }, { prefix: '5', dialCode: '45' },
|
|
3275
|
+
// { prefix: '6', dialCode: '45' }, { prefix: '7', dialCode: '45' },
|
|
3276
|
+
// { prefix: '8', dialCode: '45' }, { prefix: '9', dialCode: '45' },
|
|
3277
|
+
// // ── Finland (+358) ────────────────────────────────────────────────────
|
|
3278
|
+
// { prefix: '04', dialCode: '358' }, { prefix: '05', dialCode: '358' },
|
|
3279
|
+
// // ── Switzerland (+41) ─────────────────────────────────────────────────
|
|
3280
|
+
// { prefix: '075', dialCode: '41' }, { prefix: '076', dialCode: '41' },
|
|
3281
|
+
// { prefix: '077', dialCode: '41' }, { prefix: '078', dialCode: '41' },
|
|
3282
|
+
// { prefix: '079', dialCode: '41' },
|
|
3283
|
+
// // ── Austria (+43) ─────────────────────────────────────────────────────
|
|
3284
|
+
// { prefix: '064', dialCode: '43' }, { prefix: '065', dialCode: '43' },
|
|
3285
|
+
// { prefix: '066', dialCode: '43' }, { prefix: '068', dialCode: '43' },
|
|
3286
|
+
// // ── Poland (+48) ── (no trunk) ─────────────────────────────────────────
|
|
3287
|
+
// { prefix: '5', dialCode: '48' }, { prefix: '6', dialCode: '48' },
|
|
3288
|
+
// { prefix: '7', dialCode: '48' }, { prefix: '8', dialCode: '48' },
|
|
3289
|
+
// // ── Portugal (+351) ── (no trunk) ─────────────────────────────────────
|
|
3290
|
+
// { prefix: '9', dialCode: '351' },
|
|
3291
|
+
// // ── Czech Republic (+420) ── (no trunk) ────────────────────────────────
|
|
3292
|
+
// { prefix: '6', dialCode: '420' }, { prefix: '7', dialCode: '420' },
|
|
3293
|
+
// // ── Romania (+40) ─────────────────────────────────────────────────────
|
|
3294
|
+
// { prefix: '07', dialCode: '40' },
|
|
3295
|
+
// // ── Hungary (+36) ─────────────────────────────────────────────────────
|
|
3296
|
+
// { prefix: '020', dialCode: '36' }, { prefix: '030', dialCode: '36' },
|
|
3297
|
+
// { prefix: '031', dialCode: '36' }, { prefix: '070', dialCode: '36' },
|
|
3298
|
+
// // ── Ukraine (+380) ────────────────────────────────────────────────────
|
|
3299
|
+
// { prefix: '066', dialCode: '380' }, { prefix: '067', dialCode: '380' },
|
|
3300
|
+
// { prefix: '068', dialCode: '380' }, { prefix: '073', dialCode: '380' },
|
|
3301
|
+
// { prefix: '091', dialCode: '380' }, { prefix: '092', dialCode: '380' },
|
|
3302
|
+
// { prefix: '093', dialCode: '380' }, { prefix: '094', dialCode: '380' },
|
|
3303
|
+
// { prefix: '095', dialCode: '380' }, { prefix: '096', dialCode: '380' },
|
|
3304
|
+
// { prefix: '097', dialCode: '380' }, { prefix: '098', dialCode: '380' },
|
|
3305
|
+
// { prefix: '099', dialCode: '380' },
|
|
3306
|
+
// // ── Russia (+7) ───────────────────────────────────────────────────────
|
|
3307
|
+
// { prefix: '8900', dialCode: '7' }, { prefix: '8901', dialCode: '7' },
|
|
3308
|
+
// { prefix: '8902', dialCode: '7' }, { prefix: '8903', dialCode: '7' },
|
|
3309
|
+
// { prefix: '8904', dialCode: '7' }, { prefix: '8905', dialCode: '7' },
|
|
3310
|
+
// { prefix: '8906', dialCode: '7' }, { prefix: '8908', dialCode: '7' },
|
|
3311
|
+
// { prefix: '8909', dialCode: '7' }, { prefix: '8910', dialCode: '7' },
|
|
3312
|
+
// { prefix: '8911', dialCode: '7' }, { prefix: '8912', dialCode: '7' },
|
|
3313
|
+
// { prefix: '8913', dialCode: '7' }, { prefix: '8914', dialCode: '7' },
|
|
3314
|
+
// { prefix: '8915', dialCode: '7' }, { prefix: '8916', dialCode: '7' },
|
|
3315
|
+
// { prefix: '8917', dialCode: '7' }, { prefix: '8918', dialCode: '7' },
|
|
3316
|
+
// { prefix: '8919', dialCode: '7' }, { prefix: '8920', dialCode: '7' },
|
|
3317
|
+
// { prefix: '8921', dialCode: '7' }, { prefix: '8922', dialCode: '7' },
|
|
3318
|
+
// { prefix: '8923', dialCode: '7' }, { prefix: '8924', dialCode: '7' },
|
|
3319
|
+
// { prefix: '8925', dialCode: '7' }, { prefix: '8926', dialCode: '7' },
|
|
3320
|
+
// { prefix: '8927', dialCode: '7' }, { prefix: '8928', dialCode: '7' },
|
|
3321
|
+
// { prefix: '8929', dialCode: '7' }, { prefix: '8930', dialCode: '7' },
|
|
3322
|
+
// { prefix: '8931', dialCode: '7' }, { prefix: '8932', dialCode: '7' },
|
|
3323
|
+
// { prefix: '8933', dialCode: '7' }, { prefix: '8934', dialCode: '7' },
|
|
3324
|
+
// { prefix: '8936', dialCode: '7' }, { prefix: '8937', dialCode: '7' },
|
|
3325
|
+
// { prefix: '8938', dialCode: '7' }, { prefix: '8939', dialCode: '7' },
|
|
3326
|
+
// { prefix: '8950', dialCode: '7' }, { prefix: '8951', dialCode: '7' },
|
|
3327
|
+
// { prefix: '8952', dialCode: '7' }, { prefix: '8953', dialCode: '7' },
|
|
3328
|
+
// { prefix: '8958', dialCode: '7' }, { prefix: '8960', dialCode: '7' },
|
|
3329
|
+
// { prefix: '8961', dialCode: '7' }, { prefix: '8962', dialCode: '7' },
|
|
3330
|
+
// { prefix: '8963', dialCode: '7' }, { prefix: '8964', dialCode: '7' },
|
|
3331
|
+
// { prefix: '8965', dialCode: '7' }, { prefix: '8966', dialCode: '7' },
|
|
3332
|
+
// { prefix: '8967', dialCode: '7' }, { prefix: '8968', dialCode: '7' },
|
|
3333
|
+
// { prefix: '8969', dialCode: '7' }, { prefix: '8977', dialCode: '7' },
|
|
3334
|
+
// { prefix: '8978', dialCode: '7' }, { prefix: '8980', dialCode: '7' },
|
|
3335
|
+
// { prefix: '8981', dialCode: '7' }, { prefix: '8982', dialCode: '7' },
|
|
3336
|
+
// { prefix: '8983', dialCode: '7' }, { prefix: '8985', dialCode: '7' },
|
|
3337
|
+
// { prefix: '8987', dialCode: '7' }, { prefix: '8988', dialCode: '7' },
|
|
3338
|
+
// { prefix: '8989', dialCode: '7' },
|
|
3339
|
+
// // ── Serbia (+381) ─────────────────────────────────────────────────────
|
|
3340
|
+
// { prefix: '060', dialCode: '381' }, { prefix: '061', dialCode: '381' },
|
|
3341
|
+
// { prefix: '062', dialCode: '381' }, { prefix: '063', dialCode: '381' },
|
|
3342
|
+
// { prefix: '064', dialCode: '381' }, { prefix: '065', dialCode: '381' },
|
|
3343
|
+
// { prefix: '066', dialCode: '381' },
|
|
3344
|
+
// // ── Greece (+30) ── (no trunk) ─────────────────────────────────────────
|
|
3345
|
+
// { prefix: '69', dialCode: '30' },
|
|
3346
|
+
// // ── Ireland (+353) ────────────────────────────────────────────────────
|
|
3347
|
+
// { prefix: '08', dialCode: '353' },
|
|
3348
|
+
// // ── Croatia (+385) ────────────────────────────────────────────────────
|
|
3349
|
+
// { prefix: '091', dialCode: '385' }, { prefix: '092', dialCode: '385' },
|
|
3350
|
+
// { prefix: '095', dialCode: '385' }, { prefix: '097', dialCode: '385' },
|
|
3351
|
+
// { prefix: '098', dialCode: '385' }, { prefix: '099', dialCode: '385' },
|
|
3352
|
+
// // ── Slovakia (+421) ────────────────────────────────────────────────────
|
|
3353
|
+
// { prefix: '09', dialCode: '421' },
|
|
3354
|
+
// // ── Bulgaria (+359) ────────────────────────────────────────────────────
|
|
3355
|
+
// { prefix: '087', dialCode: '359' }, { prefix: '088', dialCode: '359' },
|
|
3356
|
+
// { prefix: '089', dialCode: '359' },
|
|
3357
|
+
// // ── Belarus (+375) ─────────────────────────────────────────────────────
|
|
3358
|
+
// { prefix: '029', dialCode: '375' }, { prefix: '033', dialCode: '375' },
|
|
3359
|
+
// { prefix: '044', dialCode: '375' },
|
|
3360
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3361
|
+
// // AMERICAS
|
|
3362
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3363
|
+
// // ── North America NANP (+1) ────────────────────────────────────────────
|
|
3364
|
+
// // United States, Canada, and 20+ Caribbean territories all share +1.
|
|
3365
|
+
// // Domestic format: 1-NXX-NXX-XXXX (no trunk 0); callers sometimes dial
|
|
3366
|
+
// // just the 10-digit NPA-NXX-XXXX. We map the leading 1 or the NPA block.
|
|
3367
|
+
// { prefix: '1', dialCode: '1' },
|
|
3368
|
+
// // ── Mexico (+52) ──────────────────────────────────────────────────────
|
|
3369
|
+
// { prefix: '044', dialCode: '52' }, { prefix: '045', dialCode: '52' },
|
|
3370
|
+
// { prefix: '055', dialCode: '52' }, // Mexico City local
|
|
3371
|
+
// { prefix: '033', dialCode: '52' }, // Guadalajara local
|
|
3372
|
+
// // ── Brazil (+55) ──────────────────────────────────────────────────────
|
|
3373
|
+
// // Trunk is 0 (long distance) + carrier code; mobile use 9 as 9th digit
|
|
3374
|
+
// { prefix: '011', dialCode: '55' }, // São Paulo
|
|
3375
|
+
// { prefix: '021', dialCode: '55' }, // Rio de Janeiro
|
|
3376
|
+
// { prefix: '031', dialCode: '55' }, // Belo Horizonte
|
|
3377
|
+
// { prefix: '041', dialCode: '55' }, // Curitiba
|
|
3378
|
+
// { prefix: '051', dialCode: '55' }, // Porto Alegre
|
|
3379
|
+
// { prefix: '061', dialCode: '55' }, // Brasília
|
|
3380
|
+
// { prefix: '071', dialCode: '55' }, // Salvador
|
|
3381
|
+
// { prefix: '081', dialCode: '55' }, // Recife
|
|
3382
|
+
// { prefix: '085', dialCode: '55' }, // Fortaleza
|
|
3383
|
+
// { prefix: '091', dialCode: '55' }, // Belém
|
|
3384
|
+
// // ── Argentina (+54) ────────────────────────────────────────────────────
|
|
3385
|
+
// { prefix: '011', dialCode: '54' }, // Buenos Aires
|
|
3386
|
+
// { prefix: '0351', dialCode: '54' }, // Córdoba
|
|
3387
|
+
// { prefix: '0341', dialCode: '54' }, // Rosario
|
|
3388
|
+
// // ── Colombia (+57) ─────────────────────────────────────────────────────
|
|
3389
|
+
// { prefix: '03', dialCode: '57' },
|
|
3390
|
+
// // ── Chile (+56) ────────────────────────────────────────────────────────
|
|
3391
|
+
// { prefix: '09', dialCode: '56' },
|
|
3392
|
+
// // ── Peru (+51) ─────────────────────────────────────────────────────────
|
|
3393
|
+
// { prefix: '09', dialCode: '51' },
|
|
3394
|
+
// // ── Venezuela (+58) ────────────────────────────────────────────────────
|
|
3395
|
+
// { prefix: '04', dialCode: '58' },
|
|
3396
|
+
// // ── Ecuador (+593) ─────────────────────────────────────────────────────
|
|
3397
|
+
// { prefix: '09', dialCode: '593' },
|
|
3398
|
+
// // ── Bolivia (+591) ─────────────────────────────────────────────────────
|
|
3399
|
+
// { prefix: '06', dialCode: '591' }, { prefix: '07', dialCode: '591' },
|
|
3400
|
+
// // ── Paraguay (+595) ────────────────────────────────────────────────────
|
|
3401
|
+
// { prefix: '09', dialCode: '595' },
|
|
3402
|
+
// // ── Uruguay (+598) ─────────────────────────────────────────────────────
|
|
3403
|
+
// { prefix: '09', dialCode: '598' },
|
|
3404
|
+
// // ── Cuba (+53) ─────────────────────────────────────────────────────────
|
|
3405
|
+
// { prefix: '05', dialCode: '53' },
|
|
3406
|
+
// // ── Costa Rica (+506) ── (no trunk) ────────────────────────────────────
|
|
3407
|
+
// { prefix: '6', dialCode: '506' }, { prefix: '7', dialCode: '506' },
|
|
3408
|
+
// { prefix: '8', dialCode: '506' },
|
|
3409
|
+
// // ── Guatemala (+502) ── (no trunk) ─────────────────────────────────────
|
|
3410
|
+
// { prefix: '3', dialCode: '502' }, { prefix: '4', dialCode: '502' },
|
|
3411
|
+
// { prefix: '5', dialCode: '502' },
|
|
3412
|
+
// // ── Honduras (+504) ── (no trunk) ──────────────────────────────────────
|
|
3413
|
+
// { prefix: '3', dialCode: '504' }, { prefix: '8', dialCode: '504' },
|
|
3414
|
+
// { prefix: '9', dialCode: '504' },
|
|
3415
|
+
// // ── El Salvador (+503) ── (no trunk) ───────────────────────────────────
|
|
3416
|
+
// { prefix: '6', dialCode: '503' }, { prefix: '7', dialCode: '503' },
|
|
3417
|
+
// // ── Panama (+507) ── (no trunk) ────────────────────────────────────────
|
|
3418
|
+
// { prefix: '6', dialCode: '507' },
|
|
3419
|
+
// // ── Nicaragua (+505) ── (no trunk) ─────────────────────────────────────
|
|
3420
|
+
// { prefix: '5', dialCode: '505' }, { prefix: '6', dialCode: '505' },
|
|
3421
|
+
// { prefix: '7', dialCode: '505' }, { prefix: '8', dialCode: '505' },
|
|
3422
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3423
|
+
// // AFRICA
|
|
3424
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3425
|
+
// // ── Nigeria (+234) ─────────────────────────────────────────────────────
|
|
3426
|
+
// { prefix: '0703', dialCode: '234' }, { prefix: '0706', dialCode: '234' },
|
|
3427
|
+
// { prefix: '0803', dialCode: '234' }, { prefix: '0806', dialCode: '234' },
|
|
3428
|
+
// { prefix: '0810', dialCode: '234' }, { prefix: '0813', dialCode: '234' },
|
|
3429
|
+
// { prefix: '0814', dialCode: '234' }, { prefix: '0816', dialCode: '234' },
|
|
3430
|
+
// { prefix: '0903', dialCode: '234' }, { prefix: '0906', dialCode: '234' },
|
|
3431
|
+
// { prefix: '0704', dialCode: '234' }, { prefix: '0805', dialCode: '234' },
|
|
3432
|
+
// { prefix: '0807', dialCode: '234' }, { prefix: '0811', dialCode: '234' },
|
|
3433
|
+
// { prefix: '0815', dialCode: '234' }, { prefix: '0905', dialCode: '234' },
|
|
3434
|
+
// { prefix: '0802', dialCode: '234' }, { prefix: '0808', dialCode: '234' },
|
|
3435
|
+
// { prefix: '0812', dialCode: '234' }, { prefix: '0901', dialCode: '234' },
|
|
3436
|
+
// { prefix: '0902', dialCode: '234' }, { prefix: '0904', dialCode: '234' },
|
|
3437
|
+
// { prefix: '0907', dialCode: '234' }, { prefix: '0908', dialCode: '234' },
|
|
3438
|
+
// { prefix: '0809', dialCode: '234' }, { prefix: '0817', dialCode: '234' },
|
|
3439
|
+
// { prefix: '0818', dialCode: '234' }, { prefix: '0819', dialCode: '234' },
|
|
3440
|
+
// { prefix: '0909', dialCode: '234' },
|
|
3441
|
+
// // ── South Africa (+27) ─────────────────────────────────────────────────
|
|
3442
|
+
// { prefix: '060', dialCode: '27' }, { prefix: '061', dialCode: '27' },
|
|
3443
|
+
// { prefix: '062', dialCode: '27' }, { prefix: '063', dialCode: '27' },
|
|
3444
|
+
// { prefix: '064', dialCode: '27' }, { prefix: '065', dialCode: '27' },
|
|
3445
|
+
// { prefix: '066', dialCode: '27' }, { prefix: '067', dialCode: '27' },
|
|
3446
|
+
// { prefix: '068', dialCode: '27' }, { prefix: '069', dialCode: '27' },
|
|
3447
|
+
// { prefix: '071', dialCode: '27' }, { prefix: '072', dialCode: '27' },
|
|
3448
|
+
// { prefix: '073', dialCode: '27' }, { prefix: '074', dialCode: '27' },
|
|
3449
|
+
// { prefix: '076', dialCode: '27' }, { prefix: '078', dialCode: '27' },
|
|
3450
|
+
// { prefix: '079', dialCode: '27' }, { prefix: '081', dialCode: '27' },
|
|
3451
|
+
// { prefix: '082', dialCode: '27' }, { prefix: '083', dialCode: '27' },
|
|
3452
|
+
// { prefix: '084', dialCode: '27' }, { prefix: '085', dialCode: '27' },
|
|
3453
|
+
// // ── Kenya (+254) ───────────────────────────────────────────────────────
|
|
3454
|
+
// { prefix: '0700', dialCode: '254' }, { prefix: '0701', dialCode: '254' },
|
|
3455
|
+
// { prefix: '0702', dialCode: '254' }, { prefix: '0703', dialCode: '254' },
|
|
3456
|
+
// { prefix: '0704', dialCode: '254' }, { prefix: '0705', dialCode: '254' },
|
|
3457
|
+
// { prefix: '0706', dialCode: '254' }, { prefix: '0707', dialCode: '254' },
|
|
3458
|
+
// { prefix: '0708', dialCode: '254' }, { prefix: '0709', dialCode: '254' },
|
|
3459
|
+
// { prefix: '0710', dialCode: '254' }, { prefix: '0711', dialCode: '254' },
|
|
3460
|
+
// { prefix: '0712', dialCode: '254' }, { prefix: '0713', dialCode: '254' },
|
|
3461
|
+
// { prefix: '0714', dialCode: '254' }, { prefix: '0715', dialCode: '254' },
|
|
3462
|
+
// { prefix: '0716', dialCode: '254' }, { prefix: '0717', dialCode: '254' },
|
|
3463
|
+
// { prefix: '0718', dialCode: '254' }, { prefix: '0719', dialCode: '254' },
|
|
3464
|
+
// { prefix: '0720', dialCode: '254' }, { prefix: '0721', dialCode: '254' },
|
|
3465
|
+
// { prefix: '0722', dialCode: '254' }, { prefix: '0723', dialCode: '254' },
|
|
3466
|
+
// { prefix: '0724', dialCode: '254' }, { prefix: '0725', dialCode: '254' },
|
|
3467
|
+
// { prefix: '0726', dialCode: '254' }, { prefix: '0727', dialCode: '254' },
|
|
3468
|
+
// { prefix: '0728', dialCode: '254' }, { prefix: '0729', dialCode: '254' },
|
|
3469
|
+
// { prefix: '0730', dialCode: '254' }, { prefix: '0731', dialCode: '254' },
|
|
3470
|
+
// { prefix: '0732', dialCode: '254' }, { prefix: '0733', dialCode: '254' },
|
|
3471
|
+
// { prefix: '0734', dialCode: '254' }, { prefix: '0735', dialCode: '254' },
|
|
3472
|
+
// { prefix: '0736', dialCode: '254' }, { prefix: '0737', dialCode: '254' },
|
|
3473
|
+
// { prefix: '0738', dialCode: '254' }, { prefix: '0739', dialCode: '254' },
|
|
3474
|
+
// { prefix: '0740', dialCode: '254' }, { prefix: '0741', dialCode: '254' },
|
|
3475
|
+
// { prefix: '0742', dialCode: '254' }, { prefix: '0743', dialCode: '254' },
|
|
3476
|
+
// { prefix: '0745', dialCode: '254' }, { prefix: '0746', dialCode: '254' },
|
|
3477
|
+
// { prefix: '0757', dialCode: '254' }, { prefix: '0758', dialCode: '254' },
|
|
3478
|
+
// { prefix: '0759', dialCode: '254' }, { prefix: '0768', dialCode: '254' },
|
|
3479
|
+
// { prefix: '0769', dialCode: '254' }, { prefix: '0770', dialCode: '254' },
|
|
3480
|
+
// { prefix: '0771', dialCode: '254' }, { prefix: '0772', dialCode: '254' },
|
|
3481
|
+
// { prefix: '0773', dialCode: '254' }, { prefix: '0774', dialCode: '254' },
|
|
3482
|
+
// { prefix: '0775', dialCode: '254' }, { prefix: '0776', dialCode: '254' },
|
|
3483
|
+
// { prefix: '0777', dialCode: '254' }, { prefix: '0778', dialCode: '254' },
|
|
3484
|
+
// { prefix: '0779', dialCode: '254' }, { prefix: '0780', dialCode: '254' },
|
|
3485
|
+
// { prefix: '0781', dialCode: '254' }, { prefix: '0782', dialCode: '254' },
|
|
3486
|
+
// { prefix: '0783', dialCode: '254' }, { prefix: '0784', dialCode: '254' },
|
|
3487
|
+
// { prefix: '0785', dialCode: '254' }, { prefix: '0786', dialCode: '254' },
|
|
3488
|
+
// { prefix: '0787', dialCode: '254' }, { prefix: '0788', dialCode: '254' },
|
|
3489
|
+
// { prefix: '0789', dialCode: '254' }, { prefix: '0790', dialCode: '254' },
|
|
3490
|
+
// { prefix: '0791', dialCode: '254' }, { prefix: '0792', dialCode: '254' },
|
|
3491
|
+
// { prefix: '0793', dialCode: '254' }, { prefix: '0794', dialCode: '254' },
|
|
3492
|
+
// { prefix: '0795', dialCode: '254' }, { prefix: '0796', dialCode: '254' },
|
|
3493
|
+
// { prefix: '0797', dialCode: '254' }, { prefix: '0798', dialCode: '254' },
|
|
3494
|
+
// { prefix: '0799', dialCode: '254' },
|
|
3495
|
+
// // ── Ethiopia (+251) ────────────────────────────────────────────────────
|
|
3496
|
+
// { prefix: '091', dialCode: '251' }, { prefix: '092', dialCode: '251' },
|
|
3497
|
+
// { prefix: '093', dialCode: '251' }, { prefix: '094', dialCode: '251' },
|
|
3498
|
+
// { prefix: '095', dialCode: '251' },
|
|
3499
|
+
// // ── Ghana (+233) ───────────────────────────────────────────────────────
|
|
3500
|
+
// { prefix: '024', dialCode: '233' }, { prefix: '025', dialCode: '233' },
|
|
3501
|
+
// { prefix: '026', dialCode: '233' }, { prefix: '027', dialCode: '233' },
|
|
3502
|
+
// { prefix: '028', dialCode: '233' }, { prefix: '029', dialCode: '233' },
|
|
3503
|
+
// { prefix: '054', dialCode: '233' }, { prefix: '055', dialCode: '233' },
|
|
3504
|
+
// { prefix: '056', dialCode: '233' }, { prefix: '057', dialCode: '233' },
|
|
3505
|
+
// { prefix: '059', dialCode: '233' }, { prefix: '020', dialCode: '233' },
|
|
3506
|
+
// { prefix: '050', dialCode: '233' },
|
|
3507
|
+
// // ── Tanzania (+255) ────────────────────────────────────────────────────
|
|
3508
|
+
// { prefix: '0621', dialCode: '255' }, { prefix: '0622', dialCode: '255' },
|
|
3509
|
+
// { prefix: '0623', dialCode: '255' }, { prefix: '0624', dialCode: '255' },
|
|
3510
|
+
// { prefix: '0625', dialCode: '255' }, { prefix: '0626', dialCode: '255' },
|
|
3511
|
+
// { prefix: '0627', dialCode: '255' }, { prefix: '0628', dialCode: '255' },
|
|
3512
|
+
// { prefix: '0629', dialCode: '255' }, { prefix: '0655', dialCode: '255' },
|
|
3513
|
+
// { prefix: '0656', dialCode: '255' }, { prefix: '0657', dialCode: '255' },
|
|
3514
|
+
// { prefix: '0658', dialCode: '255' }, { prefix: '0659', dialCode: '255' },
|
|
3515
|
+
// { prefix: '0673', dialCode: '255' }, { prefix: '0674', dialCode: '255' },
|
|
3516
|
+
// { prefix: '0675', dialCode: '255' }, { prefix: '0676', dialCode: '255' },
|
|
3517
|
+
// { prefix: '0677', dialCode: '255' }, { prefix: '0678', dialCode: '255' },
|
|
3518
|
+
// { prefix: '0679', dialCode: '255' }, { prefix: '0684', dialCode: '255' },
|
|
3519
|
+
// { prefix: '0685', dialCode: '255' }, { prefix: '0686', dialCode: '255' },
|
|
3520
|
+
// { prefix: '0687', dialCode: '255' }, { prefix: '0688', dialCode: '255' },
|
|
3521
|
+
// { prefix: '0689', dialCode: '255' }, { prefix: '0716', dialCode: '255' },
|
|
3522
|
+
// { prefix: '0717', dialCode: '255' }, { prefix: '0718', dialCode: '255' },
|
|
3523
|
+
// { prefix: '0719', dialCode: '255' }, { prefix: '0754', dialCode: '255' },
|
|
3524
|
+
// { prefix: '0755', dialCode: '255' }, { prefix: '0756', dialCode: '255' },
|
|
3525
|
+
// { prefix: '0757', dialCode: '255' }, { prefix: '0758', dialCode: '255' },
|
|
3526
|
+
// { prefix: '0759', dialCode: '255' }, { prefix: '0765', dialCode: '255' },
|
|
3527
|
+
// { prefix: '0766', dialCode: '255' }, { prefix: '0767', dialCode: '255' },
|
|
3528
|
+
// { prefix: '0768', dialCode: '255' }, { prefix: '0769', dialCode: '255' },
|
|
3529
|
+
// { prefix: '0786', dialCode: '255' }, { prefix: '0787', dialCode: '255' },
|
|
3530
|
+
// { prefix: '0788', dialCode: '255' }, { prefix: '0789', dialCode: '255' },
|
|
3531
|
+
// // ── Uganda (+256) ──────────────────────────────────────────────────────
|
|
3532
|
+
// { prefix: '070', dialCode: '256' }, { prefix: '071', dialCode: '256' },
|
|
3533
|
+
// { prefix: '074', dialCode: '256' }, { prefix: '075', dialCode: '256' },
|
|
3534
|
+
// { prefix: '076', dialCode: '256' }, { prefix: '077', dialCode: '256' },
|
|
3535
|
+
// { prefix: '078', dialCode: '256' },
|
|
3536
|
+
// // ── Egypt (+20) ────────────────────────────────────────────────────────
|
|
3537
|
+
// { prefix: '010', dialCode: '20' }, { prefix: '011', dialCode: '20' },
|
|
3538
|
+
// { prefix: '012', dialCode: '20' }, { prefix: '015', dialCode: '20' },
|
|
3539
|
+
// // ── Morocco (+212) ─────────────────────────────────────────────────────
|
|
3540
|
+
// { prefix: '06', dialCode: '212' }, { prefix: '07', dialCode: '212' },
|
|
3541
|
+
// // ── Algeria (+213) ─────────────────────────────────────────────────────
|
|
3542
|
+
// { prefix: '05', dialCode: '213' },
|
|
3543
|
+
// // ── Tunisia (+216) ── (no trunk) ───────────────────────────────────────
|
|
3544
|
+
// { prefix: '2', dialCode: '216' }, { prefix: '5', dialCode: '216' },
|
|
3545
|
+
// { prefix: '9', dialCode: '216' },
|
|
3546
|
+
// // ── Sudan (+249) ───────────────────────────────────────────────────────
|
|
3547
|
+
// { prefix: '09', dialCode: '249' },
|
|
3548
|
+
// // ── Rwanda (+250) ── (no trunk) ────────────────────────────────────────
|
|
3549
|
+
// { prefix: '72', dialCode: '250' }, { prefix: '73', dialCode: '250' },
|
|
3550
|
+
// { prefix: '78', dialCode: '250' }, { prefix: '79', dialCode: '250' },
|
|
3551
|
+
// // ── Cameroon (+237) ── (no trunk) ──────────────────────────────────────
|
|
3552
|
+
// { prefix: '6', dialCode: '237' }, { prefix: '7', dialCode: '237' },
|
|
3553
|
+
// // ── Ivory Coast (+225) ── (no trunk) ───────────────────────────────────
|
|
3554
|
+
// { prefix: '01', dialCode: '225' }, { prefix: '05', dialCode: '225' },
|
|
3555
|
+
// { prefix: '07', dialCode: '225' },
|
|
3556
|
+
// // ── Senegal (+221) ── (no trunk) ───────────────────────────────────────
|
|
3557
|
+
// { prefix: '7', dialCode: '221' },
|
|
3558
|
+
// // ── Zimbabwe (+263) ────────────────────────────────────────────────────
|
|
3559
|
+
// { prefix: '071', dialCode: '263' }, { prefix: '073', dialCode: '263' },
|
|
3560
|
+
// { prefix: '077', dialCode: '263' }, { prefix: '078', dialCode: '263' },
|
|
3561
|
+
// // ── Zambia (+260) ──────────────────────────────────────────────────────
|
|
3562
|
+
// { prefix: '095', dialCode: '260' }, { prefix: '096', dialCode: '260' },
|
|
3563
|
+
// { prefix: '097', dialCode: '260' },
|
|
3564
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3565
|
+
// // OCEANIA
|
|
3566
|
+
// // ═══════════════════════════════════════════════════════════════════════
|
|
3567
|
+
// // ── Australia (+61) ────────────────────────────────────────────────────
|
|
3568
|
+
// { prefix: '04', dialCode: '61' }, // mobile (Telstra, Optus, Vodafone)
|
|
3569
|
+
// { prefix: '02', dialCode: '61' }, // fixed NSW/ACT
|
|
3570
|
+
// { prefix: '03', dialCode: '61' }, // fixed VIC/TAS
|
|
3571
|
+
// { prefix: '07', dialCode: '61' }, // fixed QLD
|
|
3572
|
+
// { prefix: '08', dialCode: '61' }, // fixed SA/WA/NT
|
|
3573
|
+
// // ── New Zealand (+64) ──────────────────────────────────────────────────
|
|
3574
|
+
// { prefix: '021', dialCode: '64' }, { prefix: '022', dialCode: '64' },
|
|
3575
|
+
// { prefix: '027', dialCode: '64' }, { prefix: '028', dialCode: '64' },
|
|
3576
|
+
// { prefix: '029', dialCode: '64' },
|
|
3577
|
+
// // ── Papua New Guinea (+675) ── (no trunk) ──────────────────────────────
|
|
3578
|
+
// { prefix: '7', dialCode: '675' },
|
|
3579
|
+
// // ── Fiji (+679) ── (no trunk) ──────────────────────────────────────────
|
|
3580
|
+
// { prefix: '7', dialCode: '679' }, { prefix: '8', dialCode: '679' },
|
|
3581
|
+
// { prefix: '9', dialCode: '679' },
|
|
3582
|
+
];
|
|
3583
|
+
var _sortedTrunkMap = [...LOCAL_TRUNK_TO_DIAL].sort(
|
|
3584
|
+
(a, b) => b.prefix.length - a.prefix.length
|
|
3585
|
+
);
|
|
3586
|
+
var localToInternational = (value, countryIso) => {
|
|
3587
|
+
if (!value) return value;
|
|
3588
|
+
const trimmed = value.trim();
|
|
3589
|
+
if (trimmed.startsWith("+")) {
|
|
3590
|
+
return "+" + stripNonDigits(trimmed.slice(1));
|
|
3591
|
+
}
|
|
3592
|
+
const digits = stripNonDigits(trimmed);
|
|
3593
|
+
if (digits.startsWith("00") && digits.length > 2) {
|
|
3594
|
+
return "+" + digits.slice(2);
|
|
3595
|
+
}
|
|
3596
|
+
if (!digits.startsWith("0")) {
|
|
3597
|
+
return digits;
|
|
3598
|
+
}
|
|
3599
|
+
for (const { prefix, dialCode: dialCode2 } of _sortedTrunkMap) {
|
|
3600
|
+
if (digits.startsWith(prefix)) {
|
|
3601
|
+
return "+" + dialCode2 + digits.slice(1);
|
|
3602
|
+
}
|
|
3603
|
+
}
|
|
3604
|
+
const dialCode = getDialCode(countryIso);
|
|
3605
|
+
if (dialCode) {
|
|
3606
|
+
return "+" + dialCode + digits.slice(1);
|
|
3607
|
+
}
|
|
3608
|
+
return digits.slice(1);
|
|
3609
|
+
};
|
|
2622
3610
|
var DEFAULT_LABELS7 = {
|
|
2623
3611
|
id: {
|
|
2624
3612
|
emailOrPhonePlaceholder: "Email atau Nomor HP",
|
|
@@ -2640,7 +3628,8 @@ var DEFAULT_LABELS7 = {
|
|
|
2640
3628
|
phoneMinDigitsError: "Nomor HP minimal 10 digit",
|
|
2641
3629
|
invalidEmailOrPhoneError: "Masukkan email atau nomor HP yang valid",
|
|
2642
3630
|
identityPhoneMustStartWithPlusError: "Nomor telepon harus diawali dengan +",
|
|
2643
|
-
identityPhoneMustBeOnlyDigitsError: "Nomor telepon hanya boleh berisi angka setelah +"
|
|
3631
|
+
identityPhoneMustBeOnlyDigitsError: "Nomor telepon hanya boleh berisi angka setelah +",
|
|
3632
|
+
phoneInvalidLengthError: "Nomor telepon harus antara 4-15 digit"
|
|
2644
3633
|
},
|
|
2645
3634
|
en: {
|
|
2646
3635
|
emailOrPhonePlaceholder: "Email or Phone Number",
|
|
@@ -2662,7 +3651,8 @@ var DEFAULT_LABELS7 = {
|
|
|
2662
3651
|
phoneMinDigitsError: "Phone number must be at least 10 digits",
|
|
2663
3652
|
invalidEmailOrPhoneError: "Please enter a valid email or phone number",
|
|
2664
3653
|
identityPhoneMustStartWithPlusError: "Phone number must start with +",
|
|
2665
|
-
identityPhoneMustBeOnlyDigitsError: "Phone number must contain only numbers after +"
|
|
3654
|
+
identityPhoneMustBeOnlyDigitsError: "Phone number must contain only numbers after +",
|
|
3655
|
+
phoneInvalidLengthError: "Phone number must be between 4-15 digits"
|
|
2666
3656
|
}
|
|
2667
3657
|
};
|
|
2668
3658
|
|
|
@@ -3147,7 +4137,7 @@ var detectEmailOrPhoneStrict = (value) => {
|
|
|
3147
4137
|
if (value.includes("@")) return "email";
|
|
3148
4138
|
if (value.startsWith("+")) return "phone";
|
|
3149
4139
|
if (/^0\d/.test(value)) return "phone";
|
|
3150
|
-
if (
|
|
4140
|
+
if (DIGITS_ONLY_REGEX.test(value) && value.length >= 4) return "phone";
|
|
3151
4141
|
return "none";
|
|
3152
4142
|
};
|
|
3153
4143
|
var InputDynamic = ({
|
|
@@ -3184,7 +4174,7 @@ var InputDynamic = ({
|
|
|
3184
4174
|
hasError = false,
|
|
3185
4175
|
autoComplete,
|
|
3186
4176
|
onInput,
|
|
3187
|
-
onlyCountries,
|
|
4177
|
+
onlyCountries = ["id"],
|
|
3188
4178
|
contentAfter,
|
|
3189
4179
|
onChange,
|
|
3190
4180
|
language = "id",
|
|
@@ -3207,6 +4197,23 @@ var InputDynamic = ({
|
|
|
3207
4197
|
const emailOrPhoneInputRef = useRef(null);
|
|
3208
4198
|
const shouldFocusRef = useRef(false);
|
|
3209
4199
|
const isBackspaceNavigationRef = useRef(false);
|
|
4200
|
+
const rawEmailOrPhoneInputRef = useRef("");
|
|
4201
|
+
const getPhoneInputValue = (val) => {
|
|
4202
|
+
let cleaned = val.startsWith("+") ? stripNonDigits(val.substring(1)) : stripNonDigits(val);
|
|
4203
|
+
if (onlyCountries && onlyCountries.length > 0 && cleaned) {
|
|
4204
|
+
const matchesAnyCountry = onlyCountries.some((cc) => {
|
|
4205
|
+
const dc = getDialCode(cc);
|
|
4206
|
+
return dc && cleaned.startsWith(dc);
|
|
4207
|
+
});
|
|
4208
|
+
if (!matchesAnyCountry) {
|
|
4209
|
+
const fallbackCode = getDialCode(onlyCountries[0]) || getDialCode(defaultCountry) || "";
|
|
4210
|
+
if (fallbackCode) {
|
|
4211
|
+
cleaned = fallbackCode + cleaned;
|
|
4212
|
+
}
|
|
4213
|
+
}
|
|
4214
|
+
}
|
|
4215
|
+
return cleaned;
|
|
4216
|
+
};
|
|
3210
4217
|
const getSelectStyles = (hasError2, selectAppearance) => {
|
|
3211
4218
|
const currentAppearance = appearance || "outline";
|
|
3212
4219
|
const getControlStyles = (provided, state) => {
|
|
@@ -3398,6 +4405,10 @@ var InputDynamic = ({
|
|
|
3398
4405
|
}
|
|
3399
4406
|
};
|
|
3400
4407
|
const renderInput = (field, error) => {
|
|
4408
|
+
const phoneInputProps = {};
|
|
4409
|
+
if (onlyCountries) {
|
|
4410
|
+
phoneInputProps.onlyCountries = onlyCountries;
|
|
4411
|
+
}
|
|
3401
4412
|
const shouldTransparentBorder = disabled && appearance !== "outline" && appearance !== "underline";
|
|
3402
4413
|
const getPhoneAppearanceClass = () => {
|
|
3403
4414
|
if (appearance === "underline") return styles.phoneInputUnderline;
|
|
@@ -3457,32 +4468,16 @@ var InputDynamic = ({
|
|
|
3457
4468
|
const stringValue = typeof field.value === "string" ? field.value : "";
|
|
3458
4469
|
let inputType = "text";
|
|
3459
4470
|
let inputPlaceholder = placeholder || mergedLabels.emailOrPhonePlaceholder;
|
|
3460
|
-
if (emailOrPhoneType === "
|
|
4471
|
+
if (emailOrPhoneType === "none") {
|
|
4472
|
+
inputType = "text";
|
|
4473
|
+
inputPlaceholder = placeholder || mergedLabels.emailOrPhonePlaceholder;
|
|
4474
|
+
} else if (emailOrPhoneType === "email") {
|
|
3461
4475
|
inputType = "email";
|
|
3462
4476
|
inputPlaceholder = placeholder || mergedLabels.emailPlaceholder;
|
|
3463
4477
|
} else if (emailOrPhoneType === "phone") {
|
|
3464
4478
|
inputType = "tel";
|
|
3465
4479
|
inputPlaceholder = placeholder || mergedLabels.phonePlaceholder;
|
|
3466
4480
|
}
|
|
3467
|
-
const normalizePhoneNumber = (val) => {
|
|
3468
|
-
if (!val) return val;
|
|
3469
|
-
if (val.startsWith("08")) {
|
|
3470
|
-
return "+62" + val.substring(1);
|
|
3471
|
-
}
|
|
3472
|
-
if (val.startsWith("62") && !val.startsWith("+")) {
|
|
3473
|
-
return "+" + val;
|
|
3474
|
-
}
|
|
3475
|
-
return val;
|
|
3476
|
-
};
|
|
3477
|
-
const cleanPhoneValue = (val) => {
|
|
3478
|
-
if (!val) return val;
|
|
3479
|
-
const match = val.match(/^(\d{1,4})(0\d+)$/);
|
|
3480
|
-
if (match) {
|
|
3481
|
-
return match[1] + match[2].substring(1);
|
|
3482
|
-
}
|
|
3483
|
-
return val;
|
|
3484
|
-
};
|
|
3485
|
-
emailOrPhoneType === "phone" ? cleanPhoneValue(stringValue) : stringValue;
|
|
3486
4481
|
return /* @__PURE__ */ jsx("div", { className: styles.phoneContainer, children: emailOrPhoneType === "phone" ? /* @__PURE__ */ jsx(
|
|
3487
4482
|
"div",
|
|
3488
4483
|
{
|
|
@@ -3492,44 +4487,86 @@ var InputDynamic = ({
|
|
|
3492
4487
|
phoneAppearanceClass,
|
|
3493
4488
|
error ? styles.phoneInputError : ""
|
|
3494
4489
|
),
|
|
4490
|
+
onKeyDownCapture: (e) => {
|
|
4491
|
+
if (CONTROL_KEYS.includes(e.key)) return;
|
|
4492
|
+
if (e.key.length !== 1) return;
|
|
4493
|
+
if (!DIGITS_ONLY_REGEX.test(e.key)) {
|
|
4494
|
+
e.preventDefault();
|
|
4495
|
+
const fieldStr = typeof field.value === "string" ? field.value : "";
|
|
4496
|
+
const fieldDigits = stripNonDigits(fieldStr.replace(/^\+/, ""));
|
|
4497
|
+
const activeDialCode = getDialCode(onlyCountries?.[0] || defaultCountry) || "";
|
|
4498
|
+
const userDigitsFromField = activeDialCode && fieldDigits.startsWith(activeDialCode) ? fieldDigits.slice(activeDialCode.length) : fieldDigits;
|
|
4499
|
+
const hadTrunkPrefix = rawEmailOrPhoneInputRef.current.startsWith("08");
|
|
4500
|
+
const rawInput = hadTrunkPrefix ? "08" + userDigitsFromField : userDigitsFromField;
|
|
4501
|
+
const newValue = rawInput + e.key;
|
|
4502
|
+
shouldFocusRef.current = true;
|
|
4503
|
+
rawEmailOrPhoneInputRef.current = newValue;
|
|
4504
|
+
field.onChange(newValue);
|
|
4505
|
+
setLastEmailOrPhoneValue("");
|
|
4506
|
+
updateEmailOrPhoneType(newValue);
|
|
4507
|
+
}
|
|
4508
|
+
},
|
|
3495
4509
|
children: /* @__PURE__ */ jsx(
|
|
3496
4510
|
PhoneInput,
|
|
3497
4511
|
{
|
|
4512
|
+
...phoneInputProps,
|
|
3498
4513
|
countryCodeEditable: false,
|
|
3499
4514
|
inputStyle: phoneInputSizeStyle,
|
|
3500
4515
|
country: defaultCountry.toLowerCase(),
|
|
3501
|
-
value:
|
|
4516
|
+
value: getPhoneInputValue(stringValue),
|
|
3502
4517
|
onChange: (value, data) => {
|
|
3503
4518
|
if (!value) {
|
|
3504
4519
|
shouldFocusRef.current = true;
|
|
3505
4520
|
field.onChange("");
|
|
3506
4521
|
updateEmailOrPhoneType("");
|
|
3507
4522
|
setLastEmailOrPhoneValue("");
|
|
4523
|
+
rawEmailOrPhoneInputRef.current = "";
|
|
3508
4524
|
return;
|
|
3509
4525
|
}
|
|
3510
4526
|
const countryDialCode = data?.dialCode || "";
|
|
3511
|
-
|
|
4527
|
+
const cleanedValue = removeLeadingZeroAfterDialCode(value, countryDialCode);
|
|
4528
|
+
if (cleanedValue === countryDialCode) {
|
|
3512
4529
|
const dialCodeChanged = lastEmailOrPhoneValue && lastEmailOrPhoneValue !== countryDialCode && !lastEmailOrPhoneValue.startsWith(countryDialCode);
|
|
3513
4530
|
const isInitial = !lastEmailOrPhoneValue;
|
|
3514
4531
|
const wasFullNumber = lastEmailOrPhoneValue && lastEmailOrPhoneValue.length > 3;
|
|
3515
4532
|
if (isInitial || dialCodeChanged || wasFullNumber) {
|
|
3516
|
-
const phoneValue2 = "+" +
|
|
4533
|
+
const phoneValue2 = "+" + cleanedValue;
|
|
3517
4534
|
field.onChange(phoneValue2);
|
|
3518
4535
|
updateEmailOrPhoneType(phoneValue2);
|
|
3519
|
-
setLastEmailOrPhoneValue(
|
|
4536
|
+
setLastEmailOrPhoneValue(cleanedValue);
|
|
3520
4537
|
return;
|
|
3521
4538
|
} else {
|
|
3522
4539
|
shouldFocusRef.current = true;
|
|
3523
4540
|
field.onChange("");
|
|
3524
4541
|
updateEmailOrPhoneType("");
|
|
3525
4542
|
setLastEmailOrPhoneValue("");
|
|
4543
|
+
rawEmailOrPhoneInputRef.current = "";
|
|
3526
4544
|
return;
|
|
3527
4545
|
}
|
|
3528
4546
|
}
|
|
3529
|
-
const phoneValue = "+" +
|
|
4547
|
+
const phoneValue = "+" + cleanedValue;
|
|
3530
4548
|
field.onChange(phoneValue);
|
|
3531
4549
|
updateEmailOrPhoneType(phoneValue);
|
|
3532
|
-
setLastEmailOrPhoneValue(
|
|
4550
|
+
setLastEmailOrPhoneValue(cleanedValue);
|
|
4551
|
+
},
|
|
4552
|
+
inputProps: {
|
|
4553
|
+
onPaste: (e) => {
|
|
4554
|
+
const raw = e.clipboardData.getData("text");
|
|
4555
|
+
const normalized = normalizeRawPhoneInput(raw);
|
|
4556
|
+
if (normalized && !normalized.startsWith("+")) {
|
|
4557
|
+
e.preventDefault();
|
|
4558
|
+
const digitsOnly = normalized.replace(/^0+/, "");
|
|
4559
|
+
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
|
|
4560
|
+
window.HTMLInputElement.prototype,
|
|
4561
|
+
"value"
|
|
4562
|
+
)?.set;
|
|
4563
|
+
const inputEl = e.currentTarget;
|
|
4564
|
+
if (nativeInputValueSetter) {
|
|
4565
|
+
nativeInputValueSetter.call(inputEl, digitsOnly);
|
|
4566
|
+
inputEl.dispatchEvent(new Event("input", { bubbles: true }));
|
|
4567
|
+
}
|
|
4568
|
+
}
|
|
4569
|
+
}
|
|
3533
4570
|
},
|
|
3534
4571
|
placeholder: inputPlaceholder,
|
|
3535
4572
|
disabled,
|
|
@@ -3546,16 +4583,28 @@ var InputDynamic = ({
|
|
|
3546
4583
|
autoComplete: autoComplete || "off",
|
|
3547
4584
|
onChange: (e) => {
|
|
3548
4585
|
const newValue = e.target.value;
|
|
3549
|
-
const
|
|
4586
|
+
const detectedType = detectEmailOrPhoneStrict(newValue);
|
|
4587
|
+
const willSwitchType = emailOrPhoneType !== detectedType;
|
|
3550
4588
|
if (willSwitchType) shouldFocusRef.current = true;
|
|
4589
|
+
rawEmailOrPhoneInputRef.current = newValue;
|
|
3551
4590
|
let normalizedValue = newValue;
|
|
3552
|
-
const detectedType = detectEmailOrPhoneStrict(newValue);
|
|
3553
4591
|
if (detectedType === "phone") {
|
|
3554
|
-
normalizedValue =
|
|
4592
|
+
normalizedValue = localToInternational(newValue, defaultCountry);
|
|
3555
4593
|
}
|
|
3556
4594
|
field.onChange(normalizedValue);
|
|
3557
4595
|
updateEmailOrPhoneType(normalizedValue);
|
|
3558
4596
|
},
|
|
4597
|
+
onPaste: (e) => {
|
|
4598
|
+
const raw = e.clipboardData?.getData("text") ?? "";
|
|
4599
|
+
const detectedType = detectEmailOrPhoneStrict(raw);
|
|
4600
|
+
if (detectedType === "phone") {
|
|
4601
|
+
e.preventDefault();
|
|
4602
|
+
rawEmailOrPhoneInputRef.current = raw;
|
|
4603
|
+
const normalized = localToInternational(raw, defaultCountry);
|
|
4604
|
+
field.onChange(normalized);
|
|
4605
|
+
updateEmailOrPhoneType(normalized);
|
|
4606
|
+
}
|
|
4607
|
+
},
|
|
3559
4608
|
className: classNameSize,
|
|
3560
4609
|
placeholder: inputPlaceholder,
|
|
3561
4610
|
disabled,
|
|
@@ -3581,16 +4630,6 @@ var InputDynamic = ({
|
|
|
3581
4630
|
inputType = "text";
|
|
3582
4631
|
inputPlaceholder = placeholder || mergedLabels.identityIdPlaceholder;
|
|
3583
4632
|
}
|
|
3584
|
-
const cleanPhoneValue = (val) => {
|
|
3585
|
-
if (!val) return val;
|
|
3586
|
-
const stringVal = String(val);
|
|
3587
|
-
const match = stringVal.match(/^(\d{1,4})(0\d+)$/);
|
|
3588
|
-
if (match) {
|
|
3589
|
-
return match[1] + match[2].substring(1);
|
|
3590
|
-
}
|
|
3591
|
-
return stringVal;
|
|
3592
|
-
};
|
|
3593
|
-
identityType === "phone" ? cleanPhoneValue(stringValue) : stringValue;
|
|
3594
4633
|
return /* @__PURE__ */ jsx("div", { className: styles.phoneContainer, children: identityType === "phone" ? /* @__PURE__ */ jsx(
|
|
3595
4634
|
"div",
|
|
3596
4635
|
{
|
|
@@ -3603,9 +4642,10 @@ var InputDynamic = ({
|
|
|
3603
4642
|
children: /* @__PURE__ */ jsx(
|
|
3604
4643
|
PhoneInput,
|
|
3605
4644
|
{
|
|
4645
|
+
...phoneInputProps,
|
|
3606
4646
|
countryCodeEditable: false,
|
|
3607
4647
|
country: defaultCountry.toLowerCase(),
|
|
3608
|
-
value:
|
|
4648
|
+
value: getPhoneInputValue(stringValue),
|
|
3609
4649
|
onChange: (value, data) => {
|
|
3610
4650
|
if (!value) {
|
|
3611
4651
|
shouldFocusRef.current = true;
|
|
@@ -3615,15 +4655,16 @@ var InputDynamic = ({
|
|
|
3615
4655
|
return;
|
|
3616
4656
|
}
|
|
3617
4657
|
const countryDialCode = data?.dialCode || "";
|
|
3618
|
-
|
|
4658
|
+
const cleanedValue = removeLeadingZeroAfterDialCode(value, countryDialCode);
|
|
4659
|
+
if (cleanedValue === countryDialCode) {
|
|
3619
4660
|
const dialCodeChanged = lastPhoneValue && lastPhoneValue !== countryDialCode && !lastPhoneValue.startsWith(countryDialCode);
|
|
3620
4661
|
const isInitial = !lastPhoneValue;
|
|
3621
4662
|
const wasFullNumber = lastPhoneValue && lastPhoneValue.length > 3;
|
|
3622
4663
|
if (isInitial || dialCodeChanged || wasFullNumber) {
|
|
3623
|
-
const phoneValue2 = "+" +
|
|
4664
|
+
const phoneValue2 = "+" + cleanedValue;
|
|
3624
4665
|
field.onChange(phoneValue2);
|
|
3625
4666
|
updateIdentityType(phoneValue2);
|
|
3626
|
-
setLastPhoneValue(
|
|
4667
|
+
setLastPhoneValue(cleanedValue);
|
|
3627
4668
|
return;
|
|
3628
4669
|
} else {
|
|
3629
4670
|
shouldFocusRef.current = true;
|
|
@@ -3633,10 +4674,29 @@ var InputDynamic = ({
|
|
|
3633
4674
|
return;
|
|
3634
4675
|
}
|
|
3635
4676
|
}
|
|
3636
|
-
const phoneValue = "+" +
|
|
4677
|
+
const phoneValue = "+" + cleanedValue;
|
|
3637
4678
|
field.onChange(phoneValue);
|
|
3638
4679
|
updateIdentityType(phoneValue);
|
|
3639
|
-
setLastPhoneValue(
|
|
4680
|
+
setLastPhoneValue(cleanedValue);
|
|
4681
|
+
},
|
|
4682
|
+
inputProps: {
|
|
4683
|
+
onPaste: (e) => {
|
|
4684
|
+
const raw = e.clipboardData.getData("text");
|
|
4685
|
+
const normalized = normalizeRawPhoneInput(raw);
|
|
4686
|
+
if (normalized && !normalized.startsWith("+")) {
|
|
4687
|
+
e.preventDefault();
|
|
4688
|
+
const digitsOnly = normalized.replace(/^0+/, "");
|
|
4689
|
+
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
|
|
4690
|
+
window.HTMLInputElement.prototype,
|
|
4691
|
+
"value"
|
|
4692
|
+
)?.set;
|
|
4693
|
+
const inputEl = e.currentTarget;
|
|
4694
|
+
if (nativeInputValueSetter) {
|
|
4695
|
+
nativeInputValueSetter.call(inputEl, digitsOnly);
|
|
4696
|
+
inputEl.dispatchEvent(new Event("input", { bubbles: true }));
|
|
4697
|
+
}
|
|
4698
|
+
}
|
|
4699
|
+
}
|
|
3640
4700
|
},
|
|
3641
4701
|
placeholder: inputPlaceholder,
|
|
3642
4702
|
disabled,
|
|
@@ -3655,10 +4715,15 @@ var InputDynamic = ({
|
|
|
3655
4715
|
autoComplete: autoComplete || "off",
|
|
3656
4716
|
onChange: (e) => {
|
|
3657
4717
|
const newValue = e.target.value;
|
|
3658
|
-
const
|
|
4718
|
+
const detectedType = detectIdentityType(newValue);
|
|
4719
|
+
const willSwitchType = identityType !== detectedType;
|
|
3659
4720
|
if (willSwitchType) shouldFocusRef.current = true;
|
|
3660
|
-
|
|
3661
|
-
|
|
4721
|
+
let normalizedValue = newValue;
|
|
4722
|
+
if (detectedType === "phone") {
|
|
4723
|
+
normalizedValue = localToInternational(newValue, defaultCountry);
|
|
4724
|
+
}
|
|
4725
|
+
field.onChange(normalizedValue);
|
|
4726
|
+
updateIdentityType(normalizedValue);
|
|
3662
4727
|
},
|
|
3663
4728
|
placeholder: inputPlaceholder,
|
|
3664
4729
|
disabled,
|
|
@@ -3784,20 +4849,8 @@ var InputDynamic = ({
|
|
|
3784
4849
|
}
|
|
3785
4850
|
);
|
|
3786
4851
|
case "phone": {
|
|
3787
|
-
const
|
|
3788
|
-
|
|
3789
|
-
const stringVal = String(val);
|
|
3790
|
-
const match = stringVal.match(/^(\d{1,4})(0\d+)$/);
|
|
3791
|
-
if (match) {
|
|
3792
|
-
return match[1] + match[2].substring(1);
|
|
3793
|
-
}
|
|
3794
|
-
return stringVal;
|
|
3795
|
-
};
|
|
3796
|
-
const cleanedFieldValue = cleanPhoneValue(field.value || "");
|
|
3797
|
-
const phoneInputProps = {};
|
|
3798
|
-
if (onlyCountries) {
|
|
3799
|
-
phoneInputProps.onlyCountries = onlyCountries;
|
|
3800
|
-
}
|
|
4852
|
+
const stringValue = typeof field.value === "string" ? field.value : "";
|
|
4853
|
+
const cleanedFieldValue = getPhoneInputValue(stringValue);
|
|
3801
4854
|
return /* @__PURE__ */ jsx(
|
|
3802
4855
|
"div",
|
|
3803
4856
|
{
|
|
@@ -3817,8 +4870,35 @@ var InputDynamic = ({
|
|
|
3817
4870
|
enableSearch: true,
|
|
3818
4871
|
inputStyle: phoneInputSizeStyle,
|
|
3819
4872
|
onChange: (value, data) => {
|
|
3820
|
-
|
|
3821
|
-
|
|
4873
|
+
if (!value) {
|
|
4874
|
+
field.onChange("");
|
|
4875
|
+
return;
|
|
4876
|
+
}
|
|
4877
|
+
const dialCode = data?.dialCode || "";
|
|
4878
|
+
let cleanedValue = removeLeadingZeroAfterDialCode(value, dialCode);
|
|
4879
|
+
if (cleanedValue.length > PHONE_MAX_DIGITS) {
|
|
4880
|
+
cleanedValue = cleanedValue.substring(0, PHONE_MAX_DIGITS);
|
|
4881
|
+
}
|
|
4882
|
+
field.onChange("+" + cleanedValue);
|
|
4883
|
+
},
|
|
4884
|
+
inputProps: {
|
|
4885
|
+
onPaste: (e) => {
|
|
4886
|
+
const raw = e.clipboardData.getData("text");
|
|
4887
|
+
const normalized = normalizeRawPhoneInput(raw);
|
|
4888
|
+
if (normalized && !normalized.startsWith("+")) {
|
|
4889
|
+
e.preventDefault();
|
|
4890
|
+
const digitsOnly = normalized.replace(/^0+/, "");
|
|
4891
|
+
const nativeInputValueSetter = Object.getOwnPropertyDescriptor(
|
|
4892
|
+
window.HTMLInputElement.prototype,
|
|
4893
|
+
"value"
|
|
4894
|
+
)?.set;
|
|
4895
|
+
const inputEl = e.currentTarget;
|
|
4896
|
+
if (nativeInputValueSetter) {
|
|
4897
|
+
nativeInputValueSetter.call(inputEl, digitsOnly);
|
|
4898
|
+
inputEl.dispatchEvent(new Event("input", { bubbles: true }));
|
|
4899
|
+
}
|
|
4900
|
+
}
|
|
4901
|
+
}
|
|
3822
4902
|
},
|
|
3823
4903
|
placeholder: placeholder || mergedLabels.phoneDefaultPlaceholder,
|
|
3824
4904
|
value: cleanedFieldValue
|
|
@@ -4174,21 +5254,13 @@ var InputDynamic = ({
|
|
|
4174
5254
|
if (!stringValue) return true;
|
|
4175
5255
|
const detectedType = detectEmailOrPhoneStrict(stringValue);
|
|
4176
5256
|
if (detectedType === "email") {
|
|
4177
|
-
if (
|
|
4178
|
-
stringValue
|
|
4179
|
-
)) {
|
|
5257
|
+
if (!EMAIL_REGEX.test(stringValue)) {
|
|
4180
5258
|
return mergedLabels.invalidEmailFormatError;
|
|
4181
5259
|
}
|
|
4182
5260
|
} else if (detectedType === "phone") {
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4186
|
-
const phoneDigits = stringValue.substring(1);
|
|
4187
|
-
if (!/^\d+$/.test(phoneDigits)) {
|
|
4188
|
-
return mergedLabels.phoneMustBeOnlyDigitsError;
|
|
4189
|
-
}
|
|
4190
|
-
if (phoneDigits.length < 10) {
|
|
4191
|
-
return mergedLabels.phoneMinDigitsError;
|
|
5261
|
+
const phoneDigits = stripNonDigits(stringValue.replace(/^\+/, ""));
|
|
5262
|
+
if (phoneDigits.length > 0 && (phoneDigits.length < PHONE_MIN_DIGITS || phoneDigits.length > PHONE_MAX_DIGITS)) {
|
|
5263
|
+
return mergedLabels.phoneInvalidLengthError;
|
|
4192
5264
|
}
|
|
4193
5265
|
} else {
|
|
4194
5266
|
return mergedLabels.invalidEmailOrPhoneError;
|
|
@@ -4205,18 +5277,13 @@ var InputDynamic = ({
|
|
|
4205
5277
|
if (!stringValue) return true;
|
|
4206
5278
|
const detectedType = detectIdentityType(stringValue);
|
|
4207
5279
|
if (detectedType === "email") {
|
|
4208
|
-
if (
|
|
4209
|
-
stringValue
|
|
4210
|
-
)) {
|
|
5280
|
+
if (!EMAIL_REGEX.test(stringValue)) {
|
|
4211
5281
|
return mergedLabels.invalidEmailFormatError;
|
|
4212
5282
|
}
|
|
4213
5283
|
} else if (detectedType === "phone") {
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
const phoneDigits = stringValue.substring(1);
|
|
4218
|
-
if (!/^\d+$/.test(phoneDigits)) {
|
|
4219
|
-
return mergedLabels.identityPhoneMustBeOnlyDigitsError;
|
|
5284
|
+
const phoneDigits = stripNonDigits(stringValue.replace(/^\+/, ""));
|
|
5285
|
+
if (phoneDigits.length > 0 && (phoneDigits.length < PHONE_MIN_DIGITS || phoneDigits.length > PHONE_MAX_DIGITS)) {
|
|
5286
|
+
return mergedLabels.phoneInvalidLengthError;
|
|
4220
5287
|
}
|
|
4221
5288
|
}
|
|
4222
5289
|
return true;
|
|
@@ -4227,6 +5294,13 @@ var InputDynamic = ({
|
|
|
4227
5294
|
if (required && !value) {
|
|
4228
5295
|
return mergedLabels.requiredFieldError;
|
|
4229
5296
|
}
|
|
5297
|
+
if (value) {
|
|
5298
|
+
const stringValue = typeof value === "string" ? value : String(value);
|
|
5299
|
+
const phoneDigits = stripNonDigits(stringValue.replace(/^\+/, ""));
|
|
5300
|
+
if (phoneDigits.length > 0 && (phoneDigits.length < PHONE_MIN_DIGITS || phoneDigits.length > PHONE_MAX_DIGITS)) {
|
|
5301
|
+
return mergedLabels.phoneInvalidLengthError;
|
|
5302
|
+
}
|
|
5303
|
+
}
|
|
4230
5304
|
return true;
|
|
4231
5305
|
};
|
|
4232
5306
|
}
|
|
@@ -4416,15 +5490,26 @@ var useStyles9 = makeStyles({
|
|
|
4416
5490
|
borderRadius: tokens.borderRadiusCircular
|
|
4417
5491
|
},
|
|
4418
5492
|
serviceMenuCard: {
|
|
5493
|
+
[`@media (min-width: ${extendedTokens.breakpointXs})`]: {
|
|
5494
|
+
margin: tokens.spacingVerticalXL
|
|
5495
|
+
// marginBottom: tokens.spacingVerticalM,
|
|
5496
|
+
},
|
|
5497
|
+
[`@media (min-width: ${extendedTokens.breakpointSm})`]: {
|
|
5498
|
+
margin: tokens.spacingVerticalXL
|
|
5499
|
+
// marginBottom: tokens.spacingVerticalM,
|
|
5500
|
+
},
|
|
4419
5501
|
[`@media (min-width: ${extendedTokens.breakpointMd})`]: {
|
|
4420
|
-
margin: tokens.
|
|
5502
|
+
margin: tokens.spacingVerticalXXL
|
|
5503
|
+
// marginBottom: tokens.spacingVerticalM,
|
|
4421
5504
|
},
|
|
4422
5505
|
[`@media (min-width: ${extendedTokens.breakpointLg})`]: {
|
|
4423
|
-
margin: tokens.
|
|
5506
|
+
margin: tokens.spacingVerticalXXL
|
|
4424
5507
|
},
|
|
4425
5508
|
[`@media (min-width: ${extendedTokens.breakpointXl})`]: {
|
|
4426
|
-
margin: tokens.
|
|
4427
|
-
maxWidth: "70%"
|
|
5509
|
+
margin: tokens.spacingVerticalXXL,
|
|
5510
|
+
maxWidth: "70%",
|
|
5511
|
+
marginLeft: "0px !important",
|
|
5512
|
+
marginRight: "0px !important"
|
|
4428
5513
|
}
|
|
4429
5514
|
},
|
|
4430
5515
|
ticketSearchRow: {
|
|
@@ -4433,13 +5518,13 @@ var useStyles9 = makeStyles({
|
|
|
4433
5518
|
}
|
|
4434
5519
|
},
|
|
4435
5520
|
formContainerCol: {
|
|
4436
|
-
paddingTop:
|
|
4437
|
-
paddingBottom:
|
|
5521
|
+
paddingTop: tokens.spacingVerticalXXL,
|
|
5522
|
+
paddingBottom: tokens.spacingVerticalXXL,
|
|
4438
5523
|
[`@media (max-width: ${extendedTokens.breakpointXl})`]: {
|
|
4439
5524
|
paddingLeft: "20px !important",
|
|
4440
5525
|
paddingRight: "20px !important",
|
|
4441
|
-
marginBottom: "1rem",
|
|
4442
|
-
marginTop: "
|
|
5526
|
+
// marginBottom: "1rem",
|
|
5527
|
+
marginTop: "4rem",
|
|
4443
5528
|
paddingTop: "0px !mportant",
|
|
4444
5529
|
paddingBottom: "0px !mportant"
|
|
4445
5530
|
}
|
|
@@ -4583,7 +5668,7 @@ var CardTicketSearch = ({
|
|
|
4583
5668
|
style: {
|
|
4584
5669
|
display: "flex",
|
|
4585
5670
|
justifyContent: "center",
|
|
4586
|
-
alignItems: "center",
|
|
5671
|
+
// alignItems: "center",
|
|
4587
5672
|
marginBottom: "0px"
|
|
4588
5673
|
},
|
|
4589
5674
|
children: /* @__PURE__ */ jsx(
|
|
@@ -5598,14 +6683,26 @@ var useStyles12 = makeStyles({
|
|
|
5598
6683
|
display: "flex",
|
|
5599
6684
|
gap: "1rem",
|
|
5600
6685
|
marginBottom: "1rem",
|
|
5601
|
-
flexWrap: "
|
|
5602
|
-
marginTop: "1rem"
|
|
6686
|
+
flexWrap: "nowrap",
|
|
6687
|
+
marginTop: "1rem",
|
|
6688
|
+
overflowX: "auto",
|
|
6689
|
+
width: "100%",
|
|
6690
|
+
paddingBottom: "8px",
|
|
6691
|
+
paddingTop: "4px",
|
|
6692
|
+
alignItems: "center",
|
|
6693
|
+
flexShrink: 0,
|
|
6694
|
+
"&::-webkit-scrollbar": {
|
|
6695
|
+
display: "none"
|
|
6696
|
+
},
|
|
6697
|
+
msOverflowStyle: "none",
|
|
6698
|
+
scrollbarWidth: "none"
|
|
5603
6699
|
},
|
|
5604
6700
|
circularButton: {
|
|
5605
6701
|
borderRadius: tokens.borderRadius3XLarge,
|
|
5606
6702
|
border: `1px solid ${tokens.colorBrandBackground}`,
|
|
5607
6703
|
backgroundColor: brandColors["140"],
|
|
5608
|
-
gap: "5px"
|
|
6704
|
+
gap: "5px",
|
|
6705
|
+
flexShrink: 0
|
|
5609
6706
|
},
|
|
5610
6707
|
buttonContent: {
|
|
5611
6708
|
display: "flex",
|
|
@@ -5660,7 +6757,8 @@ var useStyles12 = makeStyles({
|
|
|
5660
6757
|
cursor: "pointer",
|
|
5661
6758
|
display: "flex",
|
|
5662
6759
|
justifyContent: "center",
|
|
5663
|
-
alignItems: "center"
|
|
6760
|
+
alignItems: "center",
|
|
6761
|
+
transition: "all 0.2s ease"
|
|
5664
6762
|
}
|
|
5665
6763
|
});
|
|
5666
6764
|
var HarborListItem = ({
|
|
@@ -5671,23 +6769,34 @@ var HarborListItem = ({
|
|
|
5671
6769
|
containerClassName
|
|
5672
6770
|
}) => {
|
|
5673
6771
|
const styles = useStyles12();
|
|
6772
|
+
const [isHovered, setIsHovered] = React.useState(false);
|
|
5674
6773
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5675
6774
|
/* @__PURE__ */ jsxs("div", { className: containerClassName, children: [
|
|
5676
|
-
/* @__PURE__ */ jsxs(
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
5685
|
-
|
|
5686
|
-
|
|
5687
|
-
|
|
5688
|
-
|
|
5689
|
-
|
|
5690
|
-
|
|
6775
|
+
/* @__PURE__ */ jsxs(
|
|
6776
|
+
"div",
|
|
6777
|
+
{
|
|
6778
|
+
className: styles.listContent,
|
|
6779
|
+
onClick: () => onSelect(harbor),
|
|
6780
|
+
onMouseEnter: () => setIsHovered(true),
|
|
6781
|
+
onMouseLeave: () => setIsHovered(false),
|
|
6782
|
+
children: [
|
|
6783
|
+
/* @__PURE__ */ jsx(
|
|
6784
|
+
Icon,
|
|
6785
|
+
{
|
|
6786
|
+
icon: "fluent:vehicle-ship-24-regular",
|
|
6787
|
+
fontSize: 20,
|
|
6788
|
+
className: styles.iconMargin,
|
|
6789
|
+
color: isHovered ? tokens.colorBrandBackground : void 0
|
|
6790
|
+
}
|
|
6791
|
+
),
|
|
6792
|
+
/* @__PURE__ */ jsxs("div", { style: { textAlign: "left" }, children: [
|
|
6793
|
+
/* @__PURE__ */ jsx(Body1, { style: { color: isHovered ? tokens.colorBrandBackground : void 0, transition: "color 0.2s ease" }, children: harbor.portName }),
|
|
6794
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
6795
|
+
/* @__PURE__ */ jsx(Caption1, { style: { color: isHovered ? tokens.colorBrandBackground : void 0, transition: "color 0.2s ease" }, children: harbor.branchName })
|
|
6796
|
+
] })
|
|
6797
|
+
]
|
|
6798
|
+
}
|
|
6799
|
+
),
|
|
5691
6800
|
trailingIcon
|
|
5692
6801
|
] }),
|
|
5693
6802
|
showDivider && /* @__PURE__ */ jsx(Divider, {})
|
|
@@ -5854,7 +6963,8 @@ var ModalSearchHarbor = ({
|
|
|
5854
6963
|
}
|
|
5855
6964
|
)
|
|
5856
6965
|
] }),
|
|
5857
|
-
favoriteHarbors.length > 0 &&
|
|
6966
|
+
favoriteHarbors.length > 0 && //Make Favorite scroll to vertical
|
|
6967
|
+
/* @__PURE__ */ jsx("div", { className: styles.buttonContainer, children: favoriteHarbors.map((harbor) => /* @__PURE__ */ jsxs(
|
|
5858
6968
|
Button,
|
|
5859
6969
|
{
|
|
5860
6970
|
onClick: () => handleSelect(harbor),
|
|
@@ -6382,35 +7492,37 @@ var useStyles14 = makeStyles({
|
|
|
6382
7492
|
},
|
|
6383
7493
|
headerRow: {
|
|
6384
7494
|
display: "flex",
|
|
6385
|
-
justifyContent: "end",
|
|
7495
|
+
justifyContent: "flex-end",
|
|
6386
7496
|
alignItems: "center",
|
|
6387
|
-
|
|
7497
|
+
marginBottom: "12px",
|
|
7498
|
+
paddingRight: "8px"
|
|
6388
7499
|
},
|
|
6389
7500
|
serviceList: {
|
|
6390
7501
|
display: "flex",
|
|
6391
7502
|
flexDirection: "column",
|
|
6392
|
-
gap: "
|
|
6393
|
-
maxHeight: "
|
|
7503
|
+
gap: "12px",
|
|
7504
|
+
maxHeight: "700px",
|
|
6394
7505
|
overflowY: "auto",
|
|
6395
|
-
|
|
7506
|
+
padding: "2px"
|
|
6396
7507
|
},
|
|
6397
7508
|
serviceItem: {
|
|
6398
|
-
padding: "16px
|
|
6399
|
-
|
|
7509
|
+
padding: "16px",
|
|
7510
|
+
border: `1px solid ${tokens.colorNeutralStroke2}`,
|
|
7511
|
+
borderRadius: "12px",
|
|
6400
7512
|
display: "flex",
|
|
6401
|
-
alignItems: "
|
|
6402
|
-
gap: "
|
|
7513
|
+
alignItems: "center",
|
|
7514
|
+
gap: "16px",
|
|
6403
7515
|
cursor: "pointer",
|
|
6404
|
-
transition: "
|
|
7516
|
+
transition: "border-color 0.2s ease",
|
|
6405
7517
|
":hover": {
|
|
6406
|
-
|
|
7518
|
+
border: `1px solid ${tokens.colorBrandBackground}`
|
|
6407
7519
|
}
|
|
6408
7520
|
},
|
|
6409
7521
|
serviceContent: {
|
|
6410
7522
|
flex: 1,
|
|
6411
7523
|
display: "flex",
|
|
6412
7524
|
flexDirection: "column",
|
|
6413
|
-
gap: "
|
|
7525
|
+
gap: "8px"
|
|
6414
7526
|
},
|
|
6415
7527
|
serviceName: {
|
|
6416
7528
|
fontSize: tokens.fontSizeBase300,
|
|
@@ -6428,8 +7540,10 @@ var useStyles14 = makeStyles({
|
|
|
6428
7540
|
lineHeight: "1.4"
|
|
6429
7541
|
},
|
|
6430
7542
|
footer: {
|
|
6431
|
-
|
|
6432
|
-
|
|
7543
|
+
marginTop: tokens.spacingVerticalL,
|
|
7544
|
+
display: "flex",
|
|
7545
|
+
gap: tokens.spacingHorizontalM,
|
|
7546
|
+
justifyContent: "flex-end"
|
|
6433
7547
|
},
|
|
6434
7548
|
saveButton: {
|
|
6435
7549
|
width: "100%",
|
|
@@ -6447,16 +7561,16 @@ var ServiceListSkeleton = ({
|
|
|
6447
7561
|
style: {
|
|
6448
7562
|
display: "flex",
|
|
6449
7563
|
flexDirection: "column",
|
|
6450
|
-
gap: "
|
|
6451
|
-
width: "
|
|
7564
|
+
gap: "8px",
|
|
7565
|
+
width: "100%"
|
|
6452
7566
|
},
|
|
6453
7567
|
children: [
|
|
6454
7568
|
/* @__PURE__ */ jsx(
|
|
6455
7569
|
SkeletonItem,
|
|
6456
7570
|
{
|
|
6457
7571
|
style: {
|
|
6458
|
-
width: "
|
|
6459
|
-
height: "
|
|
7572
|
+
width: "60%",
|
|
7573
|
+
height: "24px",
|
|
6460
7574
|
borderRadius: "4px"
|
|
6461
7575
|
}
|
|
6462
7576
|
}
|
|
@@ -6465,7 +7579,17 @@ var ServiceListSkeleton = ({
|
|
|
6465
7579
|
SkeletonItem,
|
|
6466
7580
|
{
|
|
6467
7581
|
style: {
|
|
6468
|
-
width: "
|
|
7582
|
+
width: "100px",
|
|
7583
|
+
height: "24px",
|
|
7584
|
+
borderRadius: "12px"
|
|
7585
|
+
}
|
|
7586
|
+
}
|
|
7587
|
+
),
|
|
7588
|
+
/* @__PURE__ */ jsx(
|
|
7589
|
+
SkeletonItem,
|
|
7590
|
+
{
|
|
7591
|
+
style: {
|
|
7592
|
+
width: "90%",
|
|
6469
7593
|
height: "16px",
|
|
6470
7594
|
borderRadius: "4px"
|
|
6471
7595
|
}
|
|
@@ -6475,7 +7599,7 @@ var ServiceListSkeleton = ({
|
|
|
6475
7599
|
SkeletonItem,
|
|
6476
7600
|
{
|
|
6477
7601
|
style: {
|
|
6478
|
-
width: "
|
|
7602
|
+
width: "70%",
|
|
6479
7603
|
height: "16px",
|
|
6480
7604
|
borderRadius: "4px"
|
|
6481
7605
|
}
|
|
@@ -6488,8 +7612,8 @@ var ServiceListSkeleton = ({
|
|
|
6488
7612
|
SkeletonItem,
|
|
6489
7613
|
{
|
|
6490
7614
|
style: {
|
|
6491
|
-
width: "
|
|
6492
|
-
height: "
|
|
7615
|
+
width: "24px",
|
|
7616
|
+
height: "24px",
|
|
6493
7617
|
borderRadius: "4px"
|
|
6494
7618
|
}
|
|
6495
7619
|
}
|
|
@@ -6576,37 +7700,53 @@ var ModalService = ({
|
|
|
6576
7700
|
}
|
|
6577
7701
|
) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
6578
7702
|
/* @__PURE__ */ jsxs("div", { className: styles.serviceList, children: [
|
|
6579
|
-
/* @__PURE__ */
|
|
6580
|
-
|
|
6581
|
-
|
|
6582
|
-
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
6587
|
-
|
|
6588
|
-
] }),
|
|
7703
|
+
/* @__PURE__ */ jsx("div", { className: styles.headerRow, children: /* @__PURE__ */ jsx(
|
|
7704
|
+
Checkbox,
|
|
7705
|
+
{
|
|
7706
|
+
label: mergedLabels.selectAll,
|
|
7707
|
+
checked: selectedServices.length === services.length,
|
|
7708
|
+
onChange: handleToggleAll
|
|
7709
|
+
}
|
|
7710
|
+
) }),
|
|
7711
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
6589
7712
|
services.map((service) => /* @__PURE__ */ jsxs(
|
|
6590
7713
|
"div",
|
|
6591
7714
|
{
|
|
6592
7715
|
className: styles.serviceItem,
|
|
7716
|
+
onClick: () => handleToggleService(service.serviceTypeId),
|
|
6593
7717
|
children: [
|
|
6594
7718
|
/* @__PURE__ */ jsxs("div", { className: styles.serviceContent, children: [
|
|
6595
|
-
/* @__PURE__ */ jsx(Body1, { className: styles.serviceName, children: service.
|
|
6596
|
-
/* @__PURE__ */ jsx(
|
|
7719
|
+
/* @__PURE__ */ jsx(Body1, { className: styles.serviceName, children: service.serviceShortDescription }),
|
|
7720
|
+
/* @__PURE__ */ jsx("div", { style: { alignSelf: "flex-start" }, children: /* @__PURE__ */ jsx(
|
|
7721
|
+
Badge,
|
|
7722
|
+
{
|
|
7723
|
+
appearance: "ghost",
|
|
7724
|
+
style: {
|
|
7725
|
+
backgroundColor: service.serviceTypeColor,
|
|
7726
|
+
color: "#ffffff",
|
|
7727
|
+
border: "none",
|
|
7728
|
+
padding: "4px 10px",
|
|
7729
|
+
height: "auto",
|
|
7730
|
+
borderRadius: "100px"
|
|
7731
|
+
},
|
|
7732
|
+
children: service.serviceTypeName
|
|
7733
|
+
}
|
|
7734
|
+
) }),
|
|
6597
7735
|
/* @__PURE__ */ jsx(Caption1, { className: styles.serviceDescription, children: service.serviceDescription })
|
|
6598
7736
|
] }),
|
|
6599
7737
|
/* @__PURE__ */ jsx(
|
|
6600
7738
|
Checkbox,
|
|
6601
7739
|
{
|
|
6602
7740
|
checked: selectedServices.includes(service.serviceTypeId),
|
|
6603
|
-
onChange: () => handleToggleService(service.serviceTypeId)
|
|
7741
|
+
onChange: () => handleToggleService(service.serviceTypeId),
|
|
7742
|
+
onClick: (e) => e.stopPropagation()
|
|
6604
7743
|
}
|
|
6605
7744
|
)
|
|
6606
7745
|
]
|
|
6607
7746
|
},
|
|
6608
7747
|
service.serviceTypeId
|
|
6609
|
-
))
|
|
7748
|
+
)),
|
|
7749
|
+
/* @__PURE__ */ jsx(Divider, {})
|
|
6610
7750
|
] }),
|
|
6611
7751
|
/* @__PURE__ */ jsx("div", { className: styles.footer, children: /* @__PURE__ */ jsx(
|
|
6612
7752
|
Button,
|
|
@@ -6659,7 +7799,12 @@ var useStyles15 = makeStyles({
|
|
|
6659
7799
|
accordionItem: {
|
|
6660
7800
|
borderRadius: tokens.borderRadiusXLarge,
|
|
6661
7801
|
marginBottom: "1rem",
|
|
6662
|
-
border: `1px solid ${tokens.colorNeutralStroke2}
|
|
7802
|
+
border: `1px solid ${tokens.colorNeutralStroke2}`,
|
|
7803
|
+
cursor: "pointer",
|
|
7804
|
+
transition: "border-color 0.2s ease",
|
|
7805
|
+
"&:hover": {
|
|
7806
|
+
border: `1px solid ${tokens.colorBrandBackground}`
|
|
7807
|
+
}
|
|
6663
7808
|
},
|
|
6664
7809
|
passengerCount: {
|
|
6665
7810
|
display: "flex",
|
|
@@ -7209,6 +8354,111 @@ var TypeOfServiceListSkeleton = ({ count = 3 }) => {
|
|
|
7209
8354
|
}
|
|
7210
8355
|
);
|
|
7211
8356
|
};
|
|
8357
|
+
var HoverableAccordionHeaderContent = ({
|
|
8358
|
+
item,
|
|
8359
|
+
imageRenderer,
|
|
8360
|
+
styles
|
|
8361
|
+
}) => {
|
|
8362
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
8363
|
+
return /* @__PURE__ */ jsxs(
|
|
8364
|
+
"div",
|
|
8365
|
+
{
|
|
8366
|
+
style: {
|
|
8367
|
+
display: "flex",
|
|
8368
|
+
alignItems: "center",
|
|
8369
|
+
width: "100%",
|
|
8370
|
+
cursor: "pointer"
|
|
8371
|
+
},
|
|
8372
|
+
onMouseEnter: () => setIsHovered(true),
|
|
8373
|
+
onMouseLeave: () => setIsHovered(false),
|
|
8374
|
+
children: [
|
|
8375
|
+
/* @__PURE__ */ jsx("div", { children: imageRenderer({
|
|
8376
|
+
src: item.image,
|
|
8377
|
+
alt: item.title,
|
|
8378
|
+
width: 74,
|
|
8379
|
+
height: 74
|
|
8380
|
+
}) }),
|
|
8381
|
+
/* @__PURE__ */ jsxs("div", { className: styles.accordionTitleAndInfo, children: [
|
|
8382
|
+
/* @__PURE__ */ jsx(
|
|
8383
|
+
Body1,
|
|
8384
|
+
{
|
|
8385
|
+
style: {
|
|
8386
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8387
|
+
transition: "color 0.2s ease"
|
|
8388
|
+
},
|
|
8389
|
+
children: item.title
|
|
8390
|
+
}
|
|
8391
|
+
),
|
|
8392
|
+
/* @__PURE__ */ jsx(
|
|
8393
|
+
Caption1,
|
|
8394
|
+
{
|
|
8395
|
+
style: {
|
|
8396
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8397
|
+
transition: "color 0.2s ease"
|
|
8398
|
+
},
|
|
8399
|
+
children: item.info
|
|
8400
|
+
}
|
|
8401
|
+
)
|
|
8402
|
+
] })
|
|
8403
|
+
]
|
|
8404
|
+
}
|
|
8405
|
+
);
|
|
8406
|
+
};
|
|
8407
|
+
var HoverableRadioItem = ({
|
|
8408
|
+
item,
|
|
8409
|
+
imageRenderer,
|
|
8410
|
+
styles,
|
|
8411
|
+
isChild = false
|
|
8412
|
+
}) => {
|
|
8413
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
8414
|
+
return /* @__PURE__ */ jsxs(
|
|
8415
|
+
"div",
|
|
8416
|
+
{
|
|
8417
|
+
className: mergeClasses(styles.accordionHeader, styles.accordionItem),
|
|
8418
|
+
style: { padding: tokens.spacingHorizontalXS, cursor: "pointer" },
|
|
8419
|
+
onMouseEnter: () => setIsHovered(true),
|
|
8420
|
+
onMouseLeave: () => setIsHovered(false),
|
|
8421
|
+
children: [
|
|
8422
|
+
/* @__PURE__ */ jsx("div", { style: isChild ? void 0 : { marginLeft: 2 }, children: imageRenderer({
|
|
8423
|
+
src: item.image,
|
|
8424
|
+
alt: item.title,
|
|
8425
|
+
width: isChild ? 48 : 74,
|
|
8426
|
+
height: isChild ? 48 : 74
|
|
8427
|
+
}) }),
|
|
8428
|
+
/* @__PURE__ */ jsxs(
|
|
8429
|
+
"div",
|
|
8430
|
+
{
|
|
8431
|
+
className: styles.accordionTitleAndInfo,
|
|
8432
|
+
style: isChild ? void 0 : { marginLeft: 18 },
|
|
8433
|
+
children: [
|
|
8434
|
+
/* @__PURE__ */ jsx(
|
|
8435
|
+
Body1,
|
|
8436
|
+
{
|
|
8437
|
+
style: {
|
|
8438
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8439
|
+
transition: "color 0.2s ease"
|
|
8440
|
+
},
|
|
8441
|
+
children: item.title
|
|
8442
|
+
}
|
|
8443
|
+
),
|
|
8444
|
+
/* @__PURE__ */ jsx(
|
|
8445
|
+
Caption1,
|
|
8446
|
+
{
|
|
8447
|
+
style: {
|
|
8448
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8449
|
+
transition: "color 0.2s ease"
|
|
8450
|
+
},
|
|
8451
|
+
children: item.info
|
|
8452
|
+
}
|
|
8453
|
+
)
|
|
8454
|
+
]
|
|
8455
|
+
}
|
|
8456
|
+
),
|
|
8457
|
+
/* @__PURE__ */ jsx(Radio, { value: String(item.id) })
|
|
8458
|
+
]
|
|
8459
|
+
}
|
|
8460
|
+
);
|
|
8461
|
+
};
|
|
7212
8462
|
var ModalTypeOfService = ({
|
|
7213
8463
|
language = "id",
|
|
7214
8464
|
labels,
|
|
@@ -7367,54 +8617,28 @@ var ModalTypeOfService = ({
|
|
|
7367
8617
|
value: item?.id,
|
|
7368
8618
|
className: styles.accordionItem,
|
|
7369
8619
|
children: [
|
|
7370
|
-
/* @__PURE__ */
|
|
8620
|
+
/* @__PURE__ */ jsx(
|
|
7371
8621
|
AccordionHeader,
|
|
7372
8622
|
{
|
|
7373
8623
|
className: styles.accordionHeader,
|
|
7374
8624
|
expandIconPosition: "end",
|
|
7375
|
-
children:
|
|
7376
|
-
|
|
7377
|
-
|
|
7378
|
-
|
|
7379
|
-
|
|
7380
|
-
|
|
7381
|
-
}
|
|
7382
|
-
|
|
7383
|
-
/* @__PURE__ */ jsx(Body1, { children: item.title }),
|
|
7384
|
-
/* @__PURE__ */ jsx(Caption1, { children: item.info })
|
|
7385
|
-
] })
|
|
7386
|
-
]
|
|
8625
|
+
children: /* @__PURE__ */ jsx(
|
|
8626
|
+
HoverableAccordionHeaderContent,
|
|
8627
|
+
{
|
|
8628
|
+
item,
|
|
8629
|
+
imageRenderer,
|
|
8630
|
+
styles
|
|
8631
|
+
}
|
|
8632
|
+
)
|
|
7387
8633
|
}
|
|
7388
8634
|
),
|
|
7389
|
-
/* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionBody, children: item.children.length > 0 && item.children.map((childItem, childIndex) => /* @__PURE__ */
|
|
7390
|
-
|
|
8635
|
+
/* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionBody, children: item.children.length > 0 && item.children.map((childItem, childIndex) => /* @__PURE__ */ jsx(
|
|
8636
|
+
HoverableRadioItem,
|
|
7391
8637
|
{
|
|
7392
|
-
|
|
7393
|
-
|
|
7394
|
-
|
|
7395
|
-
|
|
7396
|
-
style: {
|
|
7397
|
-
padding: tokens.spacingHorizontalXS
|
|
7398
|
-
},
|
|
7399
|
-
children: [
|
|
7400
|
-
/* @__PURE__ */ jsx("div", { children: imageRenderer({
|
|
7401
|
-
src: childItem.image,
|
|
7402
|
-
alt: childItem.title,
|
|
7403
|
-
width: 48,
|
|
7404
|
-
height: 48
|
|
7405
|
-
}) }),
|
|
7406
|
-
/* @__PURE__ */ jsxs(
|
|
7407
|
-
"div",
|
|
7408
|
-
{
|
|
7409
|
-
className: styles.accordionTitleAndInfo,
|
|
7410
|
-
children: [
|
|
7411
|
-
/* @__PURE__ */ jsx(Body1, { children: childItem.title }),
|
|
7412
|
-
/* @__PURE__ */ jsx(Caption1, { children: childItem.info })
|
|
7413
|
-
]
|
|
7414
|
-
}
|
|
7415
|
-
),
|
|
7416
|
-
/* @__PURE__ */ jsx(Radio, { value: String(childItem.id) })
|
|
7417
|
-
]
|
|
8638
|
+
item: childItem,
|
|
8639
|
+
imageRenderer,
|
|
8640
|
+
styles,
|
|
8641
|
+
isChild: true
|
|
7418
8642
|
},
|
|
7419
8643
|
childIndex
|
|
7420
8644
|
)) })
|
|
@@ -7423,34 +8647,13 @@ var ModalTypeOfService = ({
|
|
|
7423
8647
|
index
|
|
7424
8648
|
);
|
|
7425
8649
|
} else if (item.children.length === 0) {
|
|
7426
|
-
return /* @__PURE__ */
|
|
7427
|
-
|
|
8650
|
+
return /* @__PURE__ */ jsx(
|
|
8651
|
+
HoverableRadioItem,
|
|
7428
8652
|
{
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
style: { padding: tokens.spacingHorizontalXS },
|
|
7434
|
-
children: [
|
|
7435
|
-
/* @__PURE__ */ jsx("div", { style: { marginLeft: 2 }, children: imageRenderer({
|
|
7436
|
-
src: item.image,
|
|
7437
|
-
alt: item.title,
|
|
7438
|
-
width: 74,
|
|
7439
|
-
height: 74
|
|
7440
|
-
}) }),
|
|
7441
|
-
/* @__PURE__ */ jsxs(
|
|
7442
|
-
"div",
|
|
7443
|
-
{
|
|
7444
|
-
className: styles.accordionTitleAndInfo,
|
|
7445
|
-
style: { marginLeft: 18 },
|
|
7446
|
-
children: [
|
|
7447
|
-
/* @__PURE__ */ jsx(Body1, { children: item.title }),
|
|
7448
|
-
/* @__PURE__ */ jsx(Caption1, { children: item.info })
|
|
7449
|
-
]
|
|
7450
|
-
}
|
|
7451
|
-
),
|
|
7452
|
-
/* @__PURE__ */ jsx(Radio, { value: String(item.id) })
|
|
7453
|
-
]
|
|
8653
|
+
item,
|
|
8654
|
+
imageRenderer,
|
|
8655
|
+
styles,
|
|
8656
|
+
isChild: false
|
|
7454
8657
|
},
|
|
7455
8658
|
index
|
|
7456
8659
|
);
|