@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.
- package/dist/index.d.ts +21 -0
- package/dist/sdk.es.js +71 -67
- package/dist/sdk.es.js.map +1 -1
- package/dist/sdk.es10.js +1 -1
- package/dist/sdk.es100.js +73 -12
- package/dist/sdk.es100.js.map +1 -1
- package/dist/sdk.es101.js +74 -10
- package/dist/sdk.es101.js.map +1 -1
- package/dist/sdk.es102.js +69 -44
- package/dist/sdk.es102.js.map +1 -1
- package/dist/sdk.es103.js +66 -43
- package/dist/sdk.es103.js.map +1 -1
- package/dist/sdk.es104.js +35 -46
- package/dist/sdk.es104.js.map +1 -1
- package/dist/sdk.es105.js +39 -24
- package/dist/sdk.es105.js.map +1 -1
- package/dist/sdk.es106.js +41 -25
- package/dist/sdk.es106.js.map +1 -1
- package/dist/sdk.es107.js +28 -54
- package/dist/sdk.es107.js.map +1 -1
- package/dist/sdk.es108.js +62 -54
- package/dist/sdk.es108.js.map +1 -1
- package/dist/sdk.es109.js +66 -52
- package/dist/sdk.es109.js.map +1 -1
- package/dist/sdk.es11.js +1 -1
- package/dist/sdk.es110.js +65 -51
- package/dist/sdk.es110.js.map +1 -1
- package/dist/sdk.es111.js +80 -35
- package/dist/sdk.es111.js.map +1 -1
- package/dist/sdk.es112.js +49 -38
- package/dist/sdk.es112.js.map +1 -1
- package/dist/sdk.es113.js +50 -38
- package/dist/sdk.es113.js.map +1 -1
- package/dist/sdk.es114.js +50 -39
- package/dist/sdk.es114.js.map +1 -1
- package/dist/sdk.es115.js +35 -70
- package/dist/sdk.es115.js.map +1 -1
- package/dist/sdk.es116.js +27 -75
- package/dist/sdk.es116.js.map +1 -1
- package/dist/sdk.es117.js +35 -82
- package/dist/sdk.es117.js.map +1 -1
- package/dist/sdk.es118.js +33 -79
- package/dist/sdk.es118.js.map +1 -1
- package/dist/sdk.es119.js +37 -50
- package/dist/sdk.es119.js.map +1 -1
- package/dist/sdk.es12.js +10 -16
- package/dist/sdk.es12.js.map +1 -1
- package/dist/sdk.es120.js +37 -50
- package/dist/sdk.es120.js.map +1 -1
- package/dist/sdk.es121.js +24 -49
- package/dist/sdk.es121.js.map +1 -1
- package/dist/sdk.es122.js +35 -38
- package/dist/sdk.es122.js.map +1 -1
- package/dist/sdk.es123.js +35 -37
- package/dist/sdk.es123.js.map +1 -1
- package/dist/sdk.es124.js +27 -41
- package/dist/sdk.es124.js.map +1 -1
- package/dist/sdk.es125.js +27 -41
- package/dist/sdk.es125.js.map +1 -1
- package/dist/sdk.es126.js +6 -46
- package/dist/sdk.es126.js.map +1 -1
- package/dist/sdk.es127.js +39 -45
- package/dist/sdk.es127.js.map +1 -1
- package/dist/sdk.es128.js +2 -34
- package/dist/sdk.es128.js.map +1 -1
- package/dist/sdk.es129.js +66 -43
- package/dist/sdk.es129.js.map +1 -1
- package/dist/sdk.es13.js +16 -10
- package/dist/sdk.es13.js.map +1 -1
- package/dist/sdk.es130.js +31 -44
- package/dist/sdk.es130.js.map +1 -1
- package/dist/sdk.es131.js +11 -33
- package/dist/sdk.es131.js.map +1 -1
- package/dist/sdk.es132.js +118 -30
- package/dist/sdk.es132.js.map +1 -1
- package/dist/sdk.es133.js +84 -65
- package/dist/sdk.es133.js.map +1 -1
- package/dist/sdk.es134.js +8 -31
- package/dist/sdk.es134.js.map +1 -1
- package/dist/sdk.es135.js +11 -11
- package/dist/sdk.es135.js.map +1 -1
- package/dist/sdk.es136.js +14 -121
- package/dist/sdk.es136.js.map +1 -1
- package/dist/sdk.es137.js +14 -86
- package/dist/sdk.es137.js.map +1 -1
- package/dist/sdk.es138.js +5 -7
- package/dist/sdk.es138.js.map +1 -1
- package/dist/sdk.es139.js +3674 -10
- package/dist/sdk.es139.js.map +1 -1
- package/dist/sdk.es14.js +10 -36
- package/dist/sdk.es14.js.map +1 -1
- package/dist/sdk.es140.js +2 -14
- package/dist/sdk.es140.js.map +1 -1
- package/dist/sdk.es141.js +5 -13
- package/dist/sdk.es141.js.map +1 -1
- package/dist/sdk.es142.js +5 -5
- package/dist/sdk.es142.js.map +1 -1
- package/dist/sdk.es143.js +10 -5
- package/dist/sdk.es143.js.map +1 -1
- package/dist/sdk.es144.js +7 -5
- package/dist/sdk.es144.js.map +1 -1
- package/dist/sdk.es145.js +6 -10
- package/dist/sdk.es145.js.map +1 -1
- package/dist/sdk.es146.js +25 -8
- package/dist/sdk.es146.js.map +1 -1
- package/dist/sdk.es147.js +99 -6
- package/dist/sdk.es147.js.map +1 -1
- package/dist/sdk.es148.js +47 -25
- package/dist/sdk.es148.js.map +1 -1
- package/dist/sdk.es149.js +9 -99
- package/dist/sdk.es149.js.map +1 -1
- package/dist/sdk.es15.js +36 -40
- package/dist/sdk.es15.js.map +1 -1
- package/dist/sdk.es150.js +10 -47
- package/dist/sdk.es150.js.map +1 -1
- package/dist/sdk.es151.js +13 -9
- package/dist/sdk.es151.js.map +1 -1
- package/dist/sdk.es152.js +10 -9
- package/dist/sdk.es152.js.map +1 -1
- package/dist/sdk.es153.js +53 -13
- package/dist/sdk.es153.js.map +1 -1
- package/dist/sdk.es154.js +10 -11
- package/dist/sdk.es154.js.map +1 -1
- package/dist/sdk.es155.js +20 -6
- package/dist/sdk.es155.js.map +1 -1
- package/dist/sdk.es156.js +5 -13
- package/dist/sdk.es156.js.map +1 -1
- package/dist/sdk.es157.js +13 -27
- package/dist/sdk.es157.js.map +1 -1
- package/dist/sdk.es158.js +25 -12
- package/dist/sdk.es158.js.map +1 -1
- package/dist/sdk.es159.js +15 -11
- package/dist/sdk.es159.js.map +1 -1
- package/dist/sdk.es16.js +39 -25
- package/dist/sdk.es16.js.map +1 -1
- package/dist/sdk.es160.js +15 -0
- package/dist/sdk.es160.js.map +1 -0
- package/dist/sdk.es17.js +26 -4
- package/dist/sdk.es17.js.map +1 -1
- package/dist/sdk.es18.js +4 -50
- package/dist/sdk.es18.js.map +1 -1
- package/dist/sdk.es19.js +23 -78
- package/dist/sdk.es19.js.map +1 -1
- package/dist/sdk.es2.js +2 -2
- package/dist/sdk.es20.js +103 -42
- package/dist/sdk.es20.js.map +1 -1
- package/dist/sdk.es21.js +44 -8
- package/dist/sdk.es21.js.map +1 -1
- package/dist/sdk.es22.js +8 -39
- package/dist/sdk.es22.js.map +1 -1
- package/dist/sdk.es23.js +39 -4
- package/dist/sdk.es23.js.map +1 -1
- package/dist/sdk.es24.js +4 -4
- package/dist/sdk.es24.js.map +1 -1
- package/dist/sdk.es25.js +4 -5
- package/dist/sdk.es25.js.map +1 -1
- package/dist/sdk.es26.js +5 -7
- package/dist/sdk.es26.js.map +1 -1
- package/dist/sdk.es27.js +7 -5
- package/dist/sdk.es27.js.map +1 -1
- package/dist/sdk.es28.js +5 -46
- package/dist/sdk.es28.js.map +1 -1
- package/dist/sdk.es29.js +46 -7
- package/dist/sdk.es29.js.map +1 -1
- package/dist/sdk.es30.js +7 -103
- package/dist/sdk.es30.js.map +1 -1
- package/dist/sdk.es31.js +97 -22
- package/dist/sdk.es31.js.map +1 -1
- package/dist/sdk.es32.js +19 -156
- package/dist/sdk.es32.js.map +1 -1
- package/dist/sdk.es33.js +162 -175
- package/dist/sdk.es33.js.map +1 -1
- package/dist/sdk.es34.js +179 -20
- package/dist/sdk.es34.js.map +1 -1
- package/dist/sdk.es35.js +21 -100
- package/dist/sdk.es35.js.map +1 -1
- package/dist/sdk.es36.js +102 -59
- package/dist/sdk.es36.js.map +1 -1
- package/dist/sdk.es37.js +55 -120
- package/dist/sdk.es37.js.map +1 -1
- package/dist/sdk.es38.js +125 -3
- package/dist/sdk.es38.js.map +1 -1
- package/dist/sdk.es39.js +3 -11
- package/dist/sdk.es39.js.map +1 -1
- package/dist/sdk.es40.js +10 -4
- package/dist/sdk.es40.js.map +1 -1
- package/dist/sdk.es41.js +4 -7
- package/dist/sdk.es41.js.map +1 -1
- package/dist/sdk.es42.js +8 -2
- package/dist/sdk.es42.js.map +1 -1
- package/dist/sdk.es43.js +2 -26
- package/dist/sdk.es43.js.map +1 -1
- package/dist/sdk.es44.js +17 -593
- package/dist/sdk.es44.js.map +1 -1
- package/dist/sdk.es45.js +602 -5
- package/dist/sdk.es45.js.map +1 -1
- package/dist/sdk.es46.js +2 -22
- package/dist/sdk.es46.js.map +1 -1
- package/dist/sdk.es47.js +2 -79
- package/dist/sdk.es47.js.map +1 -1
- package/dist/sdk.es48.js +8 -75
- package/dist/sdk.es48.js.map +1 -1
- package/dist/sdk.es49.js +6 -231
- package/dist/sdk.es49.js.map +1 -1
- package/dist/sdk.es5.js.map +1 -1
- package/dist/sdk.es50.js +7 -25
- package/dist/sdk.es50.js.map +1 -1
- package/dist/sdk.es51.js +5 -3
- package/dist/sdk.es51.js.map +1 -1
- package/dist/sdk.es52.js +16 -2
- package/dist/sdk.es52.js.map +1 -1
- package/dist/sdk.es53.js +9 -2
- package/dist/sdk.es53.js.map +1 -1
- package/dist/sdk.es54.js +9 -8
- package/dist/sdk.es54.js.map +1 -1
- package/dist/sdk.es55.js +8 -6
- package/dist/sdk.es55.js.map +1 -1
- package/dist/sdk.es56.js +638 -7
- package/dist/sdk.es56.js.map +1 -1
- package/dist/sdk.es57.js +74 -5
- package/dist/sdk.es57.js.map +1 -1
- package/dist/sdk.es58.js +4 -15
- package/dist/sdk.es58.js.map +1 -1
- package/dist/sdk.es59.js +19 -8
- package/dist/sdk.es59.js.map +1 -1
- package/dist/sdk.es60.js +4 -9
- package/dist/sdk.es60.js.map +1 -1
- package/dist/sdk.es61.js +18 -9
- package/dist/sdk.es61.js.map +1 -1
- package/dist/sdk.es62.js +5 -638
- package/dist/sdk.es62.js.map +1 -1
- package/dist/sdk.es63.js +9 -74
- package/dist/sdk.es63.js.map +1 -1
- package/dist/sdk.es64.js +48 -4
- package/dist/sdk.es64.js.map +1 -1
- package/dist/sdk.es65.js +7 -19
- package/dist/sdk.es65.js.map +1 -1
- package/dist/sdk.es66.js +57 -5
- package/dist/sdk.es66.js.map +1 -1
- package/dist/sdk.es67.js +64 -17
- package/dist/sdk.es67.js.map +1 -1
- package/dist/sdk.es68.js +8 -5
- package/dist/sdk.es68.js.map +1 -1
- package/dist/sdk.es69.js +4 -9
- package/dist/sdk.es69.js.map +1 -1
- package/dist/sdk.es70.js +5 -49
- package/dist/sdk.es70.js.map +1 -1
- package/dist/sdk.es71.js +3 -8
- package/dist/sdk.es71.js.map +1 -1
- package/dist/sdk.es72.js +21 -56
- package/dist/sdk.es72.js.map +1 -1
- package/dist/sdk.es73.js +80 -65
- package/dist/sdk.es73.js.map +1 -1
- package/dist/sdk.es74.js +76 -8
- package/dist/sdk.es74.js.map +1 -1
- package/dist/sdk.es75.js +232 -4
- package/dist/sdk.es75.js.map +1 -1
- package/dist/sdk.es76.js +26 -4
- package/dist/sdk.es76.js.map +1 -1
- package/dist/sdk.es77.js +4 -8
- package/dist/sdk.es77.js.map +1 -1
- package/dist/sdk.es78.js +7 -6
- package/dist/sdk.es78.js.map +1 -1
- package/dist/sdk.es79.js +6 -39
- package/dist/sdk.es79.js.map +1 -1
- package/dist/sdk.es80.js +2 -2
- package/dist/sdk.es81.js +10 -53
- package/dist/sdk.es81.js.map +1 -1
- package/dist/sdk.es82.js +11 -10
- package/dist/sdk.es82.js.map +1 -1
- package/dist/sdk.es83.js +12 -19
- package/dist/sdk.es83.js.map +1 -1
- package/dist/sdk.es84.js +10 -3674
- package/dist/sdk.es84.js.map +1 -1
- package/dist/sdk.es85.js +18 -5
- package/dist/sdk.es85.js.map +1 -1
- package/dist/sdk.es86.js +6 -2
- package/dist/sdk.es86.js.map +1 -1
- package/dist/sdk.es87.js +55 -11
- package/dist/sdk.es87.js.map +1 -1
- package/dist/sdk.es88.js +8 -10
- package/dist/sdk.es88.js.map +1 -1
- package/dist/sdk.es89.js +4 -12
- package/dist/sdk.es89.js.map +1 -1
- package/dist/sdk.es9.js +2 -2
- package/dist/sdk.es90.js +13 -10
- package/dist/sdk.es90.js.map +1 -1
- package/dist/sdk.es91.js +14 -18
- package/dist/sdk.es91.js.map +1 -1
- package/dist/sdk.es92.js +3 -5
- package/dist/sdk.es92.js.map +1 -1
- package/dist/sdk.es93.js +12 -54
- package/dist/sdk.es93.js.map +1 -1
- package/dist/sdk.es94.js +10 -2
- package/dist/sdk.es94.js.map +1 -1
- package/dist/sdk.es95.js +54 -8
- package/dist/sdk.es95.js.map +1 -1
- package/dist/sdk.es96.js +57 -5
- package/dist/sdk.es96.js.map +1 -1
- package/dist/sdk.es97.js +58 -13
- package/dist/sdk.es97.js.map +1 -1
- package/dist/sdk.es98.js +33 -15
- package/dist/sdk.es98.js.map +1 -1
- package/dist/sdk.es99.js +31 -4
- package/dist/sdk.es99.js.map +1 -1
- package/package.json +1 -1
- package/src/lib/index.ts +1 -0
- package/src/lib/quotePremiumRates.tsx +28 -0
package/dist/sdk.es32.js
CHANGED
|
@@ -1,171 +1,34 @@
|
|
|
1
|
-
import { j as
|
|
2
|
-
import
|
|
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
|
|
4
|
+
import "react";
|
|
5
|
+
import "./sdk.es9.js";
|
|
6
6
|
import "./sdk.es10.js";
|
|
7
7
|
import "./sdk.es11.js";
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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:
|
|
125
|
-
value:
|
|
22
|
+
id: a,
|
|
23
|
+
value: c,
|
|
126
24
|
onChange: l,
|
|
127
|
-
className:
|
|
128
|
-
|
|
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
|
-
|
|
169
|
-
H as default
|
|
32
|
+
v as default
|
|
170
33
|
};
|
|
171
34
|
//# sourceMappingURL=sdk.es32.js.map
|
package/dist/sdk.es32.js.map
CHANGED
|
@@ -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
|
|
2
|
-
import
|
|
3
|
-
import
|
|
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 "
|
|
6
|
-
import "./sdk.
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
|
|
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
|
-
|
|
169
|
+
I as conditionOptions,
|
|
170
|
+
J as default
|
|
184
171
|
};
|
|
185
172
|
//# sourceMappingURL=sdk.es33.js.map
|
package/dist/sdk.es33.js.map
CHANGED
|
@@ -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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"}
|