@asdp/ferryui 0.1.22-dev.8663 → 0.1.22-dev.8697

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.js CHANGED
@@ -1880,6 +1880,69 @@ var DEFAULT_LABELS7 = {
1880
1880
  emailOrPhoneRequiredError: "Email or phone number is required"
1881
1881
  }
1882
1882
  };
1883
+
1884
+ // src/components/InputDynamic/countries.constants.ts
1885
+ var COUNTRIES = [
1886
+ { value: "ID", label: "Indonesia", flag: "twemoji:flag-indonesia" },
1887
+ { value: "MY", label: "Malaysia", flag: "twemoji:flag-malaysia" },
1888
+ { value: "SG", label: "Singapore", flag: "twemoji:flag-singapore" },
1889
+ { value: "TH", label: "Thailand", flag: "twemoji:flag-thailand" },
1890
+ { value: "PH", label: "Philippines", flag: "twemoji:flag-philippines" },
1891
+ { value: "VN", label: "Vietnam", flag: "twemoji:flag-vietnam" },
1892
+ { value: "BN", label: "Brunei", flag: "twemoji:flag-brunei" },
1893
+ { value: "KH", label: "Cambodia", flag: "twemoji:flag-cambodia" },
1894
+ { value: "LA", label: "Laos", flag: "twemoji:flag-laos" },
1895
+ { value: "MM", label: "Myanmar", flag: "twemoji:flag-myanmar-burma" },
1896
+ { value: "TL", label: "Timor-Leste", flag: "twemoji:flag-timor-leste" },
1897
+ // Major countries
1898
+ { value: "US", label: "United States", flag: "twemoji:flag-united-states" },
1899
+ { value: "GB", label: "United Kingdom", flag: "twemoji:flag-united-kingdom" },
1900
+ { value: "AU", label: "Australia", flag: "twemoji:flag-australia" },
1901
+ { value: "CN", label: "China", flag: "twemoji:flag-china" },
1902
+ { value: "JP", label: "Japan", flag: "twemoji:flag-japan" },
1903
+ { value: "KR", label: "South Korea", flag: "twemoji:flag-south-korea" },
1904
+ { value: "IN", label: "India", flag: "twemoji:flag-india" },
1905
+ { value: "SA", label: "Saudi Arabia", flag: "twemoji:flag-saudi-arabia" },
1906
+ { value: "AE", label: "United Arab Emirates", flag: "twemoji:flag-united-arab-emirates" },
1907
+ { value: "QA", label: "Qatar", flag: "twemoji:flag-qatar" },
1908
+ // European countries
1909
+ { value: "DE", label: "Germany", flag: "twemoji:flag-germany" },
1910
+ { value: "FR", label: "France", flag: "twemoji:flag-france" },
1911
+ { value: "IT", label: "Italy", flag: "twemoji:flag-italy" },
1912
+ { value: "ES", label: "Spain", flag: "twemoji:flag-spain" },
1913
+ { value: "NL", label: "Netherlands", flag: "twemoji:flag-netherlands" },
1914
+ { value: "BE", label: "Belgium", flag: "twemoji:flag-belgium" },
1915
+ { value: "CH", label: "Switzerland", flag: "twemoji:flag-switzerland" },
1916
+ { value: "AT", label: "Austria", flag: "twemoji:flag-austria" },
1917
+ { value: "SE", label: "Sweden", flag: "twemoji:flag-sweden" },
1918
+ { value: "NO", label: "Norway", flag: "twemoji:flag-norway" },
1919
+ { value: "DK", label: "Denmark", flag: "twemoji:flag-denmark" },
1920
+ { value: "FI", label: "Finland", flag: "twemoji:flag-finland" },
1921
+ { value: "PL", label: "Poland", flag: "twemoji:flag-poland" },
1922
+ { value: "RU", label: "Russia", flag: "twemoji:flag-russia" },
1923
+ { value: "TR", label: "Turkey", flag: "twemoji:flag-turkey" },
1924
+ { value: "GR", label: "Greece", flag: "twemoji:flag-greece" },
1925
+ { value: "PT", label: "Portugal", flag: "twemoji:flag-portugal" },
1926
+ { value: "IE", label: "Ireland", flag: "twemoji:flag-ireland" },
1927
+ // Americas
1928
+ { value: "CA", label: "Canada", flag: "twemoji:flag-canada" },
1929
+ { value: "MX", label: "Mexico", flag: "twemoji:flag-mexico" },
1930
+ { value: "BR", label: "Brazil", flag: "twemoji:flag-brazil" },
1931
+ { value: "AR", label: "Argentina", flag: "twemoji:flag-argentina" },
1932
+ { value: "CL", label: "Chile", flag: "twemoji:flag-chile" },
1933
+ { value: "CO", label: "Colombia", flag: "twemoji:flag-colombia" },
1934
+ { value: "PE", label: "Peru", flag: "twemoji:flag-peru" },
1935
+ // Africa
1936
+ { value: "ZA", label: "South Africa", flag: "twemoji:flag-south-africa" },
1937
+ { value: "EG", label: "Egypt", flag: "twemoji:flag-egypt" },
1938
+ { value: "NG", label: "Nigeria", flag: "twemoji:flag-nigeria" },
1939
+ { value: "KE", label: "Kenya", flag: "twemoji:flag-kenya" },
1940
+ { value: "MA", label: "Morocco", flag: "twemoji:flag-morocco" },
1941
+ // Oceania
1942
+ { value: "NZ", label: "New Zealand", flag: "twemoji:flag-new-zealand" },
1943
+ { value: "FJ", label: "Fiji", flag: "twemoji:flag-fiji" },
1944
+ { value: "PG", label: "Papua New Guinea", flag: "twemoji:flag-papua-new-guinea" }
1945
+ ];
1883
1946
  var PhoneInput = PhoneInputComponent__default.default.default || PhoneInputComponent__default.default;
1884
1947
  var useStyles7 = reactComponents.makeStyles({
1885
1948
  field: {
@@ -2036,7 +2099,7 @@ var useStyles7 = reactComponents.makeStyles({
2036
2099
  display: "none"
2037
2100
  },
2038
2101
  "& .fui-Radio__label": {
2039
- padding: "10px 24px",
2102
+ padding: "5px 10px",
2040
2103
  border: `1px solid ${reactComponents.tokens.colorNeutralStroke1}`,
2041
2104
  borderRadius: reactComponents.tokens.borderRadiusCircular,
2042
2105
  cursor: "pointer",
@@ -2124,7 +2187,8 @@ var InputDynamic = ({
2124
2187
  contentAfter,
2125
2188
  onChange,
2126
2189
  language = "id",
2127
- labels
2190
+ labels,
2191
+ menuPlacement
2128
2192
  }) => {
2129
2193
  const styles = useStyles7();
2130
2194
  const mergedLabels = { ...DEFAULT_LABELS7[language], ...labels };
@@ -2141,74 +2205,125 @@ var InputDynamic = ({
2141
2205
  const emailOrPhoneInputRef = React5.useRef(null);
2142
2206
  const shouldFocusRef = React5.useRef(false);
2143
2207
  const isBackspaceNavigationRef = React5.useRef(false);
2144
- const getSelectStyles = (hasError2) => ({
2145
- menuPortal: (base) => ({
2146
- ...base,
2147
- zIndex: 9999999,
2148
- borderRadius: reactComponents.tokens.borderRadiusMedium
2149
- }),
2150
- control: (provided, state) => ({
2151
- ...provided,
2152
- borderColor: hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : state.isFocused ? reactComponents.tokens.colorBrandStroke1 : reactComponents.tokens.colorNeutralStroke1,
2153
- borderRadius: reactComponents.tokens.borderRadiusMedium,
2154
- minHeight: "40px",
2155
- fontSize: reactComponents.tokens.fontSizeBase400,
2156
- backgroundColor: reactComponents.tokens.colorNeutralBackground1,
2157
- boxShadow: state.isFocused ? `0 0 0 2px ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : reactComponents.tokens.colorBrandStroke1}` : "none",
2158
- "&:hover": {
2159
- borderColor: hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : reactComponents.tokens.colorNeutralStroke1Hover
2208
+ const getSelectStyles = (hasError2, selectAppearance) => {
2209
+ const currentAppearance = appearance || "outline";
2210
+ const getControlStyles = (provided, state) => {
2211
+ const baseStyles = {
2212
+ ...provided,
2213
+ minHeight: "40px",
2214
+ fontSize: reactComponents.tokens.fontSizeBase400,
2215
+ transition: "all 0.2s ease"
2216
+ };
2217
+ if (currentAppearance === "outline") {
2218
+ return {
2219
+ ...baseStyles,
2220
+ border: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : reactComponents.tokens.colorNeutralStroke1}`,
2221
+ borderBottom: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : state.isFocused ? reactComponents.tokens.colorBrandStroke1 : reactComponents.tokens.colorNeutralForeground3}`,
2222
+ borderRadius: reactComponents.tokens.borderRadiusMedium,
2223
+ backgroundColor: reactComponents.tokens.colorNeutralBackground1,
2224
+ boxShadow: "none",
2225
+ "&:hover": {
2226
+ borderColor: hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : reactComponents.tokens.colorNeutralStroke1Hover,
2227
+ borderBottom: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : state.isFocused ? reactComponents.tokens.colorBrandStroke1 : reactComponents.tokens.colorNeutralForeground3Hover}`
2228
+ }
2229
+ };
2160
2230
  }
2161
- }),
2162
- menu: (provided) => ({
2163
- ...provided,
2164
- border: `1px solid ${reactComponents.tokens.colorNeutralStroke1}`,
2165
- borderRadius: reactComponents.tokens.borderRadiusMedium,
2166
- zIndex: 9999
2167
- }),
2168
- menuList: (provided) => ({
2169
- ...provided,
2170
- padding: 0,
2171
- // Opsional: bersihkan padding agar scrollbar mepet ke pinggir
2172
- maxHeight: "300px",
2173
- // Pastikan ada limit height agar scrollbar muncul
2174
- /* Targetkan Webkit Scrollbar di menuList */
2175
- "&::-webkit-scrollbar": {
2176
- width: "8px",
2177
- display: "block"
2178
- // Pastikan tampil
2179
- },
2180
- "&::-webkit-scrollbar-track": {
2181
- backgroundColor: reactComponents.tokens.colorNeutralBackground2,
2182
- borderRadius: "4px"
2183
- },
2184
- "&::-webkit-scrollbar-thumb": {
2185
- backgroundColor: selectScrollbarColor || reactComponents.tokens.colorNeutralStroke2,
2186
- borderRadius: "4px"
2187
- },
2188
- "&::-webkit-scrollbar-thumb:hover": {
2189
- backgroundColor: selectScrollbarColor || reactComponents.tokens.colorBrandBackground
2190
- },
2191
- "&::-webkit-scrollbar-thumb:active": {
2192
- backgroundColor: selectScrollbarColor || reactComponents.tokens.colorBrandBackgroundPressed
2231
+ if (currentAppearance === "underline") {
2232
+ return {
2233
+ ...baseStyles,
2234
+ border: "none",
2235
+ borderBottom: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : state.isFocused ? reactComponents.tokens.colorBrandStroke1 : reactComponents.tokens.colorNeutralForeground3}`,
2236
+ borderRadius: 0,
2237
+ backgroundColor: "transparent",
2238
+ boxShadow: "none",
2239
+ "&:hover": {
2240
+ borderBottom: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : reactComponents.tokens.colorNeutralForeground3Hover}`
2241
+ }
2242
+ };
2193
2243
  }
2194
- }),
2195
- option: (provided, state) => ({
2196
- ...provided,
2197
- fontSize: reactComponents.tokens.fontSizeBase300,
2198
- color: state.isSelected ? reactComponents.tokens.colorNeutralForegroundOnBrand : reactComponents.tokens.colorNeutralForeground1,
2199
- backgroundColor: state.isSelected ? reactComponents.tokens.colorBrandBackground : state.isFocused ? reactComponents.tokens.colorNeutralBackground1Hover : "transparent"
2200
- }),
2201
- placeholder: (provided) => ({
2202
- ...provided,
2203
- color: reactComponents.tokens.colorNeutralForeground3,
2204
- fontSize: reactComponents.tokens.fontSizeBase400
2205
- }),
2206
- singleValue: (provided) => ({
2207
- ...provided,
2208
- color: reactComponents.tokens.colorNeutralForeground1,
2209
- fontSize: reactComponents.tokens.fontSizeBase400
2210
- })
2211
- });
2244
+ if (currentAppearance === "filled-darker") {
2245
+ return {
2246
+ ...baseStyles,
2247
+ border: "none",
2248
+ borderBottom: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : state.isFocused ? reactComponents.tokens.colorBrandStroke1 : "transparent"}`,
2249
+ borderRadius: `${reactComponents.tokens.borderRadiusMedium} ${reactComponents.tokens.borderRadiusMedium} 0 0`,
2250
+ backgroundColor: reactComponents.tokens.colorNeutralBackground3,
2251
+ boxShadow: "none",
2252
+ "&:hover": {
2253
+ backgroundColor: reactComponents.tokens.colorNeutralBackground3Hover
2254
+ }
2255
+ };
2256
+ }
2257
+ if (currentAppearance === "filled-lighter") {
2258
+ return {
2259
+ ...baseStyles,
2260
+ border: "none",
2261
+ borderBottom: `1px solid ${hasError2 ? reactComponents.tokens.colorPaletteRedBorder2 : state.isFocused ? reactComponents.tokens.colorBrandStroke1 : "transparent"}`,
2262
+ borderRadius: `${reactComponents.tokens.borderRadiusMedium} ${reactComponents.tokens.borderRadiusMedium} 0 0`,
2263
+ backgroundColor: reactComponents.tokens.colorNeutralBackground1,
2264
+ boxShadow: "none",
2265
+ "&:hover": {
2266
+ backgroundColor: reactComponents.tokens.colorNeutralBackground1Hover
2267
+ }
2268
+ };
2269
+ }
2270
+ return baseStyles;
2271
+ };
2272
+ return {
2273
+ menuPortal: (base) => ({
2274
+ ...base,
2275
+ zIndex: 9999999,
2276
+ borderRadius: reactComponents.tokens.borderRadiusMedium
2277
+ }),
2278
+ control: getControlStyles,
2279
+ menu: (provided) => ({
2280
+ ...provided,
2281
+ border: `1px solid ${reactComponents.tokens.colorNeutralStroke1}`,
2282
+ borderRadius: reactComponents.tokens.borderRadiusMedium,
2283
+ zIndex: 9999
2284
+ }),
2285
+ menuList: (provided) => ({
2286
+ ...provided,
2287
+ padding: 0,
2288
+ maxHeight: "300px",
2289
+ /* Targetkan Webkit Scrollbar di menuList */
2290
+ "&::-webkit-scrollbar": {
2291
+ width: "8px",
2292
+ display: "block"
2293
+ },
2294
+ "&::-webkit-scrollbar-track": {
2295
+ backgroundColor: reactComponents.tokens.colorNeutralBackground2,
2296
+ borderRadius: "4px"
2297
+ },
2298
+ "&::-webkit-scrollbar-thumb": {
2299
+ backgroundColor: selectScrollbarColor || reactComponents.tokens.colorNeutralStroke2,
2300
+ borderRadius: "4px"
2301
+ },
2302
+ "&::-webkit-scrollbar-thumb:hover": {
2303
+ backgroundColor: selectScrollbarColor || reactComponents.tokens.colorBrandBackground
2304
+ },
2305
+ "&::-webkit-scrollbar-thumb:active": {
2306
+ backgroundColor: selectScrollbarColor || reactComponents.tokens.colorBrandBackgroundPressed
2307
+ }
2308
+ }),
2309
+ option: (provided, state) => ({
2310
+ ...provided,
2311
+ fontSize: reactComponents.tokens.fontSizeBase300,
2312
+ color: state.isSelected ? reactComponents.tokens.colorNeutralForegroundOnBrand : reactComponents.tokens.colorNeutralForeground1,
2313
+ backgroundColor: state.isSelected ? reactComponents.tokens.colorBrandBackground : state.isFocused ? reactComponents.tokens.colorNeutralBackground1Hover : "transparent"
2314
+ }),
2315
+ placeholder: (provided) => ({
2316
+ ...provided,
2317
+ color: reactComponents.tokens.colorNeutralForeground3,
2318
+ fontSize: reactComponents.tokens.fontSizeBase400
2319
+ }),
2320
+ singleValue: (provided) => ({
2321
+ ...provided,
2322
+ color: reactComponents.tokens.colorNeutralForeground1,
2323
+ fontSize: reactComponents.tokens.fontSizeBase400
2324
+ })
2325
+ };
2326
+ };
2212
2327
  React5.useEffect(() => {
2213
2328
  if (shouldFocusRef.current) {
2214
2329
  setTimeout(() => {
@@ -2533,7 +2648,42 @@ var InputDynamic = ({
2533
2648
  },
2534
2649
  getOptionLabel: (option) => option.label,
2535
2650
  getOptionValue: (option) => option.value,
2536
- isOptionDisabled: (option) => option.disabled || false
2651
+ isOptionDisabled: (option) => option.disabled || false,
2652
+ menuPlacement
2653
+ }
2654
+ );
2655
+ case "country":
2656
+ return /* @__PURE__ */ jsxRuntime.jsx(
2657
+ Select__default.default,
2658
+ {
2659
+ ...field,
2660
+ name: `${String(name)}_${Math.random().toString(36).substring(7)}`,
2661
+ isDisabled: disabled,
2662
+ placeholder: placeholder || "Select country",
2663
+ options: COUNTRIES,
2664
+ styles: getSelectStyles(!!error),
2665
+ className: styles.reactSelect,
2666
+ classNamePrefix: "react-select",
2667
+ inputProps: {
2668
+ autoComplete: "new-password",
2669
+ autoCorrect: "off",
2670
+ autoCapitalize: "off",
2671
+ spellCheck: "false"
2672
+ },
2673
+ value: COUNTRIES.find((country) => country.value === field.value) || null,
2674
+ onChange: (selectedOption) => {
2675
+ field.onChange(selectedOption ? selectedOption.value : "");
2676
+ if (onChange) {
2677
+ onChange(selectedOption ? selectedOption.value : "");
2678
+ }
2679
+ },
2680
+ getOptionLabel: (option) => option.label,
2681
+ getOptionValue: (option) => option.value,
2682
+ formatOptionLabel: (option) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "flex", alignItems: "center", gap: "8px" }, children: [
2683
+ /* @__PURE__ */ jsxRuntime.jsx(react.Icon, { icon: option.flag, width: 20, height: 20 }),
2684
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: option.label })
2685
+ ] }),
2686
+ menuPlacement
2537
2687
  }
2538
2688
  );
2539
2689
  case "phone": {
@@ -2982,248 +3132,6 @@ var InputDynamic = ({
2982
3132
  };
2983
3133
  var InputDynamic_default = InputDynamic;
2984
3134
 
2985
- // src/components/InputDynamic/constants.ts
2986
- var DEFAULT_COUNTRY_CODES = [
2987
- { code: "AF", name: "Afghanistan", dialCode: "+93", passportRegex: "^[A-Z][0-9]{7}$" },
2988
- { code: "AL", name: "Albania", dialCode: "+355", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
2989
- { code: "DZ", name: "Algeria", dialCode: "+213", passportRegex: "^[0-9]{9}$" },
2990
- { code: "AS", name: "American Samoa", dialCode: "+1", passportRegex: "^[0-9]{9}$" },
2991
- { code: "AD", name: "Andorra", dialCode: "+376", passportRegex: "^[A-Z0-9]{6,10}$" },
2992
- { code: "AO", name: "Angola", dialCode: "+244", passportRegex: "^[A-Z0-9]{6,10}$" },
2993
- { code: "AI", name: "Anguilla", dialCode: "+1", passportRegex: "^[A-Z0-9]{6,10}$" },
2994
- { code: "AQ", name: "Antarctica", dialCode: "+672", passportRegex: "^[A-Z0-9]{6,10}$" },
2995
- { code: "AG", name: "Antigua and Barbuda", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
2996
- { code: "AR", name: "Argentina", dialCode: "+54", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
2997
- { code: "AM", name: "Armenia", dialCode: "+374", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
2998
- { code: "AW", name: "Aruba", dialCode: "+297", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
2999
- { code: "AU", name: "Australia", dialCode: "+61", passportRegex: "^[A-Z][0-9]{7}$" },
3000
- { code: "AT", name: "Austria", dialCode: "+43", passportRegex: "^[A-Z0-9]{8}$" },
3001
- { code: "AZ", name: "Azerbaijan", dialCode: "+994", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3002
- { code: "BS", name: "Bahamas", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3003
- { code: "BH", name: "Bahrain", dialCode: "+973", passportRegex: "^[A-Z][0-9]{7}$" },
3004
- { code: "BD", name: "Bangladesh", dialCode: "+880", passportRegex: "^[A-Z][0-9]{7}$" },
3005
- { code: "BB", name: "Barbados", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3006
- { code: "BY", name: "Belarus", dialCode: "+375", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3007
- { code: "BE", name: "Belgium", dialCode: "+32", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3008
- { code: "BZ", name: "Belize", dialCode: "+501", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3009
- { code: "BJ", name: "Benin", dialCode: "+229", passportRegex: "^[A-Z0-9]{6,10}$" },
3010
- { code: "BM", name: "Bermuda", dialCode: "+1", passportRegex: "^[A-Z0-9]{6,10}$" },
3011
- { code: "BT", name: "Bhutan", dialCode: "+975", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3012
- { code: "BO", name: "Bolivia", dialCode: "+591", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3013
- {
3014
- code: "BA",
3015
- name: "Bosnia and Herzegovina",
3016
- dialCode: "+387",
3017
- passportRegex: "^[A-Z]{2}[0-9]{6}$"
3018
- },
3019
- { code: "BW", name: "Botswana", dialCode: "+267", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3020
- { code: "BR", name: "Brazil", dialCode: "+55", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3021
- { code: "BN", name: "Brunei", dialCode: "+673", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3022
- { code: "BG", name: "Bulgaria", dialCode: "+359", passportRegex: "^[0-9]{9}$" },
3023
- { code: "BF", name: "Burkina Faso", dialCode: "+226", passportRegex: "^[A-Z0-9]{6,10}$" },
3024
- { code: "BI", name: "Burundi", dialCode: "+257", passportRegex: "^[A-Z0-9]{6,10}$" },
3025
- { code: "KH", name: "Cambodia", dialCode: "+855", passportRegex: "^[A-Z][0-9]{7}$" },
3026
- { code: "CM", name: "Cameroon", dialCode: "+237", passportRegex: "^[A-Z0-9]{6,10}$" },
3027
- { code: "CA", name: "Canada", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3028
- { code: "CV", name: "Cape Verde", dialCode: "+238", passportRegex: "^[A-Z0-9]{6,10}$" },
3029
- { code: "KY", name: "Cayman Islands", dialCode: "+1", passportRegex: "^[A-Z0-9]{6,10}$" },
3030
- {
3031
- code: "CF",
3032
- name: "Central African Republic",
3033
- dialCode: "+236",
3034
- passportRegex: "^[A-Z0-9]{6,10}$"
3035
- },
3036
- { code: "TD", name: "Chad", dialCode: "+235", passportRegex: "^[A-Z0-9]{6,10}$" },
3037
- { code: "CL", name: "Chile", dialCode: "+56", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3038
- { code: "CN", name: "China", dialCode: "+86", passportRegex: "^[0-9]{9}$" },
3039
- { code: "CO", name: "Colombia", dialCode: "+57", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
3040
- { code: "KM", name: "Comoros", dialCode: "+269", passportRegex: "^[A-Z0-9]{6,10}$" },
3041
- { code: "CG", name: "Congo", dialCode: "+242", passportRegex: "^[A-Z0-9]{6,10}$" },
3042
- { code: "CR", name: "Costa Rica", dialCode: "+506", passportRegex: "^[A-Z0-9]{6,10}$" },
3043
- { code: "HR", name: "Croatia", dialCode: "+385", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
3044
- { code: "CU", name: "Cuba", dialCode: "+53", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3045
- { code: "CY", name: "Cyprus", dialCode: "+357", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3046
- { code: "CZ", name: "Czech Republic", dialCode: "+420", passportRegex: "^[0-9]{8}$" },
3047
- { code: "DK", name: "Denmark", dialCode: "+45", passportRegex: "^[A-Z0-9]{9}$" },
3048
- { code: "DJ", name: "Djibouti", dialCode: "+253", passportRegex: "^[A-Z0-9]{6,10}$" },
3049
- { code: "DM", name: "Dominica", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3050
- { code: "DO", name: "Dominican Republic", dialCode: "+1", passportRegex: "^[A-Z0-9]{6,10}$" },
3051
- { code: "EC", name: "Ecuador", dialCode: "+593", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3052
- { code: "EG", name: "Egypt", dialCode: "+20", passportRegex: "^[A-Z][0-9]{7}$" },
3053
- { code: "SV", name: "El Salvador", dialCode: "+503", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3054
- { code: "GQ", name: "Equatorial Guinea", dialCode: "+240", passportRegex: "^[A-Z0-9]{6,10}$" },
3055
- { code: "ER", name: "Eritrea", dialCode: "+291", passportRegex: "^[A-Z0-9]{6,10}$" },
3056
- { code: "EE", name: "Estonia", dialCode: "+372", passportRegex: "^[A-Z0-9]{8}$" },
3057
- { code: "SZ", name: "Eswatini", dialCode: "+268", passportRegex: "^[A-Z0-9]{6,10}$" },
3058
- { code: "ET", name: "Ethiopia", dialCode: "+251", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3059
- { code: "FJ", name: "Fiji", dialCode: "+679", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3060
- { code: "FI", name: "Finland", dialCode: "+358", passportRegex: "^[A-Z0-9]{9}$" },
3061
- { code: "FR", name: "France", dialCode: "+33", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3062
- { code: "GA", name: "Gabon", dialCode: "+241", passportRegex: "^[A-Z0-9]{6,10}$" },
3063
- { code: "GM", name: "Gambia", dialCode: "+220", passportRegex: "^[A-Z0-9]{6,10}$" },
3064
- { code: "GE", name: "Georgia", dialCode: "+995", passportRegex: "^[A-Z0-9]{8}$" },
3065
- { code: "DE", name: "Germany", dialCode: "+49", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3066
- { code: "GH", name: "Ghana", dialCode: "+233", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3067
- { code: "GR", name: "Greece", dialCode: "+30", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3068
- { code: "GD", name: "Grenada", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3069
- { code: "GT", name: "Guatemala", dialCode: "+502", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
3070
- { code: "GN", name: "Guinea", dialCode: "+224", passportRegex: "^[A-Z0-9]{6,10}$" },
3071
- { code: "GW", name: "Guinea-Bissau", dialCode: "+245", passportRegex: "^[A-Z0-9]{6,10}$" },
3072
- { code: "GY", name: "Guyana", dialCode: "+592", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3073
- { code: "HT", name: "Haiti", dialCode: "+509", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3074
- { code: "HN", name: "Honduras", dialCode: "+504", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3075
- { code: "HK", name: "Hong Kong", dialCode: "+852", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3076
- { code: "HU", name: "Hungary", dialCode: "+36", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3077
- { code: "IS", name: "Iceland", dialCode: "+354", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3078
- { code: "IN", name: "India", dialCode: "+91", passportRegex: "^[A-Z][0-9]{7}$" },
3079
- { code: "ID", name: "Indonesia", dialCode: "+62", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3080
- { code: "IR", name: "Iran", dialCode: "+98", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3081
- { code: "IQ", name: "Iraq", dialCode: "+964", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3082
- { code: "IE", name: "Ireland", dialCode: "+353", passportRegex: "^[A-Z0-9]{2}[0-9]{7}$" },
3083
- { code: "IL", name: "Israel", dialCode: "+972", passportRegex: "^[0-9]{8,9}$" },
3084
- { code: "IT", name: "Italy", dialCode: "+39", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3085
- { code: "JM", name: "Jamaica", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3086
- { code: "JP", name: "Japan", dialCode: "+81", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3087
- { code: "JO", name: "Jordan", dialCode: "+962", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3088
- { code: "KZ", name: "Kazakhstan", dialCode: "+7", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3089
- { code: "KE", name: "Kenya", dialCode: "+254", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3090
- { code: "KI", name: "Kiribati", dialCode: "+686", passportRegex: "^[A-Z0-9]{6,10}$" },
3091
- { code: "KP", name: "North Korea", dialCode: "+850", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3092
- { code: "KR", name: "South Korea", dialCode: "+82", passportRegex: "^[A-Z]{1}[0-9]{8}$" },
3093
- { code: "KW", name: "Kuwait", dialCode: "+965", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3094
- { code: "KG", name: "Kyrgyzstan", dialCode: "+996", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3095
- { code: "LA", name: "Laos", dialCode: "+856", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3096
- { code: "LV", name: "Latvia", dialCode: "+371", passportRegex: "^[A-Z0-9]{8}$" },
3097
- { code: "LB", name: "Lebanon", dialCode: "+961", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3098
- { code: "LS", name: "Lesotho", dialCode: "+266", passportRegex: "^[A-Z0-9]{6,10}$" },
3099
- { code: "LR", name: "Liberia", dialCode: "+231", passportRegex: "^[A-Z0-9]{6,10}$" },
3100
- { code: "LY", name: "Libya", dialCode: "+218", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3101
- { code: "LI", name: "Liechtenstein", dialCode: "+423", passportRegex: "^[A-Z0-9]{6,10}$" },
3102
- { code: "LT", name: "Lithuania", dialCode: "+370", passportRegex: "^[A-Z0-9]{8}$" },
3103
- { code: "LU", name: "Luxembourg", dialCode: "+352", passportRegex: "^[A-Z0-9]{8}$" },
3104
- { code: "MO", name: "Macau", dialCode: "+853", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3105
- { code: "MG", name: "Madagascar", dialCode: "+261", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3106
- { code: "MW", name: "Malawi", dialCode: "+265", passportRegex: "^[A-Z0-9]{6,10}$" },
3107
- { code: "MY", name: "Malaysia", dialCode: "+60", passportRegex: "^[A-Z]{1}[0-9]{8}$" },
3108
- { code: "MV", name: "Maldives", dialCode: "+960", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3109
- { code: "ML", name: "Mali", dialCode: "+223", passportRegex: "^[A-Z0-9]{6,10}$" },
3110
- { code: "MT", name: "Malta", dialCode: "+356", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3111
- { code: "MH", name: "Marshall Islands", dialCode: "+692", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3112
- { code: "MQ", name: "Martinique", dialCode: "+596", passportRegex: "^[A-Z0-9]{6,10}$" },
3113
- { code: "MR", name: "Mauritania", dialCode: "+222", passportRegex: "^[A-Z0-9]{6,10}$" },
3114
- { code: "MU", name: "Mauritius", dialCode: "+230", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3115
- { code: "MX", name: "Mexico", dialCode: "+52", passportRegex: "^[A-Z]{1}[0-9]{8}$" },
3116
- { code: "FM", name: "Micronesia", dialCode: "+691", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3117
- { code: "MD", name: "Moldova", dialCode: "+373", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3118
- { code: "MC", name: "Monaco", dialCode: "+377", passportRegex: "^[A-Z0-9]{6,10}$" },
3119
- { code: "MN", name: "Mongolia", dialCode: "+976", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3120
- { code: "ME", name: "Montenegro", dialCode: "+382", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3121
- { code: "MS", name: "Montserrat", dialCode: "+1", passportRegex: "^[A-Z0-9]{6,10}$" },
3122
- { code: "MA", name: "Morocco", dialCode: "+212", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3123
- { code: "MZ", name: "Mozambique", dialCode: "+258", passportRegex: "^[A-Z0-9]{6,10}$" },
3124
- { code: "MM", name: "Myanmar", dialCode: "+95", passportRegex: "^[A-Z]{1}[0-9]{6,7}$" },
3125
- { code: "NA", name: "Namibia", dialCode: "+264", passportRegex: "^[A-Z0-9]{6,10}$" },
3126
- { code: "NR", name: "Nauru", dialCode: "+674", passportRegex: "^[A-Z0-9]{6,10}$" },
3127
- { code: "NP", name: "Nepal", dialCode: "+977", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3128
- { code: "NL", name: "Netherlands", dialCode: "+31", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3129
- { code: "NC", name: "New Caledonia", dialCode: "+687", passportRegex: "^[A-Z0-9]{6,10}$" },
3130
- { code: "NZ", name: "New Zealand", dialCode: "+64", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3131
- { code: "NI", name: "Nicaragua", dialCode: "+505", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
3132
- { code: "NE", name: "Niger", dialCode: "+227", passportRegex: "^[A-Z0-9]{6,10}$" },
3133
- { code: "NG", name: "Nigeria", dialCode: "+234", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3134
- { code: "NO", name: "Norway", dialCode: "+47", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3135
- { code: "OM", name: "Oman", dialCode: "+968", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3136
- { code: "PK", name: "Pakistan", dialCode: "+92", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3137
- { code: "PW", name: "Palau", dialCode: "+680", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3138
- { code: "PS", name: "Palestine", dialCode: "+970", passportRegex: "^[A-Z0-9]{6,10}$" },
3139
- { code: "PA", name: "Panama", dialCode: "+507", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3140
- { code: "PG", name: "Papua New Guinea", dialCode: "+675", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3141
- { code: "PY", name: "Paraguay", dialCode: "+595", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3142
- { code: "PE", name: "Peru", dialCode: "+51", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3143
- { code: "PH", name: "Philippines", dialCode: "+63", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3144
- { code: "PL", name: "Poland", dialCode: "+48", passportRegex: "^[A-Z0-9]{2}[0-9]{7}$" },
3145
- { code: "PT", name: "Portugal", dialCode: "+351", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3146
- { code: "RO", name: "Romania", dialCode: "+40", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3147
- { code: "RU", name: "Russia", dialCode: "+7", passportRegex: "^[0-9]{9}$" },
3148
- { code: "RW", name: "Rwanda", dialCode: "+250", passportRegex: "^[A-Z0-9]{6,10}$" },
3149
- {
3150
- code: "KN",
3151
- name: "Saint Kitts and Nevis",
3152
- dialCode: "+1",
3153
- passportRegex: "^[A-Z]{2}[0-9]{7}$"
3154
- },
3155
- { code: "LC", name: "Saint Lucia", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3156
- {
3157
- code: "VC",
3158
- name: "Saint Vincent and the Grenadines",
3159
- dialCode: "+1",
3160
- passportRegex: "^[A-Z]{2}[0-9]{7}$"
3161
- },
3162
- { code: "WS", name: "Samoa", dialCode: "+685", passportRegex: "^[A-Z0-9]{6,10}$" },
3163
- { code: "SM", name: "San Marino", dialCode: "+378", passportRegex: "^[A-Z0-9]{6,10}$" },
3164
- {
3165
- code: "ST",
3166
- name: "Sao Tome and Principe",
3167
- dialCode: "+239",
3168
- passportRegex: "^[A-Z0-9]{6,10}$"
3169
- },
3170
- { code: "SA", name: "Saudi Arabia", dialCode: "+966", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3171
- { code: "SN", name: "Senegal", dialCode: "+221", passportRegex: "^[A-Z0-9]{6,10}$" },
3172
- { code: "RS", name: "Serbia", dialCode: "+381", passportRegex: "^[A-Z0-9]{9}$" },
3173
- { code: "SC", name: "Seychelles", dialCode: "+248", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3174
- { code: "SL", name: "Sierra Leone", dialCode: "+232", passportRegex: "^[A-Z0-9]{6,10}$" },
3175
- { code: "SG", name: "Singapore", dialCode: "+65", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3176
- { code: "SK", name: "Slovakia", dialCode: "+421", passportRegex: "^[0-9]{9}$" },
3177
- { code: "SI", name: "Slovenia", dialCode: "+386", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3178
- { code: "SB", name: "Solomon Islands", dialCode: "+677", passportRegex: "^[A-Z0-9]{6,10}$" },
3179
- { code: "SO", name: "Somalia", dialCode: "+252", passportRegex: "^[A-Z0-9]{6,10}$" },
3180
- { code: "ZA", name: "South Africa", dialCode: "+27", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3181
- { code: "ES", name: "Spain", dialCode: "+34", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
3182
- { code: "LK", name: "Sri Lanka", dialCode: "+94", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3183
- { code: "SD", name: "Sudan", dialCode: "+249", passportRegex: "^[A-Z0-9]{6,10}$" },
3184
- { code: "SR", name: "Suriname", dialCode: "+597", passportRegex: "^[A-Z0-9]{6,10}$" },
3185
- { code: "SE", name: "Sweden", dialCode: "+46", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3186
- { code: "CH", name: "Switzerland", dialCode: "+41", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3187
- { code: "SY", name: "Syria", dialCode: "+963", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3188
- { code: "TW", name: "Taiwan", dialCode: "+886", passportRegex: "^[A-Z]{1}[0-9]{8}$" },
3189
- { code: "TJ", name: "Tajikistan", dialCode: "+992", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3190
- { code: "TZ", name: "Tanzania", dialCode: "+255", passportRegex: "^[A-Z0-9]{6,10}$" },
3191
- { code: "TH", name: "Thailand", dialCode: "+66", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3192
- { code: "TL", name: "Timor-Leste", dialCode: "+670", passportRegex: "^[A-Z0-9]{6,10}$" },
3193
- { code: "TG", name: "Togo", dialCode: "+228", passportRegex: "^[A-Z0-9]{6,10}$" },
3194
- { code: "TO", name: "Tonga", dialCode: "+676", passportRegex: "^[A-Z0-9]{6,10}$" },
3195
- { code: "TT", name: "Trinidad and Tobago", dialCode: "+1", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3196
- { code: "TN", name: "Tunisia", dialCode: "+216", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3197
- { code: "TR", name: "Turkey", dialCode: "+90", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3198
- { code: "TM", name: "Turkmenistan", dialCode: "+993", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3199
- {
3200
- code: "TC",
3201
- name: "Turks and Caicos Islands",
3202
- dialCode: "+1",
3203
- passportRegex: "^[A-Z0-9]{6,10}$"
3204
- },
3205
- { code: "TV", name: "Tuvalu", dialCode: "+688", passportRegex: "^[A-Z0-9]{6,10}$" },
3206
- { code: "UG", name: "Uganda", dialCode: "+256", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3207
- { code: "UA", name: "Ukraine", dialCode: "+380", passportRegex: "^[A-Z]{2}[0-9]{6}$" },
3208
- {
3209
- code: "AE",
3210
- name: "United Arab Emirates",
3211
- dialCode: "+971",
3212
- passportRegex: "^[A-Z]{1}[0-9]{7}$"
3213
- },
3214
- { code: "GB", name: "United Kingdom", dialCode: "+44", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3215
- { code: "US", name: "United States", dialCode: "+1", passportRegex: "^[0-9]{9}$" },
3216
- { code: "UY", name: "Uruguay", dialCode: "+598", passportRegex: "^[A-Z]{3}[0-9]{6}$" },
3217
- { code: "UZ", name: "Uzbekistan", dialCode: "+998", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3218
- { code: "VU", name: "Vanuatu", dialCode: "+678", passportRegex: "^[A-Z0-9]{6,10}$" },
3219
- { code: "VA", name: "Vatican City", dialCode: "+379", passportRegex: "^[A-Z0-9]{6,10}$" },
3220
- { code: "VE", name: "Venezuela", dialCode: "+58", passportRegex: "^[A-Z]{2}[0-9]{7}$" },
3221
- { code: "VN", name: "Vietnam", dialCode: "+84", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3222
- { code: "YE", name: "Yemen", dialCode: "+967", passportRegex: "^[A-Z]{1}[0-9]{7}$" },
3223
- { code: "ZM", name: "Zambia", dialCode: "+260", passportRegex: "^[A-Z0-9]{6,10}$" },
3224
- { code: "ZW", name: "Zimbabwe", dialCode: "+263", passportRegex: "^[A-Z0-9]{6,10}$" }
3225
- ];
3226
-
3227
3135
  // src/components/CardTicketSearch/CardTicketSearch.constants.ts
3228
3136
  var DEFAULT_LABELS8 = {
3229
3137
  id: {
@@ -7828,6 +7736,10 @@ var DEFAULT_LABELS22 = {
7828
7736
  ticketClassLabel: "Kelas penumpang",
7829
7737
  saveButton: "Simpan",
7830
7738
  cancelButton: "Batal",
7739
+ idTypeOtherLabel: "Tanggal lahir",
7740
+ idTypeOtherPlaceholder: "DD/MM/YYYY",
7741
+ countryLabel: "Negara Penerbit Passport",
7742
+ countryPlaceholder: "Masukkan Negara",
7831
7743
  errors: {
7832
7744
  requiredTitle: "Title harus dipilih",
7833
7745
  requiredName: "Nama lengkap harus diisi",
@@ -7839,7 +7751,8 @@ var DEFAULT_LABELS22 = {
7839
7751
  minAge: "Usia minimal 1 tahun",
7840
7752
  maxAge: "Usia maksimal 150 tahun",
7841
7753
  requiredDate: "Tanggal lahir harus diisi",
7842
- requiredCity: "Kota/Kabupaten harus diisi"
7754
+ requiredCity: "Kota/Kabupaten harus diisi",
7755
+ requiredCountry: "Negara harus diisi"
7843
7756
  }
7844
7757
  },
7845
7758
  en: {
@@ -7861,6 +7774,10 @@ var DEFAULT_LABELS22 = {
7861
7774
  ticketClassLabel: "Passenger Class",
7862
7775
  saveButton: "Save",
7863
7776
  cancelButton: "Cancel",
7777
+ idTypeOtherLabel: "Date of Birth",
7778
+ idTypeOtherPlaceholder: "DD/MM/YYYY",
7779
+ countryLabel: "Country of Issue",
7780
+ countryPlaceholder: "Enter Country",
7864
7781
  errors: {
7865
7782
  requiredTitle: "Title is required",
7866
7783
  requiredName: "Full name is required",
@@ -7872,10 +7789,29 @@ var DEFAULT_LABELS22 = {
7872
7789
  minAge: "Age must be at least 1 year",
7873
7790
  maxAge: "Age must be at most 150 years",
7874
7791
  requiredDate: "Date of birth is required",
7875
- requiredCity: "City/Regency is required"
7792
+ requiredCity: "City/Regency is required",
7793
+ requiredCountry: "Country is required"
7876
7794
  }
7877
7795
  }
7878
7796
  };
7797
+ var TYPE_OPTIONS = [
7798
+ {
7799
+ label: "KTP",
7800
+ value: "ktp"
7801
+ },
7802
+ {
7803
+ label: "SIM",
7804
+ value: "sim"
7805
+ },
7806
+ {
7807
+ label: "Paspor",
7808
+ value: "paspor"
7809
+ },
7810
+ {
7811
+ label: "Lainnya",
7812
+ value: "lainnya"
7813
+ }
7814
+ ];
7879
7815
  var useStyles22 = reactComponents.makeStyles({
7880
7816
  dialogSurface: {
7881
7817
  maxWidth: "600px",
@@ -7904,7 +7840,6 @@ var ModalPassengerForm = ({
7904
7840
  defaultValues,
7905
7841
  isAdultForm = true,
7906
7842
  titleOptions,
7907
- idTypeOptions,
7908
7843
  cityOptions,
7909
7844
  ticketClassOptions
7910
7845
  }) => {
@@ -7915,12 +7850,18 @@ var ModalPassengerForm = ({
7915
7850
  ...labels?.errors
7916
7851
  };
7917
7852
  const displayTitle = title || mergedLabels.title;
7918
- const { control, handleSubmit, reset } = reactHookForm.useForm({
7853
+ const { control, handleSubmit, reset, watch, setValue } = reactHookForm.useForm({
7919
7854
  defaultValues
7920
7855
  });
7856
+ const idType = watch("idType");
7921
7857
  React5.useEffect(() => {
7922
7858
  reset(defaultValues);
7923
7859
  }, [defaultValues, reset]);
7860
+ React5.useEffect(() => {
7861
+ if (idType) {
7862
+ setValue("idNumber", "");
7863
+ }
7864
+ }, [idType, setValue]);
7924
7865
  const handleFormSubmit = (data) => {
7925
7866
  onSubmit(data);
7926
7867
  reset();
@@ -7976,6 +7917,45 @@ var ModalPassengerForm = ({
7976
7917
  }
7977
7918
  }
7978
7919
  ),
7920
+ /* @__PURE__ */ jsxRuntime.jsx(
7921
+ InputDynamic_default,
7922
+ {
7923
+ name: "age",
7924
+ control,
7925
+ type: "number",
7926
+ label: mergedLabels.ageLabel,
7927
+ placeholder: mergedLabels.agePlaceholder,
7928
+ size: "large",
7929
+ required: true,
7930
+ validationRules: {
7931
+ required: mergedErrors.requiredAge,
7932
+ min: {
7933
+ value: 1,
7934
+ message: mergedErrors.minAge
7935
+ },
7936
+ max: {
7937
+ value: 150,
7938
+ message: mergedErrors.maxAge
7939
+ }
7940
+ }
7941
+ }
7942
+ ),
7943
+ /* @__PURE__ */ jsxRuntime.jsx(
7944
+ InputDynamic_default,
7945
+ {
7946
+ name: "cityId",
7947
+ control,
7948
+ type: "select",
7949
+ label: mergedLabels.cityLabel,
7950
+ options: cityOptions,
7951
+ placeholder: mergedLabels.cityPlaceholder,
7952
+ size: "large",
7953
+ required: true,
7954
+ validationRules: {
7955
+ required: mergedErrors.requiredCity
7956
+ }
7957
+ }
7958
+ ),
7979
7959
  isAdultForm ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7980
7960
  /* @__PURE__ */ jsxRuntime.jsx(
7981
7961
  InputDynamic_default,
@@ -7985,7 +7965,7 @@ var ModalPassengerForm = ({
7985
7965
  type: "select",
7986
7966
  label: mergedLabels.idTypeLabel,
7987
7967
  placeholder: mergedLabels.idTypePlaceholder,
7988
- options: idTypeOptions,
7968
+ options: TYPE_OPTIONS,
7989
7969
  size: "large",
7990
7970
  required: true,
7991
7971
  validationRules: {
@@ -7993,48 +7973,43 @@ var ModalPassengerForm = ({
7993
7973
  }
7994
7974
  }
7995
7975
  ),
7996
- /* @__PURE__ */ jsxRuntime.jsx(
7976
+ idType ? idType === "lainnya" ? /* @__PURE__ */ jsxRuntime.jsx(
7997
7977
  InputDynamic_default,
7998
7978
  {
7999
7979
  name: "idNumber",
8000
7980
  control,
8001
- type: "text",
8002
- label: mergedLabels.idNumberLabel,
8003
- placeholder: mergedLabels.idNumberPlaceholder,
7981
+ type: "date",
7982
+ label: mergedLabels.idTypeOtherLabel,
7983
+ placeholder: mergedLabels.idTypeOtherPlaceholder,
8004
7984
  size: "large",
8005
7985
  required: true,
7986
+ max: (/* @__PURE__ */ new Date()).toISOString().split("T")[0],
8006
7987
  validationRules: {
8007
- required: mergedErrors.requiredIdNumber,
8008
- minLength: {
8009
- value: 6,
8010
- message: mergedErrors.minLengthIdNumber
8011
- }
7988
+ required: mergedErrors.requiredDate
8012
7989
  }
8013
7990
  }
8014
- ),
8015
- /* @__PURE__ */ jsxRuntime.jsx(
8016
- InputDynamic_default,
8017
- {
8018
- name: "age",
8019
- control,
8020
- type: "number",
8021
- label: mergedLabels.ageLabel,
8022
- placeholder: mergedLabels.agePlaceholder,
8023
- size: "large",
8024
- required: true,
8025
- validationRules: {
8026
- required: mergedErrors.requiredAge,
8027
- min: {
8028
- value: 1,
8029
- message: mergedErrors.minAge
8030
- },
8031
- max: {
8032
- value: 150,
8033
- message: mergedErrors.maxAge
7991
+ ) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7992
+ /* @__PURE__ */ jsxRuntime.jsx(
7993
+ InputDynamic_default,
7994
+ {
7995
+ name: "idNumber",
7996
+ control,
7997
+ type: idType === "ktp" ? "number" : "text",
7998
+ label: mergedLabels.idNumberLabel,
7999
+ placeholder: mergedLabels.idNumberPlaceholder,
8000
+ size: "large",
8001
+ required: true,
8002
+ validationRules: {
8003
+ required: mergedErrors.requiredIdNumber,
8004
+ minLength: {
8005
+ value: 6,
8006
+ message: mergedErrors.minLengthIdNumber
8007
+ }
8034
8008
  }
8035
8009
  }
8036
- }
8037
- )
8010
+ ),
8011
+ idType === "paspor" && /* @__PURE__ */ jsxRuntime.jsx(InputDynamic_default, { menuPlacement: "top", name: "country", control, type: "country", label: mergedLabels.countryLabel, placeholder: mergedLabels.countryPlaceholder, size: "large", required: true, validationRules: { required: mergedErrors.requiredCountry } })
8012
+ ] }) : null
8038
8013
  ] }) : /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
8039
8014
  InputDynamic_default,
8040
8015
  {
@@ -8050,22 +8025,6 @@ var ModalPassengerForm = ({
8050
8025
  }
8051
8026
  }
8052
8027
  ) }),
8053
- /* @__PURE__ */ jsxRuntime.jsx(
8054
- InputDynamic_default,
8055
- {
8056
- name: "cityId",
8057
- control,
8058
- type: "select",
8059
- label: mergedLabels.cityLabel,
8060
- options: cityOptions,
8061
- placeholder: mergedLabels.cityPlaceholder,
8062
- size: "large",
8063
- required: true,
8064
- validationRules: {
8065
- required: mergedErrors.requiredCity
8066
- }
8067
- }
8068
- ),
8069
8028
  /* @__PURE__ */ jsxRuntime.jsx("br", {}),
8070
8029
  /* @__PURE__ */ jsxRuntime.jsx(reactComponents.Divider, {}),
8071
8030
  /* @__PURE__ */ jsxRuntime.jsx("br", {}),
@@ -11838,6 +11797,7 @@ var CardProfileMenu = ({
11838
11797
 
11839
11798
  exports.BackgroundTicketCard = BackgroundTicketCard_default;
11840
11799
  exports.BackgroundTicketCardVertical = BackgroundTicketCardVertical_default;
11800
+ exports.COUNTRIES = COUNTRIES;
11841
11801
  exports.CardAddon = CardAddon;
11842
11802
  exports.CardBanner = CardBanner;
11843
11803
  exports.CardBookingTicket = CardBookingTicket;
@@ -11863,7 +11823,6 @@ exports.CardTicketSearchSummaryDefaultLabels = DEFAULT_LABELS9;
11863
11823
  exports.CardVehicleDetail = CardVehicleDetail;
11864
11824
  exports.CardVehicleOwnerForm = CardVehicleOwnerForm;
11865
11825
  exports.CarouselWithCustomNav = CarouselWithCustomNav;
11866
- exports.DEFAULT_COUNTRY_CODES = DEFAULT_COUNTRY_CODES;
11867
11826
  exports.DEFAULT_DURATION_RANGE = DEFAULT_DURATION_RANGE;
11868
11827
  exports.DEFAULT_PRICE_RANGE = DEFAULT_PRICE_RANGE;
11869
11828
  exports.DEFAULT_SCROLL_AMOUNT = DEFAULT_SCROLL_AMOUNT;