@scbt-ecom/ui 0.24.0 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{CustomLink-BuvHLRaW.js → CustomLink-CKaoTS8A.js} +3 -18
- package/dist/{CustomLink-BuvHLRaW.js.map → CustomLink-CKaoTS8A.js.map} +1 -1
- package/dist/hooks.js +39 -105
- package/dist/hooks.js.map +1 -1
- package/dist/{parse-DTNzQgVi.js → parse-C_80L3wX.js} +262 -248
- package/dist/parse-C_80L3wX.js.map +1 -0
- package/dist/shared/ui/customLink/CustomLink.d.ts +1 -2
- package/dist/shared/ui/formElements/controlled/index.d.ts +1 -0
- package/dist/shared/ui/formElements/editorControl/model/config.d.ts +1 -1
- package/dist/shared/ui/formElements/editorControl/ui/commands/index.d.ts +1 -1
- package/dist/shared/ui/formElements/editorControl/ui/commands/setCustomLink.d.ts +6 -0
- package/dist/shared/ui/formElements/uncontrolled/index.d.ts +1 -0
- package/dist/shared/ui/formElements/uncontrolled/select/Select.d.ts +15 -0
- package/dist/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.d.ts +3 -1
- package/dist/shared/validation/messages.d.ts +1 -0
- package/dist/ui.js +5720 -5685
- package/dist/ui.js.map +1 -1
- package/dist/useDebounce-DyvGYvL9.js +1169 -0
- package/dist/useDebounce-DyvGYvL9.js.map +1 -0
- package/dist/validation.js +26 -37
- package/dist/validation.js.map +1 -1
- package/dist/widget.js +1 -1
- package/package.json +1 -2
- package/dist/parse-DTNzQgVi.js.map +0 -1
- package/dist/shared/ui/formElements/editorControl/ui/commands/SetLink.d.ts +0 -6
- package/dist/useDebounce-DSBzpBLy.js +0 -1106
- package/dist/useDebounce-DSBzpBLy.js.map +0 -1
package/dist/hooks.js
CHANGED
|
@@ -1,115 +1,49 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import * as
|
|
3
|
-
import { useState as
|
|
4
|
-
import {
|
|
5
|
-
import { d as
|
|
6
|
-
const
|
|
7
|
-
const [t,
|
|
8
|
-
return [t, (
|
|
9
|
-
},
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
r
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}, O = (r, t) => {
|
|
20
|
-
t.shouldUseNativeValidation && p(r, t);
|
|
21
|
-
const s = {};
|
|
22
|
-
for (const e in r) {
|
|
23
|
-
const c = l(t.fields, e), a = Object.assign(r[e] || {}, { ref: c && c.ref });
|
|
24
|
-
if (P(t.names || Object.keys(r), e)) {
|
|
25
|
-
const o = Object.assign({}, l(s, e));
|
|
26
|
-
f(o, "root", a), f(s, e, o);
|
|
27
|
-
} else f(s, e, a);
|
|
28
|
-
}
|
|
29
|
-
return s;
|
|
30
|
-
}, P = (r, t) => r.some((s) => s.startsWith(t + "."));
|
|
31
|
-
var j = function(r, t) {
|
|
32
|
-
for (var s = {}; r.length; ) {
|
|
33
|
-
var e = r[0], c = e.code, a = e.message, o = e.path.join(".");
|
|
34
|
-
if (!s[o]) if ("unionErrors" in e) {
|
|
35
|
-
var n = e.unionErrors[0].errors[0];
|
|
36
|
-
s[o] = { message: n.message, type: n.code };
|
|
37
|
-
} else s[o] = { message: a, type: c };
|
|
38
|
-
if ("unionErrors" in e && e.unionErrors.forEach(function(b) {
|
|
39
|
-
return b.errors.forEach(function(g) {
|
|
40
|
-
return r.push(g);
|
|
41
|
-
});
|
|
42
|
-
}), t) {
|
|
43
|
-
var i = s[o].types, u = i && i[e.code];
|
|
44
|
-
s[o] = y(o, t, s, c, u ? [].concat(u, e.message) : e.message);
|
|
45
|
-
}
|
|
46
|
-
r.shift();
|
|
47
|
-
}
|
|
48
|
-
return s;
|
|
49
|
-
}, w = function(r, t, s) {
|
|
50
|
-
return s === void 0 && (s = {}), function(e, c, a) {
|
|
51
|
-
try {
|
|
52
|
-
return Promise.resolve(function(o, n) {
|
|
53
|
-
try {
|
|
54
|
-
var i = Promise.resolve(r[s.mode === "sync" ? "parse" : "parseAsync"](e, t)).then(function(u) {
|
|
55
|
-
return a.shouldUseNativeValidation && p({}, a), { errors: {}, values: s.raw ? e : u };
|
|
56
|
-
});
|
|
57
|
-
} catch (u) {
|
|
58
|
-
return n(u);
|
|
59
|
-
}
|
|
60
|
-
return i && i.then ? i.then(void 0, n) : i;
|
|
61
|
-
}(0, function(o) {
|
|
62
|
-
if (function(n) {
|
|
63
|
-
return Array.isArray(n == null ? void 0 : n.errors);
|
|
64
|
-
}(o)) return { values: {}, errors: O(j(o.errors, !a.shouldUseNativeValidation && a.criteriaMode === "all"), a) };
|
|
65
|
-
throw o;
|
|
66
|
-
}));
|
|
67
|
-
} catch (o) {
|
|
68
|
-
return Promise.reject(o);
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
};
|
|
72
|
-
const k = ({ schema: r, ...t }) => E({
|
|
73
|
-
...t,
|
|
74
|
-
resolver: w(r)
|
|
75
|
-
}), A = (r, t, s = !1) => {
|
|
76
|
-
const [e, c] = d(s);
|
|
77
|
-
return h(() => {
|
|
78
|
-
const a = new IntersectionObserver((n) => {
|
|
79
|
-
const i = n.filter((u) => u.isIntersecting).map((u) => u.target.id);
|
|
80
|
-
c(i.some((u) => r.includes(u)));
|
|
81
|
-
}, t), o = /* @__PURE__ */ new Map();
|
|
82
|
-
return r.forEach((n) => {
|
|
83
|
-
const i = document.getElementById(n);
|
|
84
|
-
o.set(n, i), i && a.observe(i);
|
|
1
|
+
import { u as O } from "./useDevice-L83kSsN7.js";
|
|
2
|
+
import * as l from "react";
|
|
3
|
+
import { useState as i, useEffect as b } from "react";
|
|
4
|
+
import { u as f } from "./useDebounce-DyvGYvL9.js";
|
|
5
|
+
import { d as V, a as w, b as C, c as D, e as k } from "./useDebounce-DyvGYvL9.js";
|
|
6
|
+
const d = (s = !1) => {
|
|
7
|
+
const [t, o] = l.useState(s);
|
|
8
|
+
return [t, (u) => o((r) => u ?? !r)];
|
|
9
|
+
}, I = (s, t, o = !1) => {
|
|
10
|
+
const [n, u] = i(o);
|
|
11
|
+
return b(() => {
|
|
12
|
+
const r = new IntersectionObserver((e) => {
|
|
13
|
+
const c = e.filter((a) => a.isIntersecting).map((a) => a.target.id);
|
|
14
|
+
u(c.some((a) => s.includes(a)));
|
|
15
|
+
}, t), m = /* @__PURE__ */ new Map();
|
|
16
|
+
return s.forEach((e) => {
|
|
17
|
+
const c = document.getElementById(e);
|
|
18
|
+
m.set(e, c), c && r.observe(c);
|
|
85
19
|
}), () => {
|
|
86
|
-
|
|
20
|
+
r.disconnect();
|
|
87
21
|
};
|
|
88
|
-
}, [
|
|
89
|
-
},
|
|
22
|
+
}, [s, t]), n;
|
|
23
|
+
}, p = (s) => {
|
|
90
24
|
var t;
|
|
91
|
-
return (t = Object.values(
|
|
92
|
-
},
|
|
93
|
-
control:
|
|
25
|
+
return (t = Object.values(s)) == null ? void 0 : t.reduce((o, n) => o + (n == null ? void 0 : n.progress), 0);
|
|
26
|
+
}, S = ({
|
|
27
|
+
control: s,
|
|
94
28
|
schema: t,
|
|
95
|
-
fields:
|
|
29
|
+
fields: o
|
|
96
30
|
}) => {
|
|
97
|
-
const [
|
|
98
|
-
return
|
|
99
|
-
|
|
100
|
-
(
|
|
31
|
+
const [n, u] = i(o), r = f({ control: s });
|
|
32
|
+
return b(() => {
|
|
33
|
+
u(
|
|
34
|
+
(m) => m == null ? void 0 : m.map((e) => t.shape[e.name].safeParse(r[e.name]).success && r[e.name] && r[e.name] !== "" ? { ...e, progress: e.maxPercent } : { ...e, progress: 0 })
|
|
101
35
|
);
|
|
102
|
-
}, [
|
|
36
|
+
}, [r]), p(n);
|
|
103
37
|
};
|
|
104
38
|
export {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
39
|
+
V as debounce,
|
|
40
|
+
d as useBoolean,
|
|
41
|
+
w as useClickOutside,
|
|
42
|
+
C as useControlledForm,
|
|
43
|
+
D as useDebounceCallback,
|
|
44
|
+
k as useDebounceValue,
|
|
45
|
+
O as useDevice,
|
|
46
|
+
S as useFieldsProgress,
|
|
47
|
+
I as useObserveElements
|
|
114
48
|
};
|
|
115
49
|
//# sourceMappingURL=hooks.js.map
|
package/dist/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../lib/shared/hooks/useBoolean.ts","../node_modules/@hookform/resolvers/dist/resolvers.mjs","../node_modules/@hookform/resolvers/zod/dist/zod.mjs","../lib/shared/hooks/useControlledForm.ts","../lib/shared/hooks/useObserveElements.ts","../lib/shared/hooks/useFieldsProgress.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\ntype UseBooleanReturn = [value: boolean, action: (val?: boolean) => void]\n\nexport const useBoolean = (initialValue = false): UseBooleanReturn => {\n const [value, setValue] = React.useState(initialValue)\n const action = (val?: boolean) => setValue((prevValue) => val ?? !prevValue)\n\n return [value, action]\n}\n","import{get as t,set as e}from\"react-hook-form\";const s=(e,s,o)=>{if(e&&\"reportValidity\"in e){const r=t(o,s);e.setCustomValidity(r&&r.message||\"\"),e.reportValidity()}},o=(t,e)=>{for(const o in e.fields){const r=e.fields[o];r&&r.ref&&\"reportValidity\"in r.ref?s(r.ref,o,t):r.refs&&r.refs.forEach(e=>s(e,o,t))}},r=(s,r)=>{r.shouldUseNativeValidation&&o(s,r);const f={};for(const o in s){const n=t(r.fields,o),a=Object.assign(s[o]||{},{ref:n&&n.ref});if(i(r.names||Object.keys(s),o)){const s=Object.assign({},t(f,o));e(s,\"root\",a),e(f,o,s)}else e(f,o,a)}return f},i=(t,e)=>t.some(t=>t.startsWith(e+\".\"));export{r as toNestErrors,o as validateFieldsNatively};\n//# sourceMappingURL=resolvers.mjs.map\n","import{validateFieldsNatively as r,toNestErrors as e}from\"@hookform/resolvers\";import{appendErrors as o}from\"react-hook-form\";var n=function(r,e){for(var n={};r.length;){var t=r[0],s=t.code,i=t.message,a=t.path.join(\".\");if(!n[a])if(\"unionErrors\"in t){var u=t.unionErrors[0].errors[0];n[a]={message:u.message,type:u.code}}else n[a]={message:i,type:s};if(\"unionErrors\"in t&&t.unionErrors.forEach(function(e){return e.errors.forEach(function(e){return r.push(e)})}),e){var c=n[a].types,f=c&&c[t.code];n[a]=o(a,e,n,s,f?[].concat(f,t.message):t.message)}r.shift()}return n},t=function(o,t,s){return void 0===s&&(s={}),function(i,a,u){try{return Promise.resolve(function(e,n){try{var a=Promise.resolve(o[\"sync\"===s.mode?\"parse\":\"parseAsync\"](i,t)).then(function(e){return u.shouldUseNativeValidation&&r({},u),{errors:{},values:s.raw?i:e}})}catch(r){return n(r)}return a&&a.then?a.then(void 0,n):a}(0,function(r){if(function(r){return Array.isArray(null==r?void 0:r.errors)}(r))return{values:{},errors:e(n(r.errors,!u.shouldUseNativeValidation&&\"all\"===u.criteriaMode),u)};throw r}))}catch(r){return Promise.reject(r)}}};export{t as zodResolver};\n//# sourceMappingURL=zod.module.js.map\n","'use client'\n\nimport { useForm, type UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport { type TypeOf, type ZodTypeAny } from 'zod'\n\ninterface UseControlledForm<T extends ZodTypeAny> extends UseFormProps<TypeOf<T>> {\n schema: T\n}\n\nexport const useControlledForm = <T extends ZodTypeAny>({ schema, ...formConfig }: UseControlledForm<T>) => {\n return useForm({\n ...formConfig,\n resolver: zodResolver(schema)\n })\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\nexport const useObserveElements = (ids: string[], options?: IntersectionObserverInit, initialState = false): boolean => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n const visibleIds = entries.filter((entry) => entry.isIntersecting).map((entry) => entry.target.id)\n setIsVisible(visibleIds.some((id) => ids.includes(id)))\n }, options)\n\n const elementsMap = new Map<string, HTMLElement | null>()\n\n ids.forEach((id) => {\n const element = document.getElementById(id)\n elementsMap.set(id, element)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n observer.disconnect()\n }\n }, [ids, options])\n\n return isVisible\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport { type Control, type FieldValues, type Path, useWatch } from 'react-hook-form'\nimport { type ZodObject, type ZodRawShape } from 'zod'\n\nexport interface ISubscribedField<T extends FieldValues> {\n name: Path<T>\n progress: number\n maxPercent: number\n}\n\ntype TUseFieldsProgress<T extends FieldValues, S extends ZodRawShape> = {\n control: Control<T>\n schema: ZodObject<S>\n fields: ISubscribedField<T>[]\n}\n\nconst formatProgress = <T extends FieldValues>(subscribeFields: ISubscribedField<T>[]) => {\n return Object.values(subscribeFields)?.reduce((acc, value) => {\n return acc + value?.progress\n }, 0)\n}\n\nexport const useFieldsProgress = <T extends FieldValues, S extends ZodRawShape>({\n control,\n schema,\n fields\n}: TUseFieldsProgress<T, S>): number => {\n const [subscribeFields, setSubscribeFields] = useState<ISubscribedField<T>[]>(fields)\n const watchedFields = useWatch({ control })\n\n useEffect(() => {\n setSubscribeFields((prevFields) =>\n prevFields?.map((field) => {\n const fieldSchema = schema.shape[field.name]\n const result = fieldSchema.safeParse(watchedFields[field.name])\n if (result.success && watchedFields[field.name] && watchedFields[field.name] !== '') {\n return { ...field, progress: field.maxPercent }\n } else {\n return { ...field, progress: 0 }\n }\n })\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchedFields])\n\n return formatProgress(subscribeFields)\n}\n"],"names":["useBoolean","initialValue","value","setValue","React","val","prevValue","s","e","o","r","t","f","n","i","a","u","c","useControlledForm","schema","formConfig","useForm","zodResolver","useObserveElements","ids","options","initialState","isVisible","setIsVisible","useState","useEffect","observer","entries","visibleIds","entry","id","elementsMap","element","formatProgress","subscribeFields","_a","acc","useFieldsProgress","control","fields","setSubscribeFields","watchedFields","useWatch","prevFields","field"],"mappings":";;;;;AAMa,MAAAA,IAAa,CAACC,IAAe,OAA4B;AACpE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAM,SAASH,CAAY;AAG9C,SAAA,CAACC,GAFO,CAACG,MAAkBF,EAAS,CAACG,MAAcD,KAAO,CAACC,CAAS,CAEtD;AACvB,GCXqDC,IAAE,CAACC,GAAED,GAAEE,MAAI;AAAC,MAAGD,KAAG,oBAAmBA,GAAE;AAAC,UAAME,IAAEC,EAAEF,GAAEF,CAAC;AAAE,IAAAC,EAAE,kBAAkBE,KAAGA,EAAE,WAAS,EAAE,GAAEF,EAAE,eAAc;AAAA,EAAE;AAAC,GAAEC,IAAE,CAACE,GAAEH,MAAI;AAAC,aAAUC,KAAKD,EAAE,QAAO;AAAC,UAAME,IAAEF,EAAE,OAAOC,CAAC;AAAE,IAAAC,KAAGA,EAAE,OAAK,oBAAmBA,EAAE,MAAIH,EAAEG,EAAE,KAAID,GAAEE,CAAC,IAAED,EAAE,QAAMA,EAAE,KAAK,QAAQ,CAAAF,MAAGD,EAAEC,GAAEC,GAAEE,CAAC,CAAC;AAAA,EAAC;AAAC,GAAED,IAAE,CAACH,GAAEG,MAAI;AAAC,EAAAA,EAAE,6BAA2BD,EAAEF,GAAEG,CAAC;AAAE,QAAME,IAAE,CAAE;AAAC,aAAUH,KAAKF,GAAE;AAAC,UAAMM,IAAEF,EAAED,EAAE,QAAOD,CAAC,GAAE,IAAE,OAAO,OAAOF,EAAEE,CAAC,KAAG,CAAA,GAAG,EAAC,KAAII,KAAGA,EAAE,IAAG,CAAC;AAAE,QAAGC,EAAEJ,EAAE,SAAO,OAAO,KAAKH,CAAC,GAAEE,CAAC,GAAE;AAAC,YAAMF,IAAE,OAAO,OAAO,CAAE,GAACI,EAAEC,GAAEH,CAAC,CAAC;AAAED,MAAAA,EAAED,GAAE,QAAO,CAAC,GAAEC,EAAEI,GAAEH,GAAEF,CAAC;AAAA,IAAC,MAAMC,CAAAA,EAAEI,GAAEH,GAAE,CAAC;AAAA,EAAC;AAAC,SAAOG;AAAC,GAAEE,IAAE,CAACH,GAAEH,MAAIG,EAAE,KAAK,CAAAA,MAAGA,EAAE,WAAWH,IAAE,GAAG,CAAC;ACAvd,IAAIK,IAAE,SAAS,GAAEL,GAAE;AAAC,WAAQK,IAAE,CAAE,GAAC,EAAE,UAAQ;AAAC,QAAIF,IAAE,EAAE,CAAC,GAAEJ,IAAEI,EAAE,MAAKG,IAAEH,EAAE,SAAQI,IAAEJ,EAAE,KAAK,KAAK,GAAG;AAAE,QAAG,CAACE,EAAEE,CAAC,EAAE,KAAG,iBAAgBJ,GAAE;AAAC,UAAIK,IAAEL,EAAE,YAAY,CAAC,EAAE,OAAO,CAAC;AAAE,MAAAE,EAAEE,CAAC,IAAE,EAAC,SAAQC,EAAE,SAAQ,MAAKA,EAAE,KAAI;AAAA,IAAC,MAAM,CAAAH,EAAEE,CAAC,IAAE,EAAC,SAAQD,GAAE,MAAKP,EAAC;AAAE,QAAG,iBAAgBI,KAAGA,EAAE,YAAY,QAAQ,SAASH,GAAE;AAAC,aAAOA,EAAE,OAAO,QAAQ,SAASA,GAAE;AAAC,eAAO,EAAE,KAAKA,CAAC;AAAA,MAAC,CAAC;AAAA,IAAC,CAAC,GAAEA,GAAE;AAAC,UAAIS,IAAEJ,EAAEE,CAAC,EAAE,OAAMH,IAAEK,KAAGA,EAAEN,EAAE,IAAI;AAAE,MAAAE,EAAEE,CAAC,IAAEN,EAAEM,GAAEP,GAAEK,GAAEN,GAAEK,IAAE,CAAE,EAAC,OAAOA,GAAED,EAAE,OAAO,IAAEA,EAAE,OAAO;AAAA,IAAC;AAAC,MAAE,MAAO;AAAA,EAAA;AAAC,SAAOE;AAAC,GAAEF,IAAE,SAASF,GAAE,GAAE,GAAE;AAAC,SAAgB,MAAT,WAAa,IAAE,CAAA,IAAI,SAASK,GAAEC,GAAEC,GAAE;AAAC,QAAG;AAAC,aAAO,QAAQ,QAAQ,SAASR,GAAE,GAAE;AAAC,YAAG;AAAC,cAAIO,IAAE,QAAQ,QAAQN,EAAW,EAAE,SAAX,SAAgB,UAAQ,YAAY,EAAEK,GAAE,CAAC,CAAC,EAAE,KAAK,SAASN,GAAE;AAAC,mBAAOQ,EAAE,6BAA2BN,EAAE,IAAGM,CAAC,GAAE,EAAC,QAAO,CAAE,GAAC,QAAO,EAAE,MAAIF,IAAEN,EAAC;AAAA,UAAC,CAAC;AAAA,QAAC,SAAOE,GAAE;AAAC,iBAAO,EAAEA,CAAC;AAAA,QAAC;AAAC,eAAOK,KAAGA,EAAE,OAAKA,EAAE,KAAK,QAAO,CAAC,IAAEA;AAAA,MAAC,EAAE,GAAE,SAASL,GAAE;AAAC,YAAG,SAASA,GAAE;AAAC,iBAAO,MAAM,QAAcA,KAAN,OAAQ,SAAOA,EAAE,MAAM;AAAA,QAAC,EAAEA,CAAC,EAAE,QAAM,EAAC,QAAO,IAAG,QAAOF,EAAEK,EAAEH,EAAE,QAAO,CAACM,EAAE,6BAAmCA,EAAE,iBAAV,KAAsB,GAAEA,CAAC,EAAC;AAAE,cAAMN;AAAAA,MAAC,CAAC,CAAC;AAAA,IAAC,SAAOA,GAAE;AAAC,aAAO,QAAQ,OAAOA,CAAC;AAAA,IAAC;AAAA,EAAC;AAAC;ACUllC,MAAMQ,IAAoB,CAAuB,EAAE,QAAAC,GAAQ,GAAGC,QAC5DC,EAAQ;AAAA,EACb,GAAGD;AAAA,EACH,UAAUE,EAAYH,CAAM;AAAA,CAC7B,GCVUI,IAAqB,CAACC,GAAeC,GAAoCC,IAAe,OAAmB;AACtH,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAASH,CAAY;AAEvD,SAAAI,EAAU,MAAM;AACd,UAAMC,IAAW,IAAI,qBAAqB,CAACC,MAAY;AACrD,YAAMC,IAAaD,EAAQ,OAAO,CAACE,MAAUA,EAAM,cAAc,EAAE,IAAI,CAACA,MAAUA,EAAM,OAAO,EAAE;AACpF,MAAAN,EAAAK,EAAW,KAAK,CAACE,MAAOX,EAAI,SAASW,CAAE,CAAC,CAAC;AAAA,OACrDV,CAAO,GAEJW,wBAAkB,IAAgC;AAEpD,WAAAZ,EAAA,QAAQ,CAACW,MAAO;AACZ,YAAAE,IAAU,SAAS,eAAeF,CAAE;AAC9B,MAAAC,EAAA,IAAID,GAAIE,CAAO,GACvBA,KACFN,EAAS,QAAQM,CAAO;AAAA,IAC1B,CACD,GAEM,MAAM;AACX,MAAAN,EAAS,WAAW;AAAA,IACtB;AAAA,EAAA,GACC,CAACP,GAAKC,CAAO,CAAC,GAEVE;AACT,GCXMW,IAAiB,CAAwBC,MAA2C;;AACxF,UAAOC,IAAA,OAAO,OAAOD,CAAe,MAA7B,gBAAAC,EAAgC,OAAO,CAACC,GAAKvC,MAC3CuC,KAAMvC,KAAA,gBAAAA,EAAO,WACnB;AACL,GAEawC,IAAoB,CAA+C;AAAA,EAC9E,SAAAC;AAAA,EACA,QAAAxB;AAAA,EACA,QAAAyB;AACF,MAAwC;AACtC,QAAM,CAACL,GAAiBM,CAAkB,IAAIhB,EAAgCe,CAAM,GAC9EE,IAAgBC,EAAS,EAAE,SAAAJ,GAAS;AAE1C,SAAAb,EAAU,MAAM;AACd,IAAAe;AAAA,MAAmB,CAACG,MAClBA,KAAA,gBAAAA,EAAY,IAAI,CAACC,MACK9B,EAAO,MAAM8B,EAAM,IAAI,EAChB,UAAUH,EAAcG,EAAM,IAAI,CAAC,EACnD,WAAWH,EAAcG,EAAM,IAAI,KAAKH,EAAcG,EAAM,IAAI,MAAM,KACxE,EAAE,GAAGA,GAAO,UAAUA,EAAM,WAAW,IAEvC,EAAE,GAAGA,GAAO,UAAU,EAAE;AAAA,IAGrC;AAAA,EAAA,GAEC,CAACH,CAAa,CAAC,GAEXR,EAAeC,CAAe;AACvC;","x_google_ignoreList":[1,2]}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../lib/shared/hooks/useBoolean.ts","../lib/shared/hooks/useObserveElements.ts","../lib/shared/hooks/useFieldsProgress.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\ntype UseBooleanReturn = [value: boolean, action: (val?: boolean) => void]\n\nexport const useBoolean = (initialValue = false): UseBooleanReturn => {\n const [value, setValue] = React.useState(initialValue)\n const action = (val?: boolean) => setValue((prevValue) => val ?? !prevValue)\n\n return [value, action]\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\n\nexport const useObserveElements = (ids: string[], options?: IntersectionObserverInit, initialState = false): boolean => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n const visibleIds = entries.filter((entry) => entry.isIntersecting).map((entry) => entry.target.id)\n setIsVisible(visibleIds.some((id) => ids.includes(id)))\n }, options)\n\n const elementsMap = new Map<string, HTMLElement | null>()\n\n ids.forEach((id) => {\n const element = document.getElementById(id)\n elementsMap.set(id, element)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n observer.disconnect()\n }\n }, [ids, options])\n\n return isVisible\n}\n","'use client'\n\nimport { useEffect, useState } from 'react'\nimport { type Control, type FieldValues, type Path, useWatch } from 'react-hook-form'\nimport { type ZodObject, type ZodRawShape } from 'zod'\n\nexport interface ISubscribedField<T extends FieldValues> {\n name: Path<T>\n progress: number\n maxPercent: number\n}\n\ntype TUseFieldsProgress<T extends FieldValues, S extends ZodRawShape> = {\n control: Control<T>\n schema: ZodObject<S>\n fields: ISubscribedField<T>[]\n}\n\nconst formatProgress = <T extends FieldValues>(subscribeFields: ISubscribedField<T>[]) => {\n return Object.values(subscribeFields)?.reduce((acc, value) => {\n return acc + value?.progress\n }, 0)\n}\n\nexport const useFieldsProgress = <T extends FieldValues, S extends ZodRawShape>({\n control,\n schema,\n fields\n}: TUseFieldsProgress<T, S>): number => {\n const [subscribeFields, setSubscribeFields] = useState<ISubscribedField<T>[]>(fields)\n const watchedFields = useWatch({ control })\n\n useEffect(() => {\n setSubscribeFields((prevFields) =>\n prevFields?.map((field) => {\n const fieldSchema = schema.shape[field.name]\n const result = fieldSchema.safeParse(watchedFields[field.name])\n if (result.success && watchedFields[field.name] && watchedFields[field.name] !== '') {\n return { ...field, progress: field.maxPercent }\n } else {\n return { ...field, progress: 0 }\n }\n })\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchedFields])\n\n return formatProgress(subscribeFields)\n}\n"],"names":["useBoolean","initialValue","value","setValue","React","val","prevValue","useObserveElements","ids","options","initialState","isVisible","setIsVisible","useState","useEffect","observer","entries","visibleIds","entry","id","elementsMap","element","formatProgress","subscribeFields","_a","acc","useFieldsProgress","control","schema","fields","setSubscribeFields","watchedFields","useWatch","prevFields","field"],"mappings":";;;;;AAMa,MAAAA,IAAa,CAACC,IAAe,OAA4B;AACpE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,EAAM,SAASH,CAAY;AAG9C,SAAA,CAACC,GAFO,CAACG,MAAkBF,EAAS,CAACG,MAAcD,KAAO,CAACC,CAAS,CAEtD;AACvB,GCPaC,IAAqB,CAACC,GAAeC,GAAoCC,IAAe,OAAmB;AACtH,QAAM,CAACC,GAAWC,CAAY,IAAIC,EAASH,CAAY;AAEvD,SAAAI,EAAU,MAAM;AACd,UAAMC,IAAW,IAAI,qBAAqB,CAACC,MAAY;AACrD,YAAMC,IAAaD,EAAQ,OAAO,CAACE,MAAUA,EAAM,cAAc,EAAE,IAAI,CAACA,MAAUA,EAAM,OAAO,EAAE;AACpF,MAAAN,EAAAK,EAAW,KAAK,CAACE,MAAOX,EAAI,SAASW,CAAE,CAAC,CAAC;AAAA,OACrDV,CAAO,GAEJW,wBAAkB,IAAgC;AAEpD,WAAAZ,EAAA,QAAQ,CAACW,MAAO;AACZ,YAAAE,IAAU,SAAS,eAAeF,CAAE;AAC9B,MAAAC,EAAA,IAAID,GAAIE,CAAO,GACvBA,KACFN,EAAS,QAAQM,CAAO;AAAA,IAC1B,CACD,GAEM,MAAM;AACX,MAAAN,EAAS,WAAW;AAAA,IACtB;AAAA,EAAA,GACC,CAACP,GAAKC,CAAO,CAAC,GAEVE;AACT,GCXMW,IAAiB,CAAwBC,MAA2C;;AACxF,UAAOC,IAAA,OAAO,OAAOD,CAAe,MAA7B,gBAAAC,EAAgC,OAAO,CAACC,GAAKvB,MAC3CuB,KAAMvB,KAAA,gBAAAA,EAAO,WACnB;AACL,GAEawB,IAAoB,CAA+C;AAAA,EAC9E,SAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AACF,MAAwC;AACtC,QAAM,CAACN,GAAiBO,CAAkB,IAAIjB,EAAgCgB,CAAM,GAC9EE,IAAgBC,EAAS,EAAE,SAAAL,GAAS;AAE1C,SAAAb,EAAU,MAAM;AACd,IAAAgB;AAAA,MAAmB,CAACG,MAClBA,KAAA,gBAAAA,EAAY,IAAI,CAACC,MACKN,EAAO,MAAMM,EAAM,IAAI,EAChB,UAAUH,EAAcG,EAAM,IAAI,CAAC,EACnD,WAAWH,EAAcG,EAAM,IAAI,KAAKH,EAAcG,EAAM,IAAI,MAAM,KACxE,EAAE,GAAGA,GAAO,UAAUA,EAAM,WAAW,IAEvC,EAAE,GAAGA,GAAO,UAAU,EAAE;AAAA,IAGrC;AAAA,EAAA,GAEC,CAACH,CAAa,CAAC,GAEXT,EAAeC,CAAe;AACvC;"}
|