@asdp/ferryui 0.1.22-dev.9360 → 0.1.22-dev.9417
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 +7 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1574 -364
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1575 -365
- 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,
|
|
@@ -3707,8 +4772,14 @@ var InputDynamic = ({
|
|
|
3707
4772
|
if (isMultiSelect) {
|
|
3708
4773
|
const values = selectedOption ? selectedOption.map((opt) => opt.value) : [];
|
|
3709
4774
|
field.onChange(values);
|
|
4775
|
+
if (onChange) {
|
|
4776
|
+
onChange(values);
|
|
4777
|
+
}
|
|
3710
4778
|
} else {
|
|
3711
4779
|
field.onChange(selectedOption ? selectedOption.value : "");
|
|
4780
|
+
if (onChange) {
|
|
4781
|
+
onChange(selectedOption ? selectedOption.value : "");
|
|
4782
|
+
}
|
|
3712
4783
|
}
|
|
3713
4784
|
},
|
|
3714
4785
|
getOptionLabel: (option) => option.label,
|
|
@@ -3778,20 +4849,8 @@ var InputDynamic = ({
|
|
|
3778
4849
|
}
|
|
3779
4850
|
);
|
|
3780
4851
|
case "phone": {
|
|
3781
|
-
const
|
|
3782
|
-
|
|
3783
|
-
const stringVal = String(val);
|
|
3784
|
-
const match = stringVal.match(/^(\d{1,4})(0\d+)$/);
|
|
3785
|
-
if (match) {
|
|
3786
|
-
return match[1] + match[2].substring(1);
|
|
3787
|
-
}
|
|
3788
|
-
return stringVal;
|
|
3789
|
-
};
|
|
3790
|
-
const cleanedFieldValue = cleanPhoneValue(field.value || "");
|
|
3791
|
-
const phoneInputProps = {};
|
|
3792
|
-
if (onlyCountries) {
|
|
3793
|
-
phoneInputProps.onlyCountries = onlyCountries;
|
|
3794
|
-
}
|
|
4852
|
+
const stringValue = typeof field.value === "string" ? field.value : "";
|
|
4853
|
+
const cleanedFieldValue = getPhoneInputValue(stringValue);
|
|
3795
4854
|
return /* @__PURE__ */ jsx(
|
|
3796
4855
|
"div",
|
|
3797
4856
|
{
|
|
@@ -3811,8 +4870,35 @@ var InputDynamic = ({
|
|
|
3811
4870
|
enableSearch: true,
|
|
3812
4871
|
inputStyle: phoneInputSizeStyle,
|
|
3813
4872
|
onChange: (value, data) => {
|
|
3814
|
-
|
|
3815
|
-
|
|
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
|
+
}
|
|
3816
4902
|
},
|
|
3817
4903
|
placeholder: placeholder || mergedLabels.phoneDefaultPlaceholder,
|
|
3818
4904
|
value: cleanedFieldValue
|
|
@@ -4168,21 +5254,13 @@ var InputDynamic = ({
|
|
|
4168
5254
|
if (!stringValue) return true;
|
|
4169
5255
|
const detectedType = detectEmailOrPhoneStrict(stringValue);
|
|
4170
5256
|
if (detectedType === "email") {
|
|
4171
|
-
if (
|
|
4172
|
-
stringValue
|
|
4173
|
-
)) {
|
|
5257
|
+
if (!EMAIL_REGEX.test(stringValue)) {
|
|
4174
5258
|
return mergedLabels.invalidEmailFormatError;
|
|
4175
5259
|
}
|
|
4176
5260
|
} else if (detectedType === "phone") {
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
const phoneDigits = stringValue.substring(1);
|
|
4181
|
-
if (!/^\d+$/.test(phoneDigits)) {
|
|
4182
|
-
return mergedLabels.phoneMustBeOnlyDigitsError;
|
|
4183
|
-
}
|
|
4184
|
-
if (phoneDigits.length < 10) {
|
|
4185
|
-
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;
|
|
4186
5264
|
}
|
|
4187
5265
|
} else {
|
|
4188
5266
|
return mergedLabels.invalidEmailOrPhoneError;
|
|
@@ -4199,18 +5277,13 @@ var InputDynamic = ({
|
|
|
4199
5277
|
if (!stringValue) return true;
|
|
4200
5278
|
const detectedType = detectIdentityType(stringValue);
|
|
4201
5279
|
if (detectedType === "email") {
|
|
4202
|
-
if (
|
|
4203
|
-
stringValue
|
|
4204
|
-
)) {
|
|
5280
|
+
if (!EMAIL_REGEX.test(stringValue)) {
|
|
4205
5281
|
return mergedLabels.invalidEmailFormatError;
|
|
4206
5282
|
}
|
|
4207
5283
|
} else if (detectedType === "phone") {
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
const phoneDigits = stringValue.substring(1);
|
|
4212
|
-
if (!/^\d+$/.test(phoneDigits)) {
|
|
4213
|
-
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;
|
|
4214
5287
|
}
|
|
4215
5288
|
}
|
|
4216
5289
|
return true;
|
|
@@ -4221,6 +5294,13 @@ var InputDynamic = ({
|
|
|
4221
5294
|
if (required && !value) {
|
|
4222
5295
|
return mergedLabels.requiredFieldError;
|
|
4223
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
|
+
}
|
|
4224
5304
|
return true;
|
|
4225
5305
|
};
|
|
4226
5306
|
}
|
|
@@ -4410,15 +5490,26 @@ var useStyles9 = makeStyles({
|
|
|
4410
5490
|
borderRadius: tokens.borderRadiusCircular
|
|
4411
5491
|
},
|
|
4412
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
|
+
},
|
|
4413
5501
|
[`@media (min-width: ${extendedTokens.breakpointMd})`]: {
|
|
4414
|
-
margin: tokens.
|
|
5502
|
+
margin: tokens.spacingVerticalXXL
|
|
5503
|
+
// marginBottom: tokens.spacingVerticalM,
|
|
4415
5504
|
},
|
|
4416
5505
|
[`@media (min-width: ${extendedTokens.breakpointLg})`]: {
|
|
4417
|
-
margin: tokens.
|
|
5506
|
+
margin: tokens.spacingVerticalXXL
|
|
4418
5507
|
},
|
|
4419
5508
|
[`@media (min-width: ${extendedTokens.breakpointXl})`]: {
|
|
4420
|
-
margin: tokens.
|
|
4421
|
-
maxWidth: "70%"
|
|
5509
|
+
margin: tokens.spacingVerticalXXL,
|
|
5510
|
+
maxWidth: "70%",
|
|
5511
|
+
marginLeft: "0px !important",
|
|
5512
|
+
marginRight: "0px !important"
|
|
4422
5513
|
}
|
|
4423
5514
|
},
|
|
4424
5515
|
ticketSearchRow: {
|
|
@@ -4427,13 +5518,13 @@ var useStyles9 = makeStyles({
|
|
|
4427
5518
|
}
|
|
4428
5519
|
},
|
|
4429
5520
|
formContainerCol: {
|
|
4430
|
-
paddingTop:
|
|
4431
|
-
paddingBottom:
|
|
5521
|
+
paddingTop: tokens.spacingVerticalXXL,
|
|
5522
|
+
paddingBottom: tokens.spacingVerticalXXL,
|
|
4432
5523
|
[`@media (max-width: ${extendedTokens.breakpointXl})`]: {
|
|
4433
5524
|
paddingLeft: "20px !important",
|
|
4434
5525
|
paddingRight: "20px !important",
|
|
4435
|
-
marginBottom: "1rem",
|
|
4436
|
-
marginTop: "
|
|
5526
|
+
// marginBottom: "1rem",
|
|
5527
|
+
marginTop: "4rem",
|
|
4437
5528
|
paddingTop: "0px !mportant",
|
|
4438
5529
|
paddingBottom: "0px !mportant"
|
|
4439
5530
|
}
|
|
@@ -4577,7 +5668,7 @@ var CardTicketSearch = ({
|
|
|
4577
5668
|
style: {
|
|
4578
5669
|
display: "flex",
|
|
4579
5670
|
justifyContent: "center",
|
|
4580
|
-
alignItems: "center",
|
|
5671
|
+
// alignItems: "center",
|
|
4581
5672
|
marginBottom: "0px"
|
|
4582
5673
|
},
|
|
4583
5674
|
children: /* @__PURE__ */ jsx(
|
|
@@ -5654,7 +6745,8 @@ var useStyles12 = makeStyles({
|
|
|
5654
6745
|
cursor: "pointer",
|
|
5655
6746
|
display: "flex",
|
|
5656
6747
|
justifyContent: "center",
|
|
5657
|
-
alignItems: "center"
|
|
6748
|
+
alignItems: "center",
|
|
6749
|
+
transition: "all 0.2s ease"
|
|
5658
6750
|
}
|
|
5659
6751
|
});
|
|
5660
6752
|
var HarborListItem = ({
|
|
@@ -5665,23 +6757,34 @@ var HarborListItem = ({
|
|
|
5665
6757
|
containerClassName
|
|
5666
6758
|
}) => {
|
|
5667
6759
|
const styles = useStyles12();
|
|
6760
|
+
const [isHovered, setIsHovered] = React.useState(false);
|
|
5668
6761
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5669
6762
|
/* @__PURE__ */ jsxs("div", { className: containerClassName, children: [
|
|
5670
|
-
/* @__PURE__ */ jsxs(
|
|
5671
|
-
|
|
5672
|
-
|
|
5673
|
-
|
|
5674
|
-
|
|
5675
|
-
|
|
5676
|
-
|
|
5677
|
-
|
|
5678
|
-
|
|
5679
|
-
|
|
5680
|
-
|
|
5681
|
-
|
|
5682
|
-
|
|
5683
|
-
|
|
5684
|
-
|
|
6763
|
+
/* @__PURE__ */ jsxs(
|
|
6764
|
+
"div",
|
|
6765
|
+
{
|
|
6766
|
+
className: styles.listContent,
|
|
6767
|
+
onClick: () => onSelect(harbor),
|
|
6768
|
+
onMouseEnter: () => setIsHovered(true),
|
|
6769
|
+
onMouseLeave: () => setIsHovered(false),
|
|
6770
|
+
children: [
|
|
6771
|
+
/* @__PURE__ */ jsx(
|
|
6772
|
+
Icon,
|
|
6773
|
+
{
|
|
6774
|
+
icon: "fluent:vehicle-ship-24-regular",
|
|
6775
|
+
fontSize: 20,
|
|
6776
|
+
className: styles.iconMargin,
|
|
6777
|
+
color: isHovered ? tokens.colorBrandBackground : void 0
|
|
6778
|
+
}
|
|
6779
|
+
),
|
|
6780
|
+
/* @__PURE__ */ jsxs("div", { style: { textAlign: "left" }, children: [
|
|
6781
|
+
/* @__PURE__ */ jsx(Body1, { style: { color: isHovered ? tokens.colorBrandBackground : void 0, transition: "color 0.2s ease" }, children: harbor.portName }),
|
|
6782
|
+
/* @__PURE__ */ jsx("br", {}),
|
|
6783
|
+
/* @__PURE__ */ jsx(Caption1, { style: { color: isHovered ? tokens.colorBrandBackground : void 0, transition: "color 0.2s ease" }, children: harbor.branchName })
|
|
6784
|
+
] })
|
|
6785
|
+
]
|
|
6786
|
+
}
|
|
6787
|
+
),
|
|
5685
6788
|
trailingIcon
|
|
5686
6789
|
] }),
|
|
5687
6790
|
showDivider && /* @__PURE__ */ jsx(Divider, {})
|
|
@@ -6376,35 +7479,37 @@ var useStyles14 = makeStyles({
|
|
|
6376
7479
|
},
|
|
6377
7480
|
headerRow: {
|
|
6378
7481
|
display: "flex",
|
|
6379
|
-
justifyContent: "end",
|
|
7482
|
+
justifyContent: "flex-end",
|
|
6380
7483
|
alignItems: "center",
|
|
6381
|
-
|
|
7484
|
+
marginBottom: "12px",
|
|
7485
|
+
paddingRight: "8px"
|
|
6382
7486
|
},
|
|
6383
7487
|
serviceList: {
|
|
6384
7488
|
display: "flex",
|
|
6385
7489
|
flexDirection: "column",
|
|
6386
|
-
gap: "
|
|
6387
|
-
maxHeight: "400px",
|
|
7490
|
+
gap: "12px",
|
|
7491
|
+
// maxHeight: "400px",
|
|
6388
7492
|
overflowY: "auto",
|
|
6389
|
-
|
|
7493
|
+
padding: "2px"
|
|
6390
7494
|
},
|
|
6391
7495
|
serviceItem: {
|
|
6392
|
-
padding: "16px
|
|
6393
|
-
|
|
7496
|
+
padding: "16px",
|
|
7497
|
+
border: `1px solid ${tokens.colorNeutralStroke2}`,
|
|
7498
|
+
borderRadius: "12px",
|
|
6394
7499
|
display: "flex",
|
|
6395
|
-
alignItems: "
|
|
6396
|
-
gap: "
|
|
7500
|
+
alignItems: "center",
|
|
7501
|
+
gap: "16px",
|
|
6397
7502
|
cursor: "pointer",
|
|
6398
|
-
transition: "
|
|
7503
|
+
transition: "border-color 0.2s ease",
|
|
6399
7504
|
":hover": {
|
|
6400
|
-
|
|
7505
|
+
border: `1px solid ${tokens.colorBrandBackground}`
|
|
6401
7506
|
}
|
|
6402
7507
|
},
|
|
6403
7508
|
serviceContent: {
|
|
6404
7509
|
flex: 1,
|
|
6405
7510
|
display: "flex",
|
|
6406
7511
|
flexDirection: "column",
|
|
6407
|
-
gap: "
|
|
7512
|
+
gap: "8px"
|
|
6408
7513
|
},
|
|
6409
7514
|
serviceName: {
|
|
6410
7515
|
fontSize: tokens.fontSizeBase300,
|
|
@@ -6422,8 +7527,10 @@ var useStyles14 = makeStyles({
|
|
|
6422
7527
|
lineHeight: "1.4"
|
|
6423
7528
|
},
|
|
6424
7529
|
footer: {
|
|
6425
|
-
|
|
6426
|
-
|
|
7530
|
+
marginTop: tokens.spacingVerticalL,
|
|
7531
|
+
display: "flex",
|
|
7532
|
+
gap: tokens.spacingHorizontalM,
|
|
7533
|
+
justifyContent: "flex-end"
|
|
6427
7534
|
},
|
|
6428
7535
|
saveButton: {
|
|
6429
7536
|
width: "100%",
|
|
@@ -6441,16 +7548,16 @@ var ServiceListSkeleton = ({
|
|
|
6441
7548
|
style: {
|
|
6442
7549
|
display: "flex",
|
|
6443
7550
|
flexDirection: "column",
|
|
6444
|
-
gap: "
|
|
6445
|
-
width: "
|
|
7551
|
+
gap: "8px",
|
|
7552
|
+
width: "100%"
|
|
6446
7553
|
},
|
|
6447
7554
|
children: [
|
|
6448
7555
|
/* @__PURE__ */ jsx(
|
|
6449
7556
|
SkeletonItem,
|
|
6450
7557
|
{
|
|
6451
7558
|
style: {
|
|
6452
|
-
width: "
|
|
6453
|
-
height: "
|
|
7559
|
+
width: "60%",
|
|
7560
|
+
height: "24px",
|
|
6454
7561
|
borderRadius: "4px"
|
|
6455
7562
|
}
|
|
6456
7563
|
}
|
|
@@ -6459,7 +7566,17 @@ var ServiceListSkeleton = ({
|
|
|
6459
7566
|
SkeletonItem,
|
|
6460
7567
|
{
|
|
6461
7568
|
style: {
|
|
6462
|
-
width: "
|
|
7569
|
+
width: "100px",
|
|
7570
|
+
height: "24px",
|
|
7571
|
+
borderRadius: "12px"
|
|
7572
|
+
}
|
|
7573
|
+
}
|
|
7574
|
+
),
|
|
7575
|
+
/* @__PURE__ */ jsx(
|
|
7576
|
+
SkeletonItem,
|
|
7577
|
+
{
|
|
7578
|
+
style: {
|
|
7579
|
+
width: "90%",
|
|
6463
7580
|
height: "16px",
|
|
6464
7581
|
borderRadius: "4px"
|
|
6465
7582
|
}
|
|
@@ -6469,7 +7586,7 @@ var ServiceListSkeleton = ({
|
|
|
6469
7586
|
SkeletonItem,
|
|
6470
7587
|
{
|
|
6471
7588
|
style: {
|
|
6472
|
-
width: "
|
|
7589
|
+
width: "70%",
|
|
6473
7590
|
height: "16px",
|
|
6474
7591
|
borderRadius: "4px"
|
|
6475
7592
|
}
|
|
@@ -6482,8 +7599,8 @@ var ServiceListSkeleton = ({
|
|
|
6482
7599
|
SkeletonItem,
|
|
6483
7600
|
{
|
|
6484
7601
|
style: {
|
|
6485
|
-
width: "
|
|
6486
|
-
height: "
|
|
7602
|
+
width: "24px",
|
|
7603
|
+
height: "24px",
|
|
6487
7604
|
borderRadius: "4px"
|
|
6488
7605
|
}
|
|
6489
7606
|
}
|
|
@@ -6568,40 +7685,54 @@ var ModalService = ({
|
|
|
6568
7685
|
actionButton: reloadButton,
|
|
6569
7686
|
imageSrc: emptyImageSrc
|
|
6570
7687
|
}
|
|
6571
|
-
) : /* @__PURE__ */
|
|
6572
|
-
/* @__PURE__ */
|
|
6573
|
-
|
|
6574
|
-
|
|
6575
|
-
|
|
6576
|
-
|
|
6577
|
-
|
|
6578
|
-
|
|
6579
|
-
|
|
6580
|
-
|
|
6581
|
-
|
|
6582
|
-
|
|
6583
|
-
|
|
6584
|
-
|
|
6585
|
-
|
|
6586
|
-
|
|
6587
|
-
children: [
|
|
6588
|
-
/* @__PURE__ */
|
|
6589
|
-
|
|
6590
|
-
|
|
6591
|
-
/* @__PURE__ */ jsx(Caption1, { className: styles.serviceDescription, children: service.serviceDescription })
|
|
6592
|
-
] }),
|
|
6593
|
-
/* @__PURE__ */ jsx(
|
|
6594
|
-
Checkbox,
|
|
7688
|
+
) : /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs("div", { className: styles.serviceList, children: [
|
|
7689
|
+
/* @__PURE__ */ jsx("div", { className: styles.headerRow, children: /* @__PURE__ */ jsx(
|
|
7690
|
+
Checkbox,
|
|
7691
|
+
{
|
|
7692
|
+
label: mergedLabels.selectAll,
|
|
7693
|
+
checked: selectedServices.length === services.length,
|
|
7694
|
+
onChange: handleToggleAll
|
|
7695
|
+
}
|
|
7696
|
+
) }),
|
|
7697
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
7698
|
+
services.map((service) => /* @__PURE__ */ jsxs(
|
|
7699
|
+
"div",
|
|
7700
|
+
{
|
|
7701
|
+
className: styles.serviceItem,
|
|
7702
|
+
onClick: () => handleToggleService(service.serviceTypeId),
|
|
7703
|
+
children: [
|
|
7704
|
+
/* @__PURE__ */ jsxs("div", { className: styles.serviceContent, children: [
|
|
7705
|
+
/* @__PURE__ */ jsx(Body1, { className: styles.serviceName, children: service.serviceTypeName }),
|
|
7706
|
+
/* @__PURE__ */ jsx("div", { style: { alignSelf: "flex-start" }, children: /* @__PURE__ */ jsx(
|
|
7707
|
+
Badge,
|
|
6595
7708
|
{
|
|
6596
|
-
|
|
6597
|
-
|
|
7709
|
+
appearance: "ghost",
|
|
7710
|
+
style: {
|
|
7711
|
+
backgroundColor: service.serviceTypeColor,
|
|
7712
|
+
color: "#ffffff",
|
|
7713
|
+
border: "none",
|
|
7714
|
+
padding: "4px 10px",
|
|
7715
|
+
height: "auto",
|
|
7716
|
+
borderRadius: "100px"
|
|
7717
|
+
},
|
|
7718
|
+
children: service.serviceTypeCode
|
|
6598
7719
|
}
|
|
6599
|
-
)
|
|
6600
|
-
|
|
6601
|
-
|
|
6602
|
-
|
|
6603
|
-
|
|
6604
|
-
|
|
7720
|
+
) }),
|
|
7721
|
+
/* @__PURE__ */ jsx(Caption1, { className: styles.serviceDescription, children: service.serviceDescription })
|
|
7722
|
+
] }),
|
|
7723
|
+
/* @__PURE__ */ jsx(
|
|
7724
|
+
Checkbox,
|
|
7725
|
+
{
|
|
7726
|
+
checked: selectedServices.includes(service.serviceTypeId),
|
|
7727
|
+
onChange: () => handleToggleService(service.serviceTypeId),
|
|
7728
|
+
onClick: (e) => e.stopPropagation()
|
|
7729
|
+
}
|
|
7730
|
+
)
|
|
7731
|
+
]
|
|
7732
|
+
},
|
|
7733
|
+
service.serviceTypeId
|
|
7734
|
+
)),
|
|
7735
|
+
/* @__PURE__ */ jsx(Divider, {}),
|
|
6605
7736
|
/* @__PURE__ */ jsx("div", { className: styles.footer, children: /* @__PURE__ */ jsx(
|
|
6606
7737
|
Button,
|
|
6607
7738
|
{
|
|
@@ -6613,7 +7744,7 @@ var ModalService = ({
|
|
|
6613
7744
|
children: mergedLabels.saveButton
|
|
6614
7745
|
}
|
|
6615
7746
|
) })
|
|
6616
|
-
] }) })
|
|
7747
|
+
] }) }) })
|
|
6617
7748
|
] }) }) });
|
|
6618
7749
|
};
|
|
6619
7750
|
|
|
@@ -6653,7 +7784,12 @@ var useStyles15 = makeStyles({
|
|
|
6653
7784
|
accordionItem: {
|
|
6654
7785
|
borderRadius: tokens.borderRadiusXLarge,
|
|
6655
7786
|
marginBottom: "1rem",
|
|
6656
|
-
border: `1px solid ${tokens.colorNeutralStroke2}
|
|
7787
|
+
border: `1px solid ${tokens.colorNeutralStroke2}`,
|
|
7788
|
+
cursor: "pointer",
|
|
7789
|
+
transition: "border-color 0.2s ease",
|
|
7790
|
+
"&:hover": {
|
|
7791
|
+
border: `1px solid ${tokens.colorBrandBackground}`
|
|
7792
|
+
}
|
|
6657
7793
|
},
|
|
6658
7794
|
passengerCount: {
|
|
6659
7795
|
display: "flex",
|
|
@@ -7203,6 +8339,111 @@ var TypeOfServiceListSkeleton = ({ count = 3 }) => {
|
|
|
7203
8339
|
}
|
|
7204
8340
|
);
|
|
7205
8341
|
};
|
|
8342
|
+
var HoverableAccordionHeaderContent = ({
|
|
8343
|
+
item,
|
|
8344
|
+
imageRenderer,
|
|
8345
|
+
styles
|
|
8346
|
+
}) => {
|
|
8347
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
8348
|
+
return /* @__PURE__ */ jsxs(
|
|
8349
|
+
"div",
|
|
8350
|
+
{
|
|
8351
|
+
style: {
|
|
8352
|
+
display: "flex",
|
|
8353
|
+
alignItems: "center",
|
|
8354
|
+
width: "100%",
|
|
8355
|
+
cursor: "pointer"
|
|
8356
|
+
},
|
|
8357
|
+
onMouseEnter: () => setIsHovered(true),
|
|
8358
|
+
onMouseLeave: () => setIsHovered(false),
|
|
8359
|
+
children: [
|
|
8360
|
+
/* @__PURE__ */ jsx("div", { children: imageRenderer({
|
|
8361
|
+
src: item.image,
|
|
8362
|
+
alt: item.title,
|
|
8363
|
+
width: 74,
|
|
8364
|
+
height: 74
|
|
8365
|
+
}) }),
|
|
8366
|
+
/* @__PURE__ */ jsxs("div", { className: styles.accordionTitleAndInfo, children: [
|
|
8367
|
+
/* @__PURE__ */ jsx(
|
|
8368
|
+
Body1,
|
|
8369
|
+
{
|
|
8370
|
+
style: {
|
|
8371
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8372
|
+
transition: "color 0.2s ease"
|
|
8373
|
+
},
|
|
8374
|
+
children: item.title
|
|
8375
|
+
}
|
|
8376
|
+
),
|
|
8377
|
+
/* @__PURE__ */ jsx(
|
|
8378
|
+
Caption1,
|
|
8379
|
+
{
|
|
8380
|
+
style: {
|
|
8381
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8382
|
+
transition: "color 0.2s ease"
|
|
8383
|
+
},
|
|
8384
|
+
children: item.info
|
|
8385
|
+
}
|
|
8386
|
+
)
|
|
8387
|
+
] })
|
|
8388
|
+
]
|
|
8389
|
+
}
|
|
8390
|
+
);
|
|
8391
|
+
};
|
|
8392
|
+
var HoverableRadioItem = ({
|
|
8393
|
+
item,
|
|
8394
|
+
imageRenderer,
|
|
8395
|
+
styles,
|
|
8396
|
+
isChild = false
|
|
8397
|
+
}) => {
|
|
8398
|
+
const [isHovered, setIsHovered] = useState(false);
|
|
8399
|
+
return /* @__PURE__ */ jsxs(
|
|
8400
|
+
"div",
|
|
8401
|
+
{
|
|
8402
|
+
className: mergeClasses(styles.accordionHeader, styles.accordionItem),
|
|
8403
|
+
style: { padding: tokens.spacingHorizontalXS, cursor: "pointer" },
|
|
8404
|
+
onMouseEnter: () => setIsHovered(true),
|
|
8405
|
+
onMouseLeave: () => setIsHovered(false),
|
|
8406
|
+
children: [
|
|
8407
|
+
/* @__PURE__ */ jsx("div", { style: isChild ? void 0 : { marginLeft: 2 }, children: imageRenderer({
|
|
8408
|
+
src: item.image,
|
|
8409
|
+
alt: item.title,
|
|
8410
|
+
width: isChild ? 48 : 74,
|
|
8411
|
+
height: isChild ? 48 : 74
|
|
8412
|
+
}) }),
|
|
8413
|
+
/* @__PURE__ */ jsxs(
|
|
8414
|
+
"div",
|
|
8415
|
+
{
|
|
8416
|
+
className: styles.accordionTitleAndInfo,
|
|
8417
|
+
style: isChild ? void 0 : { marginLeft: 18 },
|
|
8418
|
+
children: [
|
|
8419
|
+
/* @__PURE__ */ jsx(
|
|
8420
|
+
Body1,
|
|
8421
|
+
{
|
|
8422
|
+
style: {
|
|
8423
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8424
|
+
transition: "color 0.2s ease"
|
|
8425
|
+
},
|
|
8426
|
+
children: item.title
|
|
8427
|
+
}
|
|
8428
|
+
),
|
|
8429
|
+
/* @__PURE__ */ jsx(
|
|
8430
|
+
Caption1,
|
|
8431
|
+
{
|
|
8432
|
+
style: {
|
|
8433
|
+
color: isHovered ? tokens.colorBrandBackground : void 0,
|
|
8434
|
+
transition: "color 0.2s ease"
|
|
8435
|
+
},
|
|
8436
|
+
children: item.info
|
|
8437
|
+
}
|
|
8438
|
+
)
|
|
8439
|
+
]
|
|
8440
|
+
}
|
|
8441
|
+
),
|
|
8442
|
+
/* @__PURE__ */ jsx(Radio, { value: String(item.id) })
|
|
8443
|
+
]
|
|
8444
|
+
}
|
|
8445
|
+
);
|
|
8446
|
+
};
|
|
7206
8447
|
var ModalTypeOfService = ({
|
|
7207
8448
|
language = "id",
|
|
7208
8449
|
labels,
|
|
@@ -7361,54 +8602,28 @@ var ModalTypeOfService = ({
|
|
|
7361
8602
|
value: item?.id,
|
|
7362
8603
|
className: styles.accordionItem,
|
|
7363
8604
|
children: [
|
|
7364
|
-
/* @__PURE__ */
|
|
8605
|
+
/* @__PURE__ */ jsx(
|
|
7365
8606
|
AccordionHeader,
|
|
7366
8607
|
{
|
|
7367
8608
|
className: styles.accordionHeader,
|
|
7368
8609
|
expandIconPosition: "end",
|
|
7369
|
-
children:
|
|
7370
|
-
|
|
7371
|
-
|
|
7372
|
-
|
|
7373
|
-
|
|
7374
|
-
|
|
7375
|
-
}
|
|
7376
|
-
|
|
7377
|
-
/* @__PURE__ */ jsx(Body1, { children: item.title }),
|
|
7378
|
-
/* @__PURE__ */ jsx(Caption1, { children: item.info })
|
|
7379
|
-
] })
|
|
7380
|
-
]
|
|
8610
|
+
children: /* @__PURE__ */ jsx(
|
|
8611
|
+
HoverableAccordionHeaderContent,
|
|
8612
|
+
{
|
|
8613
|
+
item,
|
|
8614
|
+
imageRenderer,
|
|
8615
|
+
styles
|
|
8616
|
+
}
|
|
8617
|
+
)
|
|
7381
8618
|
}
|
|
7382
8619
|
),
|
|
7383
|
-
/* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionBody, children: item.children.length > 0 && item.children.map((childItem, childIndex) => /* @__PURE__ */
|
|
7384
|
-
|
|
8620
|
+
/* @__PURE__ */ jsx(AccordionPanel, { className: styles.accordionBody, children: item.children.length > 0 && item.children.map((childItem, childIndex) => /* @__PURE__ */ jsx(
|
|
8621
|
+
HoverableRadioItem,
|
|
7385
8622
|
{
|
|
7386
|
-
|
|
7387
|
-
|
|
7388
|
-
|
|
7389
|
-
|
|
7390
|
-
style: {
|
|
7391
|
-
padding: tokens.spacingHorizontalXS
|
|
7392
|
-
},
|
|
7393
|
-
children: [
|
|
7394
|
-
/* @__PURE__ */ jsx("div", { children: imageRenderer({
|
|
7395
|
-
src: childItem.image,
|
|
7396
|
-
alt: childItem.title,
|
|
7397
|
-
width: 48,
|
|
7398
|
-
height: 48
|
|
7399
|
-
}) }),
|
|
7400
|
-
/* @__PURE__ */ jsxs(
|
|
7401
|
-
"div",
|
|
7402
|
-
{
|
|
7403
|
-
className: styles.accordionTitleAndInfo,
|
|
7404
|
-
children: [
|
|
7405
|
-
/* @__PURE__ */ jsx(Body1, { children: childItem.title }),
|
|
7406
|
-
/* @__PURE__ */ jsx(Caption1, { children: childItem.info })
|
|
7407
|
-
]
|
|
7408
|
-
}
|
|
7409
|
-
),
|
|
7410
|
-
/* @__PURE__ */ jsx(Radio, { value: String(childItem.id) })
|
|
7411
|
-
]
|
|
8623
|
+
item: childItem,
|
|
8624
|
+
imageRenderer,
|
|
8625
|
+
styles,
|
|
8626
|
+
isChild: true
|
|
7412
8627
|
},
|
|
7413
8628
|
childIndex
|
|
7414
8629
|
)) })
|
|
@@ -7417,34 +8632,13 @@ var ModalTypeOfService = ({
|
|
|
7417
8632
|
index
|
|
7418
8633
|
);
|
|
7419
8634
|
} else if (item.children.length === 0) {
|
|
7420
|
-
return /* @__PURE__ */
|
|
7421
|
-
|
|
8635
|
+
return /* @__PURE__ */ jsx(
|
|
8636
|
+
HoverableRadioItem,
|
|
7422
8637
|
{
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
style: { padding: tokens.spacingHorizontalXS },
|
|
7428
|
-
children: [
|
|
7429
|
-
/* @__PURE__ */ jsx("div", { style: { marginLeft: 2 }, children: imageRenderer({
|
|
7430
|
-
src: item.image,
|
|
7431
|
-
alt: item.title,
|
|
7432
|
-
width: 74,
|
|
7433
|
-
height: 74
|
|
7434
|
-
}) }),
|
|
7435
|
-
/* @__PURE__ */ jsxs(
|
|
7436
|
-
"div",
|
|
7437
|
-
{
|
|
7438
|
-
className: styles.accordionTitleAndInfo,
|
|
7439
|
-
style: { marginLeft: 18 },
|
|
7440
|
-
children: [
|
|
7441
|
-
/* @__PURE__ */ jsx(Body1, { children: item.title }),
|
|
7442
|
-
/* @__PURE__ */ jsx(Caption1, { children: item.info })
|
|
7443
|
-
]
|
|
7444
|
-
}
|
|
7445
|
-
),
|
|
7446
|
-
/* @__PURE__ */ jsx(Radio, { value: String(item.id) })
|
|
7447
|
-
]
|
|
8638
|
+
item,
|
|
8639
|
+
imageRenderer,
|
|
8640
|
+
styles,
|
|
8641
|
+
isChild: false
|
|
7448
8642
|
},
|
|
7449
8643
|
index
|
|
7450
8644
|
);
|
|
@@ -13595,7 +14789,8 @@ var DEFAULT_LABELS36 = {
|
|
|
13595
14789
|
totalPayment: "Total Pembayaran",
|
|
13596
14790
|
checkStatusInfo: "Klik tombol dibawah ini jika sudah melakukan pembayaran",
|
|
13597
14791
|
checkStatusButton: "Cek Status Pembayaran",
|
|
13598
|
-
currencySymbol: "Rp."
|
|
14792
|
+
currencySymbol: "Rp.",
|
|
14793
|
+
changePayment: "Ubah Metode Pembayaran"
|
|
13599
14794
|
},
|
|
13600
14795
|
en: {
|
|
13601
14796
|
expiryPrefix: "Virtual account code valid until",
|
|
@@ -13603,7 +14798,8 @@ var DEFAULT_LABELS36 = {
|
|
|
13603
14798
|
totalPayment: "Total Payment",
|
|
13604
14799
|
checkStatusInfo: "Click the button below if you have made the payment",
|
|
13605
14800
|
checkStatusButton: "Check Payment Status",
|
|
13606
|
-
currencySymbol: "Rp."
|
|
14801
|
+
currencySymbol: "Rp.",
|
|
14802
|
+
changePayment: "Change Payment Method"
|
|
13607
14803
|
}
|
|
13608
14804
|
};
|
|
13609
14805
|
var useStyles38 = makeStyles({
|
|
@@ -13686,7 +14882,8 @@ var CardPaymentInfo = ({
|
|
|
13686
14882
|
totalAmount,
|
|
13687
14883
|
guides,
|
|
13688
14884
|
onCopyVA,
|
|
13689
|
-
onCheckStatus
|
|
14885
|
+
onCheckStatus,
|
|
14886
|
+
onChangePayment
|
|
13690
14887
|
}) => {
|
|
13691
14888
|
const styles = useStyles38();
|
|
13692
14889
|
const mergedLabels = { ...DEFAULT_LABELS36[language], ...labels };
|
|
@@ -13715,6 +14912,17 @@ var CardPaymentInfo = ({
|
|
|
13715
14912
|
)
|
|
13716
14913
|
] })
|
|
13717
14914
|
] }),
|
|
14915
|
+
/* @__PURE__ */ jsx(
|
|
14916
|
+
Button,
|
|
14917
|
+
{
|
|
14918
|
+
appearance: "secondary",
|
|
14919
|
+
size: "large",
|
|
14920
|
+
shape: "circular",
|
|
14921
|
+
className: styles.checkStatusButton,
|
|
14922
|
+
onClick: onChangePayment,
|
|
14923
|
+
children: mergedLabels.changePayment
|
|
14924
|
+
}
|
|
14925
|
+
),
|
|
13718
14926
|
/* @__PURE__ */ jsx(
|
|
13719
14927
|
Field,
|
|
13720
14928
|
{
|
|
@@ -13723,7 +14931,9 @@ var CardPaymentInfo = ({
|
|
|
13723
14931
|
children: /* @__PURE__ */ jsxs(Title2, { children: [
|
|
13724
14932
|
mergedLabels.currencySymbol,
|
|
13725
14933
|
" ",
|
|
13726
|
-
totalAmount.toLocaleString(
|
|
14934
|
+
totalAmount.toLocaleString(
|
|
14935
|
+
language === "id" ? "id-ID" : "en-US"
|
|
14936
|
+
)
|
|
13727
14937
|
] })
|
|
13728
14938
|
}
|
|
13729
14939
|
)
|