@getspot/spot-widget-react 3.0.1 → 3.1.0
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 +6 -0
- package/dist/ReactSpotWidget.d.ts.map +1 -1
- package/dist/index.es.js +101 -60
- 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,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE7H;;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,YAAY,GAAG,IAAI,CAAC;IACzD,+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,iGAuJnB,CAAC;AAIH,eAAe,eAAe,CAAC"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,72 +1,113 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
import { jsx as x } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as A, useRef as g, useCallback as d, useImperativeHandle as B, useEffect as E } from "react";
|
|
3
|
+
import M from "@getspot/spot-widget";
|
|
4
|
+
function s(c, o) {
|
|
5
|
+
if (c === o) return !0;
|
|
6
|
+
if (c == null || o == null || typeof c != "object" || typeof o != "object") return !1;
|
|
7
|
+
const l = Object.keys(c), i = Object.keys(o);
|
|
8
|
+
if (l.length !== i.length) return !1;
|
|
9
|
+
for (let a of l)
|
|
10
|
+
if (!i.includes(a) || !s(c[a], o[a])) return !1;
|
|
11
|
+
return !0;
|
|
12
|
+
}
|
|
13
|
+
function W(c, o) {
|
|
14
|
+
const l = g(void 0);
|
|
15
|
+
return (!l.current || !s(l.current.deps, o)) && (l.current = { deps: o, value: c() }), l.current.value;
|
|
16
|
+
}
|
|
17
|
+
const H = A(({
|
|
18
|
+
apiConfig: c,
|
|
19
|
+
quoteRequestData: o,
|
|
20
|
+
showTable: l = !0,
|
|
21
|
+
optInSelected: i = !1,
|
|
9
22
|
theme: a,
|
|
10
|
-
callbacks:
|
|
11
|
-
onQuoteRetrieved:
|
|
12
|
-
onOptIn:
|
|
13
|
-
onOptOut:
|
|
14
|
-
onError:
|
|
15
|
-
onNoMatchingQuote:
|
|
16
|
-
onSelectionChange:
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
...d && { noMatchingQuote: d }
|
|
34
|
-
}, H = {
|
|
35
|
-
apiConfig: m,
|
|
36
|
-
quoteRequestData: i,
|
|
37
|
-
showTable: y,
|
|
38
|
-
optInSelected: W,
|
|
39
|
-
theme: a,
|
|
40
|
-
callbacks: k,
|
|
41
|
-
...w
|
|
23
|
+
callbacks: m = {},
|
|
24
|
+
onQuoteRetrieved: R,
|
|
25
|
+
onOptIn: b,
|
|
26
|
+
onOptOut: Q,
|
|
27
|
+
onError: h,
|
|
28
|
+
onNoMatchingQuote: k,
|
|
29
|
+
onSelectionChange: S
|
|
30
|
+
}, N) => {
|
|
31
|
+
const O = g(null), r = g(null), u = g({
|
|
32
|
+
onQuoteRetrieved: R,
|
|
33
|
+
onOptIn: b,
|
|
34
|
+
onOptOut: Q,
|
|
35
|
+
onError: h,
|
|
36
|
+
onNoMatchingQuote: k,
|
|
37
|
+
onSelectionChange: S
|
|
38
|
+
});
|
|
39
|
+
u.current = {
|
|
40
|
+
onQuoteRetrieved: R,
|
|
41
|
+
onOptIn: b,
|
|
42
|
+
onOptOut: Q,
|
|
43
|
+
onError: h,
|
|
44
|
+
onNoMatchingQuote: k,
|
|
45
|
+
onSelectionChange: S
|
|
42
46
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
+
const C = d((t) => {
|
|
48
|
+
var e, n;
|
|
49
|
+
return (n = (e = u.current).onQuoteRetrieved) == null ? void 0 : n.call(e, t);
|
|
50
|
+
}, []), I = d((t) => {
|
|
51
|
+
var e, n, f, p;
|
|
52
|
+
(n = (e = u.current).onOptIn) == null || n.call(e, t), (p = (f = u.current).onSelectionChange) == null || p.call(f, t);
|
|
53
|
+
}, []), j = d((t) => {
|
|
54
|
+
var e, n, f, p;
|
|
55
|
+
(n = (e = u.current).onOptOut) == null || n.call(e, t), (p = (f = u.current).onSelectionChange) == null || p.call(f, t);
|
|
56
|
+
}, []), q = d((t) => {
|
|
57
|
+
var e, n;
|
|
58
|
+
(n = (e = u.current).onError) == null || n.call(e, t);
|
|
59
|
+
}, []), w = d((t) => {
|
|
60
|
+
var e, n;
|
|
61
|
+
(n = (e = u.current).onNoMatchingQuote) == null || n.call(e, t);
|
|
62
|
+
}, []), D = W(() => ({
|
|
63
|
+
...m,
|
|
64
|
+
...u.current.onQuoteRetrieved && { onQuoteRetrieved: C },
|
|
65
|
+
...u.current.onOptIn && { onOptIn: I },
|
|
66
|
+
...u.current.onOptOut && { onOptOut: j },
|
|
67
|
+
...u.current.onError && { onError: q },
|
|
68
|
+
...u.current.onNoMatchingQuote && { noMatchingQuote: w }
|
|
69
|
+
}), [m, C, I, j, q, w]), v = W(() => ({
|
|
70
|
+
apiConfig: c,
|
|
71
|
+
quoteRequestData: o,
|
|
72
|
+
showTable: l,
|
|
73
|
+
optInSelected: i,
|
|
74
|
+
theme: a,
|
|
75
|
+
callbacks: D
|
|
76
|
+
}), [c, o, l, i, a, D]);
|
|
77
|
+
B(N, () => ({
|
|
78
|
+
updateQuote: (t) => {
|
|
79
|
+
var e;
|
|
80
|
+
return ((e = r.current) == null ? void 0 : e.updateQuote(t)) ?? Promise.resolve(!1);
|
|
47
81
|
},
|
|
48
82
|
getSelection: () => {
|
|
49
|
-
var
|
|
50
|
-
return ((
|
|
83
|
+
var t;
|
|
84
|
+
return ((t = r.current) == null ? void 0 : t.getSelection()) ?? null;
|
|
51
85
|
},
|
|
52
86
|
validateSelection: () => {
|
|
53
|
-
var
|
|
54
|
-
return ((
|
|
87
|
+
var t;
|
|
88
|
+
return ((t = r.current) == null ? void 0 : t.validateSelection()) ?? !1;
|
|
55
89
|
},
|
|
56
90
|
destroy: () => {
|
|
57
|
-
|
|
91
|
+
r.current && (r.current.destroy(), r.current = null);
|
|
92
|
+
}
|
|
93
|
+
}));
|
|
94
|
+
const y = g(void 0);
|
|
95
|
+
return E(() => (O.current && !r.current && (r.current = new M({
|
|
96
|
+
location: O.current,
|
|
97
|
+
...v
|
|
98
|
+
}), y.current = v), () => {
|
|
99
|
+
r.current && (r.current.destroy(), r.current = null);
|
|
100
|
+
}), []), E(() => {
|
|
101
|
+
if (r.current && y.current) {
|
|
102
|
+
const t = y.current, e = v;
|
|
103
|
+
s(t.apiConfig, e.apiConfig) && s(t.theme, e.theme) && t.showTable === e.showTable && t.optInSelected === e.optInSelected && s(t.callbacks, e.callbacks) && !s(t.quoteRequestData, e.quoteRequestData) ? r.current.updateQuote(e.quoteRequestData) : s(t, e) || (r.current.destroy(), r.current = new M({
|
|
104
|
+
location: O.current,
|
|
105
|
+
...e
|
|
106
|
+
})), y.current = e;
|
|
58
107
|
}
|
|
59
|
-
})
|
|
60
|
-
if (l.current)
|
|
61
|
-
return u.current && u.current.destroy(), u.current = new A({
|
|
62
|
-
location: l.current,
|
|
63
|
-
...H
|
|
64
|
-
}), () => {
|
|
65
|
-
u.current && (u.current.destroy(), u.current = null);
|
|
66
|
-
};
|
|
67
|
-
}, [m, i, y, W, a, v, c, s, t, f, d, e, w]), /* @__PURE__ */ P("div", { ref: l });
|
|
108
|
+
}, [v]), /* @__PURE__ */ x("div", { ref: O });
|
|
68
109
|
});
|
|
69
|
-
|
|
110
|
+
H.displayName = "ReactSpotWidget";
|
|
70
111
|
export {
|
|
71
|
-
|
|
112
|
+
H as default
|
|
72
113
|
};
|
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 f(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),d=Object.keys(c);if(l.length!==d.length)return!1;for(let a of l)if(!d.includes(a)||!f(s[a],c[a]))return!1;return!0}function v(s,c){const l=n.useRef(void 0);return(!l.current||!f(l.current.deps,c))&&(l.current={deps:c,value:s()}),l.current.value}const b=n.forwardRef(({apiConfig:s,quoteRequestData:c,showTable:l=!0,optInSelected:d=!1,theme:a,callbacks:h={},onQuoteRetrieved:m,onOptIn:Q,onOptOut:C,onError:S,onNoMatchingQuote:j,onSelectionChange:q},W)=>{const g=n.useRef(null),r=n.useRef(null),o=n.useRef({onQuoteRetrieved:m,onOptIn:Q,onOptOut:C,onError:S,onNoMatchingQuote:j,onSelectionChange:q});o.current={onQuoteRetrieved:m,onOptIn:Q,onOptOut:C,onError:S,onNoMatchingQuote:j,onSelectionChange:q};const w=n.useCallback(t=>{var e,u;return(u=(e=o.current).onQuoteRetrieved)==null?void 0:u.call(e,t)},[]),E=n.useCallback(t=>{var e,u,p,R;(u=(e=o.current).onOptIn)==null||u.call(e,t),(R=(p=o.current).onSelectionChange)==null||R.call(p,t)},[]),I=n.useCallback(t=>{var e,u,p,R;(u=(e=o.current).onOptOut)==null||u.call(e,t),(R=(p=o.current).onSelectionChange)==null||R.call(p,t)},[]),x=n.useCallback(t=>{var e,u;(u=(e=o.current).onError)==null||u.call(e,t)},[]),D=n.useCallback(t=>{var e,u;(u=(e=o.current).onNoMatchingQuote)==null||u.call(e,t)},[]),M=v(()=>({...h,...o.current.onQuoteRetrieved&&{onQuoteRetrieved:w},...o.current.onOptIn&&{onOptIn:E},...o.current.onOptOut&&{onOptOut:I},...o.current.onError&&{onError:x},...o.current.onNoMatchingQuote&&{noMatchingQuote:D}}),[h,w,E,I,x,D]),O=v(()=>({apiConfig:s,quoteRequestData:c,showTable:l,optInSelected:d,theme:a,callbacks:M}),[s,c,l,d,a,M]);n.useImperativeHandle(W,()=>({updateQuote:t=>{var e;return((e=r.current)==null?void 0:e.updateQuote(t))??Promise.resolve(!1)},getSelection:()=>{var t;return((t=r.current)==null?void 0:t.getSelection())??null},validateSelection:()=>{var t;return((t=r.current)==null?void 0:t.validateSelection())??!1},destroy:()=>{r.current&&(r.current.destroy(),r.current=null)}}));const y=n.useRef(void 0);return n.useEffect(()=>(g.current&&!r.current&&(r.current=new k({location:g.current,...O}),y.current=O),()=>{r.current&&(r.current.destroy(),r.current=null)}),[]),n.useEffect(()=>{if(r.current&&y.current){const t=y.current,e=O;f(t.apiConfig,e.apiConfig)&&f(t.theme,e.theme)&&t.showTable===e.showTable&&t.optInSelected===e.optInSelected&&f(t.callbacks,e.callbacks)&&!f(t.quoteRequestData,e.quoteRequestData)?r.current.updateQuote(e.quoteRequestData):f(t,e)||(r.current.destroy(),r.current=new k({location:g.current,...e})),y.current=e}},[O]),i.jsx("div",{ref:g})});return b.displayName="ReactSpotWidget",b});
|