@tracktor/shared-module 2.34.1 → 2.36.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.
|
@@ -4,6 +4,10 @@ interface InitializeDaysJSConfigProps {
|
|
|
4
4
|
* Dayjs library
|
|
5
5
|
*/
|
|
6
6
|
dayjs?: NonNullable<InjectDependenciesContextProps["libraries"]>["dayjs"];
|
|
7
|
+
/**
|
|
8
|
+
* Dayjs localizedFormat plugin (required for localized date formats like "ll")
|
|
9
|
+
*/
|
|
10
|
+
localizedFormat: any;
|
|
7
11
|
/**
|
|
8
12
|
* Dayjs plugin
|
|
9
13
|
*/
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import { InjectDependenciesContextProps } from './InjectDependenciesProvider';
|
|
3
|
-
interface
|
|
3
|
+
interface QueryProviderProps extends PropsWithChildren {
|
|
4
4
|
/**
|
|
5
5
|
* QueryClientProvider from react-query
|
|
6
6
|
*/
|
|
@@ -22,11 +22,5 @@ interface QueryClientProviderWithConfigProps extends PropsWithChildren {
|
|
|
22
22
|
[key: string]: any;
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
* @param children
|
|
28
|
-
* @param options
|
|
29
|
-
* @constructor
|
|
30
|
-
*/
|
|
31
|
-
declare const QueryClientProviderWithConfig: ({ children, defaultQueriesOptions, defaultMutationsOptions, ...props }: QueryClientProviderWithConfigProps) => import("react/jsx-runtime").JSX.Element;
|
|
32
|
-
export default QueryClientProviderWithConfig;
|
|
25
|
+
declare const QueryProvider: ({ children, defaultQueriesOptions, defaultMutationsOptions, ...props }: QueryProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export default QueryProvider;
|
package/dist/main.d.ts
CHANGED
|
@@ -25,8 +25,7 @@ export * from './context/ChatProvider';
|
|
|
25
25
|
export { default as ChatProvider } from './context/ChatProvider';
|
|
26
26
|
export * from './context/InjectDependenciesProvider';
|
|
27
27
|
export { default as InjectDependenciesProvider } from './context/InjectDependenciesProvider';
|
|
28
|
-
export
|
|
29
|
-
export { default as QueryClientProviderWithConfig } from './context/QueryClientProviderWithConfig';
|
|
28
|
+
export { default as QueryProvider } from './context/QueryClientProviderWithConfig';
|
|
30
29
|
export * from './hooks/useAdapter';
|
|
31
30
|
export { default as useAdapter } from './hooks/useAdapter';
|
|
32
31
|
export * from './hooks/useAuth';
|
package/dist/main.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import le from "axios";
|
|
2
|
-
import _e, { useMemo as ce, createContext as ve, useContext as O, useEffect as P, useState as L, Suspense as be, useRef as
|
|
2
|
+
import _e, { useMemo as ce, createContext as ve, useContext as O, useEffect as P, useState as L, Suspense as be, useRef as q, useCallback as C } from "react";
|
|
3
3
|
const Xe = (e, t) => {
|
|
4
4
|
const n = le.CancelToken.source(), o = le({
|
|
5
5
|
...e,
|
|
@@ -137,15 +137,15 @@ function Te() {
|
|
|
137
137
|
}
|
|
138
138
|
var M = {};
|
|
139
139
|
var fe;
|
|
140
|
-
function
|
|
140
|
+
function Ae() {
|
|
141
141
|
return fe || (fe = 1, process.env.NODE_ENV !== "production" && (function() {
|
|
142
142
|
function e(r) {
|
|
143
143
|
if (r == null) return null;
|
|
144
144
|
if (typeof r == "function")
|
|
145
|
-
return r.$$typeof ===
|
|
145
|
+
return r.$$typeof === te ? null : r.displayName || r.name || null;
|
|
146
146
|
if (typeof r == "string") return r;
|
|
147
147
|
switch (r) {
|
|
148
|
-
case
|
|
148
|
+
case A:
|
|
149
149
|
return "Fragment";
|
|
150
150
|
case d:
|
|
151
151
|
return "Profiler";
|
|
@@ -153,9 +153,9 @@ function Ce() {
|
|
|
153
153
|
return "StrictMode";
|
|
154
154
|
case I:
|
|
155
155
|
return "Suspense";
|
|
156
|
-
case
|
|
156
|
+
case X:
|
|
157
157
|
return "SuspenseList";
|
|
158
|
-
case
|
|
158
|
+
case ee:
|
|
159
159
|
return "Activity";
|
|
160
160
|
}
|
|
161
161
|
if (typeof r == "object")
|
|
@@ -171,7 +171,7 @@ function Ce() {
|
|
|
171
171
|
case S:
|
|
172
172
|
var f = r.render;
|
|
173
173
|
return r = r.displayName, r || (r = f.displayName || f.name || "", r = r !== "" ? "ForwardRef(" + r + ")" : "ForwardRef"), r;
|
|
174
|
-
case
|
|
174
|
+
case Z:
|
|
175
175
|
return f = r.displayName || null, f !== null ? f : e(r.type) || "Memo";
|
|
176
176
|
case F:
|
|
177
177
|
f = r._payload, r = r._init;
|
|
@@ -203,7 +203,7 @@ function Ce() {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
function o(r) {
|
|
206
|
-
if (r ===
|
|
206
|
+
if (r === A) return "<>";
|
|
207
207
|
if (typeof r == "object" && r !== null && r.$$typeof === F)
|
|
208
208
|
return "<...>";
|
|
209
209
|
try {
|
|
@@ -245,7 +245,7 @@ function Ce() {
|
|
|
245
245
|
"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
|
|
246
246
|
)), r = this.props.ref, r !== void 0 ? r : null;
|
|
247
247
|
}
|
|
248
|
-
function p(r, f, _, b, H,
|
|
248
|
+
function p(r, f, _, b, H, ne) {
|
|
249
249
|
var R = _.ref;
|
|
250
250
|
return r = {
|
|
251
251
|
$$typeof: j,
|
|
@@ -275,14 +275,14 @@ function Ce() {
|
|
|
275
275
|
configurable: !1,
|
|
276
276
|
enumerable: !1,
|
|
277
277
|
writable: !0,
|
|
278
|
-
value:
|
|
278
|
+
value: ne
|
|
279
279
|
}), Object.freeze && (Object.freeze(r.props), Object.freeze(r)), r;
|
|
280
280
|
}
|
|
281
|
-
function i(r, f, _, b, H,
|
|
281
|
+
function i(r, f, _, b, H, ne) {
|
|
282
282
|
var R = f.children;
|
|
283
283
|
if (R !== void 0)
|
|
284
284
|
if (b)
|
|
285
|
-
if (
|
|
285
|
+
if (re(R)) {
|
|
286
286
|
for (b = 0; b < R.length; b++)
|
|
287
287
|
h(R[b]);
|
|
288
288
|
Object.freeze && Object.freeze(R);
|
|
@@ -311,8 +311,8 @@ React keys must be passed directly to JSX without using spread:
|
|
|
311
311
|
}
|
|
312
312
|
if (R = null, _ !== void 0 && (n(_), R = "" + _), c(f) && (n(f.key), R = "" + f.key), "key" in f) {
|
|
313
313
|
_ = {};
|
|
314
|
-
for (var
|
|
315
|
-
|
|
314
|
+
for (var oe in f)
|
|
315
|
+
oe !== "key" && (_[oe] = f[oe]);
|
|
316
316
|
} else _ = f;
|
|
317
317
|
return R && l(
|
|
318
318
|
_,
|
|
@@ -323,7 +323,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
323
323
|
_,
|
|
324
324
|
s(),
|
|
325
325
|
H,
|
|
326
|
-
|
|
326
|
+
ne
|
|
327
327
|
);
|
|
328
328
|
}
|
|
329
329
|
function h(r) {
|
|
@@ -332,7 +332,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
332
332
|
function g(r) {
|
|
333
333
|
return typeof r == "object" && r !== null && r.$$typeof === j;
|
|
334
334
|
}
|
|
335
|
-
var v = _e, j = /* @__PURE__ */ Symbol.for("react.transitional.element"), T = /* @__PURE__ */ Symbol.for("react.portal"),
|
|
335
|
+
var v = _e, j = /* @__PURE__ */ Symbol.for("react.transitional.element"), T = /* @__PURE__ */ Symbol.for("react.portal"), A = /* @__PURE__ */ Symbol.for("react.fragment"), m = /* @__PURE__ */ Symbol.for("react.strict_mode"), d = /* @__PURE__ */ Symbol.for("react.profiler"), y = /* @__PURE__ */ Symbol.for("react.consumer"), E = /* @__PURE__ */ Symbol.for("react.context"), S = /* @__PURE__ */ Symbol.for("react.forward_ref"), I = /* @__PURE__ */ Symbol.for("react.suspense"), X = /* @__PURE__ */ Symbol.for("react.suspense_list"), Z = /* @__PURE__ */ Symbol.for("react.memo"), F = /* @__PURE__ */ Symbol.for("react.lazy"), ee = /* @__PURE__ */ Symbol.for("react.activity"), te = /* @__PURE__ */ Symbol.for("react.client.reference"), D = v.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, V = Object.prototype.hasOwnProperty, re = Array.isArray, Y = console.createTask ? console.createTask : function() {
|
|
336
336
|
return null;
|
|
337
337
|
};
|
|
338
338
|
v = {
|
|
@@ -344,7 +344,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
344
344
|
v,
|
|
345
345
|
a
|
|
346
346
|
)(), J = Y(o(a)), G = {};
|
|
347
|
-
M.Fragment =
|
|
347
|
+
M.Fragment = A, M.jsx = function(r, f, _) {
|
|
348
348
|
var b = 1e4 > D.recentlyCreatedOwnerStacks++;
|
|
349
349
|
return i(
|
|
350
350
|
r,
|
|
@@ -368,10 +368,10 @@ React keys must be passed directly to JSX without using spread:
|
|
|
368
368
|
})()), M;
|
|
369
369
|
}
|
|
370
370
|
var pe;
|
|
371
|
-
function
|
|
372
|
-
return pe || (pe = 1, process.env.NODE_ENV === "production" ? B.exports = Te() : B.exports =
|
|
371
|
+
function Ce() {
|
|
372
|
+
return pe || (pe = 1, process.env.NODE_ENV === "production" ? B.exports = Te() : B.exports = Ae()), B.exports;
|
|
373
373
|
}
|
|
374
|
-
var N =
|
|
374
|
+
var N = Ce();
|
|
375
375
|
const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
376
376
|
const n = ce(
|
|
377
377
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
@@ -438,11 +438,11 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
438
438
|
return P(() => {
|
|
439
439
|
(async () => {
|
|
440
440
|
const c = e || navigator.language?.slice(0, 2) || "en";
|
|
441
|
-
s && s.forEach((l) => {
|
|
441
|
+
o.extend(t.localizedFormat), s && s.forEach((l) => {
|
|
442
442
|
l && o.extend(l);
|
|
443
443
|
}), await import("dayjs/locale/en"), await import("dayjs/locale/fr"), o.locale(c);
|
|
444
444
|
})().then();
|
|
445
|
-
}, [o, s, e]), null;
|
|
445
|
+
}, [o, s, e, t.localizedFormat]), null;
|
|
446
446
|
}, ie = "hubspot-messages-iframe-container", z = "hs-show", ot = ({ hubId: e }) => (P(() => {
|
|
447
447
|
if (!e)
|
|
448
448
|
return;
|
|
@@ -499,7 +499,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
499
499
|
throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props.");
|
|
500
500
|
if (g.isInitialized())
|
|
501
501
|
return null;
|
|
502
|
-
const { createRoutesFromChildren: j, matchRoutes: T, useLocation:
|
|
502
|
+
const { createRoutesFromChildren: j, matchRoutes: T, useLocation: A, useNavigationType: m } = v;
|
|
503
503
|
return (l || process.env.NODE_ENV === "prod" || process.env.NODE_ENV === "production") && g.init({
|
|
504
504
|
debug: l,
|
|
505
505
|
dsn: e,
|
|
@@ -518,7 +518,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
518
518
|
createRoutesFromChildren: j,
|
|
519
519
|
matchRoutes: T,
|
|
520
520
|
useEffect: P,
|
|
521
|
-
useLocation:
|
|
521
|
+
useLocation: A,
|
|
522
522
|
useNavigationType: m
|
|
523
523
|
}),
|
|
524
524
|
...t || []
|
|
@@ -545,7 +545,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
545
545
|
const { libraries: a, localStorageKeys: c } = O(x), l = s?.reactRouter || a?.reactRouter, u = s?.axios || a?.axios, p = s?.localStorageKey || c?.user || ke;
|
|
546
546
|
if (!l)
|
|
547
547
|
throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props.");
|
|
548
|
-
const [i, h] = L(null), { useLocation: g, Navigate: v, Outlet: j } = l, T = g(),
|
|
548
|
+
const [i, h] = L(null), { useLocation: g, Navigate: v, Outlet: j } = l, T = g(), A = typeof t == "function" ? t() : !!t, m = typeof A == "boolean" ? A : A?.isLogged;
|
|
549
549
|
return P(() => {
|
|
550
550
|
he.has(u) || (he.set(u, !0), u.interceptors.response.use(
|
|
551
551
|
(d) => d,
|
|
@@ -634,11 +634,11 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
634
634
|
enabled: a = !0,
|
|
635
635
|
context: c = "client"
|
|
636
636
|
}) => {
|
|
637
|
-
const [l, u] = L(!1), [p, i] = L(!1), [h, g] = L(0), [v, j] = L(a), T = a && v, { apiURL:
|
|
637
|
+
const [l, u] = L(!1), [p, i] = L(!1), [h, g] = L(0), [v, j] = L(a), T = a && v, { apiURL: A, localStorageKeys: m } = O(x), d = m?.user || $e, y = q(null), E = q(/* @__PURE__ */ new Set());
|
|
638
638
|
P(() => {
|
|
639
639
|
if (!T)
|
|
640
640
|
return;
|
|
641
|
-
const w = o ?? Fe[c], k = n || (
|
|
641
|
+
const w = o ?? Fe[c], k = n || (A ? De(A, w) : null);
|
|
642
642
|
if (!k)
|
|
643
643
|
return;
|
|
644
644
|
const Q = () => t ?? Ye(d), J = (r) => {
|
|
@@ -660,49 +660,44 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
660
660
|
return () => {
|
|
661
661
|
clearTimeout(G), y.current?.disconnect(), y.current = null;
|
|
662
662
|
};
|
|
663
|
-
}, [T, n, o, c, t, s,
|
|
664
|
-
const S =
|
|
663
|
+
}, [T, n, o, c, t, s, A, d]);
|
|
664
|
+
const S = C((w) => {
|
|
665
665
|
y.current?.joinThread(w);
|
|
666
|
-
}, []), I =
|
|
666
|
+
}, []), I = C((w) => {
|
|
667
667
|
y.current?.leaveThread(w);
|
|
668
|
-
}, []),
|
|
668
|
+
}, []), X = C((w, k) => {
|
|
669
669
|
y.current?.sendMessage(w, k);
|
|
670
|
-
}, []),
|
|
670
|
+
}, []), Z = C((w) => {
|
|
671
671
|
y.current?.markRead(w);
|
|
672
|
-
}, []), F =
|
|
672
|
+
}, []), F = C((w, k) => {
|
|
673
673
|
y.current?.listThreads(w, k);
|
|
674
|
-
}, []),
|
|
674
|
+
}, []), ee = C((w = 1) => {
|
|
675
675
|
g((k) => k + w);
|
|
676
|
-
}, []),
|
|
676
|
+
}, []), te = C((w = 1) => {
|
|
677
677
|
g((k) => Math.max(0, k - w));
|
|
678
|
-
}, []), D =
|
|
678
|
+
}, []), D = C(() => {
|
|
679
679
|
y.current?.disconnect(), y.current = null;
|
|
680
|
-
}, []), V =
|
|
680
|
+
}, []), V = C((w) => {
|
|
681
681
|
j(w);
|
|
682
|
-
}, []),
|
|
682
|
+
}, []), re = C((w) => (E.current.add(w), () => {
|
|
683
683
|
E.current.delete(w);
|
|
684
684
|
}), []), Y = {
|
|
685
|
-
decrementUnreadCount:
|
|
685
|
+
decrementUnreadCount: te,
|
|
686
686
|
disconnect: D,
|
|
687
|
-
incrementUnreadCount:
|
|
687
|
+
incrementUnreadCount: ee,
|
|
688
688
|
isConnected: l,
|
|
689
689
|
isReady: p,
|
|
690
690
|
joinThread: S,
|
|
691
691
|
leaveThread: I,
|
|
692
692
|
listThreads: F,
|
|
693
|
-
markRead:
|
|
694
|
-
sendMessage:
|
|
693
|
+
markRead: Z,
|
|
694
|
+
sendMessage: X,
|
|
695
695
|
setEnabled: V,
|
|
696
|
-
subscribe:
|
|
696
|
+
subscribe: re,
|
|
697
697
|
unreadCount: h
|
|
698
698
|
};
|
|
699
699
|
return /* @__PURE__ */ N.jsx(we.Provider, { value: Y, children: e });
|
|
700
|
-
}, Ue = (e) => e && typeof e == "function", Me = (e) => e && typeof e == "function", dt = ({
|
|
701
|
-
children: e,
|
|
702
|
-
defaultQueriesOptions: t,
|
|
703
|
-
defaultMutationsOptions: n,
|
|
704
|
-
...o
|
|
705
|
-
}) => {
|
|
700
|
+
}, Ue = (e) => e && typeof e == "function", Me = (e) => e && typeof e == "function", dt = ({ children: e, defaultQueriesOptions: t, defaultMutationsOptions: n, ...o }) => {
|
|
706
701
|
const { libraries: s } = O(x), a = o?.QueryClient || s?.reactQuery?.QueryClient, c = o?.QueryClientProvider || s?.reactQuery?.QueryClientProvider;
|
|
707
702
|
if (!a)
|
|
708
703
|
throw new Error("QueryClient is not provided. You can provide it with InjectDependenciesProvider or directly in props.");
|
|
@@ -712,7 +707,8 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
712
707
|
throw new Error("Provided QueryClientProvider dependencies are not valid.");
|
|
713
708
|
if (!Me(a))
|
|
714
709
|
throw new Error("Provided QueryClient dependencies are not valid.");
|
|
715
|
-
const l =
|
|
710
|
+
const l = q(null);
|
|
711
|
+
return l.current || (l.current = new a({
|
|
716
712
|
defaultOptions: {
|
|
717
713
|
mutations: {
|
|
718
714
|
...n
|
|
@@ -724,8 +720,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
724
720
|
...t
|
|
725
721
|
}
|
|
726
722
|
}
|
|
727
|
-
});
|
|
728
|
-
return /* @__PURE__ */ N.jsx(c, { client: l, children: e });
|
|
723
|
+
})), /* @__PURE__ */ N.jsx(c, { client: l.current, children: e });
|
|
729
724
|
}, ze = ({ library: e, date: t, format: n = "ll" }) => e(t).format(n), We = (e, t) => {
|
|
730
725
|
const { fractionDigits: n = 0, metric: o = "km", spacingBetween: s = !0 } = t || {}, a = Number(e), c = s ? " " : "";
|
|
731
726
|
return Number.isNaN(a) ? `0${c}${o}` : `${a.toFixed(n)}${c}${o}`;
|
|
@@ -764,7 +759,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
764
759
|
const { libraries: t, localStorageKeys: n } = O(x), o = e?.axios || t?.axios, s = e?.localStorageKey || n?.user || "user";
|
|
765
760
|
if (!o)
|
|
766
761
|
throw new Error("Axios is not provided. You can provide it with InjectDependenciesProvider or directly in params of useAuth.");
|
|
767
|
-
const a =
|
|
762
|
+
const a = C(
|
|
768
763
|
({ tokenType: l, accessToken: u }) => {
|
|
769
764
|
o.defaults.headers.common.Authorization = `${l} ${u}`;
|
|
770
765
|
},
|
|
@@ -795,7 +790,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
795
790
|
const t = O(we);
|
|
796
791
|
if (!t)
|
|
797
792
|
throw new Error("useChat must be used within ChatProvider");
|
|
798
|
-
const { subscribe: n, setEnabled: o, ...s } = t, a =
|
|
793
|
+
const { subscribe: n, setEnabled: o, ...s } = t, a = q(e);
|
|
799
794
|
return a.current = e, P(() => {
|
|
800
795
|
e?.enabled !== void 0 && o(e.enabled);
|
|
801
796
|
}, [e?.enabled, o]), P(() => n((c) => {
|
|
@@ -809,7 +804,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
809
804
|
onLeftThread: v,
|
|
810
805
|
onMarkedRead: j,
|
|
811
806
|
onThreadArchived: T,
|
|
812
|
-
onThreadsList:
|
|
807
|
+
onThreadsList: A
|
|
813
808
|
} = a.current ?? {};
|
|
814
809
|
switch (c.type) {
|
|
815
810
|
case "ready":
|
|
@@ -840,7 +835,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
840
835
|
T?.(c);
|
|
841
836
|
break;
|
|
842
837
|
case "threads_list":
|
|
843
|
-
|
|
838
|
+
A?.(c);
|
|
844
839
|
break;
|
|
845
840
|
}
|
|
846
841
|
}), [n]), s;
|
|
@@ -962,7 +957,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
962
957
|
ye()?.classList.remove(z);
|
|
963
958
|
});
|
|
964
959
|
}, [e]);
|
|
965
|
-
const n =
|
|
960
|
+
const n = C(() => {
|
|
966
961
|
const o = window.HubSpotConversations, s = ye();
|
|
967
962
|
o && s && (s.classList.contains(z) ? (o.widget.close(), s.classList.remove(z)) : (s.classList.add(z), o.widget.open()));
|
|
968
963
|
}, []);
|
|
@@ -975,7 +970,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
975
970
|
isLoading: s,
|
|
976
971
|
enabled: a = !0
|
|
977
972
|
}) => {
|
|
978
|
-
const c =
|
|
973
|
+
const c = C(
|
|
979
974
|
async (u) => {
|
|
980
975
|
n || !a || await t({ pageParam: u?.pageParam || u.visibleRowsCount });
|
|
981
976
|
},
|
|
@@ -991,7 +986,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
991
986
|
rows: l
|
|
992
987
|
};
|
|
993
988
|
}, wt = (e) => {
|
|
994
|
-
const { libraries: t } = O(x), n = e?.i18 || t?.i18, o = e?.i18?.translateFunction || t?.i18?.translateFunction, s = n?.i18next?.t || o || ((p) => p), { unknownErrorTranslationKey: a = "error.unknownError" } = e || {}, c = s(a), l =
|
|
989
|
+
const { libraries: t } = O(x), n = e?.i18 || t?.i18, o = e?.i18?.translateFunction || t?.i18?.translateFunction, s = n?.i18next?.t || o || ((p) => p), { unknownErrorTranslationKey: a = "error.unknownError" } = e || {}, c = s(a), l = C(
|
|
995
990
|
(p) => {
|
|
996
991
|
if (p && typeof p == "object" && "response" in p) {
|
|
997
992
|
const { response: i } = p || {};
|
|
@@ -1014,7 +1009,7 @@ const Ze = ({ IMaskMixin: e, ...t }) => {
|
|
|
1014
1009
|
},
|
|
1015
1010
|
[c]
|
|
1016
1011
|
);
|
|
1017
|
-
return { getErrorCode:
|
|
1012
|
+
return { getErrorCode: C((p) => {
|
|
1018
1013
|
const { response: i } = p || {};
|
|
1019
1014
|
return i?.error_code ? String(i?.error_code) : i?.data?.error_code ? String(i?.data?.error_code) : i?.error_code ? String(i?.error_code) : i?.data?.error_code ? String(i.data.error_code) : "unknown_error_code";
|
|
1020
1015
|
}, []), printError: l };
|
|
@@ -1033,7 +1028,7 @@ export {
|
|
|
1033
1028
|
et as InjectDependenciesProvider,
|
|
1034
1029
|
Ze as MaskTextField,
|
|
1035
1030
|
it as PreloadErrorHandler,
|
|
1036
|
-
dt as
|
|
1031
|
+
dt as QueryProvider,
|
|
1037
1032
|
ct as RequireAuth,
|
|
1038
1033
|
Xe as axiosCustomInstance,
|
|
1039
1034
|
ze as dateAdapter,
|
package/dist/main.umd.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
(function(g,L){typeof exports=="object"&&typeof module<"u"?L(exports,require("axios"),require("react")):typeof define=="function"&&define.amd?define(["exports","axios","react"],L):(g=typeof globalThis<"u"?globalThis:g||self,L(g["@tracktor/shared-module"]={},g.axios,g.React))})(this,(function(g,L,l){"use strict";const Ee=(e,t)=>{const r=L.CancelToken.source(),o=L({...e,...t,cancelToken:r.token}).then(({data:s})=>s);return o.cancel=()=>{r.cancel("Query was cancelled")},o},X=e=>Array.isArray(e)?e.map(X):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,r])=>[t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),X(r)])):e,Z=e=>Array.isArray(e)?e.map(Z):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,r])=>[t.replace(/[A-Z]/g,o=>`_${o.toLowerCase()}`),Z(r)])):e;class ie{url;getToken;onEvent;onConnectionChange;shouldReconnect;maxReconnectAttempts;reconnectBaseDelay;ws=null;reconnectAttempt=0;reconnectTimer=null;intentionalClose=!1;joinedThreads=new Set;pendingMessages=[];_connected=!1;_ready=!1;constructor(t){this.url=t.url,this.getToken=t.getToken,this.onEvent=t.onEvent,this.onConnectionChange=t.onConnectionChange,this.shouldReconnect=t.reconnect??!0,this.maxReconnectAttempts=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,this.reconnectBaseDelay=t.reconnectBaseDelay??1e3}get connected(){return this._connected}get ready(){return this._ready}connect(){const t=this.getToken();if(!t)return;this.intentionalClose=!1;const r=this.url.includes("?")?"&":"?",o=`${this.url}${r}token=${t}`;this.ws=new WebSocket(o),this.ws.onopen=()=>{this._connected=!0,this.reconnectAttempt=0,this.onConnectionChange?.(!0),this.rejoinThreads(),this.flushPendingMessages()},this.ws.onmessage=s=>{try{const a=JSON.parse(s.data),c=X(a);c.type==="ready"&&(this._ready=!0),this.onEvent?.(c)}catch{}},this.ws.onclose=()=>{this._connected=!1,this._ready=!1,this.onConnectionChange?.(!1),!this.intentionalClose&&this.shouldReconnect&&this.reconnectAttempt<this.maxReconnectAttempts&&this.scheduleReconnect()},this.ws.onerror=()=>{}}disconnect(){this.intentionalClose=!0,this.pendingMessages=[],this.clearReconnectTimer(),this.ws&&(this.ws.close(),this.ws=null)}joinThread(t){this.joinedThreads.add(t),this.send({threadId:t,type:"join_thread"})}leaveThread(t){this.joinedThreads.delete(t),this.send({threadId:t,type:"leave_thread"})}sendMessage(t,r){if(r.length>1e3)throw new Error("Message body exceeds maximum length of 1000 characters");this.send({body:r,threadId:t,type:"send_message"})}markRead(t){this.send({threadId:t,type:"mark_read"})}listThreads(t,r){this.send({limit:t,offset:r,type:"list_threads"})}send(t){if(!this.ws||this.ws.readyState!==WebSocket.OPEN){this.pendingMessages.push(t);return}this.ws.send(JSON.stringify(Z(t)))}flushPendingMessages(){const t=[...this.pendingMessages];this.pendingMessages=[];for(const r of t)this.send(r)}rejoinThreads(){for(const t of this.joinedThreads)this.send({threadId:t,type:"join_thread"})}scheduleReconnect(){this.clearReconnectTimer();const t=Math.min(this.reconnectBaseDelay*2**this.reconnectAttempt,3e4);this.reconnectAttempt++,this.reconnectTimer=setTimeout(()=>{this.connect()},t)}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}}var G={exports:{}},
|
|
1
|
+
(function(g,L){typeof exports=="object"&&typeof module<"u"?L(exports,require("axios"),require("react")):typeof define=="function"&&define.amd?define(["exports","axios","react"],L):(g=typeof globalThis<"u"?globalThis:g||self,L(g["@tracktor/shared-module"]={},g.axios,g.React))})(this,(function(g,L,l){"use strict";const Ee=(e,t)=>{const r=L.CancelToken.source(),o=L({...e,...t,cancelToken:r.token}).then(({data:s})=>s);return o.cancel=()=>{r.cancel("Query was cancelled")},o},X=e=>Array.isArray(e)?e.map(X):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,r])=>[t.replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),X(r)])):e,Z=e=>Array.isArray(e)?e.map(Z):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([t,r])=>[t.replace(/[A-Z]/g,o=>`_${o.toLowerCase()}`),Z(r)])):e;class ie{url;getToken;onEvent;onConnectionChange;shouldReconnect;maxReconnectAttempts;reconnectBaseDelay;ws=null;reconnectAttempt=0;reconnectTimer=null;intentionalClose=!1;joinedThreads=new Set;pendingMessages=[];_connected=!1;_ready=!1;constructor(t){this.url=t.url,this.getToken=t.getToken,this.onEvent=t.onEvent,this.onConnectionChange=t.onConnectionChange,this.shouldReconnect=t.reconnect??!0,this.maxReconnectAttempts=t.maxReconnectAttempts??Number.POSITIVE_INFINITY,this.reconnectBaseDelay=t.reconnectBaseDelay??1e3}get connected(){return this._connected}get ready(){return this._ready}connect(){const t=this.getToken();if(!t)return;this.intentionalClose=!1;const r=this.url.includes("?")?"&":"?",o=`${this.url}${r}token=${t}`;this.ws=new WebSocket(o),this.ws.onopen=()=>{this._connected=!0,this.reconnectAttempt=0,this.onConnectionChange?.(!0),this.rejoinThreads(),this.flushPendingMessages()},this.ws.onmessage=s=>{try{const a=JSON.parse(s.data),c=X(a);c.type==="ready"&&(this._ready=!0),this.onEvent?.(c)}catch{}},this.ws.onclose=()=>{this._connected=!1,this._ready=!1,this.onConnectionChange?.(!1),!this.intentionalClose&&this.shouldReconnect&&this.reconnectAttempt<this.maxReconnectAttempts&&this.scheduleReconnect()},this.ws.onerror=()=>{}}disconnect(){this.intentionalClose=!0,this.pendingMessages=[],this.clearReconnectTimer(),this.ws&&(this.ws.close(),this.ws=null)}joinThread(t){this.joinedThreads.add(t),this.send({threadId:t,type:"join_thread"})}leaveThread(t){this.joinedThreads.delete(t),this.send({threadId:t,type:"leave_thread"})}sendMessage(t,r){if(r.length>1e3)throw new Error("Message body exceeds maximum length of 1000 characters");this.send({body:r,threadId:t,type:"send_message"})}markRead(t){this.send({threadId:t,type:"mark_read"})}listThreads(t,r){this.send({limit:t,offset:r,type:"list_threads"})}send(t){if(!this.ws||this.ws.readyState!==WebSocket.OPEN){this.pendingMessages.push(t);return}this.ws.send(JSON.stringify(Z(t)))}flushPendingMessages(){const t=[...this.pendingMessages];this.pendingMessages=[];for(const r of t)this.send(r)}rejoinThreads(){for(const t of this.joinedThreads)this.send({threadId:t,type:"join_thread"})}scheduleReconnect(){this.clearReconnectTimer();const t=Math.min(this.reconnectBaseDelay*2**this.reconnectAttempt,3e4);this.reconnectAttempt++,this.reconnectTimer=setTimeout(()=>{this.connect()},t)}clearReconnectTimer(){this.reconnectTimer!==null&&(clearTimeout(this.reconnectTimer),this.reconnectTimer=null)}}var G={exports:{}},F={};var ce;function ve(){if(ce)return F;ce=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function r(o,s,a){var c=null;if(a!==void 0&&(c=""+a),s.key!==void 0&&(c=""+s.key),"key"in s){a={};for(var u in s)u!=="key"&&(a[u]=s[u])}else a=s;return s=a.ref,{$$typeof:e,type:o,key:c,ref:s!==void 0?s:null,props:a}}return F.Fragment=t,F.jsx=r,F.jsxs=r,F}var D={};var le;function we(){return le||(le=1,process.env.NODE_ENV!=="production"&&(function(){function e(n){if(n==null)return null;if(typeof n=="function")return n.$$typeof===re?null:n.displayName||n.name||null;if(typeof n=="string")return n;switch(n){case k:return"Fragment";case f:return"Profiler";case E:return"StrictMode";case N:return"Suspense";case ee:return"SuspenseList";case ne:return"Activity"}if(typeof n=="object")switch(typeof n.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),n.$$typeof){case A:return"Portal";case b:return n.displayName||"Context";case v:return(n._context.displayName||"Context")+".Consumer";case T:var p=n.render;return n=n.displayName,n||(n=p.displayName||p.name||"",n=n!==""?"ForwardRef("+n+")":"ForwardRef"),n;case te:return p=n.displayName||null,p!==null?p:e(n.type)||"Memo";case z:p=n._payload,n=n._init;try{return e(n(p))}catch{}}return null}function t(n){return""+n}function r(n){try{t(n);var p=!1}catch{p=!0}if(p){p=console;var _=p.error,S=typeof Symbol=="function"&&Symbol.toStringTag&&n[Symbol.toStringTag]||n.constructor.name||"Object";return _.call(p,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",S),t(n)}}function o(n){if(n===k)return"<>";if(typeof n=="object"&&n!==null&&n.$$typeof===z)return"<...>";try{var p=e(n);return p?"<"+p+">":"<...>"}catch{return"<...>"}}function s(){var n=U.A;return n===null?null:n.getOwner()}function a(){return Error("react-stack-top-frame")}function c(n){if(H.call(n,"key")){var p=Object.getOwnPropertyDescriptor(n,"key").get;if(p&&p.isReactWarning)return!1}return n.key!==void 0}function u(n,p){function _(){C||(C=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",p))}_.isReactWarning=!0,Object.defineProperty(n,"key",{get:_,configurable:!0})}function d(){var n=e(this.type);return O[n]||(O[n]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),n=this.props.ref,n!==void 0?n:null}function h(n,p,_,S,K,se){var R=_.ref;return n={$$typeof:P,type:n,key:p,props:_,_owner:S},(R!==void 0?R:null)!==null?Object.defineProperty(n,"ref",{enumerable:!1,get:d}):Object.defineProperty(n,"ref",{enumerable:!1,value:null}),n._store={},Object.defineProperty(n._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(n,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(n,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:K}),Object.defineProperty(n,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:se}),Object.freeze&&(Object.freeze(n.props),Object.freeze(n)),n}function i(n,p,_,S,K,se){var R=p.children;if(R!==void 0)if(S)if(oe(R)){for(S=0;S<R.length;S++)m(R[S]);Object.freeze&&Object.freeze(R)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else m(R);if(H.call(p,"key")){R=e(n);var x=Object.keys(p).filter(function(ct){return ct!=="key"});S=0<x.length?"{key: someKey, "+x.join(": ..., ")+": ...}":"{key: someKey}",B[R+S]||(x=0<x.length?"{"+x.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
2
|
let props = %s;
|
|
3
3
|
<%s {...props} />
|
|
4
4
|
React keys must be passed directly to JSX without using spread:
|
|
5
5
|
let props = %s;
|
|
6
|
-
<%s key={someKey} {...props} />`,S,R,x,R),B[R+S]=!0)}if(R=null,_!==void 0&&(r(_),R=""+_),c(p)&&(r(p.key),R=""+p.key),"key"in p){_={};for(var ae in p)ae!=="key"&&(_[ae]=p[ae])}else _=p;return R&&u(_,typeof n=="function"?n.displayName||n.name||"Unknown":n),h(n,R,_,s(),K,se)}function m(n){y(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===
|
|
6
|
+
<%s key={someKey} {...props} />`,S,R,x,R),B[R+S]=!0)}if(R=null,_!==void 0&&(r(_),R=""+_),c(p)&&(r(p.key),R=""+p.key),"key"in p){_={};for(var ae in p)ae!=="key"&&(_[ae]=p[ae])}else _=p;return R&&u(_,typeof n=="function"?n.displayName||n.name||"Unknown":n),h(n,R,_,s(),K,se)}function m(n){y(n)?n._store&&(n._store.validated=1):typeof n=="object"&&n!==null&&n.$$typeof===z&&(n._payload.status==="fulfilled"?y(n._payload.value)&&n._payload.value._store&&(n._payload.value._store.validated=1):n._store&&(n._store.validated=1))}function y(n){return typeof n=="object"&&n!==null&&n.$$typeof===P}var w=l,P=Symbol.for("react.transitional.element"),A=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),v=Symbol.for("react.consumer"),b=Symbol.for("react.context"),T=Symbol.for("react.forward_ref"),N=Symbol.for("react.suspense"),ee=Symbol.for("react.suspense_list"),te=Symbol.for("react.memo"),z=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),re=Symbol.for("react.client.reference"),U=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,H=Object.prototype.hasOwnProperty,oe=Array.isArray,W=console.createTask?console.createTask:function(){return null};w={react_stack_bottom_frame:function(n){return n()}};var C,O={},Q=w.react_stack_bottom_frame.bind(w,a)(),J=W(o(a)),B={};D.Fragment=k,D.jsx=function(n,p,_){var S=1e4>U.recentlyCreatedOwnerStacks++;return i(n,p,_,!1,S?Error("react-stack-top-frame"):Q,S?W(o(n)):J)},D.jsxs=function(n,p,_){var S=1e4>U.recentlyCreatedOwnerStacks++;return i(n,p,_,!0,S?Error("react-stack-top-frame"):Q,S?W(o(n)):J)}})()),D}var ue;function Ce(){return ue||(ue=1,process.env.NODE_ENV==="production"?G.exports=ve():G.exports=we()),G.exports}var I=Ce();const be=({IMaskMixin:e,...t})=>{const r=l.useMemo(()=>e(({TextField:o,...s})=>I.jsx(o,{...s})),[e]);return I.jsx(r,{...t})},j=l.createContext({}),_e=({children:e,apiURL:t,libraries:r,localStorageKeys:o})=>{const s=l.useMemo(()=>({apiURL:t,libraries:r,localStorageKeys:o}),[t,r,o]);return I.jsx(j.Provider,{value:s,children:e})},Se=({data:e,...t})=>{const{libraries:r}=l.useContext(j),o=t?.reactRouter||r?.reactRouter,s=t?.gtm||r?.gtm;if(!o)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props of GTMSendPageView.");if(!s)throw new Error("GTM is not provided. You can provide it with InjectDependenciesProvider or directly in props of GTMSendPageView.");const{useGoogleTagManager:a}=s,{useLocation:c,Outlet:u}=o,{pathname:d}=c(),{sendEvent:h}=a();return l.useEffect(()=>{h({event:"pageView",pathname:d,...e})},[e,d,h]),I.jsx(u,{})},M=(()=>{try{return typeof global=="object"&&global!==null&&("HermesInternal"in global||"__fbBatchedBridge"in global||"__metro"in global)||typeof window>"u"&&typeof global<"u"?!0:typeof navigator<"u"&&navigator.userAgent?/react.native|ReactNative/i.test(navigator.userAgent):!1}catch{return!1}})(),Re="user",Te=({tokenTypeKey:e="tokenType",tokenKey:t="accessToken",postContentType:r="application/json",...o})=>{const{apiURL:s=o.apiURL,libraries:a,localStorageKeys:c}=l.useContext(j),u=o?.userLocalStorageKey||c?.user||Re,d=o?.axios||a?.axios;if(!d)throw new Error("Axios is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!d?.defaults||M)return null;if(typeof window<"u"&&window.localStorage){const h=localStorage.getItem(u),i=h?JSON.parse(h):null,m=i?.[e]?i[e]:null,y=i?.[t]?i[t]:null,w=h?`${m} ${y}`:null;w&&(d.defaults.headers.common.Authorization=w)}return d.defaults.baseURL=s,d.defaults.headers.post["Content-Type"]=r,null},Ae=({language:e,...t})=>{const{libraries:r}=l.useContext(j),o=t?.dayjs||r?.dayjs,s=t?.plugin||r?.dayjsPlugin;if(!o)throw new Error("Dayjs is not provided. You can provide it with InjectDependenciesProvider or directly in props of InitializeDaysJSConfig.");return l.useEffect(()=>{(async()=>{const c=e||navigator.language?.slice(0,2)||"en";o.extend(t.localizedFormat),s&&s.forEach(u=>{u&&o.extend(u)}),await import("dayjs/locale/en"),await import("dayjs/locale/fr"),o.locale(c)})().then()},[o,s,e,t.localizedFormat]),null},q="hubspot-messages-iframe-container",Y="hs-show",ke=({hubId:e})=>(l.useEffect(()=>{if(!e)return;const t=document.createElement("style");t.textContent=`
|
|
7
7
|
div#${q} { display: none !important; }
|
|
8
8
|
div#${q}.${Y} { display: initial !important; }
|
|
9
|
-
`,document.head.appendChild(t);const r=document.createElement("script");return r.id="hs-script-loader",r.src=`//js-eu1.hs-scripts.com/${e}.js`,r.async=!0,r.defer=!0,document.body.appendChild(r),()=>{t.remove(),r.remove()}},[e]),null),je=({debug:e,resources:t,...r})=>{const{libraries:o}=l.useContext(j),s=r?.i18||o?.i18,{i18next:a,initReactI18next:c,languageDetector:u}=s||{};if(M)return null;if(!s)throw new Error("i18 is not provided. You can provide it with InjectDependenciesProvider or directly in props.");return a?.isInitialized||(a.use(u).use(c).init({debug:e,fallbackLng:"en",interpolation:{escapeValue:!1},load:"languageOnly",react:{bindI18n:"languageChanged loaded",useSuspense:!0},resources:t,returnNull:!1}).then(()=>{document.documentElement.lang!==a.resolvedLanguage&&a.resolvedLanguage&&document.documentElement.setAttribute("lang",a.resolvedLanguage)}),a.on("languageChanged",d=>{document.documentElement.setAttribute("lang",d)})),null},Pe=({dsn:e,integrations:t,tracesSampleRate:r,replaysSessionSampleRate:o,replaysOnErrorSampleRate:s,tracePropagationTargets:a,ignoreErrors:c,debug:u,environment:d,release:h,...i})=>{const{libraries:m}=l.useContext(j),y=i?.sentry||m?.sentry,w=i?.reactRouter||m?.reactRouter;if(!y)throw new Error("Sentry is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!w)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(y.isInitialized())return null;const{createRoutesFromChildren:P,matchRoutes:A,useLocation:k,useNavigationType:E}=w;return(u||process.env.NODE_ENV==="prod"||process.env.NODE_ENV==="production")&&y.init({debug:u,dsn:e,environment:d||"production",ignoreErrors:[...c||[],/dynamically imported module/,/Cannot read properties of undefined \(reading 'default'\)/,/Loading chunk \d+ failed/,/ChunkLoadError/,/Failed to fetch dynamically imported module/,/vite:preloadError/],integrations:[y.reactRouterV6BrowserTracingIntegration({createRoutesFromChildren:P,matchRoutes:A,useEffect:l.useEffect,useLocation:k,useNavigationType:E}),...t||[]],release:h,replaysOnErrorSampleRate:s||1,replaysSessionSampleRate:o||.1,tracePropagationTargets:a,tracesSampleRate:r||1}),null},Oe=()=>(l.useEffect(()=>{if(M)return;const e=t=>{try{t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),sessionStorage.getItem("vite:preloadError:reloaded")||(sessionStorage.setItem("vite:preloadError:reloaded","true"),window.location.reload())}catch{}};return window.addEventListener("vite:preloadError",e),()=>{window.removeEventListener("vite:preloadError",e)}},[]),null),de=new WeakMap,Ie="user",Ne=({Fallback:e,isLogged:t,loginPath:r="/login",redirect401Path:o="/login",...s})=>{const{libraries:a,localStorageKeys:c}=l.useContext(j),u=s?.reactRouter||a?.reactRouter,d=s?.axios||a?.axios,h=s?.localStorageKey||c?.user||Ie;if(!u)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props.");const[i,m]=l.useState(null),{useLocation:y,Navigate:w,Outlet:P}=u,A=y(),k=typeof t=="function"?t():!!t,E=typeof k=="boolean"?k:k?.isLogged;return l.useEffect(()=>{de.has(d)||(de.set(d,!0),d.interceptors.response.use(f=>f,f=>(typeof f=="object"&&f&&"response"in f&&f.response&&typeof f.response=="object"&&"status"in f.response&&f.response&&typeof f.response=="object"&&"status"in f.response&&f?.response?.status===401&&(typeof f=="object"&&f&&"config"in f&&f.config&&typeof f.config=="object"&&"headers"in f.config&&f.config.headers&&typeof f.config.headers=="object"&&"Authorization"in f.config.headers&&f.config.headers.Authorization&&(d.defaults.headers.common.Authorization=null,typeof window<"u"&&window.localStorage&&localStorage.removeItem(h)),m(o)),Promise.reject(f))))},[d,h,o]),E&&!i?I.jsx(l.Suspense,{fallback:e,children:A.state?.from?.state&&A.state?.from?.pathname===r?I.jsx(w,{to:A.state.from.state.from.pathname+A.state.from.state.from.search,replace:!0}):I.jsx(P,{})}):I.jsx(w,{to:r+A.search,state:{from:A},replace:!0})},Le=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),xe=e=>{const t=e.split(/[/\\]/).pop()||"";return t.substring(0,t.lastIndexOf("."))},De=e=>{const o=e.split("/").filter(s=>s.length>0).map(s=>s.replace(/\${([^}]*)}/g,"$1").split(/[_-]/).map(d=>d.charAt(0).toUpperCase()+d.slice(1)).join("")).join("");return o.charAt(0).toLowerCase()+o.slice(1)},Fe=e=>(e.split("/").pop()||e).replace(/\.json$/,"").replace(/^openapi\./,""),Me=(e,t,r,o)=>{const s=De(t),a=Le(r),c=`${s}${a}`;return e&&typeof e=="object"&&"operationId"in e&&o?.includes(String(e.operationId))?`${c}AsQuery`:c},Ye=(e,t)=>{const r={};return e?.forEach(o=>{r[o]={query:{useInfinite:!0,useInfiniteQueryParam:"offset",useQuery:!0}}}),t?.filter(o=>!r[o]).forEach(o=>{r[o]={query:{useQuery:!0}}}),Object.keys(r).length?r:void 0},Ue=e=>(Array.isArray(e)?e:[e]).reduce((r,o)=>{const{output:s,useInfiniteIds:a,useQueryIds:c,input:u="./openapi.json",customAxiosInstancePath:d,overrideApiName:h}=o||{},i=h||Fe(u),m=d||"./node_modules/@tracktor/shared-module/dist/axiosCustomInstance.ts";return{...r,[i]:{input:u,output:{baseUrl:s?.baseUrl,client:"react-query",mode:"tags-split",override:{...(a?.length||c?.length)&&{operations:Ye(a,c)},header:y=>["Generated by orval 🍺",...y.title?[y.title]:[],...y.description?[y.description]:[]],mutator:{name:xe(m),path:m},operationName:(y,w,P)=>Me(y,w,P,c),query:{useQuery:!0}},schemas:s?.schemas||`src/api/${i}/model`,target:s?.target||`src/api/${i}/services/api.ts`,...s}}}},{}),ze="user",We={client:"/v2/threads/ws",supplier:"/v1/threads/ws"},Ge=(e,t)=>{const r=e.startsWith("https")?"wss":"ws",o=e.replace(/^https?:\/\//,"");return`${r}://${o}${t}`},Ve=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t)?.accessToken??null:null}catch{return null}},$=l.createContext(null),He=({children:e,token:t,url:r,wsPath:o,reconnect:s=!0,enabled:a=!0,context:c="client"})=>{const[u,d]=l.useState(!1),[h,i]=l.useState(!1),[m,y]=l.useState(0),[w,P]=l.useState(a),A=a&&w,{apiURL:k,localStorageKeys:E}=l.useContext(j),f=E?.user||ze,v=l.useRef(null),b=l.useRef(new Set);l.useEffect(()=>{if(!A)return;const C=o??We[c],O=r||(k?Ge(k,C):null);if(!O)return;const Q=()=>t??Ve(f),J=n=>{n.type==="ready"&&(i(!0),y(n.unreadCount??0));for(const p of b.current)p(n)},B=setTimeout(()=>{const n=new ie({getToken:Q,onConnectionChange:p=>{d(p),p||i(!1)},onEvent:J,reconnect:s,url:O});v.current=n,n.connect()},0);return()=>{clearTimeout(B),v.current?.disconnect(),v.current=null}},[A,r,o,c,t,s,k,f]);const T=l.useCallback(C=>{v.current?.joinThread(C)},[]),N=l.useCallback(C=>{v.current?.leaveThread(C)},[]),ee=l.useCallback((C,O)=>{v.current?.sendMessage(C,O)},[]),te=l.useCallback(C=>{v.current?.markRead(C)},[]),U=l.useCallback((C,O)=>{v.current?.listThreads(C,O)},[]),ne=l.useCallback((C=1)=>{y(O=>O+C)},[]),re=l.useCallback((C=1)=>{y(O=>Math.max(0,O-C))},[]),z=l.useCallback(()=>{v.current?.disconnect(),v.current=null},[]),H=l.useCallback(C=>{P(C)},[]),oe=l.useCallback(C=>(b.current.add(C),()=>{b.current.delete(C)}),[]),W={decrementUnreadCount:re,disconnect:z,incrementUnreadCount:ne,isConnected:u,isReady:h,joinThread:T,leaveThread:N,listThreads:U,markRead:te,sendMessage:ee,setEnabled:H,subscribe:oe,unreadCount:m};return I.jsx($.Provider,{value:W,children:e})},Qe=e=>e&&typeof e=="function",Je=e=>e&&typeof e=="function",Be=({children:e,defaultQueriesOptions:t,defaultMutationsOptions:r,...o})=>{const{libraries:s}=l.useContext(j),a=o?.QueryClient||s?.reactQuery?.QueryClient,c=o?.QueryClientProvider||s?.reactQuery?.QueryClientProvider;if(!a)throw new Error("QueryClient is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!c)throw new Error("QueryClientProvider is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!Qe(c))throw new Error("Provided QueryClientProvider dependencies are not valid.");if(!Je(a))throw new Error("Provided QueryClient dependencies are not valid.");const u=new a({defaultOptions:{mutations:{...r},queries:{getNextPageParam:(d,h,i)=>d.length+(i||0),refetchOnWindowFocus:!1,retry:3,...t}}});return I.jsx(c,{client:u,children:e})},fe=({library:e,date:t,format:r="ll"})=>e(t).format(r),pe=(e,t)=>{const{fractionDigits:r=0,metric:o="km",spacingBetween:s=!0}=t||{},a=Number(e),c=s?" ":"";return Number.isNaN(a)?`0${c}${o}`:`${a.toFixed(r)}${c}${o}`},he=e=>!e||typeof e!="string"?"":e.replace(/_/g," ").toLowerCase().split(" ").map(r=>r.length>0?r.charAt(0).toUpperCase()+r.slice(1):r).join(" "),Ke=e=>e?.startsWith("/")?e?.startsWith("/files")?e:`/files${e}`:e?.startsWith("files")?`/${e}`:`/files/${e}`,Xe=({path:e,size:t,apiURL:r})=>{if(!e)return"";const o=Ke(e),s=`${r}${o}`,a=s.match(/\.(jpeg|jpg|png|gif|bmp|webp|svg|avif)$/)!==null;return typeof t=="number"&&a?`${s.replace("/files",`/thumbs/${t}`)}`:s},Ze=e=>{const{apiURL:t,libraries:r}=l.useContext(j),o=e?.dayjs||r?.dayjs;return{dateAdapter:(c,u)=>{if(!o)throw new Error("Dayjs is not provided. You can provide it with InjectDependenciesProvider or directly in props.");return fe({date:c,format:u,library:o})},distanceAdapter:pe,filePathAdapter:(c,u)=>{if(!t)throw new Error("API URL is not provided. You can provide it with InjectDependenciesProvider or directly in props to filePathAdapter.");return typeof c=="string"&&/^https?:\/\//.test(c)?c:Xe({apiURL:t,path:c,size:u})},worksiteNameAdapter:he}},qe=e=>{const{libraries:t,localStorageKeys:r}=l.useContext(j),o=e?.axios||t?.axios,s=e?.localStorageKey||r?.user||"user";if(!o)throw new Error("Axios is not provided. You can provide it with InjectDependenciesProvider or directly in params of useAuth.");const a=l.useCallback(({tokenType:u,accessToken:d})=>{o.defaults.headers.common.Authorization=`${u} ${d}`},[o.defaults.headers.common]),c=()=>{o.defaults.headers.common.Authorization=null};return l.useEffect(()=>{if(M)return;const u=({newValue:d,key:h})=>{if(h===s&&d)try{const{accessToken:i,tokenType:m}=JSON.parse(d);a({accessToken:i,tokenType:m})}catch(i){console.error("Failed to parse newValue from localStorage:",i)}};return window.addEventListener("storage",u),()=>{window.removeEventListener("storage",u)}},[s,a]),{clearAuthenticationToken:c,setAuthenticationToken:a}},$e=e=>{const t=l.useContext($);if(!t)throw new Error("useChat must be used within ChatProvider");const{subscribe:r,setEnabled:o,...s}=t,a=l.useRef(e);return a.current=e,l.useEffect(()=>{e?.enabled!==void 0&&o(e.enabled)},[e?.enabled,o]),l.useEffect(()=>r(c=>{const{onReady:u,onNewMessage:d,onNewMessageNotification:h,onPresence:i,onError:m,onJoinedThread:y,onLeftThread:w,onMarkedRead:P,onThreadArchived:A,onThreadsList:k}=a.current??{};switch(c.type){case"ready":u?.(c);break;case"new_message":d?.(c);break;case"new_message_notification":h?.(c);break;case"presence":i?.(c);break;case"error":m?.(c);break;case"joined_thread":y?.(c);break;case"left_thread":w?.(c);break;case"marked_read":P?.(c);break;case"thread_archived":A?.(c);break;case"threads_list":k?.(c);break}}),[r]),s},V=(e,t)=>t==="short"?e.split("-")[0]:e,et=(e,t="full")=>{const[r,o]=l.useState(()=>{const s=e?.language||navigator.language;return e&&"isInitialized"in e&&e.isInitialized,V(s,t)});return l.useEffect(()=>{e&&"isInitialized"in e&&e.isInitialized&&e.language&&o(V(e.language,t));const s=a=>{o(V(a,t))};return e?.on?.("languageChanged",s),()=>{e?.off?.("languageChanged",s)}},[e,t]),r},tt="tracktor.filter",nt={getFilter:()=>{},getFilters:()=>({}),handleFilter:()=>()=>{},setFilter:()=>{}},ge=e=>{try{return JSON.parse(e)}catch{return e}},me=(e,t,r)=>`${r}_${e}=>${t}`,rt=e=>e.reduce((t,r)=>{const o=localStorage.getItem(r);if(o)try{const s=JSON.parse(o),a=Object.keys(s)?.[0];a&&(t[a]=Object.values(s)?.[0])}catch{}return t},{}),ot=e=>{const{libraries:t,localStorageKeys:r}=l.useContext(j),o=e?.reactRouter||t?.reactRouter,{pathname:s}=o?.useLocation?.()??{pathname:"/"},[a,c]=o?.useSearchParams?.()??[new URLSearchParams,()=>{}],[u,d]=l.useState({}),h=r?.filter||tt,i=e?.syncWithUrl===void 0?!0:e?.syncWithUrl,m=e?.persistToLocalStorage===void 0?!0:e?.persistToLocalStorage;if(M)return nt;if(!o)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props of reactRouter.");const y=()=>Object.keys(localStorage).filter(E=>E.startsWith(h)&&E.endsWith(e?.pathname||s)),w=(E,f,v=!0)=>{const b=me(E,e?.pathname||s,h);if(!f||Array.isArray(f)&&!f.length){i?(a.delete(E),c(a)):d(T=>{const N={...T};return delete N[E],N}),m&&localStorage.removeItem(b);return}m&&v&&f&&localStorage.setItem(b,JSON.stringify({...a,[E]:f})),i&&f?(a.set(E,JSON.stringify(f)),c(a)):!i&&f&&d(T=>({...T,[E]:f}))};return{getFilter:(E,f)=>{if(i){const v=a.get(E);if(v)return ge(v)}else{const v=u[E];if(v!==void 0)return v}if(m){const v=me(E,e?.pathname||s,h),b=localStorage.getItem(v);if(b)try{const T=JSON.parse(b)[E];return!i&&T!==void 0&&d(N=>({...N,[E]:T})),T}catch{}}return f},getFilters:()=>{const E=m?rt(y()):{};if(i){const f=Array.from(a.entries()).reduce((v,[b,T])=>(v[b]=ge(T),v),{});return{...E,...f}}return{...E,...u}},handleFilter:(E,f)=>(v,b)=>{if(b||Array.isArray(b)&&b.length===0){const T=f||"value",N=typeof b=="object"&&T in b?b[T]:b;w(E,N);return}w(E,void 0)},setFilter:w}},ye=()=>document.getElementById(q),st=()=>{const[e,t]=l.useState(()=>!!window.HubSpotConversations);l.useEffect(()=>{if(window.HubSpotConversations){t(!0);return}window.hsConversationsOnReady=[()=>t(!0)]},[]),l.useEffect(()=>{e&&window.HubSpotConversations?.on("widgetClosed",()=>{ye()?.classList.remove(Y)})},[e]);const r=l.useCallback(()=>{const o=window.HubSpotConversations,s=ye();o&&s&&(s.classList.contains(Y)?(o.widget.close(),s.classList.remove(Y)):(s.classList.add(Y),o.widget.open()))},[]);return{isAvailable:e,toggle:r}},at=({data:e,fetchNextPage:t,isFetchingNextPage:r,isInitialLoading:o,isLoading:s,enabled:a=!0})=>{const c=l.useCallback(async d=>{r||!a||await t({pageParam:d?.pageParam||d.visibleRowsCount})},[a,t,r]),u=l.useMemo(()=>{if(e)return e.pages.reduce((d,h)=>[...d,...h],[])},[e]);return{fetchNextPageOnRowsScrollEnd:c,isLoading:r||s,loadingVariant:o?"skeleton":"linear-progress",rows:u}},it=e=>{const{libraries:t}=l.useContext(j),r=e?.i18||t?.i18,o=e?.i18?.translateFunction||t?.i18?.translateFunction,s=r?.i18next?.t||o||(h=>h),{unknownErrorTranslationKey:a="error.unknownError"}=e||{},c=s(a),u=l.useCallback(h=>{if(h&&typeof h=="object"&&"response"in h){const{response:i}=h||{};if(i&&typeof i=="object"&&"reason"in i&&i.reason)return String(i.reason);if(i&&typeof i=="object"&&"data"in i&&i.data&&typeof i.data=="object"&&"reason"in i.data&&i.data.reason)return String(i.data.reason);if(i&&typeof i=="object"&&"data"in i&&i.data&&typeof i.data=="object"&&"message"in i.data&&i.data.message)return String(i.data.message);if(i&&typeof i=="object"&&"data"in i&&i.data&&typeof i.data=="object"&&"detail"in i.data){const{detail:m}=i.data;if(Array.isArray(m)&&m.length>0&&typeof m[0]=="object"&&m[0]!==null&&"msg"in m[0]){const{msg:y}=m[0];if(typeof y=="string")return String(y)}}}return h instanceof Error?h.message:c},[c]);return{getErrorCode:l.useCallback(h=>{const{response:i}=h||{};return i?.error_code?String(i?.error_code):i?.data?.error_code?String(i?.data?.error_code):i?.error_code?String(i?.error_code):i?.data?.error_code?String(i.data.error_code):"unknown_error_code"},[]),printError:u}};g.ChatClient=ie,g.ChatContext=$,g.ChatProvider=He,g.GTMSendPageView=Se,g.InitializeAxiosConfig=Te,g.InitializeDaysJSConfig=Ae,g.InitializeHubSpot=ke,g.InitializeI18nConfig=je,g.InitializeSentryConfig=Pe,g.InjectDependenciesContext=j,g.InjectDependenciesProvider=_e,g.MaskTextField=be,g.PreloadErrorHandler=Oe,g.QueryClientProviderWithConfig=Be,g.RequireAuth=Ne,g.axiosCustomInstance=Ee,g.dateAdapter=fe,g.distanceAdapter=pe,g.getOrvalConfig=Ue,g.useAdapter=Ze,g.useAuth=qe,g.useChat=$e,g.useCurrentLanguage=et,g.useFilters=ot,g.useHubSpot=st,g.useInfiniteDataGrid=at,g.useResponseError=it,g.worksiteNameAdapter=he,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})}));
|
|
9
|
+
`,document.head.appendChild(t);const r=document.createElement("script");return r.id="hs-script-loader",r.src=`//js-eu1.hs-scripts.com/${e}.js`,r.async=!0,r.defer=!0,document.body.appendChild(r),()=>{t.remove(),r.remove()}},[e]),null),je=({debug:e,resources:t,...r})=>{const{libraries:o}=l.useContext(j),s=r?.i18||o?.i18,{i18next:a,initReactI18next:c,languageDetector:u}=s||{};if(M)return null;if(!s)throw new Error("i18 is not provided. You can provide it with InjectDependenciesProvider or directly in props.");return a?.isInitialized||(a.use(u).use(c).init({debug:e,fallbackLng:"en",interpolation:{escapeValue:!1},load:"languageOnly",react:{bindI18n:"languageChanged loaded",useSuspense:!0},resources:t,returnNull:!1}).then(()=>{document.documentElement.lang!==a.resolvedLanguage&&a.resolvedLanguage&&document.documentElement.setAttribute("lang",a.resolvedLanguage)}),a.on("languageChanged",d=>{document.documentElement.setAttribute("lang",d)})),null},Pe=({dsn:e,integrations:t,tracesSampleRate:r,replaysSessionSampleRate:o,replaysOnErrorSampleRate:s,tracePropagationTargets:a,ignoreErrors:c,debug:u,environment:d,release:h,...i})=>{const{libraries:m}=l.useContext(j),y=i?.sentry||m?.sentry,w=i?.reactRouter||m?.reactRouter;if(!y)throw new Error("Sentry is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!w)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(y.isInitialized())return null;const{createRoutesFromChildren:P,matchRoutes:A,useLocation:k,useNavigationType:E}=w;return(u||process.env.NODE_ENV==="prod"||process.env.NODE_ENV==="production")&&y.init({debug:u,dsn:e,environment:d||"production",ignoreErrors:[...c||[],/dynamically imported module/,/Cannot read properties of undefined \(reading 'default'\)/,/Loading chunk \d+ failed/,/ChunkLoadError/,/Failed to fetch dynamically imported module/,/vite:preloadError/],integrations:[y.reactRouterV6BrowserTracingIntegration({createRoutesFromChildren:P,matchRoutes:A,useEffect:l.useEffect,useLocation:k,useNavigationType:E}),...t||[]],release:h,replaysOnErrorSampleRate:s||1,replaysSessionSampleRate:o||.1,tracePropagationTargets:a,tracesSampleRate:r||1}),null},Oe=()=>(l.useEffect(()=>{if(M)return;const e=t=>{try{t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation(),sessionStorage.getItem("vite:preloadError:reloaded")||(sessionStorage.setItem("vite:preloadError:reloaded","true"),window.location.reload())}catch{}};return window.addEventListener("vite:preloadError",e),()=>{window.removeEventListener("vite:preloadError",e)}},[]),null),de=new WeakMap,Ie="user",Ne=({Fallback:e,isLogged:t,loginPath:r="/login",redirect401Path:o="/login",...s})=>{const{libraries:a,localStorageKeys:c}=l.useContext(j),u=s?.reactRouter||a?.reactRouter,d=s?.axios||a?.axios,h=s?.localStorageKey||c?.user||Ie;if(!u)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props.");const[i,m]=l.useState(null),{useLocation:y,Navigate:w,Outlet:P}=u,A=y(),k=typeof t=="function"?t():!!t,E=typeof k=="boolean"?k:k?.isLogged;return l.useEffect(()=>{de.has(d)||(de.set(d,!0),d.interceptors.response.use(f=>f,f=>(typeof f=="object"&&f&&"response"in f&&f.response&&typeof f.response=="object"&&"status"in f.response&&f.response&&typeof f.response=="object"&&"status"in f.response&&f?.response?.status===401&&(typeof f=="object"&&f&&"config"in f&&f.config&&typeof f.config=="object"&&"headers"in f.config&&f.config.headers&&typeof f.config.headers=="object"&&"Authorization"in f.config.headers&&f.config.headers.Authorization&&(d.defaults.headers.common.Authorization=null,typeof window<"u"&&window.localStorage&&localStorage.removeItem(h)),m(o)),Promise.reject(f))))},[d,h,o]),E&&!i?I.jsx(l.Suspense,{fallback:e,children:A.state?.from?.state&&A.state?.from?.pathname===r?I.jsx(w,{to:A.state.from.state.from.pathname+A.state.from.state.from.search,replace:!0}):I.jsx(P,{})}):I.jsx(w,{to:r+A.search,state:{from:A},replace:!0})},Le=e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase(),xe=e=>{const t=e.split(/[/\\]/).pop()||"";return t.substring(0,t.lastIndexOf("."))},Fe=e=>{const o=e.split("/").filter(s=>s.length>0).map(s=>s.replace(/\${([^}]*)}/g,"$1").split(/[_-]/).map(d=>d.charAt(0).toUpperCase()+d.slice(1)).join("")).join("");return o.charAt(0).toLowerCase()+o.slice(1)},De=e=>(e.split("/").pop()||e).replace(/\.json$/,"").replace(/^openapi\./,""),Me=(e,t,r,o)=>{const s=Fe(t),a=Le(r),c=`${s}${a}`;return e&&typeof e=="object"&&"operationId"in e&&o?.includes(String(e.operationId))?`${c}AsQuery`:c},Ye=(e,t)=>{const r={};return e?.forEach(o=>{r[o]={query:{useInfinite:!0,useInfiniteQueryParam:"offset",useQuery:!0}}}),t?.filter(o=>!r[o]).forEach(o=>{r[o]={query:{useQuery:!0}}}),Object.keys(r).length?r:void 0},ze=e=>(Array.isArray(e)?e:[e]).reduce((r,o)=>{const{output:s,useInfiniteIds:a,useQueryIds:c,input:u="./openapi.json",customAxiosInstancePath:d,overrideApiName:h}=o||{},i=h||De(u),m=d||"./node_modules/@tracktor/shared-module/dist/axiosCustomInstance.ts";return{...r,[i]:{input:u,output:{baseUrl:s?.baseUrl,client:"react-query",mode:"tags-split",override:{...(a?.length||c?.length)&&{operations:Ye(a,c)},header:y=>["Generated by orval 🍺",...y.title?[y.title]:[],...y.description?[y.description]:[]],mutator:{name:xe(m),path:m},operationName:(y,w,P)=>Me(y,w,P,c),query:{useQuery:!0}},schemas:s?.schemas||`src/api/${i}/model`,target:s?.target||`src/api/${i}/services/api.ts`,...s}}}},{}),Ue="user",We={client:"/v2/threads/ws",supplier:"/v1/threads/ws"},Ge=(e,t)=>{const r=e.startsWith("https")?"wss":"ws",o=e.replace(/^https?:\/\//,"");return`${r}://${o}${t}`},Ve=e=>{try{const t=localStorage.getItem(e);return t?JSON.parse(t)?.accessToken??null:null}catch{return null}},$=l.createContext(null),He=({children:e,token:t,url:r,wsPath:o,reconnect:s=!0,enabled:a=!0,context:c="client"})=>{const[u,d]=l.useState(!1),[h,i]=l.useState(!1),[m,y]=l.useState(0),[w,P]=l.useState(a),A=a&&w,{apiURL:k,localStorageKeys:E}=l.useContext(j),f=E?.user||Ue,v=l.useRef(null),b=l.useRef(new Set);l.useEffect(()=>{if(!A)return;const C=o??We[c],O=r||(k?Ge(k,C):null);if(!O)return;const Q=()=>t??Ve(f),J=n=>{n.type==="ready"&&(i(!0),y(n.unreadCount??0));for(const p of b.current)p(n)},B=setTimeout(()=>{const n=new ie({getToken:Q,onConnectionChange:p=>{d(p),p||i(!1)},onEvent:J,reconnect:s,url:O});v.current=n,n.connect()},0);return()=>{clearTimeout(B),v.current?.disconnect(),v.current=null}},[A,r,o,c,t,s,k,f]);const T=l.useCallback(C=>{v.current?.joinThread(C)},[]),N=l.useCallback(C=>{v.current?.leaveThread(C)},[]),ee=l.useCallback((C,O)=>{v.current?.sendMessage(C,O)},[]),te=l.useCallback(C=>{v.current?.markRead(C)},[]),z=l.useCallback((C,O)=>{v.current?.listThreads(C,O)},[]),ne=l.useCallback((C=1)=>{y(O=>O+C)},[]),re=l.useCallback((C=1)=>{y(O=>Math.max(0,O-C))},[]),U=l.useCallback(()=>{v.current?.disconnect(),v.current=null},[]),H=l.useCallback(C=>{P(C)},[]),oe=l.useCallback(C=>(b.current.add(C),()=>{b.current.delete(C)}),[]),W={decrementUnreadCount:re,disconnect:U,incrementUnreadCount:ne,isConnected:u,isReady:h,joinThread:T,leaveThread:N,listThreads:z,markRead:te,sendMessage:ee,setEnabled:H,subscribe:oe,unreadCount:m};return I.jsx($.Provider,{value:W,children:e})},Qe=e=>e&&typeof e=="function",Je=e=>e&&typeof e=="function",Be=({children:e,defaultQueriesOptions:t,defaultMutationsOptions:r,...o})=>{const{libraries:s}=l.useContext(j),a=o?.QueryClient||s?.reactQuery?.QueryClient,c=o?.QueryClientProvider||s?.reactQuery?.QueryClientProvider;if(!a)throw new Error("QueryClient is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!c)throw new Error("QueryClientProvider is not provided. You can provide it with InjectDependenciesProvider or directly in props.");if(!Qe(c))throw new Error("Provided QueryClientProvider dependencies are not valid.");if(!Je(a))throw new Error("Provided QueryClient dependencies are not valid.");const u=l.useRef(null);return u.current||(u.current=new a({defaultOptions:{mutations:{...r},queries:{getNextPageParam:(d,h,i)=>d.length+(i||0),refetchOnWindowFocus:!1,retry:3,...t}}})),I.jsx(c,{client:u.current,children:e})},fe=({library:e,date:t,format:r="ll"})=>e(t).format(r),pe=(e,t)=>{const{fractionDigits:r=0,metric:o="km",spacingBetween:s=!0}=t||{},a=Number(e),c=s?" ":"";return Number.isNaN(a)?`0${c}${o}`:`${a.toFixed(r)}${c}${o}`},he=e=>!e||typeof e!="string"?"":e.replace(/_/g," ").toLowerCase().split(" ").map(r=>r.length>0?r.charAt(0).toUpperCase()+r.slice(1):r).join(" "),Ke=e=>e?.startsWith("/")?e?.startsWith("/files")?e:`/files${e}`:e?.startsWith("files")?`/${e}`:`/files/${e}`,Xe=({path:e,size:t,apiURL:r})=>{if(!e)return"";const o=Ke(e),s=`${r}${o}`,a=s.match(/\.(jpeg|jpg|png|gif|bmp|webp|svg|avif)$/)!==null;return typeof t=="number"&&a?`${s.replace("/files",`/thumbs/${t}`)}`:s},Ze=e=>{const{apiURL:t,libraries:r}=l.useContext(j),o=e?.dayjs||r?.dayjs;return{dateAdapter:(c,u)=>{if(!o)throw new Error("Dayjs is not provided. You can provide it with InjectDependenciesProvider or directly in props.");return fe({date:c,format:u,library:o})},distanceAdapter:pe,filePathAdapter:(c,u)=>{if(!t)throw new Error("API URL is not provided. You can provide it with InjectDependenciesProvider or directly in props to filePathAdapter.");return typeof c=="string"&&/^https?:\/\//.test(c)?c:Xe({apiURL:t,path:c,size:u})},worksiteNameAdapter:he}},qe=e=>{const{libraries:t,localStorageKeys:r}=l.useContext(j),o=e?.axios||t?.axios,s=e?.localStorageKey||r?.user||"user";if(!o)throw new Error("Axios is not provided. You can provide it with InjectDependenciesProvider or directly in params of useAuth.");const a=l.useCallback(({tokenType:u,accessToken:d})=>{o.defaults.headers.common.Authorization=`${u} ${d}`},[o.defaults.headers.common]),c=()=>{o.defaults.headers.common.Authorization=null};return l.useEffect(()=>{if(M)return;const u=({newValue:d,key:h})=>{if(h===s&&d)try{const{accessToken:i,tokenType:m}=JSON.parse(d);a({accessToken:i,tokenType:m})}catch(i){console.error("Failed to parse newValue from localStorage:",i)}};return window.addEventListener("storage",u),()=>{window.removeEventListener("storage",u)}},[s,a]),{clearAuthenticationToken:c,setAuthenticationToken:a}},$e=e=>{const t=l.useContext($);if(!t)throw new Error("useChat must be used within ChatProvider");const{subscribe:r,setEnabled:o,...s}=t,a=l.useRef(e);return a.current=e,l.useEffect(()=>{e?.enabled!==void 0&&o(e.enabled)},[e?.enabled,o]),l.useEffect(()=>r(c=>{const{onReady:u,onNewMessage:d,onNewMessageNotification:h,onPresence:i,onError:m,onJoinedThread:y,onLeftThread:w,onMarkedRead:P,onThreadArchived:A,onThreadsList:k}=a.current??{};switch(c.type){case"ready":u?.(c);break;case"new_message":d?.(c);break;case"new_message_notification":h?.(c);break;case"presence":i?.(c);break;case"error":m?.(c);break;case"joined_thread":y?.(c);break;case"left_thread":w?.(c);break;case"marked_read":P?.(c);break;case"thread_archived":A?.(c);break;case"threads_list":k?.(c);break}}),[r]),s},V=(e,t)=>t==="short"?e.split("-")[0]:e,et=(e,t="full")=>{const[r,o]=l.useState(()=>{const s=e?.language||navigator.language;return e&&"isInitialized"in e&&e.isInitialized,V(s,t)});return l.useEffect(()=>{e&&"isInitialized"in e&&e.isInitialized&&e.language&&o(V(e.language,t));const s=a=>{o(V(a,t))};return e?.on?.("languageChanged",s),()=>{e?.off?.("languageChanged",s)}},[e,t]),r},tt="tracktor.filter",nt={getFilter:()=>{},getFilters:()=>({}),handleFilter:()=>()=>{},setFilter:()=>{}},ge=e=>{try{return JSON.parse(e)}catch{return e}},me=(e,t,r)=>`${r}_${e}=>${t}`,rt=e=>e.reduce((t,r)=>{const o=localStorage.getItem(r);if(o)try{const s=JSON.parse(o),a=Object.keys(s)?.[0];a&&(t[a]=Object.values(s)?.[0])}catch{}return t},{}),ot=e=>{const{libraries:t,localStorageKeys:r}=l.useContext(j),o=e?.reactRouter||t?.reactRouter,{pathname:s}=o?.useLocation?.()??{pathname:"/"},[a,c]=o?.useSearchParams?.()??[new URLSearchParams,()=>{}],[u,d]=l.useState({}),h=r?.filter||tt,i=e?.syncWithUrl===void 0?!0:e?.syncWithUrl,m=e?.persistToLocalStorage===void 0?!0:e?.persistToLocalStorage;if(M)return nt;if(!o)throw new Error("React Router is not provided. You can provide it with InjectDependenciesProvider or directly in props of reactRouter.");const y=()=>Object.keys(localStorage).filter(E=>E.startsWith(h)&&E.endsWith(e?.pathname||s)),w=(E,f,v=!0)=>{const b=me(E,e?.pathname||s,h);if(!f||Array.isArray(f)&&!f.length){i?(a.delete(E),c(a)):d(T=>{const N={...T};return delete N[E],N}),m&&localStorage.removeItem(b);return}m&&v&&f&&localStorage.setItem(b,JSON.stringify({...a,[E]:f})),i&&f?(a.set(E,JSON.stringify(f)),c(a)):!i&&f&&d(T=>({...T,[E]:f}))};return{getFilter:(E,f)=>{if(i){const v=a.get(E);if(v)return ge(v)}else{const v=u[E];if(v!==void 0)return v}if(m){const v=me(E,e?.pathname||s,h),b=localStorage.getItem(v);if(b)try{const T=JSON.parse(b)[E];return!i&&T!==void 0&&d(N=>({...N,[E]:T})),T}catch{}}return f},getFilters:()=>{const E=m?rt(y()):{};if(i){const f=Array.from(a.entries()).reduce((v,[b,T])=>(v[b]=ge(T),v),{});return{...E,...f}}return{...E,...u}},handleFilter:(E,f)=>(v,b)=>{if(b||Array.isArray(b)&&b.length===0){const T=f||"value",N=typeof b=="object"&&T in b?b[T]:b;w(E,N);return}w(E,void 0)},setFilter:w}},ye=()=>document.getElementById(q),st=()=>{const[e,t]=l.useState(()=>!!window.HubSpotConversations);l.useEffect(()=>{if(window.HubSpotConversations){t(!0);return}window.hsConversationsOnReady=[()=>t(!0)]},[]),l.useEffect(()=>{e&&window.HubSpotConversations?.on("widgetClosed",()=>{ye()?.classList.remove(Y)})},[e]);const r=l.useCallback(()=>{const o=window.HubSpotConversations,s=ye();o&&s&&(s.classList.contains(Y)?(o.widget.close(),s.classList.remove(Y)):(s.classList.add(Y),o.widget.open()))},[]);return{isAvailable:e,toggle:r}},at=({data:e,fetchNextPage:t,isFetchingNextPage:r,isInitialLoading:o,isLoading:s,enabled:a=!0})=>{const c=l.useCallback(async d=>{r||!a||await t({pageParam:d?.pageParam||d.visibleRowsCount})},[a,t,r]),u=l.useMemo(()=>{if(e)return e.pages.reduce((d,h)=>[...d,...h],[])},[e]);return{fetchNextPageOnRowsScrollEnd:c,isLoading:r||s,loadingVariant:o?"skeleton":"linear-progress",rows:u}},it=e=>{const{libraries:t}=l.useContext(j),r=e?.i18||t?.i18,o=e?.i18?.translateFunction||t?.i18?.translateFunction,s=r?.i18next?.t||o||(h=>h),{unknownErrorTranslationKey:a="error.unknownError"}=e||{},c=s(a),u=l.useCallback(h=>{if(h&&typeof h=="object"&&"response"in h){const{response:i}=h||{};if(i&&typeof i=="object"&&"reason"in i&&i.reason)return String(i.reason);if(i&&typeof i=="object"&&"data"in i&&i.data&&typeof i.data=="object"&&"reason"in i.data&&i.data.reason)return String(i.data.reason);if(i&&typeof i=="object"&&"data"in i&&i.data&&typeof i.data=="object"&&"message"in i.data&&i.data.message)return String(i.data.message);if(i&&typeof i=="object"&&"data"in i&&i.data&&typeof i.data=="object"&&"detail"in i.data){const{detail:m}=i.data;if(Array.isArray(m)&&m.length>0&&typeof m[0]=="object"&&m[0]!==null&&"msg"in m[0]){const{msg:y}=m[0];if(typeof y=="string")return String(y)}}}return h instanceof Error?h.message:c},[c]);return{getErrorCode:l.useCallback(h=>{const{response:i}=h||{};return i?.error_code?String(i?.error_code):i?.data?.error_code?String(i?.data?.error_code):i?.error_code?String(i?.error_code):i?.data?.error_code?String(i.data.error_code):"unknown_error_code"},[]),printError:u}};g.ChatClient=ie,g.ChatContext=$,g.ChatProvider=He,g.GTMSendPageView=Se,g.InitializeAxiosConfig=Te,g.InitializeDaysJSConfig=Ae,g.InitializeHubSpot=ke,g.InitializeI18nConfig=je,g.InitializeSentryConfig=Pe,g.InjectDependenciesContext=j,g.InjectDependenciesProvider=_e,g.MaskTextField=be,g.PreloadErrorHandler=Oe,g.QueryProvider=Be,g.RequireAuth=Ne,g.axiosCustomInstance=Ee,g.dateAdapter=fe,g.distanceAdapter=pe,g.getOrvalConfig=ze,g.useAdapter=Ze,g.useAuth=qe,g.useChat=$e,g.useCurrentLanguage=et,g.useFilters=ot,g.useHubSpot=st,g.useInfiniteDataGrid=at,g.useResponseError=it,g.worksiteNameAdapter=he,Object.defineProperty(g,Symbol.toStringTag,{value:"Module"})}));
|