@getspot/spot-widget-react 2.1.0 → 2.1.2
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/CHANGELOG.md +8 -0
- package/dist/ReactSpotWidget.d.ts.map +1 -1
- package/dist/index.es.js +118 -62
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactSpotWidget.d.ts","sourceRoot":"","sources":["../src/ReactSpotWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ReactSpotWidget.d.ts","sourceRoot":"","sources":["../src/ReactSpotWidget.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmF,MAAM,OAAO,CAAC;AA+BxG,OAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE1G;;GAEG;AACH,UAAU,oBAAqB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,CAAC;IACtF,0EAA0E;IAC1E,SAAS,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC1C,iEAAiE;IACjE,gBAAgB,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxD,yDAAyD;IACzD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yDAAyD;IACzD,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAC1C,+DAA+D;IAC/D,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IACzC,iEAAiE;IACjE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACpF,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IAClE,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;IAClD,gDAAgD;IAChD,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;CAC5C;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,WAAW,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9F,qCAAqC;IACrC,YAAY,EAAE,MAAM,aAAa,GAAG,IAAI,CAAC;IACzC,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,yDAAyD;IACzD,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,QAAA,MAAM,eAAe,iGAoLnB,CAAC;AAIH,eAAe,eAAe,CAAC"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,72 +1,128 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
1
|
+
import { jsx as x } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as A, useRef as p, useCallback as O, useMemo as B, useImperativeHandle as H, useEffect as W } from "react";
|
|
3
|
+
import N from "@getspot/spot-widget";
|
|
4
|
+
function i(c, u) {
|
|
5
|
+
if (c === u) return !0;
|
|
6
|
+
if (c == null || u == null || typeof c != "object" || typeof u != "object") return !1;
|
|
7
|
+
const s = Object.keys(c), d = Object.keys(u);
|
|
8
|
+
if (s.length !== d.length) return !1;
|
|
9
|
+
for (let f of s)
|
|
10
|
+
if (!d.includes(f) || !i(c[f], u[f])) return !1;
|
|
11
|
+
return !0;
|
|
12
|
+
}
|
|
13
|
+
function K(c, u) {
|
|
14
|
+
const s = p();
|
|
15
|
+
return (!s.current || !i(s.current.deps, u)) && (s.current = { deps: u, value: c() }), s.current.value;
|
|
16
|
+
}
|
|
17
|
+
const T = A(({
|
|
18
|
+
apiConfig: c,
|
|
19
|
+
quoteRequestData: u,
|
|
20
|
+
showTable: s = !0,
|
|
21
|
+
optInSelected: d = !1,
|
|
22
|
+
theme: f,
|
|
23
|
+
callbacks: k = {},
|
|
24
|
+
onQuoteRetrieved: R,
|
|
25
|
+
onOptIn: m,
|
|
26
|
+
onOptOut: v,
|
|
27
|
+
onError: Q,
|
|
28
|
+
onNoMatchingQuote: h,
|
|
29
|
+
onSelectionChange: S
|
|
30
|
+
}, P) => {
|
|
31
|
+
const g = p(null), n = p(null), o = p({
|
|
32
|
+
onQuoteRetrieved: R,
|
|
33
|
+
onOptIn: m,
|
|
34
|
+
onOptOut: v,
|
|
35
|
+
onError: Q,
|
|
36
|
+
onNoMatchingQuote: h,
|
|
37
|
+
onSelectionChange: S
|
|
38
|
+
}), C = p(k);
|
|
39
|
+
o.current = {
|
|
40
|
+
onQuoteRetrieved: R,
|
|
41
|
+
onOptIn: m,
|
|
42
|
+
onOptOut: v,
|
|
43
|
+
onError: Q,
|
|
44
|
+
onNoMatchingQuote: h,
|
|
45
|
+
onSelectionChange: S
|
|
46
|
+
}, C.current = k;
|
|
47
|
+
const I = O((e) => {
|
|
48
|
+
var t, r;
|
|
49
|
+
return (r = (t = o.current).onQuoteRetrieved) == null ? void 0 : r.call(t, e);
|
|
50
|
+
}, []), w = O((e) => {
|
|
51
|
+
var t, r, a, l;
|
|
52
|
+
(r = (t = o.current).onOptIn) == null || r.call(t, e), (l = (a = o.current).onSelectionChange) == null || l.call(a, e);
|
|
53
|
+
}, []), E = O((e) => {
|
|
54
|
+
var t, r, a, l;
|
|
55
|
+
(r = (t = o.current).onOptOut) == null || r.call(t, e), (l = (a = o.current).onSelectionChange) == null || l.call(a, e);
|
|
56
|
+
}, []), M = O((e) => {
|
|
57
|
+
var t, r;
|
|
58
|
+
(r = (t = o.current).onError) == null || r.call(t, e);
|
|
59
|
+
}, []), j = O((e) => {
|
|
60
|
+
var t, r;
|
|
61
|
+
(r = (t = o.current).onNoMatchingQuote) == null || r.call(t, e);
|
|
62
|
+
}, []), q = B(() => {
|
|
63
|
+
const e = {}, t = [
|
|
64
|
+
"onQuoteRetrieved",
|
|
65
|
+
"onOptIn",
|
|
66
|
+
"onOptOut",
|
|
67
|
+
"onError",
|
|
68
|
+
"noMatchingQuote"
|
|
69
|
+
];
|
|
70
|
+
for (const r of t)
|
|
71
|
+
e[r] = (...a) => {
|
|
72
|
+
var D;
|
|
73
|
+
const l = (D = C.current) == null ? void 0 : D[r];
|
|
74
|
+
if (l) return l(...a);
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
...e,
|
|
78
|
+
...o.current.onQuoteRetrieved && { onQuoteRetrieved: I },
|
|
79
|
+
...o.current.onOptIn && { onOptIn: w },
|
|
80
|
+
...o.current.onOptOut && { onOptOut: E },
|
|
81
|
+
...o.current.onError && { onError: M },
|
|
82
|
+
...o.current.onNoMatchingQuote && { noMatchingQuote: j }
|
|
83
|
+
};
|
|
84
|
+
}, [I, w, E, M, j]), b = K(() => ({
|
|
85
|
+
apiConfig: c,
|
|
86
|
+
quoteRequestData: u,
|
|
87
|
+
showTable: s,
|
|
88
|
+
optInSelected: d,
|
|
89
|
+
theme: f,
|
|
90
|
+
callbacks: q
|
|
91
|
+
}), [c, u, s, d, f, q]);
|
|
92
|
+
H(P, () => ({
|
|
93
|
+
updateQuote: (e) => {
|
|
94
|
+
var t;
|
|
95
|
+
return ((t = n.current) == null ? void 0 : t.updateQuote(e)) ?? Promise.resolve(!1);
|
|
47
96
|
},
|
|
48
97
|
getSelection: () => {
|
|
49
|
-
var
|
|
50
|
-
return ((
|
|
98
|
+
var e;
|
|
99
|
+
return ((e = n.current) == null ? void 0 : e.getSelection()) ?? null;
|
|
51
100
|
},
|
|
52
101
|
validateSelection: () => {
|
|
53
|
-
var
|
|
54
|
-
return ((
|
|
102
|
+
var e;
|
|
103
|
+
return ((e = n.current) == null ? void 0 : e.validateSelection()) ?? !1;
|
|
55
104
|
},
|
|
56
105
|
destroy: () => {
|
|
57
|
-
|
|
106
|
+
n.current && (n.current.destroy(), n.current = null);
|
|
58
107
|
}
|
|
59
|
-
}))
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
108
|
+
}));
|
|
109
|
+
const y = p();
|
|
110
|
+
return W(() => (g.current && !n.current && (n.current = new N({
|
|
111
|
+
location: g.current,
|
|
112
|
+
...b
|
|
113
|
+
}), y.current = b), () => {
|
|
114
|
+
n.current && (n.current.destroy(), n.current = null);
|
|
115
|
+
}), []), W(() => {
|
|
116
|
+
if (n.current && y.current) {
|
|
117
|
+
const e = y.current, t = b;
|
|
118
|
+
i(e.apiConfig, t.apiConfig) && i(e.theme, t.theme) && e.showTable === t.showTable && e.optInSelected === t.optInSelected && i(e.callbacks, t.callbacks) && !i(e.quoteRequestData, t.quoteRequestData) ? n.current.updateQuote(t.quoteRequestData) : i(e, t) || (n.current.destroy(), n.current = new N({
|
|
119
|
+
location: g.current,
|
|
120
|
+
...t
|
|
121
|
+
})), y.current = t;
|
|
122
|
+
}
|
|
123
|
+
}, [b]), /* @__PURE__ */ x("div", { ref: g });
|
|
68
124
|
});
|
|
69
|
-
|
|
125
|
+
T.displayName = "ReactSpotWidget";
|
|
70
126
|
export {
|
|
71
|
-
|
|
127
|
+
T as default
|
|
72
128
|
};
|
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(i,n){typeof exports=="object"&&typeof module<"u"?module.exports=n(require("react/jsx-runtime"),require("react"),require("@getspot/spot-widget")):typeof define=="function"&&define.amd?define(["react/jsx-runtime","react","@getspot/spot-widget"],n):(i=typeof globalThis<"u"?globalThis:i||self,i.ReactSpotWidget=n(i.React,i.React,i.SpotWidget))})(this,function(i,n,k){"use strict";function a(s,c){if(s===c)return!0;if(s==null||c==null||typeof s!="object"||typeof c!="object")return!1;const l=Object.keys(s),R=Object.keys(c);if(l.length!==R.length)return!1;for(let d of l)if(!R.includes(d)||!a(s[d],c[d]))return!1;return!0}function N(s,c){const l=n.useRef();return(!l.current||!a(l.current.deps,c))&&(l.current={deps:c,value:s()}),l.current.value}const y=n.forwardRef(({apiConfig:s,quoteRequestData:c,showTable:l=!0,optInSelected:R=!1,theme:d,callbacks:h={},onQuoteRetrieved:v,onOptIn:Q,onOptOut:m,onError:C,onNoMatchingQuote:S,onSelectionChange:j},P)=>{const O=n.useRef(null),u=n.useRef(null),o=n.useRef({onQuoteRetrieved:v,onOptIn:Q,onOptOut:m,onError:C,onNoMatchingQuote:S,onSelectionChange:j}),q=n.useRef(h);o.current={onQuoteRetrieved:v,onOptIn:Q,onOptOut:m,onError:C,onNoMatchingQuote:S,onSelectionChange:j},q.current=h;const w=n.useCallback(e=>{var t,r;return(r=(t=o.current).onQuoteRetrieved)==null?void 0:r.call(t,e)},[]),E=n.useCallback(e=>{var t,r,p,f;(r=(t=o.current).onOptIn)==null||r.call(t,e),(f=(p=o.current).onSelectionChange)==null||f.call(p,e)},[]),I=n.useCallback(e=>{var t,r,p,f;(r=(t=o.current).onOptOut)==null||r.call(t,e),(f=(p=o.current).onSelectionChange)==null||f.call(p,e)},[]),M=n.useCallback(e=>{var t,r;(r=(t=o.current).onError)==null||r.call(t,e)},[]),x=n.useCallback(e=>{var t,r;(r=(t=o.current).onNoMatchingQuote)==null||r.call(t,e)},[]),D=n.useMemo(()=>{const e={},t=["onQuoteRetrieved","onOptIn","onOptOut","onError","noMatchingQuote"];for(const r of t)e[r]=(...p)=>{var W;const f=(W=q.current)==null?void 0:W[r];if(f)return f(...p)};return{...e,...o.current.onQuoteRetrieved&&{onQuoteRetrieved:w},...o.current.onOptIn&&{onOptIn:E},...o.current.onOptOut&&{onOptOut:I},...o.current.onError&&{onError:M},...o.current.onNoMatchingQuote&&{noMatchingQuote:x}}},[w,E,I,M,x]),g=N(()=>({apiConfig:s,quoteRequestData:c,showTable:l,optInSelected:R,theme:d,callbacks:D}),[s,c,l,R,d,D]);n.useImperativeHandle(P,()=>({updateQuote:e=>{var t;return((t=u.current)==null?void 0:t.updateQuote(e))??Promise.resolve(!1)},getSelection:()=>{var e;return((e=u.current)==null?void 0:e.getSelection())??null},validateSelection:()=>{var e;return((e=u.current)==null?void 0:e.validateSelection())??!1},destroy:()=>{u.current&&(u.current.destroy(),u.current=null)}}));const b=n.useRef();return n.useEffect(()=>(O.current&&!u.current&&(u.current=new k({location:O.current,...g}),b.current=g),()=>{u.current&&(u.current.destroy(),u.current=null)}),[]),n.useEffect(()=>{if(u.current&&b.current){const e=b.current,t=g;a(e.apiConfig,t.apiConfig)&&a(e.theme,t.theme)&&e.showTable===t.showTable&&e.optInSelected===t.optInSelected&&a(e.callbacks,t.callbacks)&&!a(e.quoteRequestData,t.quoteRequestData)?u.current.updateQuote(t.quoteRequestData):a(e,t)||(u.current.destroy(),u.current=new k({location:O.current,...t})),b.current=t}},[g]),i.jsx("div",{ref:O})});return y.displayName="ReactSpotWidget",y});
|