@colabcommerce/elements 0.0.4 → 0.9.1
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/.pnp.cjs +16484 -0
- package/.pnp.loader.mjs +2126 -0
- package/.yarn/install-state.gz +0 -0
- package/.yarn/releases/yarn-4.12.0.cjs +942 -0
- package/.yarnrc.yml +1 -0
- package/README.md +60 -41
- package/cypress/fixtures/example.json +5 -0
- package/cypress/support/commands.js +25 -0
- package/cypress/support/component-index.html +15 -0
- package/cypress/support/component.js +26 -0
- package/cypress.config.js +10 -0
- package/eslint.config.js +32 -0
- package/index.html +13 -0
- package/package.json +91 -67
- package/playground/index.html +14 -0
- package/playground/main.jsx +36 -0
- package/public/vite.svg +1 -0
- package/src/App.css +0 -0
- package/src/App.jsx +65 -0
- package/src/components/CollapsibleStoreHours/index.jsx +269 -0
- package/src/components/HoursList/index.jsx +225 -0
- package/src/components/LeadForm/index.jsx +241 -0
- package/src/components/MessageDialog/index.jsx +169 -0
- package/src/components/QuoteForm/index.jsx +82 -0
- package/src/components/QuoteFormSearch/index.jsx +276 -0
- package/src/components/QuoteFormStoreList/index.jsx +65 -0
- package/src/components/QuoteFormStoreListItem/index.jsx +134 -0
- package/src/components/QuoteLeadForm/index.jsx +16 -0
- package/src/components/QuoteMap/index.jsx +96 -0
- package/src/components/QuoteMapMarker/index.jsx +56 -0
- package/src/components/StaticMap/index.jsx +24 -0
- package/src/components/Store/index.jsx +44 -0
- package/src/components/StoreContact/index.jsx +96 -0
- package/src/components/StoreInfo/index.jsx +50 -0
- package/src/components/StoreList/index.jsx +59 -0
- package/src/components/StoreListItem/index.jsx +99 -0
- package/src/components/StoreListItem/indexStoreListItem.cy.jsx +30 -0
- package/src/components/StoreListNoneFound/index.jsx +16 -0
- package/src/components/StoreLocator/index.jsx +43 -0
- package/src/components/StoreLocatorMap/index.jsx +93 -0
- package/src/components/StoreLocatorMapMarker/index.jsx +55 -0
- package/src/components/StoreLocatorMessageDialog/index.jsx +20 -0
- package/src/components/StoreLocatorSearch/index.jsx +316 -0
- package/src/components/StoreMap/index.jsx +30 -0
- package/src/components/StoreMeta/index.jsx +7 -0
- package/src/components/StoreProducts/index.jsx +112 -0
- package/src/components/ui/Badge/index.jsx +46 -0
- package/src/components/ui/Button/index.jsx +56 -0
- package/src/components/ui/Button/indexButton.cy.jsx +9 -0
- package/src/components/ui/Card/index.jsx +90 -0
- package/src/components/ui/Input/index.jsx +19 -0
- package/src/components/ui/Input/indexInput.cy.jsx +9 -0
- package/src/components/ui/LoadingPuff/index.jsx +10 -0
- package/src/components/ui/Panel/index.jsx +23 -0
- package/src/components/ui/PhoneNumberInput/index.jsx +17 -0
- package/src/contexts/quote-form.jsx +94 -0
- package/src/contexts/store-locator.jsx +83 -0
- package/src/contexts/store.jsx +59 -0
- package/src/contexts/translations.jsx +11 -0
- package/src/dist.css +229 -0
- package/src/entries/QuoteForm.js +2 -0
- package/src/entries/Store.js +2 -0
- package/src/entries/StoreLocator.js +2 -0
- package/src/entries/StoreLocatorProvider.js +2 -0
- package/src/entries/styles.js +2 -0
- package/src/entries/useStoreLocator.js +2 -0
- package/src/i18n/defaultResources.js +19 -0
- package/src/i18n/index.js +44 -0
- package/src/i18n/mergeResources.js +22 -0
- package/src/index.css +214 -0
- package/src/lib/addressComponentsToAddress.js +43 -0
- package/src/lib/productSchema.js +6 -0
- package/src/lib/useGeolocation.js +266 -0
- package/src/lib/useHours.js +205 -0
- package/src/lib/usePlacesAutocomplete.js +288 -0
- package/src/lib/useProductAvailability.js +38 -0
- package/src/lib/useRudderAnalytics.js +50 -0
- package/src/lib/useSearchResults.js +102 -0
- package/src/lib/useStoreLocatorConfig.js +50 -0
- package/src/lib/utils/cn.js +6 -0
- package/src/lib/utils/measure.js +31 -0
- package/src/locales/en/default.json +58 -0
- package/src/locales/es/default.json +58 -0
- package/src/locales/fr/default.json +58 -0
- package/src/locales/it/default.json +58 -0
- package/src/main.jsx +10 -0
- package/vite.config.js +60 -53
- package/dist/CartForm.js +0 -617
- package/dist/Container-CU_WrBOi.js +0 -22
- package/dist/Modal-DTBKy_6d.js +0 -863
- package/dist/ProductForm.js +0 -343
- package/dist/Retailer.js +0 -3637
- package/dist/StoreLocator.js +0 -797
- package/dist/addressComponentsToAddress-DCL-K8mn.js +0 -1932
- package/dist/browser-ponyfill-DcK7_cJB.js +0 -339
- package/dist/globals-B8-hYoIU.js +0 -8518
- package/dist/index-CqSfhXDd.js +0 -137
- package/dist/index-FM02Uq_P.js +0 -100
- package/dist/style.css +0 -1
package/dist/StoreLocator.js
DELETED
|
@@ -1,797 +0,0 @@
|
|
|
1
|
-
import { jsx as s, jsxs as d, Fragment as se } from "react/jsx-runtime";
|
|
2
|
-
import * as B from "react";
|
|
3
|
-
import T, { useState as $, useRef as pe, useEffect as D, useLayoutEffect as Ee, useMemo as he, useCallback as Te, Suspense as He } from "react";
|
|
4
|
-
import { a as E, b as je, c, d as Y, n as We, o as C, C as ne, p as U, q as F, T as Re, r as Be, t as De, E as fe, s as Fe, v as Pe, R as ge, e as Ae, h as Q, i as ze, B as oe, F as w, I as Le, l as Ge, m as Ue } from "./globals-B8-hYoIU.js";
|
|
5
|
-
import { C as qe, u as H, L as Je, d as Qe, l as Ve, a as Xe, S as Ke, b as Ye, A as Ze, c as et, w as tt, e as st, f as at } from "./addressComponentsToAddress-DCL-K8mn.js";
|
|
6
|
-
import { S as nt } from "./index-FM02Uq_P.js";
|
|
7
|
-
import { A as rt, d as it, u as ct, a as ot, B as lt, F as dt, b as mt, g as ut, M as V } from "./Modal-DTBKy_6d.js";
|
|
8
|
-
const pt = "-E4vU", ht = "Y9kow", ft = "x0-tL", gt = "XBGE-", vt = "oUgyZ", yt = "_5xvIm", wt = "yR8v8", Nt = "-FfTB", bt = "mPv4I", _t = "DizAj", Ct = "pL7JB", It = "uUoP0", N = {
|
|
9
|
-
wrapper: pt,
|
|
10
|
-
title: ht,
|
|
11
|
-
hours: ft,
|
|
12
|
-
open: gt,
|
|
13
|
-
closed: vt,
|
|
14
|
-
soon: yt,
|
|
15
|
-
subHoursWrapper: wt,
|
|
16
|
-
subHours: Nt,
|
|
17
|
-
today: bt,
|
|
18
|
-
toggle: _t,
|
|
19
|
-
shown: Ct,
|
|
20
|
-
shownHours: It
|
|
21
|
-
}, St = ({ i: e, hour: t }) => {
|
|
22
|
-
const { t: n, locale: a } = E(), i = /* @__PURE__ */ new Date();
|
|
23
|
-
i.setUTCHours(t.open_at_hour - t.utc_offset_minute / 60, t.open_at_minute, 0, 0);
|
|
24
|
-
const r = /* @__PURE__ */ new Date();
|
|
25
|
-
r.setUTCHours(t.close_at_hour - t.utc_offset_minute / 60, t.close_at_minute, 0, 0);
|
|
26
|
-
const u = i.getUTCMinutes() === 0 ? new Intl.DateTimeFormat(a, { hour: "numeric" }) : new Intl.DateTimeFormat(a, { hour: "numeric", minute: "2-digit" }), l = r.getUTCMinutes() === 0 ? new Intl.DateTimeFormat(a, { hour: "numeric" }) : new Intl.DateTimeFormat(a, { hour: "numeric", minute: "2-digit" });
|
|
27
|
-
return /* @__PURE__ */ d("div", { className: `${N.subHours} ${t.day === (/* @__PURE__ */ new Date()).getDay() ? N.today : ""}`, children: [
|
|
28
|
-
/* @__PURE__ */ s("div", { children: n(`store.days.${t.day}`) }),
|
|
29
|
-
/* @__PURE__ */ d("div", { children: [
|
|
30
|
-
u.format(i),
|
|
31
|
-
" - ",
|
|
32
|
-
l.format(r)
|
|
33
|
-
] })
|
|
34
|
-
] }, t.day);
|
|
35
|
-
}, Mt = ({ hours: e, defaultOpen: t = !1 }) => {
|
|
36
|
-
const { t: n, locale: a } = E(), { isOpen: i, openingSoon: r, closingSoon: u, openAt: l, closeAt: m, openFormatter: p, closeAtFormatter: f } = je(e), [y, _] = $(t), o = (/* @__PURE__ */ new Date()).getDay();
|
|
37
|
-
if (!(e == null ? void 0 : e.find((M) => M.day === o))) return null;
|
|
38
|
-
const W = i, I = e.sort((M, x) => M.day - x.day);
|
|
39
|
-
let S = null, h = null;
|
|
40
|
-
return W ? u ? (h = c(N.hours, N.soon), S = /* @__PURE__ */ s("span", { children: n("store.closingSoon") })) : (h = c(N.hours, N.open), S = /* @__PURE__ */ s("span", { children: n("store.openNow") })) : r ? (h = c(N.hours, N.soon), S = /* @__PURE__ */ s("span", { children: n("store.openingSoon") })) : (h = c(N.hours, N.closed), S = /* @__PURE__ */ s("span", { children: n("store.closedNow") })), /* @__PURE__ */ d("div", { className: y ? c(N.wrapper, N.shown) : c(N.wrapper), children: [
|
|
41
|
-
/* @__PURE__ */ d("div", { className: c(N.title), onClick: () => _(!y), children: [
|
|
42
|
-
/* @__PURE__ */ d("span", { className: h, children: [
|
|
43
|
-
/* @__PURE__ */ s("i", { className: "lpe-icons", children: "clock" }),
|
|
44
|
-
S
|
|
45
|
-
] }),
|
|
46
|
-
/* @__PURE__ */ d("span", { className: N.shownHours, children: [
|
|
47
|
-
p.format(l),
|
|
48
|
-
" - ",
|
|
49
|
-
f.format(m)
|
|
50
|
-
] }),
|
|
51
|
-
/* @__PURE__ */ s("i", { className: c("lpe-icons", N.toggle), children: "arrow" })
|
|
52
|
-
] }),
|
|
53
|
-
/* @__PURE__ */ s(qe, { in: y, children: /* @__PURE__ */ s("div", { children: /* @__PURE__ */ s("div", { className: c(N.subHoursWrapper), children: I.map((M, x) => /* @__PURE__ */ s(St, { i: x, hour: M }, M.day)) }) }) })
|
|
54
|
-
] });
|
|
55
|
-
};
|
|
56
|
-
var ve = {
|
|
57
|
-
color: void 0,
|
|
58
|
-
size: void 0,
|
|
59
|
-
className: void 0,
|
|
60
|
-
style: void 0,
|
|
61
|
-
attr: void 0
|
|
62
|
-
}, le = T.createContext && /* @__PURE__ */ T.createContext(ve), Ot = ["attr", "size", "title"];
|
|
63
|
-
function xt(e, t) {
|
|
64
|
-
if (e == null) return {};
|
|
65
|
-
var n = kt(e, t), a, i;
|
|
66
|
-
if (Object.getOwnPropertySymbols) {
|
|
67
|
-
var r = Object.getOwnPropertySymbols(e);
|
|
68
|
-
for (i = 0; i < r.length; i++)
|
|
69
|
-
a = r[i], !(t.indexOf(a) >= 0) && Object.prototype.propertyIsEnumerable.call(e, a) && (n[a] = e[a]);
|
|
70
|
-
}
|
|
71
|
-
return n;
|
|
72
|
-
}
|
|
73
|
-
function kt(e, t) {
|
|
74
|
-
if (e == null) return {};
|
|
75
|
-
var n = {};
|
|
76
|
-
for (var a in e)
|
|
77
|
-
if (Object.prototype.hasOwnProperty.call(e, a)) {
|
|
78
|
-
if (t.indexOf(a) >= 0) continue;
|
|
79
|
-
n[a] = e[a];
|
|
80
|
-
}
|
|
81
|
-
return n;
|
|
82
|
-
}
|
|
83
|
-
function X() {
|
|
84
|
-
return X = Object.assign ? Object.assign.bind() : function(e) {
|
|
85
|
-
for (var t = 1; t < arguments.length; t++) {
|
|
86
|
-
var n = arguments[t];
|
|
87
|
-
for (var a in n)
|
|
88
|
-
Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]);
|
|
89
|
-
}
|
|
90
|
-
return e;
|
|
91
|
-
}, X.apply(this, arguments);
|
|
92
|
-
}
|
|
93
|
-
function de(e, t) {
|
|
94
|
-
var n = Object.keys(e);
|
|
95
|
-
if (Object.getOwnPropertySymbols) {
|
|
96
|
-
var a = Object.getOwnPropertySymbols(e);
|
|
97
|
-
t && (a = a.filter(function(i) {
|
|
98
|
-
return Object.getOwnPropertyDescriptor(e, i).enumerable;
|
|
99
|
-
})), n.push.apply(n, a);
|
|
100
|
-
}
|
|
101
|
-
return n;
|
|
102
|
-
}
|
|
103
|
-
function K(e) {
|
|
104
|
-
for (var t = 1; t < arguments.length; t++) {
|
|
105
|
-
var n = arguments[t] != null ? arguments[t] : {};
|
|
106
|
-
t % 2 ? de(Object(n), !0).forEach(function(a) {
|
|
107
|
-
$t(e, a, n[a]);
|
|
108
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : de(Object(n)).forEach(function(a) {
|
|
109
|
-
Object.defineProperty(e, a, Object.getOwnPropertyDescriptor(n, a));
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
return e;
|
|
113
|
-
}
|
|
114
|
-
function $t(e, t, n) {
|
|
115
|
-
return t = Et(t), t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e;
|
|
116
|
-
}
|
|
117
|
-
function Et(e) {
|
|
118
|
-
var t = Tt(e, "string");
|
|
119
|
-
return typeof t == "symbol" ? t : t + "";
|
|
120
|
-
}
|
|
121
|
-
function Tt(e, t) {
|
|
122
|
-
if (typeof e != "object" || !e) return e;
|
|
123
|
-
var n = e[Symbol.toPrimitive];
|
|
124
|
-
if (n !== void 0) {
|
|
125
|
-
var a = n.call(e, t);
|
|
126
|
-
if (typeof a != "object") return a;
|
|
127
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
128
|
-
}
|
|
129
|
-
return (t === "string" ? String : Number)(e);
|
|
130
|
-
}
|
|
131
|
-
function ye(e) {
|
|
132
|
-
return e && e.map((t, n) => /* @__PURE__ */ T.createElement(t.tag, K({
|
|
133
|
-
key: n
|
|
134
|
-
}, t.attr), ye(t.child)));
|
|
135
|
-
}
|
|
136
|
-
function Ht(e) {
|
|
137
|
-
return (t) => /* @__PURE__ */ T.createElement(jt, X({
|
|
138
|
-
attr: K({}, e.attr)
|
|
139
|
-
}, t), ye(e.child));
|
|
140
|
-
}
|
|
141
|
-
function jt(e) {
|
|
142
|
-
var t = (n) => {
|
|
143
|
-
var {
|
|
144
|
-
attr: a,
|
|
145
|
-
size: i,
|
|
146
|
-
title: r
|
|
147
|
-
} = e, u = xt(e, Ot), l = i || n.size || "1em", m;
|
|
148
|
-
return n.className && (m = n.className), e.className && (m = (m ? m + " " : "") + e.className), /* @__PURE__ */ T.createElement("svg", X({
|
|
149
|
-
stroke: "currentColor",
|
|
150
|
-
fill: "currentColor",
|
|
151
|
-
strokeWidth: "0"
|
|
152
|
-
}, n.attr, a, u, {
|
|
153
|
-
className: m,
|
|
154
|
-
style: K(K({
|
|
155
|
-
color: e.color || n.color
|
|
156
|
-
}, n.style), e.style),
|
|
157
|
-
height: l,
|
|
158
|
-
width: l,
|
|
159
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
160
|
-
}), r && /* @__PURE__ */ T.createElement("title", null, r), e.children);
|
|
161
|
-
};
|
|
162
|
-
return le !== void 0 ? /* @__PURE__ */ T.createElement(le.Consumer, null, (n) => t(n)) : t(ve);
|
|
163
|
-
}
|
|
164
|
-
function Wt(e) {
|
|
165
|
-
return Ht({ attr: { viewBox: "0 0 24 24" }, child: [{ tag: "path", attr: { fill: "none", d: "M0 0h24v24H0z" }, child: [] }, { tag: "path", attr: { d: "M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z" }, child: [] }] })(e);
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* @license lucide-react v0.542.0 - ISC
|
|
169
|
-
*
|
|
170
|
-
* This source code is licensed under the ISC license.
|
|
171
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
172
|
-
*/
|
|
173
|
-
const Rt = [
|
|
174
|
-
["path", { d: "m15 14 5-5-5-5", key: "12vg1m" }],
|
|
175
|
-
["path", { d: "M4 20v-7a4 4 0 0 1 4-4h12", key: "1lu4f8" }]
|
|
176
|
-
], Bt = Y("corner-up-right", Rt);
|
|
177
|
-
/**
|
|
178
|
-
* @license lucide-react v0.542.0 - ISC
|
|
179
|
-
*
|
|
180
|
-
* This source code is licensed under the ISC license.
|
|
181
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
182
|
-
*/
|
|
183
|
-
const Dt = [
|
|
184
|
-
["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
|
|
185
|
-
["path", { d: "M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20", key: "13o1zl" }],
|
|
186
|
-
["path", { d: "M2 12h20", key: "9i4pu4" }]
|
|
187
|
-
], Ft = Y("globe", Dt);
|
|
188
|
-
/**
|
|
189
|
-
* @license lucide-react v0.542.0 - ISC
|
|
190
|
-
*
|
|
191
|
-
* This source code is licensed under the ISC license.
|
|
192
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
193
|
-
*/
|
|
194
|
-
const Pt = [
|
|
195
|
-
[
|
|
196
|
-
"path",
|
|
197
|
-
{
|
|
198
|
-
d: "M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",
|
|
199
|
-
key: "18887p"
|
|
200
|
-
}
|
|
201
|
-
],
|
|
202
|
-
["path", { d: "M7 11h10", key: "1twpyw" }],
|
|
203
|
-
["path", { d: "M7 15h6", key: "d9of3u" }],
|
|
204
|
-
["path", { d: "M7 7h8", key: "af5zfr" }]
|
|
205
|
-
], At = Y("message-square-text", Pt);
|
|
206
|
-
/**
|
|
207
|
-
* @license lucide-react v0.542.0 - ISC
|
|
208
|
-
*
|
|
209
|
-
* This source code is licensed under the ISC license.
|
|
210
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
211
|
-
*/
|
|
212
|
-
const zt = [
|
|
213
|
-
[
|
|
214
|
-
"path",
|
|
215
|
-
{
|
|
216
|
-
d: "M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384",
|
|
217
|
-
key: "9njp5v"
|
|
218
|
-
}
|
|
219
|
-
]
|
|
220
|
-
], Lt = Y("phone", zt), Gt = () => {
|
|
221
|
-
const { t: e } = E(), { locationName: t, setLocationName: n, setSearchCenter: a, setMapCenter: i, setShowFilters: r, setLoadingGeo: u, getPosition: l } = H(), m = pe(null), [p, f] = $(null), y = We("places");
|
|
222
|
-
return D(() => {
|
|
223
|
-
if (!y || !m.current) return;
|
|
224
|
-
const b = {
|
|
225
|
-
fields: ["geometry", "name", "formatted_address"]
|
|
226
|
-
};
|
|
227
|
-
f(new y.Autocomplete(m.current, b));
|
|
228
|
-
}, [y]), D(() => {
|
|
229
|
-
p && p.addListener("place_changed", () => {
|
|
230
|
-
const b = p.getPlace();
|
|
231
|
-
if (!b.geometry) {
|
|
232
|
-
console.log("Returned place contains no geometry");
|
|
233
|
-
return;
|
|
234
|
-
}
|
|
235
|
-
const o = { lat: b.geometry.location.lat(), lng: b.geometry.location.lng() };
|
|
236
|
-
i(o), a(o), n(b.formatted_address);
|
|
237
|
-
});
|
|
238
|
-
}, [p, n]), /* @__PURE__ */ s(Je, { locationName: t, setLocationName: n, setSearchCenter: a, setMapCenter: i, handleLocate: () => {
|
|
239
|
-
u(!0), l();
|
|
240
|
-
} });
|
|
241
|
-
}, Ut = typeof global < "u" && // @ts-ignore
|
|
242
|
-
global.navigator && // @ts-ignore
|
|
243
|
-
global.navigator.product === "ReactNative", qt = typeof document < "u", Jt = qt || Ut ? Ee : D, Qt = "_0KWD0", Vt = "g3FBG", Xt = "CLUyb", Kt = "npnV3", Yt = "BIswH", Zt = "-m7UC", es = "-q7GQ", ts = "YbQl1", ss = "N8xLz", as = "I-G0P", ns = "OuZOS", rs = "WA4AC", is = "xkI8T", cs = "frXG0", os = "xm9kk", ls = "owF5c", ds = "FeU6b", ms = "XSAWh", us = "RmHU1", ps = "VFB9v", v = {
|
|
244
|
-
wrapper: Qt,
|
|
245
|
-
selected: Vt,
|
|
246
|
-
nameWrapper: Xt,
|
|
247
|
-
details: Kt,
|
|
248
|
-
distance: Yt,
|
|
249
|
-
name: Zt,
|
|
250
|
-
address: es,
|
|
251
|
-
interactWrapper: ts,
|
|
252
|
-
interactItem: ss,
|
|
253
|
-
interactIcon: as,
|
|
254
|
-
interactText: ns,
|
|
255
|
-
addressWrapper: rs,
|
|
256
|
-
viewProducts: is,
|
|
257
|
-
rotateIcon: cs,
|
|
258
|
-
slide: os,
|
|
259
|
-
productItem: ls,
|
|
260
|
-
productImage: ds,
|
|
261
|
-
productName: ms,
|
|
262
|
-
productsWrapper: us,
|
|
263
|
-
dismissable: ps
|
|
264
|
-
}, hs = ({ id: e, location: t, dismissable: n }) => {
|
|
265
|
-
var q, P, A, z, J;
|
|
266
|
-
const a = "store-locator-sidebar-list-item", { selectedLocation: i, searchCenter: r, showDetails: u, setShowDetails: l, setMessageModalOpen: m, setSelectedLocationId: p } = H(), { t: f, i18n: y } = E(), _ = y == null ? void 0 : y.language, [b, o] = $(!1), [j, W] = $(!1), I = () => {
|
|
267
|
-
m(!0);
|
|
268
|
-
}, S = () => {
|
|
269
|
-
p(e);
|
|
270
|
-
const R = new URLSearchParams(window.location.search);
|
|
271
|
-
R.set("location", e), window.history.replaceState({}, "", `?${R.toString()}`);
|
|
272
|
-
}, h = (R) => {
|
|
273
|
-
b || (R.preventDefault(), o(!0));
|
|
274
|
-
}, M = Math.round(Qe({ lat: (q = t == null ? void 0 : t.address) == null ? void 0 : q.latitude, lng: (P = t == null ? void 0 : t.address) == null ? void 0 : P.longitude }, r) * 10) / 10, x = e === (i == null ? void 0 : i.id) ? C(["wrapper", "selected"], v, "sidebar-list-item") : C("wrapper", v, "sidebar-list-item");
|
|
275
|
-
return /* @__PURE__ */ d("div", { onClick: S, className: x, children: [
|
|
276
|
-
/* @__PURE__ */ d("section", { className: c(v.nameWrapper), children: [
|
|
277
|
-
/* @__PURE__ */ d("div", { className: c(v.name), children: [
|
|
278
|
-
t == null ? void 0 : t.retailer_name,
|
|
279
|
-
/* @__PURE__ */ d("div", { className: `text-muted fw-normal mt-1 ${v.distance}`, children: [
|
|
280
|
-
Math.round(Xe(M, _) * 10) / 10,
|
|
281
|
-
" ",
|
|
282
|
-
Ve(_),
|
|
283
|
-
" away"
|
|
284
|
-
] })
|
|
285
|
-
] }),
|
|
286
|
-
/* @__PURE__ */ s("div", { className: "text-end d-flex align-items-center justify-content-end", children: /* @__PURE__ */ s(Ke, { type: t == null ? void 0 : t.store_type }) })
|
|
287
|
-
] }),
|
|
288
|
-
/* @__PURE__ */ s("section", { className: `${v.hoursWrapper} d-flex justify-content-between align-items-center pe-3`, children: /* @__PURE__ */ s(Ye, { hours: t == null ? void 0 : t.retailer_location_hours }) }),
|
|
289
|
-
/* @__PURE__ */ s("section", { className: c(v.addressWrapper), children: /* @__PURE__ */ d("div", { className: c(v.address), children: [
|
|
290
|
-
/* @__PURE__ */ s("div", { children: t == null ? void 0 : t.address.street_line_one }),
|
|
291
|
-
/* @__PURE__ */ s("div", { children: t == null ? void 0 : t.address.street_line_two }),
|
|
292
|
-
/* @__PURE__ */ d("div", { children: [
|
|
293
|
-
t == null ? void 0 : t.address.city,
|
|
294
|
-
", ",
|
|
295
|
-
t == null ? void 0 : t.address.province,
|
|
296
|
-
" ",
|
|
297
|
-
t == null ? void 0 : t.address.postal_code
|
|
298
|
-
] }),
|
|
299
|
-
/* @__PURE__ */ s("div", { className: "d-none", children: t == null ? void 0 : t.address.country })
|
|
300
|
-
] }) }),
|
|
301
|
-
/* @__PURE__ */ d("section", { className: C("interactWrapper", v, "store-locator-sidebar-list-item"), children: [
|
|
302
|
-
(t == null ? void 0 : t.phone_number) && /* @__PURE__ */ d(
|
|
303
|
-
"a",
|
|
304
|
-
{
|
|
305
|
-
href: `tel:${(A = t == null ? void 0 : t.phone_number) == null ? void 0 : A.phone_number}`,
|
|
306
|
-
className: [C("interactItem", v, "store-locator-sidebar-list-item"), "cc-interact-item-phone"].join(" "),
|
|
307
|
-
onClick: h,
|
|
308
|
-
children: [
|
|
309
|
-
/* @__PURE__ */ s("div", { className: [v.interactIcon, "cc-interact-icon", "cc-interact-icon-phone"].join(" "), children: /* @__PURE__ */ s(Lt, { size: 20 }) }),
|
|
310
|
-
/* @__PURE__ */ s("div", { className: [v.interactText, "cc-interact-text", "cc-interact-text-phone"].join(" "), children: b ? (z = t == null ? void 0 : t.phone_number) == null ? void 0 : z.formatted : f("general.phone") })
|
|
311
|
-
]
|
|
312
|
-
}
|
|
313
|
-
),
|
|
314
|
-
/* @__PURE__ */ d(
|
|
315
|
-
"a",
|
|
316
|
-
{
|
|
317
|
-
href: `https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent((J = t == null ? void 0 : t.address) == null ? void 0 : J.string)}=&destination_place_id=${t == null ? void 0 : t.place_id}`,
|
|
318
|
-
target: "new",
|
|
319
|
-
className: [C("interactItem", v, a), "cc-interact-item-directions"].join(" "),
|
|
320
|
-
children: [
|
|
321
|
-
/* @__PURE__ */ s("div", { className: [C("interactIcon", v, a), "cc-interact-icon-directions"].join(" "), children: /* @__PURE__ */ s(Bt, { size: 20 }) }),
|
|
322
|
-
/* @__PURE__ */ s("div", { className: [C("interactText", v, a), "cc-interact-text-directions"].join(" "), children: f("general.directions") })
|
|
323
|
-
]
|
|
324
|
-
}
|
|
325
|
-
),
|
|
326
|
-
/* @__PURE__ */ d("button", { className: C("interactItem", v, a), onClick: I, children: [
|
|
327
|
-
/* @__PURE__ */ s("div", { className: C("interactIcon", v, a), children: /* @__PURE__ */ s(At, { size: 20 }) }),
|
|
328
|
-
/* @__PURE__ */ s("div", { className: C("interactText", v, a), children: f("general.message") })
|
|
329
|
-
] }),
|
|
330
|
-
(t == null ? void 0 : t.website) && /* @__PURE__ */ d("a", { href: t == null ? void 0 : t.website, target: "_blank", className: C("interactItem", v, a), children: [
|
|
331
|
-
/* @__PURE__ */ s("div", { className: C("interactIcon", v, a), children: /* @__PURE__ */ s(Ft, { size: 20 }) }),
|
|
332
|
-
/* @__PURE__ */ s("div", { className: C("interactText", v, a), children: f("general.website") })
|
|
333
|
-
] })
|
|
334
|
-
] })
|
|
335
|
-
] });
|
|
336
|
-
}, fs = "pCNHg", gs = "frwR4", vs = "sUqpG", L = {
|
|
337
|
-
loading: fs,
|
|
338
|
-
itemWrapper: gs,
|
|
339
|
-
wrapper: vs
|
|
340
|
-
}, ys = () => {
|
|
341
|
-
const { t: e } = E(), { locations: t, isLoading: n, selectedLocationId: a } = H();
|
|
342
|
-
function i(r, u) {
|
|
343
|
-
if (!r || !u) return;
|
|
344
|
-
const l = r.getBoundingClientRect(), p = u.getBoundingClientRect().top - l.top + r.scrollTop;
|
|
345
|
-
r.scrollTo({
|
|
346
|
-
top: p,
|
|
347
|
-
behavior: "smooth"
|
|
348
|
-
});
|
|
349
|
-
}
|
|
350
|
-
return D(() => {
|
|
351
|
-
const r = document.getElementById(`location-${a}`);
|
|
352
|
-
if (r) {
|
|
353
|
-
const u = document.getElementById("llw");
|
|
354
|
-
i(u, r);
|
|
355
|
-
}
|
|
356
|
-
}, [a]), n ? /* @__PURE__ */ s("div", { className: c(L.loading), children: /* @__PURE__ */ s("img", { src: "https://images.sofasandsectionals.com/cc/pal-loader.svg", width: "50", height: "50", alt: e("store_locator.loading") }) }) : /* @__PURE__ */ s("div", { id: "location-list", className: `${L.wrapper} ${a ? L.hasSelected : ""}`, children: t.map((r) => /* @__PURE__ */ s("div", { id: `location-${r.id}`, className: `${L.itemWrapper} ${a === r.id ? L.selected : ""}`, children: /* @__PURE__ */ s(hs, { id: r.id, location: r }) }, r.id)) });
|
|
357
|
-
}, ws = "N2FHA", Ns = "BSoIL", bs = "xMDdB", _s = "-zMng", G = {
|
|
358
|
-
wrapper: ws,
|
|
359
|
-
top: Ns,
|
|
360
|
-
searchWrapper: bs,
|
|
361
|
-
listWrapper: _s
|
|
362
|
-
}, Cs = () => {
|
|
363
|
-
const { showMap: e, showFilters: t, setShowFilters: n, locale: a, selectedLocationId: i } = H();
|
|
364
|
-
return /* @__PURE__ */ d(ne, { xs: { order: 1 }, lg: { order: 0, span: 4 }, xxl: { order: 0, span: 3 }, className: c(G.wrapper), children: [
|
|
365
|
-
/* @__PURE__ */ s("div", { className: c(G.top), children: /* @__PURE__ */ s("div", { className: c(G.searchWrapper), children: /* @__PURE__ */ s("div", { className: "mb-3", children: /* @__PURE__ */ s(Gt, {}) }) }) }),
|
|
366
|
-
/* @__PURE__ */ s("div", { className: `${G.listWrapper} ${i ? G.hasSelected : ""}`, id: "llw", children: /* @__PURE__ */ s(ys, {}) })
|
|
367
|
-
] });
|
|
368
|
-
}, ae = /* @__PURE__ */ new WeakMap(), me = (e, t) => {
|
|
369
|
-
if (!e || !t) return;
|
|
370
|
-
const n = ae.get(t) || /* @__PURE__ */ new Map();
|
|
371
|
-
ae.set(t, n);
|
|
372
|
-
let a = n.get(e);
|
|
373
|
-
return a || (a = t.matchMedia(e), a.refCount = 0, n.set(a.media, a)), a;
|
|
374
|
-
};
|
|
375
|
-
function Is(e, t = typeof window > "u" ? void 0 : window) {
|
|
376
|
-
const n = me(e, t), [a, i] = $(() => n ? n.matches : !1);
|
|
377
|
-
return Jt(() => {
|
|
378
|
-
let r = me(e, t);
|
|
379
|
-
if (!r)
|
|
380
|
-
return i(!1);
|
|
381
|
-
let u = ae.get(t);
|
|
382
|
-
const l = () => {
|
|
383
|
-
i(r.matches);
|
|
384
|
-
};
|
|
385
|
-
return r.refCount++, r.addListener(l), l(), () => {
|
|
386
|
-
r.removeListener(l), r.refCount--, r.refCount <= 0 && (u == null || u.delete(r.media)), r = void 0;
|
|
387
|
-
};
|
|
388
|
-
}, [e]), a;
|
|
389
|
-
}
|
|
390
|
-
function Ss(e) {
|
|
391
|
-
const t = Object.keys(e);
|
|
392
|
-
function n(l, m) {
|
|
393
|
-
return l === m ? m : l ? `${l} and ${m}` : m;
|
|
394
|
-
}
|
|
395
|
-
function a(l) {
|
|
396
|
-
return t[Math.min(t.indexOf(l) + 1, t.length - 1)];
|
|
397
|
-
}
|
|
398
|
-
function i(l) {
|
|
399
|
-
const m = a(l);
|
|
400
|
-
let p = e[m];
|
|
401
|
-
return typeof p == "number" ? p = `${p - 0.2}px` : p = `calc(${p} - 0.2px)`, `(max-width: ${p})`;
|
|
402
|
-
}
|
|
403
|
-
function r(l) {
|
|
404
|
-
let m = e[l];
|
|
405
|
-
return typeof m == "number" && (m = `${m}px`), `(min-width: ${m})`;
|
|
406
|
-
}
|
|
407
|
-
function u(l, m, p) {
|
|
408
|
-
let f;
|
|
409
|
-
typeof l == "object" ? (f = l, p = m, m = !0) : (m = m || !0, f = {
|
|
410
|
-
[l]: m
|
|
411
|
-
});
|
|
412
|
-
let y = he(() => Object.entries(f).reduce((_, [b, o]) => ((o === "up" || o === !0) && (_ = n(_, r(b))), (o === "down" || o === !0) && (_ = n(_, i(b))), _), ""), [JSON.stringify(f)]);
|
|
413
|
-
return Is(y, p);
|
|
414
|
-
}
|
|
415
|
-
return u;
|
|
416
|
-
}
|
|
417
|
-
const Ms = Ss({
|
|
418
|
-
xs: 0,
|
|
419
|
-
sm: 576,
|
|
420
|
-
md: 768,
|
|
421
|
-
lg: 992,
|
|
422
|
-
xl: 1200,
|
|
423
|
-
xxl: 1400
|
|
424
|
-
}), we = /* @__PURE__ */ B.forwardRef(({
|
|
425
|
-
className: e,
|
|
426
|
-
bsPrefix: t,
|
|
427
|
-
as: n = "div",
|
|
428
|
-
...a
|
|
429
|
-
}, i) => (t = U(t, "offcanvas-body"), /* @__PURE__ */ s(n, {
|
|
430
|
-
ref: i,
|
|
431
|
-
className: F(e, t),
|
|
432
|
-
...a
|
|
433
|
-
})));
|
|
434
|
-
we.displayName = "OffcanvasBody";
|
|
435
|
-
const Os = {
|
|
436
|
-
[fe]: "show",
|
|
437
|
-
[Pe]: "show"
|
|
438
|
-
}, Ne = /* @__PURE__ */ B.forwardRef(({
|
|
439
|
-
bsPrefix: e,
|
|
440
|
-
className: t,
|
|
441
|
-
children: n,
|
|
442
|
-
in: a = !1,
|
|
443
|
-
mountOnEnter: i = !1,
|
|
444
|
-
unmountOnExit: r = !1,
|
|
445
|
-
appear: u = !1,
|
|
446
|
-
...l
|
|
447
|
-
}, m) => (e = U(e, "offcanvas"), /* @__PURE__ */ s(Re, {
|
|
448
|
-
ref: m,
|
|
449
|
-
addEndListener: De,
|
|
450
|
-
in: a,
|
|
451
|
-
mountOnEnter: i,
|
|
452
|
-
unmountOnExit: r,
|
|
453
|
-
appear: u,
|
|
454
|
-
...l,
|
|
455
|
-
childRef: Be(n),
|
|
456
|
-
children: (p, f) => /* @__PURE__ */ B.cloneElement(n, {
|
|
457
|
-
...f,
|
|
458
|
-
className: F(t, n.props.className, (p === fe || p === Fe) && `${e}-toggling`, Os[p])
|
|
459
|
-
})
|
|
460
|
-
})));
|
|
461
|
-
Ne.displayName = "OffcanvasToggling";
|
|
462
|
-
const be = /* @__PURE__ */ B.forwardRef(({
|
|
463
|
-
bsPrefix: e,
|
|
464
|
-
className: t,
|
|
465
|
-
closeLabel: n = "Close",
|
|
466
|
-
closeButton: a = !1,
|
|
467
|
-
...i
|
|
468
|
-
}, r) => (e = U(e, "offcanvas-header"), /* @__PURE__ */ s(rt, {
|
|
469
|
-
ref: r,
|
|
470
|
-
...i,
|
|
471
|
-
className: F(t, e),
|
|
472
|
-
closeLabel: n,
|
|
473
|
-
closeButton: a
|
|
474
|
-
})));
|
|
475
|
-
be.displayName = "OffcanvasHeader";
|
|
476
|
-
const xs = it("h5"), _e = /* @__PURE__ */ B.forwardRef(({
|
|
477
|
-
className: e,
|
|
478
|
-
bsPrefix: t,
|
|
479
|
-
as: n = xs,
|
|
480
|
-
...a
|
|
481
|
-
}, i) => (t = U(t, "offcanvas-title"), /* @__PURE__ */ s(n, {
|
|
482
|
-
ref: i,
|
|
483
|
-
className: F(e, t),
|
|
484
|
-
...a
|
|
485
|
-
})));
|
|
486
|
-
_e.displayName = "OffcanvasTitle";
|
|
487
|
-
function ks(e) {
|
|
488
|
-
return /* @__PURE__ */ s(Ne, {
|
|
489
|
-
...e
|
|
490
|
-
});
|
|
491
|
-
}
|
|
492
|
-
function $s(e) {
|
|
493
|
-
return /* @__PURE__ */ s(dt, {
|
|
494
|
-
...e
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
const Ce = /* @__PURE__ */ B.forwardRef(({
|
|
498
|
-
bsPrefix: e,
|
|
499
|
-
className: t,
|
|
500
|
-
children: n,
|
|
501
|
-
"aria-labelledby": a,
|
|
502
|
-
placement: i = "start",
|
|
503
|
-
responsive: r,
|
|
504
|
-
/* BaseModal props */
|
|
505
|
-
show: u = !1,
|
|
506
|
-
backdrop: l = !0,
|
|
507
|
-
keyboard: m = !0,
|
|
508
|
-
scroll: p = !1,
|
|
509
|
-
onEscapeKeyDown: f,
|
|
510
|
-
onShow: y,
|
|
511
|
-
onHide: _,
|
|
512
|
-
container: b,
|
|
513
|
-
autoFocus: o = !0,
|
|
514
|
-
enforceFocus: j = !0,
|
|
515
|
-
restoreFocus: W = !0,
|
|
516
|
-
restoreFocusOptions: I,
|
|
517
|
-
onEntered: S,
|
|
518
|
-
onExit: h,
|
|
519
|
-
onExiting: M,
|
|
520
|
-
onEnter: x,
|
|
521
|
-
onEntering: q,
|
|
522
|
-
onExited: P,
|
|
523
|
-
backdropClassName: A,
|
|
524
|
-
manager: z,
|
|
525
|
-
renderStaticNode: J = !1,
|
|
526
|
-
...R
|
|
527
|
-
}, Ie) => {
|
|
528
|
-
const Z = pe();
|
|
529
|
-
e = U(e, "offcanvas");
|
|
530
|
-
const [re, Se] = $(!1), ee = ct(_), ie = Ms(r || "xs", "up");
|
|
531
|
-
D(() => {
|
|
532
|
-
Se(r ? u && !ie : u);
|
|
533
|
-
}, [u, r, ie]);
|
|
534
|
-
const Me = he(() => ({
|
|
535
|
-
onHide: ee
|
|
536
|
-
}), [ee]);
|
|
537
|
-
function Oe() {
|
|
538
|
-
return z || (p ? (Z.current || (Z.current = new mt({
|
|
539
|
-
handleContainerOverflow: !1
|
|
540
|
-
})), Z.current) : ut());
|
|
541
|
-
}
|
|
542
|
-
const xe = (O, ...te) => {
|
|
543
|
-
O && (O.style.visibility = "visible"), x == null || x(O, ...te);
|
|
544
|
-
}, ke = (O, ...te) => {
|
|
545
|
-
O && (O.style.visibility = ""), P == null || P(...te);
|
|
546
|
-
}, $e = Te((O) => /* @__PURE__ */ s("div", {
|
|
547
|
-
...O,
|
|
548
|
-
className: F(`${e}-backdrop`, A)
|
|
549
|
-
}), [A, e]), ce = (O) => /* @__PURE__ */ s("div", {
|
|
550
|
-
...O,
|
|
551
|
-
...R,
|
|
552
|
-
className: F(t, r ? `${e}-${r}` : e, `${e}-${i}`),
|
|
553
|
-
"aria-labelledby": a,
|
|
554
|
-
children: n
|
|
555
|
-
});
|
|
556
|
-
return /* @__PURE__ */ d(se, {
|
|
557
|
-
children: [!re && (r || J) && ce({}), /* @__PURE__ */ s(ot.Provider, {
|
|
558
|
-
value: Me,
|
|
559
|
-
children: /* @__PURE__ */ s(lt, {
|
|
560
|
-
show: re,
|
|
561
|
-
ref: Ie,
|
|
562
|
-
backdrop: l,
|
|
563
|
-
container: b,
|
|
564
|
-
keyboard: m,
|
|
565
|
-
autoFocus: o,
|
|
566
|
-
enforceFocus: j && !p,
|
|
567
|
-
restoreFocus: W,
|
|
568
|
-
restoreFocusOptions: I,
|
|
569
|
-
onEscapeKeyDown: f,
|
|
570
|
-
onShow: y,
|
|
571
|
-
onHide: ee,
|
|
572
|
-
onEnter: xe,
|
|
573
|
-
onEntering: q,
|
|
574
|
-
onEntered: S,
|
|
575
|
-
onExit: h,
|
|
576
|
-
onExiting: M,
|
|
577
|
-
onExited: ke,
|
|
578
|
-
manager: Oe(),
|
|
579
|
-
transition: ks,
|
|
580
|
-
backdropTransition: $s,
|
|
581
|
-
renderBackdrop: $e,
|
|
582
|
-
renderDialog: ce
|
|
583
|
-
})
|
|
584
|
-
})]
|
|
585
|
-
});
|
|
586
|
-
});
|
|
587
|
-
Ce.displayName = "Offcanvas";
|
|
588
|
-
const ue = Object.assign(Ce, {
|
|
589
|
-
Body: we,
|
|
590
|
-
Header: be,
|
|
591
|
-
Title: _e
|
|
592
|
-
}), g = {}, Es = () => {
|
|
593
|
-
var l, m, p;
|
|
594
|
-
const { selectedLocation: e, showDetails: t, setShowDetails: n, setMessageModalOpen: a } = H(), { t: i } = E(), r = () => {
|
|
595
|
-
n(!1);
|
|
596
|
-
}, u = () => {
|
|
597
|
-
a(!0);
|
|
598
|
-
};
|
|
599
|
-
return /* @__PURE__ */ s(ue, { show: t, onHide: r, backdrop: !1, placement: "start", className: c(g.wrapper), scroll: !0, children: /* @__PURE__ */ d(ue.Body, { className: "px-0", children: [
|
|
600
|
-
/* @__PURE__ */ d("section", { className: c(g.nameWrapper), children: [
|
|
601
|
-
/* @__PURE__ */ d("div", { className: c(g.close), onClick: r, children: [
|
|
602
|
-
/* @__PURE__ */ s("i", { className: "lpe-icons", children: "back" }),
|
|
603
|
-
" ",
|
|
604
|
-
i("general.viewAll")
|
|
605
|
-
] }),
|
|
606
|
-
/* @__PURE__ */ s("div", { className: c(g.name), children: e == null ? void 0 : e.retailer_name })
|
|
607
|
-
] }),
|
|
608
|
-
/* @__PURE__ */ d("section", { className: c(g.interactWrapper), children: [
|
|
609
|
-
/* @__PURE__ */ d("a", { href: `tel:${(l = e == null ? void 0 : e.phone_number) == null ? void 0 : l.phone_number}`, className: c(g.interactItem), children: [
|
|
610
|
-
/* @__PURE__ */ s("div", { className: c(g.interactIcon), children: /* @__PURE__ */ s("i", { className: "lpe-icons", children: "phone" }) }),
|
|
611
|
-
/* @__PURE__ */ s("div", { className: c(g.interactText), children: i("general.phone") })
|
|
612
|
-
] }),
|
|
613
|
-
/* @__PURE__ */ d("a", { href: `https://www.google.com/maps/dir/?api=1&destination=${encodeURIComponent((m = e == null ? void 0 : e.address) == null ? void 0 : m.string)}=&destination_place_id=${e == null ? void 0 : e.place_id}`, target: "new", className: c(g.interactItem), children: [
|
|
614
|
-
/* @__PURE__ */ s("div", { className: c(g.interactIcon), children: /* @__PURE__ */ s("i", { className: "lpe-icons", children: "direction" }) }),
|
|
615
|
-
/* @__PURE__ */ s("div", { className: c(g.interactText), children: i("general.directions") })
|
|
616
|
-
] }),
|
|
617
|
-
/* @__PURE__ */ d("a", { className: c(g.interactItem), onClick: u, children: [
|
|
618
|
-
/* @__PURE__ */ s("div", { className: c(g.interactIcon), children: /* @__PURE__ */ s(Wt, {}) }),
|
|
619
|
-
/* @__PURE__ */ s("div", { className: c(g.interactText), children: i("general.message") })
|
|
620
|
-
] }),
|
|
621
|
-
/* @__PURE__ */ d("a", { href: e == null ? void 0 : e.website, target: "_blank", className: c(g.interactItem), children: [
|
|
622
|
-
/* @__PURE__ */ s("div", { className: c(g.interactIcon), children: /* @__PURE__ */ s("i", { className: "lpe-icons", children: "world" }) }),
|
|
623
|
-
/* @__PURE__ */ s("div", { className: c(g.interactText), children: i("general.website") })
|
|
624
|
-
] })
|
|
625
|
-
] }),
|
|
626
|
-
/* @__PURE__ */ d("section", { className: c(g.addressWrapper), children: [
|
|
627
|
-
/* @__PURE__ */ s("div", { children: /* @__PURE__ */ s("i", { className: "lpe-icons", children: "marker" }) }),
|
|
628
|
-
/* @__PURE__ */ d("div", { className: c(g.address), children: [
|
|
629
|
-
/* @__PURE__ */ s("div", { children: e == null ? void 0 : e.address.street_line_one }),
|
|
630
|
-
/* @__PURE__ */ s("div", { children: e == null ? void 0 : e.address.street_line_two }),
|
|
631
|
-
/* @__PURE__ */ d("div", { children: [
|
|
632
|
-
e == null ? void 0 : e.address.city,
|
|
633
|
-
", ",
|
|
634
|
-
e == null ? void 0 : e.address.province,
|
|
635
|
-
" ",
|
|
636
|
-
e == null ? void 0 : e.address.postal_code
|
|
637
|
-
] }),
|
|
638
|
-
/* @__PURE__ */ s("div", { children: e == null ? void 0 : e.address.country })
|
|
639
|
-
] })
|
|
640
|
-
] }),
|
|
641
|
-
/* @__PURE__ */ s("section", { className: c(g.hoursWrapper), children: /* @__PURE__ */ s(Mt, { hours: e == null ? void 0 : e.retailer_location_hours }) }),
|
|
642
|
-
/* @__PURE__ */ d("section", { className: "container", children: [
|
|
643
|
-
/* @__PURE__ */ s("h5", { className: c(g.productTitle), children: i("store_locator.products") }),
|
|
644
|
-
/* @__PURE__ */ s(ge, { children: (p = e == null ? void 0 : e.retailer_location_products) == null ? void 0 : p.map((f, y) => /* @__PURE__ */ s(ne, { xs: 6, className: "mb-3", children: /* @__PURE__ */ d("div", { className: c(g.product), children: [
|
|
645
|
-
/* @__PURE__ */ s("img", { src: f.image_url || `https://placehold.co/400x400?text=${f.name}`, alt: f.name, className: c(g.productImage) }),
|
|
646
|
-
/* @__PURE__ */ s("div", { className: c(g.productName), children: f.name }),
|
|
647
|
-
/* @__PURE__ */ s("div", { className: c(g.productPrice), children: f.price })
|
|
648
|
-
] }) }, y)) })
|
|
649
|
-
] })
|
|
650
|
-
] }) });
|
|
651
|
-
}, Ts = "_3k9so", Hs = "-sMg9", js = "IGCsG", Ws = "Ri4DF", Rs = "AmPYE", k = {
|
|
652
|
-
title: Ts,
|
|
653
|
-
formGroup: Hs,
|
|
654
|
-
submit: js,
|
|
655
|
-
error: Ws,
|
|
656
|
-
success: Rs
|
|
657
|
-
}, Bs = () => {
|
|
658
|
-
const { id: e, messageModalOpen: t, setMessageModalOpen: n, selectedLocation: a, locale: i, searchCenter: r } = H(), { t: u } = E("default", { lng: i }), [l, m] = $(!1), [p, f] = $(!1), y = /^((\\+[1-9]{1,4}[ \\-]*)|(\\([0-9]{2,3}\\)[ \\-]*)|([0-9]{2,4})[ \\-]*)*?[0-9]{3,4}?[ \\-]*[0-9]{3,4}?$/, _ = Ae({
|
|
659
|
-
name: Q().required(u("message.validation.name")),
|
|
660
|
-
email: Q().email(u("message.validation.email")).required(u("message.validation.email")),
|
|
661
|
-
phone: Q().matches(y, "Phone number is not valid"),
|
|
662
|
-
message: Q().required(u("message.validation.message"))
|
|
663
|
-
}), o = ze({
|
|
664
|
-
initialValues: {
|
|
665
|
-
name: "",
|
|
666
|
-
email: "",
|
|
667
|
-
phone: "",
|
|
668
|
-
message: "",
|
|
669
|
-
optIn: !1
|
|
670
|
-
},
|
|
671
|
-
enableReinitialize: !0,
|
|
672
|
-
validationSchema: _,
|
|
673
|
-
onSubmit: async (I) => {
|
|
674
|
-
f(!0), tt("AIzaSyAnJmWEU1r63DiRWHkjczxzHyIEq3dhj4M");
|
|
675
|
-
const S = await Ze(r == null ? void 0 : r.lat, r == null ? void 0 : r.lng), h = et(S.results[0].address_components);
|
|
676
|
-
if (!(await fetch("https://api.colabcommerce.com/widget_api/leads", {
|
|
677
|
-
method: "POST",
|
|
678
|
-
headers: {
|
|
679
|
-
"Content-Type": "application/json"
|
|
680
|
-
},
|
|
681
|
-
body: JSON.stringify({
|
|
682
|
-
id: e,
|
|
683
|
-
lead: {
|
|
684
|
-
name: I.name,
|
|
685
|
-
emails_attributes: [{ email: I.email }],
|
|
686
|
-
phone_numbers_attributes: [{ phone_number: I.phone, country_code: "US" }],
|
|
687
|
-
message: I.message,
|
|
688
|
-
opt_in: I.optIn,
|
|
689
|
-
location_attributes: {
|
|
690
|
-
street_line_one: h == null ? void 0 : h.addressLine1,
|
|
691
|
-
street_line_two: h == null ? void 0 : h.addressLine2,
|
|
692
|
-
city: h == null ? void 0 : h.city,
|
|
693
|
-
province: h == null ? void 0 : h.province,
|
|
694
|
-
postal_code: h == null ? void 0 : h.postalCode,
|
|
695
|
-
country: h == null ? void 0 : h.country,
|
|
696
|
-
latitude: (r == null ? void 0 : r.lat) || null,
|
|
697
|
-
longitude: (r == null ? void 0 : r.lng) || null
|
|
698
|
-
},
|
|
699
|
-
assignee_id: (a == null ? void 0 : a.id) || null,
|
|
700
|
-
assignee_type: "CompanyRetailerLocation",
|
|
701
|
-
lead_activities_attributes: [{
|
|
702
|
-
type: "LeadActivity::Referral",
|
|
703
|
-
message: I.message,
|
|
704
|
-
source_type: "Company",
|
|
705
|
-
source_id: e
|
|
706
|
-
}]
|
|
707
|
-
}
|
|
708
|
-
})
|
|
709
|
-
})).ok) {
|
|
710
|
-
o.setErrors({ general: u("message.validation.general") }), f(!1);
|
|
711
|
-
return;
|
|
712
|
-
}
|
|
713
|
-
m(!0), f(!1);
|
|
714
|
-
}
|
|
715
|
-
}), j = () => {
|
|
716
|
-
n(!1), m(!1), o.resetForm();
|
|
717
|
-
}, W = typeof window < "u" ? document.querySelector(".cc") : null;
|
|
718
|
-
return /* @__PURE__ */ d(V, { container: W, show: t, centered: !0, dialogClassName: "cc", onHide: j, children: [
|
|
719
|
-
l && /* @__PURE__ */ d("div", { className: "p-5 d-flex align-items-center justify-content-center flex-column", style: { display: l ? "flex" : "none" }, children: [
|
|
720
|
-
/* @__PURE__ */ s("div", { className: "fw-bold fs-2", children: "Thank you!" }),
|
|
721
|
-
/* @__PURE__ */ s("div", { className: "fw-bold mb-3", children: "Your Palliser retailer will be in touch soon" }),
|
|
722
|
-
/* @__PURE__ */ s(oe, { variant: "dark", onClick: j, children: "Close" })
|
|
723
|
-
] }),
|
|
724
|
-
!l && /* @__PURE__ */ d(se, { children: [
|
|
725
|
-
/* @__PURE__ */ s(V.Header, { closeButton: !0, children: /* @__PURE__ */ d(V.Title, { className: c(k.title), children: [
|
|
726
|
-
u("message.title"),
|
|
727
|
-
" ",
|
|
728
|
-
a == null ? void 0 : a.retailer_name
|
|
729
|
-
] }) }),
|
|
730
|
-
/* @__PURE__ */ s(V.Body, { children: /* @__PURE__ */ d(w, { onSubmit: o.handleSubmit, children: [
|
|
731
|
-
/* @__PURE__ */ d(w.Group, { className: c(k.formGroup), children: [
|
|
732
|
-
/* @__PURE__ */ s(w.Label, { htmlFor: "name", children: u("message.name") }),
|
|
733
|
-
/* @__PURE__ */ s(w.Control, { type: "text", name: "name", isInvalid: !!o.errors.name && o.touched.name, value: o.values.name, onChange: o.handleChange }),
|
|
734
|
-
/* @__PURE__ */ s(w.Control.Feedback, { type: "invalid", style: { display: o.errors.name && o.touched.name ? "block" : "none" }, children: o.errors.name })
|
|
735
|
-
] }),
|
|
736
|
-
/* @__PURE__ */ d(w.Group, { className: c(k.formGroup), children: [
|
|
737
|
-
/* @__PURE__ */ s(w.Label, { htmlFor: "email", children: u("message.email") }),
|
|
738
|
-
/* @__PURE__ */ s(
|
|
739
|
-
w.Control,
|
|
740
|
-
{
|
|
741
|
-
type: "email",
|
|
742
|
-
name: "email",
|
|
743
|
-
isInvalid: !!o.errors.email && o.touched.email,
|
|
744
|
-
value: o.values.email,
|
|
745
|
-
onChange: o.handleChange
|
|
746
|
-
}
|
|
747
|
-
),
|
|
748
|
-
/* @__PURE__ */ s(w.Control.Feedback, { type: "invalid", style: { display: o.errors.email && o.touched.email ? "block" : "none" }, children: o.errors.email })
|
|
749
|
-
] }),
|
|
750
|
-
/* @__PURE__ */ d(w.Group, { className: c(k.formGroup), children: [
|
|
751
|
-
/* @__PURE__ */ s(w.Label, { children: u("message.phone") }),
|
|
752
|
-
/* @__PURE__ */ s(w.Control, { type: "tel", name: "phone", isInvalid: !!o.errors.phone && o.touched.phone, value: o.values.phone, onChange: o.handleChange }),
|
|
753
|
-
/* @__PURE__ */ s(w.Control.Feedback, { type: "invalid", style: { display: o.errors.phone && o.touched.phone ? "block" : "none" }, children: o.errors.phone })
|
|
754
|
-
] }),
|
|
755
|
-
/* @__PURE__ */ d(w.Group, { className: c(k.formGroup), children: [
|
|
756
|
-
/* @__PURE__ */ s(w.Label, { children: u("message.message") }),
|
|
757
|
-
/* @__PURE__ */ s(w.Control, { as: "textarea", name: "message", isInvalid: !!o.errors.message && o.touched.message, value: o.values.message, onChange: o.handleChange }),
|
|
758
|
-
/* @__PURE__ */ s(w.Control.Feedback, { type: "invalid", style: { display: o.errors.message && o.touched.message ? "block" : "none" }, children: o.errors.message })
|
|
759
|
-
] }),
|
|
760
|
-
/* @__PURE__ */ d(oe, { className: c(k.submit), variant: "dark", type: "submit", disabled: o.isSubmitting || l, children: [
|
|
761
|
-
!l && /* @__PURE__ */ s(se, { children: o.isSubmitting ? u("message.sending") : u("message.send") }),
|
|
762
|
-
l && u("message.sent"),
|
|
763
|
-
o.isSubmitting && /* @__PURE__ */ s("img", { src: "https://images.sofasandsectionals.com/cc/pal-loader.svg", alt: "Loading", width: 20, height: 20 })
|
|
764
|
-
] }),
|
|
765
|
-
/* @__PURE__ */ s(w.Text, { className: c(k.success), children: l && u("message.success") }),
|
|
766
|
-
/* @__PURE__ */ s(w.Text, { className: c(k.error), children: o.errors.general })
|
|
767
|
-
] }) })
|
|
768
|
-
] })
|
|
769
|
-
] });
|
|
770
|
-
}, Ds = {}, Fs = ({ id: e, locale: t, baseUrl: n = "/retailers" }) => {
|
|
771
|
-
var m;
|
|
772
|
-
const { t: a, i18n: i } = E("default"), { settings: r, setSelectedLocationId: u } = H();
|
|
773
|
-
D(() => {
|
|
774
|
-
i.changeLanguage(t);
|
|
775
|
-
}, [t]);
|
|
776
|
-
const l = (p) => {
|
|
777
|
-
u(p.id);
|
|
778
|
-
};
|
|
779
|
-
return /* @__PURE__ */ d("div", { className: "cc", children: [
|
|
780
|
-
/* @__PURE__ */ s("style", { dangerouslySetInnerHTML: { __html: ((m = r == null ? void 0 : r.entity) == null ? void 0 : m.store_locator_css) || "" } }),
|
|
781
|
-
/* @__PURE__ */ d(ge, { children: [
|
|
782
|
-
/* @__PURE__ */ s(Cs, {}),
|
|
783
|
-
/* @__PURE__ */ s(ne, { xs: { order: 0 }, lg: { order: 1 }, className: c(Ds.noMap, "position-relative"), children: /* @__PURE__ */ d("div", { className: "position-relative", children: [
|
|
784
|
-
/* @__PURE__ */ s(at, {}),
|
|
785
|
-
/* @__PURE__ */ s(nt, { onMarkerClick: l })
|
|
786
|
-
] }) })
|
|
787
|
-
] }),
|
|
788
|
-
/* @__PURE__ */ s(Es, {}),
|
|
789
|
-
/* @__PURE__ */ s(Bs, {})
|
|
790
|
-
] });
|
|
791
|
-
}, qs = ({ id: e, locale: t }) => /* @__PURE__ */ s(He, { children: /* @__PURE__ */ s(Le, { i18n: Ge, children: /* @__PURE__ */ d(Ue, { apiKey: "AIzaSyAnJmWEU1r63DiRWHkjczxzHyIEq3dhj4M", libraries: ["places"], children: [
|
|
792
|
-
/* @__PURE__ */ s("script", { src: "https://maps.googleapis.com/maps/api/js?key=AIzaSyAnJmWEU1r63DiRWHkjczxzHyIEq3dhj4M&libraries=places" }),
|
|
793
|
-
/* @__PURE__ */ s(st, { id: e, lngLocale: t, autolocate: !0, children: /* @__PURE__ */ s(Fs, { id: e, locale: t }) })
|
|
794
|
-
] }) }) });
|
|
795
|
-
export {
|
|
796
|
-
qs as default
|
|
797
|
-
};
|