@star-insure/sdk 6.0.13 → 6.0.15

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.
Files changed (308) hide show
  1. package/dist/index.d.ts +21 -0
  2. package/dist/sdk.es.js +71 -67
  3. package/dist/sdk.es.js.map +1 -1
  4. package/dist/sdk.es10.js +1 -1
  5. package/dist/sdk.es100.js +73 -12
  6. package/dist/sdk.es100.js.map +1 -1
  7. package/dist/sdk.es101.js +74 -10
  8. package/dist/sdk.es101.js.map +1 -1
  9. package/dist/sdk.es102.js +69 -44
  10. package/dist/sdk.es102.js.map +1 -1
  11. package/dist/sdk.es103.js +66 -43
  12. package/dist/sdk.es103.js.map +1 -1
  13. package/dist/sdk.es104.js +35 -46
  14. package/dist/sdk.es104.js.map +1 -1
  15. package/dist/sdk.es105.js +39 -24
  16. package/dist/sdk.es105.js.map +1 -1
  17. package/dist/sdk.es106.js +41 -25
  18. package/dist/sdk.es106.js.map +1 -1
  19. package/dist/sdk.es107.js +28 -54
  20. package/dist/sdk.es107.js.map +1 -1
  21. package/dist/sdk.es108.js +62 -54
  22. package/dist/sdk.es108.js.map +1 -1
  23. package/dist/sdk.es109.js +66 -52
  24. package/dist/sdk.es109.js.map +1 -1
  25. package/dist/sdk.es11.js +1 -1
  26. package/dist/sdk.es110.js +65 -51
  27. package/dist/sdk.es110.js.map +1 -1
  28. package/dist/sdk.es111.js +80 -35
  29. package/dist/sdk.es111.js.map +1 -1
  30. package/dist/sdk.es112.js +49 -38
  31. package/dist/sdk.es112.js.map +1 -1
  32. package/dist/sdk.es113.js +50 -38
  33. package/dist/sdk.es113.js.map +1 -1
  34. package/dist/sdk.es114.js +50 -39
  35. package/dist/sdk.es114.js.map +1 -1
  36. package/dist/sdk.es115.js +35 -70
  37. package/dist/sdk.es115.js.map +1 -1
  38. package/dist/sdk.es116.js +27 -75
  39. package/dist/sdk.es116.js.map +1 -1
  40. package/dist/sdk.es117.js +35 -82
  41. package/dist/sdk.es117.js.map +1 -1
  42. package/dist/sdk.es118.js +33 -79
  43. package/dist/sdk.es118.js.map +1 -1
  44. package/dist/sdk.es119.js +37 -50
  45. package/dist/sdk.es119.js.map +1 -1
  46. package/dist/sdk.es12.js +10 -16
  47. package/dist/sdk.es12.js.map +1 -1
  48. package/dist/sdk.es120.js +37 -50
  49. package/dist/sdk.es120.js.map +1 -1
  50. package/dist/sdk.es121.js +24 -49
  51. package/dist/sdk.es121.js.map +1 -1
  52. package/dist/sdk.es122.js +35 -38
  53. package/dist/sdk.es122.js.map +1 -1
  54. package/dist/sdk.es123.js +35 -37
  55. package/dist/sdk.es123.js.map +1 -1
  56. package/dist/sdk.es124.js +27 -41
  57. package/dist/sdk.es124.js.map +1 -1
  58. package/dist/sdk.es125.js +27 -41
  59. package/dist/sdk.es125.js.map +1 -1
  60. package/dist/sdk.es126.js +6 -46
  61. package/dist/sdk.es126.js.map +1 -1
  62. package/dist/sdk.es127.js +39 -45
  63. package/dist/sdk.es127.js.map +1 -1
  64. package/dist/sdk.es128.js +2 -34
  65. package/dist/sdk.es128.js.map +1 -1
  66. package/dist/sdk.es129.js +66 -43
  67. package/dist/sdk.es129.js.map +1 -1
  68. package/dist/sdk.es13.js +16 -10
  69. package/dist/sdk.es13.js.map +1 -1
  70. package/dist/sdk.es130.js +31 -44
  71. package/dist/sdk.es130.js.map +1 -1
  72. package/dist/sdk.es131.js +11 -33
  73. package/dist/sdk.es131.js.map +1 -1
  74. package/dist/sdk.es132.js +118 -30
  75. package/dist/sdk.es132.js.map +1 -1
  76. package/dist/sdk.es133.js +84 -65
  77. package/dist/sdk.es133.js.map +1 -1
  78. package/dist/sdk.es134.js +8 -31
  79. package/dist/sdk.es134.js.map +1 -1
  80. package/dist/sdk.es135.js +11 -11
  81. package/dist/sdk.es135.js.map +1 -1
  82. package/dist/sdk.es136.js +14 -121
  83. package/dist/sdk.es136.js.map +1 -1
  84. package/dist/sdk.es137.js +14 -86
  85. package/dist/sdk.es137.js.map +1 -1
  86. package/dist/sdk.es138.js +5 -7
  87. package/dist/sdk.es138.js.map +1 -1
  88. package/dist/sdk.es139.js +3674 -10
  89. package/dist/sdk.es139.js.map +1 -1
  90. package/dist/sdk.es14.js +10 -36
  91. package/dist/sdk.es14.js.map +1 -1
  92. package/dist/sdk.es140.js +2 -14
  93. package/dist/sdk.es140.js.map +1 -1
  94. package/dist/sdk.es141.js +5 -13
  95. package/dist/sdk.es141.js.map +1 -1
  96. package/dist/sdk.es142.js +5 -5
  97. package/dist/sdk.es142.js.map +1 -1
  98. package/dist/sdk.es143.js +10 -5
  99. package/dist/sdk.es143.js.map +1 -1
  100. package/dist/sdk.es144.js +7 -5
  101. package/dist/sdk.es144.js.map +1 -1
  102. package/dist/sdk.es145.js +6 -10
  103. package/dist/sdk.es145.js.map +1 -1
  104. package/dist/sdk.es146.js +25 -8
  105. package/dist/sdk.es146.js.map +1 -1
  106. package/dist/sdk.es147.js +99 -6
  107. package/dist/sdk.es147.js.map +1 -1
  108. package/dist/sdk.es148.js +47 -25
  109. package/dist/sdk.es148.js.map +1 -1
  110. package/dist/sdk.es149.js +9 -99
  111. package/dist/sdk.es149.js.map +1 -1
  112. package/dist/sdk.es15.js +36 -40
  113. package/dist/sdk.es15.js.map +1 -1
  114. package/dist/sdk.es150.js +10 -47
  115. package/dist/sdk.es150.js.map +1 -1
  116. package/dist/sdk.es151.js +13 -9
  117. package/dist/sdk.es151.js.map +1 -1
  118. package/dist/sdk.es152.js +10 -9
  119. package/dist/sdk.es152.js.map +1 -1
  120. package/dist/sdk.es153.js +53 -13
  121. package/dist/sdk.es153.js.map +1 -1
  122. package/dist/sdk.es154.js +10 -11
  123. package/dist/sdk.es154.js.map +1 -1
  124. package/dist/sdk.es155.js +20 -6
  125. package/dist/sdk.es155.js.map +1 -1
  126. package/dist/sdk.es156.js +5 -13
  127. package/dist/sdk.es156.js.map +1 -1
  128. package/dist/sdk.es157.js +13 -27
  129. package/dist/sdk.es157.js.map +1 -1
  130. package/dist/sdk.es158.js +25 -12
  131. package/dist/sdk.es158.js.map +1 -1
  132. package/dist/sdk.es159.js +15 -11
  133. package/dist/sdk.es159.js.map +1 -1
  134. package/dist/sdk.es16.js +39 -25
  135. package/dist/sdk.es16.js.map +1 -1
  136. package/dist/sdk.es160.js +15 -0
  137. package/dist/sdk.es160.js.map +1 -0
  138. package/dist/sdk.es17.js +26 -4
  139. package/dist/sdk.es17.js.map +1 -1
  140. package/dist/sdk.es18.js +4 -50
  141. package/dist/sdk.es18.js.map +1 -1
  142. package/dist/sdk.es19.js +23 -78
  143. package/dist/sdk.es19.js.map +1 -1
  144. package/dist/sdk.es2.js +2 -2
  145. package/dist/sdk.es20.js +103 -42
  146. package/dist/sdk.es20.js.map +1 -1
  147. package/dist/sdk.es21.js +44 -8
  148. package/dist/sdk.es21.js.map +1 -1
  149. package/dist/sdk.es22.js +8 -39
  150. package/dist/sdk.es22.js.map +1 -1
  151. package/dist/sdk.es23.js +39 -4
  152. package/dist/sdk.es23.js.map +1 -1
  153. package/dist/sdk.es24.js +4 -4
  154. package/dist/sdk.es24.js.map +1 -1
  155. package/dist/sdk.es25.js +4 -5
  156. package/dist/sdk.es25.js.map +1 -1
  157. package/dist/sdk.es26.js +5 -7
  158. package/dist/sdk.es26.js.map +1 -1
  159. package/dist/sdk.es27.js +7 -5
  160. package/dist/sdk.es27.js.map +1 -1
  161. package/dist/sdk.es28.js +5 -46
  162. package/dist/sdk.es28.js.map +1 -1
  163. package/dist/sdk.es29.js +46 -7
  164. package/dist/sdk.es29.js.map +1 -1
  165. package/dist/sdk.es30.js +7 -103
  166. package/dist/sdk.es30.js.map +1 -1
  167. package/dist/sdk.es31.js +97 -22
  168. package/dist/sdk.es31.js.map +1 -1
  169. package/dist/sdk.es32.js +19 -156
  170. package/dist/sdk.es32.js.map +1 -1
  171. package/dist/sdk.es33.js +162 -175
  172. package/dist/sdk.es33.js.map +1 -1
  173. package/dist/sdk.es34.js +179 -20
  174. package/dist/sdk.es34.js.map +1 -1
  175. package/dist/sdk.es35.js +21 -100
  176. package/dist/sdk.es35.js.map +1 -1
  177. package/dist/sdk.es36.js +102 -59
  178. package/dist/sdk.es36.js.map +1 -1
  179. package/dist/sdk.es37.js +55 -120
  180. package/dist/sdk.es37.js.map +1 -1
  181. package/dist/sdk.es38.js +125 -3
  182. package/dist/sdk.es38.js.map +1 -1
  183. package/dist/sdk.es39.js +3 -11
  184. package/dist/sdk.es39.js.map +1 -1
  185. package/dist/sdk.es40.js +10 -4
  186. package/dist/sdk.es40.js.map +1 -1
  187. package/dist/sdk.es41.js +4 -7
  188. package/dist/sdk.es41.js.map +1 -1
  189. package/dist/sdk.es42.js +8 -2
  190. package/dist/sdk.es42.js.map +1 -1
  191. package/dist/sdk.es43.js +2 -26
  192. package/dist/sdk.es43.js.map +1 -1
  193. package/dist/sdk.es44.js +17 -593
  194. package/dist/sdk.es44.js.map +1 -1
  195. package/dist/sdk.es45.js +602 -5
  196. package/dist/sdk.es45.js.map +1 -1
  197. package/dist/sdk.es46.js +2 -22
  198. package/dist/sdk.es46.js.map +1 -1
  199. package/dist/sdk.es47.js +2 -79
  200. package/dist/sdk.es47.js.map +1 -1
  201. package/dist/sdk.es48.js +8 -75
  202. package/dist/sdk.es48.js.map +1 -1
  203. package/dist/sdk.es49.js +6 -231
  204. package/dist/sdk.es49.js.map +1 -1
  205. package/dist/sdk.es5.js.map +1 -1
  206. package/dist/sdk.es50.js +7 -25
  207. package/dist/sdk.es50.js.map +1 -1
  208. package/dist/sdk.es51.js +5 -3
  209. package/dist/sdk.es51.js.map +1 -1
  210. package/dist/sdk.es52.js +16 -2
  211. package/dist/sdk.es52.js.map +1 -1
  212. package/dist/sdk.es53.js +9 -2
  213. package/dist/sdk.es53.js.map +1 -1
  214. package/dist/sdk.es54.js +9 -8
  215. package/dist/sdk.es54.js.map +1 -1
  216. package/dist/sdk.es55.js +8 -6
  217. package/dist/sdk.es55.js.map +1 -1
  218. package/dist/sdk.es56.js +638 -7
  219. package/dist/sdk.es56.js.map +1 -1
  220. package/dist/sdk.es57.js +74 -5
  221. package/dist/sdk.es57.js.map +1 -1
  222. package/dist/sdk.es58.js +4 -15
  223. package/dist/sdk.es58.js.map +1 -1
  224. package/dist/sdk.es59.js +19 -8
  225. package/dist/sdk.es59.js.map +1 -1
  226. package/dist/sdk.es60.js +4 -9
  227. package/dist/sdk.es60.js.map +1 -1
  228. package/dist/sdk.es61.js +18 -9
  229. package/dist/sdk.es61.js.map +1 -1
  230. package/dist/sdk.es62.js +5 -638
  231. package/dist/sdk.es62.js.map +1 -1
  232. package/dist/sdk.es63.js +9 -74
  233. package/dist/sdk.es63.js.map +1 -1
  234. package/dist/sdk.es64.js +48 -4
  235. package/dist/sdk.es64.js.map +1 -1
  236. package/dist/sdk.es65.js +7 -19
  237. package/dist/sdk.es65.js.map +1 -1
  238. package/dist/sdk.es66.js +57 -5
  239. package/dist/sdk.es66.js.map +1 -1
  240. package/dist/sdk.es67.js +64 -17
  241. package/dist/sdk.es67.js.map +1 -1
  242. package/dist/sdk.es68.js +8 -5
  243. package/dist/sdk.es68.js.map +1 -1
  244. package/dist/sdk.es69.js +4 -9
  245. package/dist/sdk.es69.js.map +1 -1
  246. package/dist/sdk.es70.js +5 -49
  247. package/dist/sdk.es70.js.map +1 -1
  248. package/dist/sdk.es71.js +3 -8
  249. package/dist/sdk.es71.js.map +1 -1
  250. package/dist/sdk.es72.js +21 -56
  251. package/dist/sdk.es72.js.map +1 -1
  252. package/dist/sdk.es73.js +80 -65
  253. package/dist/sdk.es73.js.map +1 -1
  254. package/dist/sdk.es74.js +76 -8
  255. package/dist/sdk.es74.js.map +1 -1
  256. package/dist/sdk.es75.js +232 -4
  257. package/dist/sdk.es75.js.map +1 -1
  258. package/dist/sdk.es76.js +26 -4
  259. package/dist/sdk.es76.js.map +1 -1
  260. package/dist/sdk.es77.js +4 -8
  261. package/dist/sdk.es77.js.map +1 -1
  262. package/dist/sdk.es78.js +7 -6
  263. package/dist/sdk.es78.js.map +1 -1
  264. package/dist/sdk.es79.js +6 -39
  265. package/dist/sdk.es79.js.map +1 -1
  266. package/dist/sdk.es80.js +2 -2
  267. package/dist/sdk.es81.js +10 -53
  268. package/dist/sdk.es81.js.map +1 -1
  269. package/dist/sdk.es82.js +11 -10
  270. package/dist/sdk.es82.js.map +1 -1
  271. package/dist/sdk.es83.js +12 -19
  272. package/dist/sdk.es83.js.map +1 -1
  273. package/dist/sdk.es84.js +10 -3674
  274. package/dist/sdk.es84.js.map +1 -1
  275. package/dist/sdk.es85.js +18 -5
  276. package/dist/sdk.es85.js.map +1 -1
  277. package/dist/sdk.es86.js +6 -2
  278. package/dist/sdk.es86.js.map +1 -1
  279. package/dist/sdk.es87.js +55 -11
  280. package/dist/sdk.es87.js.map +1 -1
  281. package/dist/sdk.es88.js +8 -10
  282. package/dist/sdk.es88.js.map +1 -1
  283. package/dist/sdk.es89.js +4 -12
  284. package/dist/sdk.es89.js.map +1 -1
  285. package/dist/sdk.es9.js +2 -2
  286. package/dist/sdk.es90.js +13 -10
  287. package/dist/sdk.es90.js.map +1 -1
  288. package/dist/sdk.es91.js +14 -18
  289. package/dist/sdk.es91.js.map +1 -1
  290. package/dist/sdk.es92.js +3 -5
  291. package/dist/sdk.es92.js.map +1 -1
  292. package/dist/sdk.es93.js +12 -54
  293. package/dist/sdk.es93.js.map +1 -1
  294. package/dist/sdk.es94.js +10 -2
  295. package/dist/sdk.es94.js.map +1 -1
  296. package/dist/sdk.es95.js +54 -8
  297. package/dist/sdk.es95.js.map +1 -1
  298. package/dist/sdk.es96.js +57 -5
  299. package/dist/sdk.es96.js.map +1 -1
  300. package/dist/sdk.es97.js +58 -13
  301. package/dist/sdk.es97.js.map +1 -1
  302. package/dist/sdk.es98.js +33 -15
  303. package/dist/sdk.es98.js.map +1 -1
  304. package/dist/sdk.es99.js +31 -4
  305. package/dist/sdk.es99.js.map +1 -1
  306. package/package.json +1 -1
  307. package/src/lib/index.ts +1 -0
  308. package/src/lib/quotePremiumRates.tsx +28 -0
package/dist/sdk.es32.js CHANGED
@@ -1,171 +1,34 @@
1
- import { j as t } from "./sdk.es38.js";
2
- import n from "react";
3
- import { sanitiseVehicleType as L } from "./sdk.es4.js";
1
+ import { j as e } from "./sdk.es39.js";
2
+ import { formatMoney as f, formatNumber as p } from "./sdk.es3.js";
4
3
  import "@inertiajs/react";
5
- import { useToast as U } from "./sdk.es9.js";
4
+ import "react";
5
+ import "./sdk.es9.js";
6
6
  import "./sdk.es10.js";
7
7
  import "./sdk.es11.js";
8
- import o from "./sdk.es45.js";
9
- const I = [
10
- "POOR",
11
- "FAIR",
12
- "AVERAGE",
13
- "GOOD",
14
- "VERY_GOOD",
15
- "AS_NEW",
16
- "NEW"
17
- ];
18
- function H({
19
- name: i = "registration_search",
20
- initialRegistrationValue: k = "",
21
- onVehicleDataFound: b,
22
- apiUrl: N = "/api/rego-search",
23
- showOdometerReadingField: u = !1,
24
- showConditionField: m = !1,
25
- onChange: h,
26
- outerClassName: R,
27
- odoInputClassName: C,
28
- conditionSelectClassName: O,
29
- regoInputClassName: E,
30
- searchBtnClassName: A
31
- }) {
32
- const [g, D] = n.useState(k), [f, G] = n.useState(""), [y, V] = n.useState("GOOD"), [s, r] = n.useState("idle"), { addToast: c } = U();
33
- function l(e) {
34
- e.currentTarget.name === i && D(e.currentTarget.value?.toUpperCase() || ""), e.currentTarget.name === "odo_search" && G(e.currentTarget.value), e.currentTarget.name === "condition_search" && V(e.currentTarget.value), h && h({ registration: e.currentTarget.value.toUpperCase() });
8
+ import "./sdk.es12.js";
9
+ function v({ value: o = 0, onChange: t, name: i = "value", id: a = "value", className: s = "", required: u = !1 }) {
10
+ function l(r) {
11
+ let n = 0;
12
+ r.currentTarget.value && (n = p(r.currentTarget.value), isNaN(n) && (n = 0)), t(n);
35
13
  }
36
- function v(e) {
37
- e.key === "Enter" && x();
38
- }
39
- async function x() {
40
- r("processing");
41
- const e = {
42
- registration: g,
43
- odometerReading: f,
44
- condition: y
45
- }, W = new URLSearchParams(e).toString(), w = await fetch(`${N}?${W}`, {
46
- headers: { "Content-Type": "application/json" }
47
- });
48
- if (!w.ok) {
49
- c({
50
- message: "There was an error with the provided registration.",
51
- status: "error",
52
- timeout: 3e3
53
- }), r("error");
54
- return;
55
- }
56
- const { data: d, ok: K } = await w.json();
57
- if (!K || !d) {
58
- c({
59
- message: "Failed to find vehicle, please complete manually.",
60
- status: "error",
61
- timeout: 3e3
62
- }), r("error");
63
- return;
64
- }
65
- const a = d.data.vehicle, j = a.make, S = a.model, T = a["year-of-manufacture"], _ = a["gross-vehicle-mass"] ? parseInt(a["gross-vehicle-mass"].replaceAll(",", "")) : 0, p = a["vehicle-type"];
66
- (!j || !S || !T || !p) && (c({
67
- message: "We couldn't find all of your data, please complete manually.",
68
- status: "error",
69
- timeout: 3e3
70
- }), r("error")), b({
71
- ...d,
72
- make: j || "",
73
- model: S || "",
74
- year: T || "",
75
- vehicle_type: p ? L(p) : "car",
76
- is_heavy: _ && _ > 3500 || !1
77
- }), r("success");
78
- }
79
- return /* @__PURE__ */ t.jsx("div", { className: "w-full flex flex-col", children: /* @__PURE__ */ t.jsxs("div", { className: o(R, "w-full flex flex-wrap gap-3 bg-gray-100 rounded-md p-3"), children: [
80
- u || m && /* @__PURE__ */ t.jsxs("div", { className: "w-full grid grid-cols-2 gap-3", children: [
81
- u && /* @__PURE__ */ t.jsxs("label", { children: [
82
- "Approx. km travelled",
83
- /* @__PURE__ */ t.jsx(
84
- "input",
85
- {
86
- onKeyDown: v,
87
- type: "number",
88
- name: "odo_search",
89
- id: "odo_search",
90
- value: f,
91
- onChange: l,
92
- className: o(C, "transition-all", {
93
- "pointer-events-none opacity-50": s === "processing"
94
- }),
95
- disabled: s === "processing"
96
- }
97
- )
98
- ] }),
99
- m && /* @__PURE__ */ t.jsxs("label", { children: [
100
- "Vehicle condition",
101
- /* @__PURE__ */ t.jsx(
102
- "select",
103
- {
104
- name: "condition_search",
105
- id: "condition_search",
106
- value: y,
107
- onChange: l,
108
- className: o(O, "transition-all", {
109
- "pointer-events-none opacity-50": s === "processing"
110
- }),
111
- disabled: s === "processing",
112
- children: I.map((e) => /* @__PURE__ */ t.jsx("option", { children: e }, e))
113
- }
114
- )
115
- ] })
116
- ] }),
117
- /* @__PURE__ */ t.jsx(
14
+ const c = f(o, 0);
15
+ return /* @__PURE__ */ e.jsxs("div", { className: `${s} flex items-center gap-2 pl-4 rounded-md border border-gray-300 transition-all focus-within:border-accent focus-within:outline-none focus-within:ring focus-within:ring-accent focus-within:ring-opacity-50`, children: [
16
+ /* @__PURE__ */ e.jsx("span", { className: "font-bold pr-2", children: "$" }),
17
+ /* @__PURE__ */ e.jsx(
118
18
  "input",
119
19
  {
120
- onKeyDown: v,
121
- placeholder: "Search for your rego",
122
20
  type: "text",
123
21
  name: i,
124
- id: i,
125
- value: g,
22
+ id: a,
23
+ value: c,
126
24
  onChange: l,
127
- className: o(E, "flex-grow transition-all", {
128
- "pointer-events-none opacity-50": s === "processing"
129
- }),
130
- disabled: s === "processing"
131
- }
132
- ),
133
- /* @__PURE__ */ t.jsxs(
134
- "button",
135
- {
136
- title: "Search",
137
- type: "button",
138
- onClick: x,
139
- disabled: s === "processing",
140
- className: o(A, "bg-accent px-4 py-3 rounded-md transition-all"),
141
- children: [
142
- /* @__PURE__ */ t.jsx("span", { className: "sr-only", children: "Search" }),
143
- /* @__PURE__ */ t.jsx(
144
- "svg",
145
- {
146
- xmlns: "http://www.w3.org/2000/svg",
147
- className: "h-5 w-5 text-white",
148
- fill: "none",
149
- viewBox: "0 0 24 24",
150
- stroke: "currentColor",
151
- strokeWidth: "2",
152
- children: /* @__PURE__ */ t.jsx(
153
- "path",
154
- {
155
- strokeLinecap: "round",
156
- strokeLinejoin: "round",
157
- d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
158
- }
159
- )
160
- }
161
- )
162
- ]
25
+ className: "w-full !focus:outline-none !focus:ring-0 !focus:ring-transparent !focus:ring-opacity-0 !ring-0 !border-0 !transition-none !rounded-l-none",
26
+ required: u
163
27
  }
164
28
  )
165
- ] }) });
29
+ ] });
166
30
  }
167
31
  export {
168
- I as conditionOptions,
169
- H as default
32
+ v as default
170
33
  };
171
34
  //# sourceMappingURL=sdk.es32.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.es32.js","sources":["../src/components/forms/RegistrationSearchField.tsx"],"sourcesContent":["import React from 'react';\nimport { sanitiseVehicleType } from '../../lib';\nimport {\n ApiResponse,\n FormStatus,\n MotorwebVehicleResponse,\n VehicleType,\n} from '../../types';\nimport { useToast } from '../../lib/toast';\nimport cn from 'classnames';\n\nexport interface VehicleData extends MotorwebVehicleResponse {\n make: string;\n model: string;\n year: string;\n vehicle_type: VehicleType;\n is_heavy: boolean;\n}\n\nexport interface RegistrationSearchOnChange {\n registration: string;\n}\n\ninterface Props {\n name?: string;\n onChange?: (values: RegistrationSearchOnChange) => void;\n onVehicleDataFound: (vehicleData: VehicleData) => void;\n apiUrl?: string;\n showOdometerReadingField?: boolean;\n showConditionField?: boolean;\n initialRegistrationValue?: string;\n outerClassName?: string;\n odoInputClassName?: string;\n conditionSelectClassName?: string;\n regoInputClassName?: string;\n searchBtnClassName?: string;\n}\n\nexport const conditionOptions = [\n 'POOR',\n 'FAIR',\n 'AVERAGE',\n 'GOOD',\n 'VERY_GOOD',\n 'AS_NEW',\n 'NEW',\n];\n\nexport default function RegistrationSearchField({\n name = 'registration_search',\n initialRegistrationValue = '',\n onVehicleDataFound,\n apiUrl = '/api/rego-search',\n showOdometerReadingField = false,\n showConditionField = false,\n onChange,\n outerClassName,\n odoInputClassName,\n conditionSelectClassName,\n regoInputClassName,\n searchBtnClassName,\n}: Props) {\n const [rego, setRego] = React.useState<string>(initialRegistrationValue);\n const [odo, setOdo] = React.useState<string>('');\n const [condition, setCondition] = React.useState<string>('GOOD');\n\n const [status, setStatus] = React.useState<FormStatus>('idle');\n const { addToast } = useToast();\n\n function handleChange(\n e: React.SyntheticEvent<HTMLInputElement | HTMLSelectElement>\n ) {\n if (e.currentTarget.name === name) {\n setRego(e.currentTarget.value?.toUpperCase() || '');\n }\n\n if (e.currentTarget.name === 'odo_search') {\n setOdo(e.currentTarget.value);\n }\n\n if (e.currentTarget.name === 'condition_search') {\n setCondition(e.currentTarget.value);\n }\n\n if (onChange) {\n onChange({ registration: e.currentTarget.value.toUpperCase() });\n }\n }\n\n function handleKeydown(e: React.KeyboardEvent) {\n if (e.key === 'Enter') {\n handleSearch();\n }\n }\n\n async function handleSearch() {\n setStatus('processing');\n\n const payload = {\n registration: rego,\n odometerReading: odo,\n condition,\n };\n\n // Turn the payload in to a query string\n // @ts-ignore\n const query = new URLSearchParams(payload).toString();\n\n const res = await fetch(`${apiUrl}?${query}`, {\n headers: { 'Content-Type': 'application/json' },\n });\n\n if (!res.ok) {\n addToast({\n message: `There was an error with the provided registration.`,\n status: 'error',\n timeout: 3000,\n });\n setStatus('error');\n return;\n }\n\n const { data, ok }: ApiResponse<MotorwebVehicleResponse> = await res.json();\n\n if (!ok || !data) {\n addToast({\n message: `Failed to find vehicle, please complete manually.`,\n status: 'error',\n timeout: 3000,\n });\n setStatus('error');\n return;\n }\n\n const vehicleData = data.data.vehicle;\n\n const make = vehicleData.make;\n const model = vehicleData.model;\n const year = vehicleData['year-of-manufacture'];\n const weight = vehicleData['gross-vehicle-mass']\n ? parseInt(vehicleData['gross-vehicle-mass'].replaceAll(',', ''))\n : 0;\n const vehicleType = vehicleData['vehicle-type'];\n\n if (!make || !model || !year || !vehicleType) {\n addToast({\n message: `We couldn't find all of your data, please complete manually.`,\n status: 'error',\n timeout: 3000,\n });\n setStatus('error');\n }\n\n onVehicleDataFound({\n ...data,\n make: make || '',\n model: model || '',\n year: year || '',\n vehicle_type: vehicleType ? sanitiseVehicleType(vehicleType) : 'car',\n is_heavy: (weight && weight > 3500) || false,\n });\n\n setStatus('success');\n }\n\n return (\n <div className=\"w-full flex flex-col\">\n <div className={cn(outerClassName, \"w-full flex flex-wrap gap-3 bg-gray-100 rounded-md p-3\")}>\n {showOdometerReadingField ||\n (showConditionField && (\n <div className=\"w-full grid grid-cols-2 gap-3\">\n {showOdometerReadingField && (\n <label>\n Approx. km travelled\n <input\n onKeyDown={handleKeydown}\n type=\"number\"\n name=\"odo_search\"\n id=\"odo_search\"\n value={odo}\n onChange={handleChange}\n className={cn(odoInputClassName, \"transition-all\", {\n 'pointer-events-none opacity-50': status === 'processing',\n })}\n disabled={status === 'processing'}\n />\n </label>\n )}\n\n {showConditionField && (\n <label>\n Vehicle condition\n <select\n name=\"condition_search\"\n id=\"condition_search\"\n value={condition}\n onChange={handleChange}\n className={cn(conditionSelectClassName, \"transition-all\", {\n 'pointer-events-none opacity-50': status === 'processing',\n })}\n disabled={status === 'processing'}\n >\n {conditionOptions.map(conditionOption => (\n <option key={conditionOption}>{conditionOption}</option>\n ))}\n </select>\n </label>\n )}\n </div>\n ))}\n\n <input\n onKeyDown={handleKeydown}\n placeholder=\"Search for your rego\"\n type=\"text\"\n name={name}\n id={name}\n value={rego}\n onChange={handleChange}\n className={cn(regoInputClassName, \"flex-grow transition-all\", {\n 'pointer-events-none opacity-50': status === 'processing',\n })}\n disabled={status === 'processing'}\n />\n\n <button\n title=\"Search\"\n type=\"button\"\n onClick={handleSearch}\n disabled={status === 'processing'}\n className={cn(searchBtnClassName, \"bg-accent px-4 py-3 rounded-md transition-all\")}\n >\n <span className=\"sr-only\">Search</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5 text-white\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n </button>\n </div>\n </div>\n );\n}\n"],"names":["conditionOptions","RegistrationSearchField","name","initialRegistrationValue","onVehicleDataFound","apiUrl","showOdometerReadingField","showConditionField","onChange","outerClassName","odoInputClassName","conditionSelectClassName","regoInputClassName","searchBtnClassName","rego","setRego","React","odo","setOdo","condition","setCondition","status","setStatus","addToast","useToast","handleChange","handleKeydown","handleSearch","payload","query","res","data","ok","vehicleData","make","model","year","weight","vehicleType","sanitiseVehicleType","jsx","jsxs","cn","conditionOption"],"mappings":"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"}
1
+ {"version":3,"file":"sdk.es32.js","sources":["../src/components/forms/MoneyField.tsx"],"sourcesContent":["import React from 'react';\nimport { formatMoney, formatNumber } from \"../../lib\";\n\ninterface Props {\n value?: number;\n onChange: (value: number) => void;\n id?: string;\n name?: string;\n className?: string;\n required?: boolean;\n}\n\nexport default function MoneyField({ value = 0, onChange, name = 'value', id = 'value', className = '', required = false }: Props) {\n function handleChange(e: React.SyntheticEvent<HTMLInputElement>) {\n let newValue: number = 0;\n\n if (e.currentTarget.value) {\n newValue = formatNumber(e.currentTarget.value);\n\n if (isNaN(newValue)) {\n newValue = 0;\n }\n }\n\n onChange(newValue);\n }\n\n const displayValue = formatMoney(value, 0);\n\n return (\n <div className={`${className} flex items-center gap-2 pl-4 rounded-md border border-gray-300 transition-all focus-within:border-accent focus-within:outline-none focus-within:ring focus-within:ring-accent focus-within:ring-opacity-50`}>\n <span className=\"font-bold pr-2\">$</span>\n <input\n type=\"text\"\n name={name}\n id={id}\n value={displayValue}\n onChange={handleChange}\n className=\"w-full !focus:outline-none !focus:ring-0 !focus:ring-transparent !focus:ring-opacity-0 !ring-0 !border-0 !transition-none !rounded-l-none\"\n required={required}\n />\n </div>\n );\n\n}\n"],"names":["MoneyField","value","onChange","name","id","className","required","handleChange","e","newValue","formatNumber","displayValue","formatMoney","jsxs","jsx"],"mappings":";;;;;;;;AAYA,SAAwBA,EAAW,EAAE,OAAAC,IAAQ,GAAG,UAAAC,GAAU,MAAAC,IAAO,SAAS,IAAAC,IAAK,SAAS,WAAAC,IAAY,IAAI,UAAAC,IAAW,MAAgB;AAC/H,WAASC,EAAaC,GAA2C;AAC7D,QAAIC,IAAmB;AAEnB,IAAAD,EAAE,cAAc,UACLC,IAAAC,EAAaF,EAAE,cAAc,KAAK,GAEzC,MAAMC,CAAQ,MACHA,IAAA,KAInBP,EAASO,CAAQ;AAAA,EAAA;AAGf,QAAAE,IAAeC,EAAYX,GAAO,CAAC;AAEzC,SACKY,gBAAAA,EAAA,KAAA,OAAA,EAAI,WAAW,GAAGR,CAAS,+MACxB,UAAA;AAAA,IAACS,gBAAAA,EAAA,IAAA,QAAA,EAAK,WAAU,kBAAiB,UAAC,KAAA;AAAA,IAClCA,gBAAAA,EAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,MAAK;AAAA,QACL,MAAAX;AAAA,QACA,IAAAC;AAAA,QACA,OAAOO;AAAA,QACP,UAAUJ;AAAA,QACV,WAAU;AAAA,QACV,UAAAD;AAAA,MAAA;AAAA,IAAA;AAAA,EACJ,GACJ;AAGR;"}
package/dist/sdk.es33.js CHANGED
@@ -1,185 +1,172 @@
1
- import { j as s } from "./sdk.es38.js";
2
- import t from "react";
3
- import m from "./sdk.es16.js";
1
+ import { j as t } from "./sdk.es39.js";
2
+ import n from "react";
3
+ import { sanitiseVehicleType as L } from "./sdk.es4.js";
4
4
  import "@inertiajs/react";
5
- import "@headlessui/react";
6
- import "./sdk.es9.js";
7
- import { useQuoteRequestForm as _ } from "./sdk.es10.js";
5
+ import { useToast as U } from "./sdk.es9.js";
6
+ import "./sdk.es10.js";
8
7
  import "./sdk.es11.js";
9
- function w({ populatePurchaseOptions: a = !1 }) {
10
- const { form: l } = _(), [i, n] = t.useState([]), [u, c] = t.useState(!1);
11
- function r() {
12
- l?.setData((e) => ({
13
- ...e,
14
- first_name: "TEST",
15
- last_name: "TEST",
16
- email: "dev@sual.co.nz",
17
- phone: "021 234 5678",
18
- mobile: "021 234 5678",
19
- dob: "1990-01-01",
20
- licence: "Other",
21
- licence_other: "Test",
22
- club_id: 50,
23
- club_membership_number: "12345",
24
- street_address: {
25
- address: "123 Street Name",
26
- unit: "Level 1",
27
- suburb: "Suburb",
28
- city: "Auckland",
29
- post_code: "1234"
30
- },
31
- promo_code: "TEST",
32
- declaration: {
33
- had_incident: !0,
34
- incidents: [
8
+ import "./sdk.es12.js";
9
+ import o from "./sdk.es70.js";
10
+ const I = [
11
+ "POOR",
12
+ "FAIR",
13
+ "AVERAGE",
14
+ "GOOD",
15
+ "VERY_GOOD",
16
+ "AS_NEW",
17
+ "NEW"
18
+ ];
19
+ function J({
20
+ name: i = "registration_search",
21
+ initialRegistrationValue: k = "",
22
+ onVehicleDataFound: b,
23
+ apiUrl: N = "/api/rego-search",
24
+ showOdometerReadingField: u = !1,
25
+ showConditionField: m = !1,
26
+ onChange: h,
27
+ outerClassName: R,
28
+ odoInputClassName: C,
29
+ conditionSelectClassName: O,
30
+ regoInputClassName: E,
31
+ searchBtnClassName: A
32
+ }) {
33
+ const [g, D] = n.useState(k), [f, G] = n.useState(""), [y, V] = n.useState("GOOD"), [s, r] = n.useState("idle"), { addToast: c } = U();
34
+ function l(e) {
35
+ e.currentTarget.name === i && D(e.currentTarget.value?.toUpperCase() || ""), e.currentTarget.name === "odo_search" && G(e.currentTarget.value), e.currentTarget.name === "condition_search" && V(e.currentTarget.value), h && h({ registration: e.currentTarget.value.toUpperCase() });
36
+ }
37
+ function v(e) {
38
+ e.key === "Enter" && x();
39
+ }
40
+ async function x() {
41
+ r("processing");
42
+ const e = {
43
+ registration: g,
44
+ odometerReading: f,
45
+ condition: y
46
+ }, W = new URLSearchParams(e).toString(), w = await fetch(`${N}?${W}`, {
47
+ headers: { "Content-Type": "application/json" }
48
+ });
49
+ if (!w.ok) {
50
+ c({
51
+ message: "There was an error with the provided registration.",
52
+ status: "error",
53
+ timeout: 3e3
54
+ }), r("error");
55
+ return;
56
+ }
57
+ const { data: d, ok: K } = await w.json();
58
+ if (!K || !d) {
59
+ c({
60
+ message: "Failed to find vehicle, please complete manually.",
61
+ status: "error",
62
+ timeout: 3e3
63
+ }), r("error");
64
+ return;
65
+ }
66
+ const a = d.data.vehicle, j = a.make, S = a.model, T = a["year-of-manufacture"], _ = a["gross-vehicle-mass"] ? parseInt(a["gross-vehicle-mass"].replaceAll(",", "")) : 0, p = a["vehicle-type"];
67
+ (!j || !S || !T || !p) && (c({
68
+ message: "We couldn't find all of your data, please complete manually.",
69
+ status: "error",
70
+ timeout: 3e3
71
+ }), r("error")), b({
72
+ ...d,
73
+ make: j || "",
74
+ model: S || "",
75
+ year: T || "",
76
+ vehicle_type: p ? L(p) : "car",
77
+ is_heavy: _ && _ > 3500 || !1
78
+ }), r("success");
79
+ }
80
+ return /* @__PURE__ */ t.jsx("div", { className: "w-full flex flex-col", children: /* @__PURE__ */ t.jsxs("div", { className: o(R, "w-full flex flex-wrap gap-3 bg-gray-100 rounded-md p-3"), children: [
81
+ u || m && /* @__PURE__ */ t.jsxs("div", { className: "w-full grid grid-cols-2 gap-3", children: [
82
+ u && /* @__PURE__ */ t.jsxs("label", { children: [
83
+ "Approx. km travelled",
84
+ /* @__PURE__ */ t.jsx(
85
+ "input",
35
86
  {
36
- description: "Lorem ipsum dolor sit amet.",
37
- month: "January",
38
- year: "2020"
87
+ onKeyDown: v,
88
+ type: "number",
89
+ name: "odo_search",
90
+ id: "odo_search",
91
+ value: f,
92
+ onChange: l,
93
+ className: o(C, "transition-all", {
94
+ "pointer-events-none opacity-50": s === "processing"
95
+ }),
96
+ disabled: s === "processing"
39
97
  }
40
- ],
41
- has_demerit_points: !0,
42
- demerit_points: "1-24",
43
- has_lost_licence: !0,
44
- lost_licence_details: "Lorem ipsum dolor sit amet.",
45
- was_refused_insurance: !0,
46
- refused_insurance_details: "Lorem ipsum dolor sit amet.",
47
- has_criminal_conviction: !0,
48
- criminal_conviction_details: "Lorem ipsum dolor sit amet.",
49
- has_vehicle_modifications: !0,
50
- vehicle_modifications_details: "Lorem ipsum dolor sit amet.",
51
- has_previous_insurer: !0,
52
- previous_insurer_details: "AA",
53
- previous_insurer_expires_at: "2020-01-01",
54
- additional_details: "I am a robot, beep boop. Please ignore this submission."
55
- },
56
- vehicles: [
57
- {
58
- make: "Tesla",
59
- model: "Cybertruck",
60
- year: "2023",
61
- registration: "ELMUSK",
62
- vehicle_type: "car",
63
- product: "star-enthusiast-prestige-everyday-plus",
64
- value: 1e5,
65
- is_heavy: !1,
66
- usage: "Childrens car",
67
- storage_location: "Carport",
68
- has_financially_interested_party: !0,
69
- financially_interested_party_detail: "MTA",
70
- owned_duration: "Less than 12 months",
71
- main_driver: "TEST TEST",
72
- drivers: [
73
- {
74
- first_name: "X Æ",
75
- last_name: "A-12",
76
- dob: "2000-05-04",
77
- licence: "Other",
78
- licence_other: "None",
79
- relationship: "Child",
80
- key: "driver-test-key"
81
- }
82
- ],
83
- key: "vehicle-test-key"
84
- }
85
- ],
86
- purchase_options: a ? [
87
- {
88
- premium_type: "annual",
89
- level_of_insurance_id: 12,
90
- authorised_drivers: "TEST",
91
- excess_details: "TEST",
92
- terms: "TEST",
93
- description: "This is a test purchase option",
94
- premium: 1e5,
95
- monthly_premium: 8500,
96
- show_monthly: !0,
97
- fsl: 100,
98
- sort_order: 1,
99
- enhancements: [
100
- {
101
- name: "Test enhancement",
102
- premium: 2500,
103
- disable_rounding: !1,
104
- description: "Test enhancement",
105
- auto_select: !0,
106
- key: "enhancement-test-key-1"
107
- },
108
- {
109
- name: "Test enhancement",
110
- premium: 5e3,
111
- disable_rounding: !1,
112
- description: "Test enhancement",
113
- auto_select: !1,
114
- key: "enhancement-test-key-2"
115
- }
116
- ],
117
- key: "purchase-option-test-key-annual"
118
- },
119
- {
120
- premium_type: "total-due",
121
- level_of_insurance_id: 13,
122
- authorised_drivers: "TEST",
123
- excess_details: "TEST",
124
- terms: "TEST",
125
- description: "This is a test purchase option",
126
- premium: 1e5,
127
- show_monthly: !1,
128
- fsl: 100,
129
- sort_order: 2,
130
- enhancements: [
131
- {
132
- name: "Test enhancement",
133
- premium: 2500,
134
- disable_rounding: !1,
135
- description: "Test enhancement",
136
- auto_select: !0,
137
- key: "enhancement-test-key-3"
138
- },
98
+ )
99
+ ] }),
100
+ m && /* @__PURE__ */ t.jsxs("label", { children: [
101
+ "Vehicle condition",
102
+ /* @__PURE__ */ t.jsx(
103
+ "select",
104
+ {
105
+ name: "condition_search",
106
+ id: "condition_search",
107
+ value: y,
108
+ onChange: l,
109
+ className: o(O, "transition-all", {
110
+ "pointer-events-none opacity-50": s === "processing"
111
+ }),
112
+ disabled: s === "processing",
113
+ children: I.map((e) => /* @__PURE__ */ t.jsx("option", { children: e }, e))
114
+ }
115
+ )
116
+ ] })
117
+ ] }),
118
+ /* @__PURE__ */ t.jsx(
119
+ "input",
120
+ {
121
+ onKeyDown: v,
122
+ placeholder: "Search for your rego",
123
+ type: "text",
124
+ name: i,
125
+ id: i,
126
+ value: g,
127
+ onChange: l,
128
+ className: o(E, "flex-grow transition-all", {
129
+ "pointer-events-none opacity-50": s === "processing"
130
+ }),
131
+ disabled: s === "processing"
132
+ }
133
+ ),
134
+ /* @__PURE__ */ t.jsxs(
135
+ "button",
136
+ {
137
+ title: "Search",
138
+ type: "button",
139
+ onClick: x,
140
+ disabled: s === "processing",
141
+ className: o(A, "bg-accent px-4 py-3 rounded-md transition-all"),
142
+ children: [
143
+ /* @__PURE__ */ t.jsx("span", { className: "sr-only", children: "Search" }),
144
+ /* @__PURE__ */ t.jsx(
145
+ "svg",
139
146
  {
140
- name: "Test enhancement",
141
- premium: 5e3,
142
- disable_rounding: !1,
143
- description: "Test enhancement",
144
- auto_select: !1,
145
- key: "enhancement-test-key-4"
147
+ xmlns: "http://www.w3.org/2000/svg",
148
+ className: "h-5 w-5 text-white",
149
+ fill: "none",
150
+ viewBox: "0 0 24 24",
151
+ stroke: "currentColor",
152
+ strokeWidth: "2",
153
+ children: /* @__PURE__ */ t.jsx(
154
+ "path",
155
+ {
156
+ strokeLinecap: "round",
157
+ strokeLinejoin: "round",
158
+ d: "M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"
159
+ }
160
+ )
146
161
  }
147
- ],
148
- key: "purchase-option-test-key-total-due"
149
- }
150
- ] : []
151
- }));
152
- }
153
- function o(e) {
154
- if (e.key === "Escape")
155
- return n([]);
156
- n((d) => [...d, e.key]);
157
- }
158
- return t.useEffect(() => {
159
- i.join("") === "debug" && r();
160
- }, [i]), t.useEffect(() => {
161
- if (typeof window < "u")
162
- return (window.location.href.includes("dev") || window.location.href.includes("localhost") || window.location.href.includes("test") || window.location.href.includes("local")) && c(!0), window.addEventListener(
163
- "keydown",
164
- (e) => o(e)
165
- ), () => {
166
- window.removeEventListener(
167
- "keydown",
168
- (e) => o(e)
169
- );
170
- };
171
- }, []), u ? /* @__PURE__ */ s.jsx(
172
- m,
173
- {
174
- onClick: r,
175
- type: "button",
176
- status: "primary",
177
- className: "fixed bottom-4 right-4",
178
- children: "Populate data"
179
- }
180
- ) : /* @__PURE__ */ s.jsx(s.Fragment, {});
162
+ )
163
+ ]
164
+ }
165
+ )
166
+ ] }) });
181
167
  }
182
168
  export {
183
- w as default
169
+ I as conditionOptions,
170
+ J as default
184
171
  };
185
172
  //# sourceMappingURL=sdk.es33.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.es33.js","sources":["../src/components/forms/FormTester.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '../common';\nimport { useQuoteRequestForm } from '../../lib';\n\ninterface Props {\n populatePurchaseOptions: boolean;\n}\n\nexport default function FormTester({ populatePurchaseOptions = false }: Props) {\n const { form } = useQuoteRequestForm();\n const [keys, setKeys] = React.useState<string[]>([]);\n const [isDev, setDev] = React.useState<boolean>(false);\n\n function handlePopulate() {\n form?.setData(prevData => ({\n ...prevData,\n first_name: 'TEST',\n last_name: 'TEST',\n email: 'dev@sual.co.nz',\n phone: '021 234 5678',\n mobile: '021 234 5678',\n dob: '1990-01-01',\n licence: 'Other',\n licence_other: 'Test',\n club_id: 50,\n club_membership_number: '12345',\n street_address: {\n address: '123 Street Name',\n unit: 'Level 1',\n suburb: 'Suburb',\n city: 'Auckland',\n post_code: '1234',\n },\n promo_code: 'TEST',\n declaration: {\n had_incident: true,\n incidents: [\n {\n description: 'Lorem ipsum dolor sit amet.',\n month: 'January',\n year: '2020',\n },\n ],\n has_demerit_points: true,\n demerit_points: '1-24',\n has_lost_licence: true,\n lost_licence_details: 'Lorem ipsum dolor sit amet.',\n was_refused_insurance: true,\n refused_insurance_details: 'Lorem ipsum dolor sit amet.',\n has_criminal_conviction: true,\n criminal_conviction_details: 'Lorem ipsum dolor sit amet.',\n has_vehicle_modifications: true,\n vehicle_modifications_details: 'Lorem ipsum dolor sit amet.',\n has_previous_insurer: true,\n previous_insurer_details: 'AA',\n previous_insurer_expires_at: '2020-01-01',\n additional_details:\n 'I am a robot, beep boop. Please ignore this submission.',\n },\n vehicles: [\n {\n make: 'Tesla',\n model: 'Cybertruck',\n year: '2023',\n registration: 'ELMUSK',\n vehicle_type: 'car',\n product: 'star-enthusiast-prestige-everyday-plus',\n value: 100000,\n is_heavy: false,\n usage: 'Childrens car',\n storage_location: 'Carport',\n has_financially_interested_party: true,\n financially_interested_party_detail: 'MTA',\n owned_duration: 'Less than 12 months',\n main_driver: 'TEST TEST',\n drivers: [\n {\n first_name: 'X Æ',\n last_name: 'A-12',\n dob: '2000-05-04',\n licence: 'Other',\n licence_other: 'None',\n relationship: 'Child',\n key: 'driver-test-key',\n },\n ],\n key: 'vehicle-test-key',\n },\n ],\n purchase_options: populatePurchaseOptions\n ? [\n {\n premium_type: 'annual',\n level_of_insurance_id: 12,\n authorised_drivers: 'TEST',\n excess_details: 'TEST',\n terms: 'TEST',\n description: 'This is a test purchase option',\n premium: 100000,\n monthly_premium: 8500,\n show_monthly: true,\n fsl: 100,\n sort_order: 1,\n enhancements: [\n {\n name: 'Test enhancement',\n premium: 2500,\n disable_rounding: false,\n description: 'Test enhancement',\n auto_select: true,\n key: 'enhancement-test-key-1',\n },\n {\n name: 'Test enhancement',\n premium: 5000,\n disable_rounding: false,\n description: 'Test enhancement',\n auto_select: false,\n key: 'enhancement-test-key-2',\n },\n ],\n key: 'purchase-option-test-key-annual',\n },\n {\n premium_type: 'total-due',\n level_of_insurance_id: 13,\n authorised_drivers: 'TEST',\n excess_details: 'TEST',\n terms: 'TEST',\n description: 'This is a test purchase option',\n premium: 100000,\n show_monthly: false,\n fsl: 100,\n sort_order: 2,\n enhancements: [\n {\n name: 'Test enhancement',\n premium: 2500,\n disable_rounding: false,\n description: 'Test enhancement',\n auto_select: true,\n key: 'enhancement-test-key-3',\n },\n {\n name: 'Test enhancement',\n premium: 5000,\n disable_rounding: false,\n description: 'Test enhancement',\n auto_select: false,\n key: 'enhancement-test-key-4',\n },\n ],\n key: 'purchase-option-test-key-total-due',\n },\n ]\n : [],\n }));\n }\n\n function handleKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n return setKeys([]);\n }\n\n setKeys(prevKeys => [...prevKeys, e.key]);\n }\n\n React.useEffect(() => {\n // Detect when the user has typed the word \"debug\"\n if (keys.join('') === 'debug') {\n handlePopulate();\n }\n }, [keys]);\n\n React.useEffect(() => {\n if (typeof window !== 'undefined') {\n if (\n window.location.href.includes('dev') ||\n window.location.href.includes('localhost') ||\n window.location.href.includes('test') ||\n window.location.href.includes('local')\n ) {\n setDev(true);\n }\n\n window.addEventListener('keydown', (e: KeyboardEvent) =>\n handleKeydown(e)\n );\n\n return () => {\n window.removeEventListener('keydown', (e: KeyboardEvent) =>\n handleKeydown(e)\n );\n };\n }\n\n return;\n }, []);\n\n if (isDev) {\n return (\n <Button\n onClick={handlePopulate}\n type=\"button\"\n status=\"primary\"\n className=\"fixed bottom-4 right-4\"\n >\n Populate data\n </Button>\n );\n }\n\n return <></>;\n}\n"],"names":["FormTester","populatePurchaseOptions","form","useQuoteRequestForm","keys","setKeys","React","isDev","setDev","handlePopulate","prevData","handleKeydown","prevKeys","jsx","Button","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"sdk.es33.js","sources":["../src/components/forms/RegistrationSearchField.tsx"],"sourcesContent":["import React from 'react';\nimport { sanitiseVehicleType } from '../../lib';\nimport {\n ApiResponse,\n FormStatus,\n MotorwebVehicleResponse,\n VehicleType,\n} from '../../types';\nimport { useToast } from '../../lib/toast';\nimport cn from 'classnames';\n\nexport interface VehicleData extends MotorwebVehicleResponse {\n make: string;\n model: string;\n year: string;\n vehicle_type: VehicleType;\n is_heavy: boolean;\n}\n\nexport interface RegistrationSearchOnChange {\n registration: string;\n}\n\ninterface Props {\n name?: string;\n onChange?: (values: RegistrationSearchOnChange) => void;\n onVehicleDataFound: (vehicleData: VehicleData) => void;\n apiUrl?: string;\n showOdometerReadingField?: boolean;\n showConditionField?: boolean;\n initialRegistrationValue?: string;\n outerClassName?: string;\n odoInputClassName?: string;\n conditionSelectClassName?: string;\n regoInputClassName?: string;\n searchBtnClassName?: string;\n}\n\nexport const conditionOptions = [\n 'POOR',\n 'FAIR',\n 'AVERAGE',\n 'GOOD',\n 'VERY_GOOD',\n 'AS_NEW',\n 'NEW',\n];\n\nexport default function RegistrationSearchField({\n name = 'registration_search',\n initialRegistrationValue = '',\n onVehicleDataFound,\n apiUrl = '/api/rego-search',\n showOdometerReadingField = false,\n showConditionField = false,\n onChange,\n outerClassName,\n odoInputClassName,\n conditionSelectClassName,\n regoInputClassName,\n searchBtnClassName,\n}: Props) {\n const [rego, setRego] = React.useState<string>(initialRegistrationValue);\n const [odo, setOdo] = React.useState<string>('');\n const [condition, setCondition] = React.useState<string>('GOOD');\n\n const [status, setStatus] = React.useState<FormStatus>('idle');\n const { addToast } = useToast();\n\n function handleChange(\n e: React.SyntheticEvent<HTMLInputElement | HTMLSelectElement>\n ) {\n if (e.currentTarget.name === name) {\n setRego(e.currentTarget.value?.toUpperCase() || '');\n }\n\n if (e.currentTarget.name === 'odo_search') {\n setOdo(e.currentTarget.value);\n }\n\n if (e.currentTarget.name === 'condition_search') {\n setCondition(e.currentTarget.value);\n }\n\n if (onChange) {\n onChange({ registration: e.currentTarget.value.toUpperCase() });\n }\n }\n\n function handleKeydown(e: React.KeyboardEvent) {\n if (e.key === 'Enter') {\n handleSearch();\n }\n }\n\n async function handleSearch() {\n setStatus('processing');\n\n const payload = {\n registration: rego,\n odometerReading: odo,\n condition,\n };\n\n // Turn the payload in to a query string\n // @ts-ignore\n const query = new URLSearchParams(payload).toString();\n\n const res = await fetch(`${apiUrl}?${query}`, {\n headers: { 'Content-Type': 'application/json' },\n });\n\n if (!res.ok) {\n addToast({\n message: `There was an error with the provided registration.`,\n status: 'error',\n timeout: 3000,\n });\n setStatus('error');\n return;\n }\n\n const { data, ok }: ApiResponse<MotorwebVehicleResponse> = await res.json();\n\n if (!ok || !data) {\n addToast({\n message: `Failed to find vehicle, please complete manually.`,\n status: 'error',\n timeout: 3000,\n });\n setStatus('error');\n return;\n }\n\n const vehicleData = data.data.vehicle;\n\n const make = vehicleData.make;\n const model = vehicleData.model;\n const year = vehicleData['year-of-manufacture'];\n const weight = vehicleData['gross-vehicle-mass']\n ? parseInt(vehicleData['gross-vehicle-mass'].replaceAll(',', ''))\n : 0;\n const vehicleType = vehicleData['vehicle-type'];\n\n if (!make || !model || !year || !vehicleType) {\n addToast({\n message: `We couldn't find all of your data, please complete manually.`,\n status: 'error',\n timeout: 3000,\n });\n setStatus('error');\n }\n\n onVehicleDataFound({\n ...data,\n make: make || '',\n model: model || '',\n year: year || '',\n vehicle_type: vehicleType ? sanitiseVehicleType(vehicleType) : 'car',\n is_heavy: (weight && weight > 3500) || false,\n });\n\n setStatus('success');\n }\n\n return (\n <div className=\"w-full flex flex-col\">\n <div className={cn(outerClassName, \"w-full flex flex-wrap gap-3 bg-gray-100 rounded-md p-3\")}>\n {showOdometerReadingField ||\n (showConditionField && (\n <div className=\"w-full grid grid-cols-2 gap-3\">\n {showOdometerReadingField && (\n <label>\n Approx. km travelled\n <input\n onKeyDown={handleKeydown}\n type=\"number\"\n name=\"odo_search\"\n id=\"odo_search\"\n value={odo}\n onChange={handleChange}\n className={cn(odoInputClassName, \"transition-all\", {\n 'pointer-events-none opacity-50': status === 'processing',\n })}\n disabled={status === 'processing'}\n />\n </label>\n )}\n\n {showConditionField && (\n <label>\n Vehicle condition\n <select\n name=\"condition_search\"\n id=\"condition_search\"\n value={condition}\n onChange={handleChange}\n className={cn(conditionSelectClassName, \"transition-all\", {\n 'pointer-events-none opacity-50': status === 'processing',\n })}\n disabled={status === 'processing'}\n >\n {conditionOptions.map(conditionOption => (\n <option key={conditionOption}>{conditionOption}</option>\n ))}\n </select>\n </label>\n )}\n </div>\n ))}\n\n <input\n onKeyDown={handleKeydown}\n placeholder=\"Search for your rego\"\n type=\"text\"\n name={name}\n id={name}\n value={rego}\n onChange={handleChange}\n className={cn(regoInputClassName, \"flex-grow transition-all\", {\n 'pointer-events-none opacity-50': status === 'processing',\n })}\n disabled={status === 'processing'}\n />\n\n <button\n title=\"Search\"\n type=\"button\"\n onClick={handleSearch}\n disabled={status === 'processing'}\n className={cn(searchBtnClassName, \"bg-accent px-4 py-3 rounded-md transition-all\")}\n >\n <span className=\"sr-only\">Search</span>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n className=\"h-5 w-5 text-white\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n </button>\n </div>\n </div>\n );\n}\n"],"names":["conditionOptions","RegistrationSearchField","name","initialRegistrationValue","onVehicleDataFound","apiUrl","showOdometerReadingField","showConditionField","onChange","outerClassName","odoInputClassName","conditionSelectClassName","regoInputClassName","searchBtnClassName","rego","setRego","React","odo","setOdo","condition","setCondition","status","setStatus","addToast","useToast","handleChange","handleKeydown","handleSearch","payload","query","res","data","ok","vehicleData","make","model","year","weight","vehicleType","sanitiseVehicleType","jsx","jsxs","cn","conditionOption"],"mappings":"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"}