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