@amoa/hooks 0.1.5 → 0.1.7
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/index.js +1 -0
- package/dist/index.js.map +1 -0
- package/dist/use-click-outside.js +1 -0
- package/dist/use-click-outside.js.map +1 -0
- package/dist/use-client.js +1 -0
- package/dist/use-client.js.map +1 -0
- package/dist/use-debounce.js +1 -0
- package/dist/use-debounce.js.map +1 -0
- package/dist/use-dragging.js +1 -0
- package/dist/use-dragging.js.map +1 -0
- package/dist/use-filters.js +9 -8
- package/dist/use-filters.js.map +1 -0
- package/dist/use-hover.js +1 -0
- package/dist/use-hover.js.map +1 -0
- package/dist/use-intersection.js +1 -0
- package/dist/use-intersection.js.map +1 -0
- package/dist/use-interval.js +1 -0
- package/dist/use-interval.js.map +1 -0
- package/dist/use-lazy-loading.js +4 -3
- package/dist/use-lazy-loading.js.map +1 -0
- package/dist/use-local-storage.js +1 -0
- package/dist/use-local-storage.js.map +1 -0
- package/dist/use-resize.js +1 -0
- package/dist/use-resize.js.map +1 -0
- package/dist/use-session-storage.js +1 -0
- package/dist/use-session-storage.js.map +1 -0
- package/dist/use-skeleton.js +1 -0
- package/dist/use-skeleton.js.map +1 -0
- package/dist/use-summary.js +1 -0
- package/dist/use-summary.js.map +1 -0
- package/dist/use-timeout.js +1 -0
- package/dist/use-timeout.js.map +1 -0
- package/dist/use-tooltip.js +1 -0
- package/dist/use-tooltip.js.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-click-outside.js","sources":["../src/use-click-outside.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useClickOutside = (callback) => {\n const ref = React.useRef(null);\n const callbackRef = React.useRef(callback);\n\n React.useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n\n React.useEffect(() => {\n if (ref.current) {\n const element = ref.current.parentNode;\n\n const handler = (e) => {\n if (element && !element.contains(e.target)) {\n callbackRef.current(e);\n }\n };\n\n document.addEventListener(\"mousedown\", handler);\n document.addEventListener(\"touchstart\", handler);\n\n return () => {\n document.removeEventListener(\"mousedown\", handler);\n document.removeEventListener(\"touchstart\", handler);\n };\n }\n }, []);\n\n return ref;\n};\n\nexport default useClickOutside;\n"],"names":["useClickOutside","callback","ref","React","useRef","callbackRef","useLayoutEffect","current","useEffect","element","parentNode","handler","e","contains","target","document","addEventListener","removeEventListener"],"mappings":";;AAEO,MAAMA,eAAe,GAAIC,QAAQ,IAAK;AAC3C,EAAA,MAAMC,GAAG,GAAGC,KAAK,CAACC,MAAM,CAAC,IAAI,CAAC;AAC9B,EAAA,MAAMC,WAAW,GAAGF,KAAK,CAACC,MAAM,CAACH,QAAQ,CAAC;EAE1CE,KAAK,CAACG,eAAe,CAAC,MAAM;IAC1BD,WAAW,CAACE,OAAO,GAAGN,QAAQ;AAChC,EAAA,CAAC,CAAC;EAEFE,KAAK,CAACK,SAAS,CAAC,MAAM;IACpB,IAAIN,GAAG,CAACK,OAAO,EAAE;AACf,MAAA,MAAME,OAAO,GAAGP,GAAG,CAACK,OAAO,CAACG,UAAU;MAEtC,MAAMC,OAAO,GAAIC,CAAC,IAAK;QACrB,IAAIH,OAAO,IAAI,CAACA,OAAO,CAACI,QAAQ,CAACD,CAAC,CAACE,MAAM,CAAC,EAAE;AAC1CT,UAAAA,WAAW,CAACE,OAAO,CAACK,CAAC,CAAC;AACxB,QAAA;MACF,CAAC;AAEDG,MAAAA,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEL,OAAO,CAAC;AAC/CI,MAAAA,QAAQ,CAACC,gBAAgB,CAAC,YAAY,EAAEL,OAAO,CAAC;AAEhD,MAAA,OAAO,MAAM;AACXI,QAAAA,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEN,OAAO,CAAC;AAClDI,QAAAA,QAAQ,CAACE,mBAAmB,CAAC,YAAY,EAAEN,OAAO,CAAC;MACrD,CAAC;AACH,IAAA;EACF,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAOT,GAAG;AACZ;;;;"}
|
package/dist/use-client.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-client.js","sources":["../src/use-client.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useClient = () => {\n const [client, setClient] = React.useState(false);\n\n React.useEffect(() => {\n setClient(true);\n }, []);\n\n return client;\n};\n\nexport default useClient;\n"],"names":["useClient","client","setClient","React","useState","useEffect"],"mappings":";;AAEO,MAAMA,SAAS,GAAGA,MAAM;EAC7B,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;EAEjDD,KAAK,CAACE,SAAS,CAAC,MAAM;IACpBH,SAAS,CAAC,IAAI,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAOD,MAAM;AACf;;;;"}
|
package/dist/use-debounce.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-debounce.js","sources":["../src/use-debounce.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useDebounce = (callback, time = 300, minimum = 3) => {\n const [value, setValue] = React.useState(\"\");\n const [result, setResult] = React.useState();\n\n const clear = () => setResult();\n\n React.useEffect(() => {\n // setResult();\n if (typeof value !== \"string\" || value.length < minimum) return;\n const delay = setTimeout(async () => {\n const result = await callback(value);\n setResult(result);\n }, time);\n\n return () => clearTimeout(delay);\n }, [value]);\n\n return [result, setValue, clear];\n};\n\nexport default useDebounce;\n"],"names":["useDebounce","callback","time","minimum","value","setValue","React","useState","result","setResult","clear","useEffect","length","delay","setTimeout","clearTimeout"],"mappings":";;AAEO,MAAMA,WAAW,GAAGA,CAACC,QAAQ,EAAEC,IAAI,GAAG,GAAG,EAAEC,OAAO,GAAG,CAAC,KAAK;EAChE,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGH,KAAK,CAACC,QAAQ,EAAE;AAE5C,EAAA,MAAMG,KAAK,GAAGA,MAAMD,SAAS,EAAE;EAE/BH,KAAK,CAACK,SAAS,CAAC,MAAM;AACpB;IACA,IAAI,OAAOP,KAAK,KAAK,QAAQ,IAAIA,KAAK,CAACQ,MAAM,GAAGT,OAAO,EAAE;AACzD,IAAA,MAAMU,KAAK,GAAGC,UAAU,CAAC,YAAY;AACnC,MAAA,MAAMN,MAAM,GAAG,MAAMP,QAAQ,CAACG,KAAK,CAAC;MACpCK,SAAS,CAACD,MAAM,CAAC;IACnB,CAAC,EAAEN,IAAI,CAAC;AAER,IAAA,OAAO,MAAMa,YAAY,CAACF,KAAK,CAAC;AAClC,EAAA,CAAC,EAAE,CAACT,KAAK,CAAC,CAAC;AAEX,EAAA,OAAO,CAACI,MAAM,EAAEH,QAAQ,EAAEK,KAAK,CAAC;AAClC;;;;"}
|
package/dist/use-dragging.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-dragging.js","sources":["../src/use-dragging.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useDragging = (callback, delay, state, layoff) => {\n const savedCallback = React.useRef();\n\n React.useEffect(() => {\n savedCallback.state = callback;\n }, [callback]);\n\n React.useEffect(() => {\n function tick() {\n savedCallback.state();\n }\n if (!layoff && delay !== null && delay !== 0) {\n const interval = setInterval(tick, delay);\n return () => clearInterval(interval);\n }\n }, [state, delay, layoff]);\n};\n\nexport default useDragging;\n"],"names":["useDragging","callback","delay","state","layoff","savedCallback","React","useRef","useEffect","tick","interval","setInterval","clearInterval"],"mappings":";;AAEO,MAAMA,WAAW,GAAGA,CAACC,QAAQ,EAAEC,KAAK,EAAEC,KAAK,EAAEC,MAAM,KAAK;AAC7D,EAAA,MAAMC,aAAa,GAAGC,KAAK,CAACC,MAAM,EAAE;EAEpCD,KAAK,CAACE,SAAS,CAAC,MAAM;IACpBH,aAAa,CAACF,KAAK,GAAGF,QAAQ;AAChC,EAAA,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEdK,KAAK,CAACE,SAAS,CAAC,MAAM;IACpB,SAASC,IAAIA,GAAG;MACdJ,aAAa,CAACF,KAAK,EAAE;AACvB,IAAA;IACA,IAAI,CAACC,MAAM,IAAIF,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,CAAC,EAAE;AAC5C,MAAA,MAAMQ,QAAQ,GAAGC,WAAW,CAACF,IAAI,EAAEP,KAAK,CAAC;AACzC,MAAA,OAAO,MAAMU,aAAa,CAACF,QAAQ,CAAC;AACtC,IAAA;EACF,CAAC,EAAE,CAACP,KAAK,EAAED,KAAK,EAAEE,MAAM,CAAC,CAAC;AAC5B;;;;"}
|
package/dist/use-filters.js
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import * as Filters from '@amoa/forge/filters';
|
|
3
3
|
|
|
4
|
-
const useFilters = (data, filters, sort
|
|
4
|
+
const useFilters = (data, filters, sort, reference) => {
|
|
5
5
|
const [filtered, setFiltered] = React.useState(data);
|
|
6
6
|
const {
|
|
7
|
-
search
|
|
7
|
+
search,
|
|
8
8
|
...other
|
|
9
9
|
} = filters;
|
|
10
10
|
React.useEffect(() => {
|
|
11
|
-
if (!search
|
|
12
|
-
const searched = search(data, search
|
|
13
|
-
const filtered = filter(searched, other, reference);
|
|
14
|
-
const sorted = sort(filtered, sort
|
|
11
|
+
if (!search && !Object.keys(other).length) setFiltered(data);
|
|
12
|
+
const searched = Filters.search(data, search);
|
|
13
|
+
const filtered = Filters.filter(searched, other, reference);
|
|
14
|
+
const sorted = Filters.sort(filtered, sort);
|
|
15
15
|
setFiltered(sorted);
|
|
16
|
-
}, [data, filters, sort
|
|
16
|
+
}, [data, filters, sort]);
|
|
17
17
|
return filtered;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
20
|
export { useFilters as default, useFilters };
|
|
21
|
+
//# sourceMappingURL=use-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-filters.js","sources":["../src/use-filters.js"],"sourcesContent":["import * as React from \"react\";\n\nimport * as Filters from \"@amoa/forge/filters\";\n\nexport const useFilters = (data, filters, sort, reference) => {\n const [filtered, setFiltered] = React.useState(data);\n const { search, ...other } = filters;\n\n React.useEffect(() => {\n if (!search && !Object.keys(other).length) setFiltered(data);\n const searched = Filters.search(data, search);\n const filtered = Filters.filter(searched, other, reference);\n const sorted = Filters.sort(filtered, sort);\n setFiltered(sorted);\n }, [data, filters, sort]);\n\n return filtered;\n};\n\nexport default useFilters;\n"],"names":["useFilters","data","filters","sort","reference","filtered","setFiltered","React","useState","search","other","useEffect","Object","keys","length","searched","Filters","filter","sorted"],"mappings":";;;AAIO,MAAMA,UAAU,GAAGA,CAACC,IAAI,EAAEC,OAAO,EAAEC,IAAI,EAAEC,SAAS,KAAK;EAC5D,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAACP,IAAI,CAAC;EACpD,MAAM;IAAEQ,MAAM;IAAE,GAAGC;AAAM,GAAC,GAAGR,OAAO;EAEpCK,KAAK,CAACI,SAAS,CAAC,MAAM;AACpB,IAAA,IAAI,CAACF,MAAM,IAAI,CAACG,MAAM,CAACC,IAAI,CAACH,KAAK,CAAC,CAACI,MAAM,EAAER,WAAW,CAACL,IAAI,CAAC;IAC5D,MAAMc,QAAQ,GAAGC,OAAO,CAACP,MAAM,CAACR,IAAI,EAAEQ,MAAM,CAAC;IAC7C,MAAMJ,QAAQ,GAAGW,OAAO,CAACC,MAAM,CAACF,QAAQ,EAAEL,KAAK,EAAEN,SAAS,CAAC;IAC3D,MAAMc,MAAM,GAAGF,OAAO,CAACb,IAAI,CAACE,QAAQ,EAAEF,IAAI,CAAC;IAC3CG,WAAW,CAACY,MAAM,CAAC;EACrB,CAAC,EAAE,CAACjB,IAAI,EAAEC,OAAO,EAAEC,IAAI,CAAC,CAAC;AAEzB,EAAA,OAAOE,QAAQ;AACjB;;;;"}
|
package/dist/use-hover.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-hover.js","sources":["../src/use-hover.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useHover = () => {\n const [hovering, setHovering] = React.useState(false);\n const previousNode = React.useRef(null);\n\n const handleMouseEnter = React.useCallback(() => {\n setHovering(true);\n }, []);\n\n const handleMouseLeave = React.useCallback(() => {\n setHovering(false);\n }, []);\n\n const customRef = React.useCallback(\n (node) => {\n if (previousNode.current?.nodeType === Node.ELEMENT_NODE) {\n previousNode.current.removeEventListener(\"mouseenter\", handleMouseEnter);\n previousNode.current.removeEventListener(\"mouseleave\", handleMouseLeave);\n }\n\n if (node?.nodeType === Node.ELEMENT_NODE) {\n node.addEventListener(\"mouseenter\", handleMouseEnter);\n node.addEventListener(\"mouseleave\", handleMouseLeave);\n }\n\n previousNode.current = node;\n },\n [handleMouseEnter, handleMouseLeave]\n );\n\n return [customRef, hovering];\n};\n\nexport default useHover;\n"],"names":["useHover","hovering","setHovering","React","useState","previousNode","useRef","handleMouseEnter","useCallback","handleMouseLeave","customRef","node","current","nodeType","Node","ELEMENT_NODE","removeEventListener","addEventListener"],"mappings":";;AAEO,MAAMA,QAAQ,GAAGA,MAAM;EAC5B,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC,KAAK,CAAC;AACrD,EAAA,MAAMC,YAAY,GAAGF,KAAK,CAACG,MAAM,CAAC,IAAI,CAAC;AAEvC,EAAA,MAAMC,gBAAgB,GAAGJ,KAAK,CAACK,WAAW,CAAC,MAAM;IAC/CN,WAAW,CAAC,IAAI,CAAC;EACnB,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAMO,gBAAgB,GAAGN,KAAK,CAACK,WAAW,CAAC,MAAM;IAC/CN,WAAW,CAAC,KAAK,CAAC;EACpB,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,MAAMQ,SAAS,GAAGP,KAAK,CAACK,WAAW,CAChCG,IAAI,IAAK;IACR,IAAIN,YAAY,CAACO,OAAO,EAAEC,QAAQ,KAAKC,IAAI,CAACC,YAAY,EAAE;MACxDV,YAAY,CAACO,OAAO,CAACI,mBAAmB,CAAC,YAAY,EAAET,gBAAgB,CAAC;MACxEF,YAAY,CAACO,OAAO,CAACI,mBAAmB,CAAC,YAAY,EAAEP,gBAAgB,CAAC;AAC1E,IAAA;AAEA,IAAA,IAAIE,IAAI,EAAEE,QAAQ,KAAKC,IAAI,CAACC,YAAY,EAAE;AACxCJ,MAAAA,IAAI,CAACM,gBAAgB,CAAC,YAAY,EAAEV,gBAAgB,CAAC;AACrDI,MAAAA,IAAI,CAACM,gBAAgB,CAAC,YAAY,EAAER,gBAAgB,CAAC;AACvD,IAAA;IAEAJ,YAAY,CAACO,OAAO,GAAGD,IAAI;AAC7B,EAAA,CAAC,EACD,CAACJ,gBAAgB,EAAEE,gBAAgB,CACrC,CAAC;AAED,EAAA,OAAO,CAACC,SAAS,EAAET,QAAQ,CAAC;AAC9B;;;;"}
|
package/dist/use-intersection.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-intersection.js","sources":["../src/use-intersection.js"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nconst OPTIONS = { threshold: 1, root: null, rootMargin: \"0px\" };\n\nexport const useIntersection = (options = {}) => {\n const [entry, setEntry] = React.useState(null);\n const { threshold, root, rootMargin } = { ...OPTIONS, ...options };\n\n const reference = React.useRef(null);\n\n const ref = React.useCallback(\n (node) => {\n if (reference.current) {\n reference.current.disconnect();\n reference.current = null;\n }\n\n if (node?.nodeType === Node.ELEMENT_NODE) {\n const observer = new IntersectionObserver(\n ([entry]) => {\n setEntry(entry);\n },\n { threshold, root, rootMargin }\n );\n\n observer.observe(node);\n reference.current = observer;\n }\n },\n [threshold, root, rootMargin]\n );\n\n return [ref, entry];\n};\n\nexport default useIntersection;\n"],"names":["OPTIONS","threshold","root","rootMargin","useIntersection","options","entry","setEntry","React","useState","reference","useRef","ref","useCallback","node","current","disconnect","nodeType","Node","ELEMENT_NODE","observer","IntersectionObserver","observe"],"mappings":";;AAIA,MAAMA,OAAO,GAAG;AAAEC,EAAAA,SAAS,EAAE,CAAC;AAAEC,EAAAA,IAAI,EAAE,IAAI;AAAEC,EAAAA,UAAU,EAAE;AAAM,CAAC;AAExD,MAAMC,eAAe,GAAGA,CAACC,OAAO,GAAG,EAAE,KAAK;EAC/C,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;EAC9C,MAAM;IAAER,SAAS;IAAEC,IAAI;AAAEC,IAAAA;AAAW,GAAC,GAAG;AAAE,IAAA,GAAGH,OAAO;IAAE,GAAGK;GAAS;AAElE,EAAA,MAAMK,SAAS,GAAGF,KAAK,CAACG,MAAM,CAAC,IAAI,CAAC;AAEpC,EAAA,MAAMC,GAAG,GAAGJ,KAAK,CAACK,WAAW,CAC1BC,IAAI,IAAK;IACR,IAAIJ,SAAS,CAACK,OAAO,EAAE;AACrBL,MAAAA,SAAS,CAACK,OAAO,CAACC,UAAU,EAAE;MAC9BN,SAAS,CAACK,OAAO,GAAG,IAAI;AAC1B,IAAA;AAEA,IAAA,IAAID,IAAI,EAAEG,QAAQ,KAAKC,IAAI,CAACC,YAAY,EAAE;MACxC,MAAMC,QAAQ,GAAG,IAAIC,oBAAoB,CACvC,CAAC,CAACf,KAAK,CAAC,KAAK;QACXC,QAAQ,CAACD,KAAK,CAAC;AACjB,MAAA,CAAC,EACD;QAAEL,SAAS;QAAEC,IAAI;AAAEC,QAAAA;AAAW,OAChC,CAAC;AAEDiB,MAAAA,QAAQ,CAACE,OAAO,CAACR,IAAI,CAAC;MACtBJ,SAAS,CAACK,OAAO,GAAGK,QAAQ;AAC9B,IAAA;EACF,CAAC,EACD,CAACnB,SAAS,EAAEC,IAAI,EAAEC,UAAU,CAC9B,CAAC;AAED,EAAA,OAAO,CAACS,GAAG,EAAEN,KAAK,CAAC;AACrB;;;;"}
|
package/dist/use-interval.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-interval.js","sources":["../src/use-interval.js"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nexport const useInterval = (callback, delay) => {\n const [id, setId] = React.useState();\n const savedCallback = React.useRef();\n\n const clear = () => {\n clearInterval(id);\n };\n\n React.useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n React.useEffect(() => {\n function tick() {\n savedCallback.current();\n }\n if (delay !== null) {\n const id = setInterval(tick, delay);\n setId(id);\n return () => clearInterval(id);\n }\n }, [delay]);\n\n return [clear];\n};\n\nexport default useInterval;\n"],"names":["useInterval","callback","delay","id","setId","React","useState","savedCallback","useRef","clear","clearInterval","useEffect","current","tick","setInterval"],"mappings":";;MAIaA,WAAW,GAAGA,CAACC,QAAQ,EAAEC,KAAK,KAAK;EAC9C,MAAM,CAACC,EAAE,EAAEC,KAAK,CAAC,GAAGC,KAAK,CAACC,QAAQ,EAAE;AACpC,EAAA,MAAMC,aAAa,GAAGF,KAAK,CAACG,MAAM,EAAE;EAEpC,MAAMC,KAAK,GAAGA,MAAM;IAClBC,aAAa,CAACP,EAAE,CAAC;EACnB,CAAC;EAEDE,KAAK,CAACM,SAAS,CAAC,MAAM;IACpBJ,aAAa,CAACK,OAAO,GAAGX,QAAQ;AAClC,EAAA,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEdI,KAAK,CAACM,SAAS,CAAC,MAAM;IACpB,SAASE,IAAIA,GAAG;MACdN,aAAa,CAACK,OAAO,EAAE;AACzB,IAAA;IACA,IAAIV,KAAK,KAAK,IAAI,EAAE;AAClB,MAAA,MAAMC,EAAE,GAAGW,WAAW,CAACD,IAAI,EAAEX,KAAK,CAAC;MACnCE,KAAK,CAACD,EAAE,CAAC;AACT,MAAA,OAAO,MAAMO,aAAa,CAACP,EAAE,CAAC;AAChC,IAAA;AACF,EAAA,CAAC,EAAE,CAACD,KAAK,CAAC,CAAC;EAEX,OAAO,CAACO,KAAK,CAAC;AAChB;;;;"}
|
package/dist/use-lazy-loading.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import
|
|
2
|
+
import * as Functions from '@amoa/forge/functions';
|
|
3
3
|
|
|
4
4
|
const OPTIONS = {
|
|
5
5
|
rootMargin: "200px 0px",
|
|
6
6
|
threshold: 0.1
|
|
7
7
|
};
|
|
8
8
|
const useLazyLoading = (ref, callback, delay = 300) => {
|
|
9
|
-
const throttle
|
|
9
|
+
const throttle = React.useMemo(() => Functions.throttle(callback, delay), [callback, delay]);
|
|
10
10
|
React.useEffect(() => {
|
|
11
11
|
const node = ref.current;
|
|
12
12
|
if (!node) return;
|
|
13
|
-
const observer = new IntersectionObserver(([e]) => e.isIntersecting && throttle
|
|
13
|
+
const observer = new IntersectionObserver(([e]) => e.isIntersecting && throttle(), OPTIONS);
|
|
14
14
|
observer.observe(node);
|
|
15
15
|
return () => observer.disconnect();
|
|
16
16
|
}, [ref.current, callback]);
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
export { useLazyLoading as default, useLazyLoading };
|
|
20
|
+
//# sourceMappingURL=use-lazy-loading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-lazy-loading.js","sources":["../src/use-lazy-loading.js"],"sourcesContent":["import * as React from \"react\";\n\nimport * as Functions from \"@amoa/forge/functions\";\n\nconst OPTIONS = {\n rootMargin: \"200px 0px\",\n threshold: 0.1\n};\n\nexport const useLazyLoading = (ref, callback, delay = 300) => {\n const throttle = React.useMemo(() => Functions.throttle(callback, delay), [callback, delay]);\n\n React.useEffect(() => {\n const node = ref.current;\n if (!node) return;\n\n const observer = new IntersectionObserver(([e]) => e.isIntersecting && throttle(), OPTIONS);\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref.current, callback]);\n};\n\nexport default useLazyLoading;\n"],"names":["OPTIONS","rootMargin","threshold","useLazyLoading","ref","callback","delay","throttle","React","useMemo","Functions","useEffect","node","current","observer","IntersectionObserver","e","isIntersecting","observe","disconnect"],"mappings":";;;AAIA,MAAMA,OAAO,GAAG;AACdC,EAAAA,UAAU,EAAE,WAAW;AACvBC,EAAAA,SAAS,EAAE;AACb,CAAC;AAEM,MAAMC,cAAc,GAAGA,CAACC,GAAG,EAAEC,QAAQ,EAAEC,KAAK,GAAG,GAAG,KAAK;EAC5D,MAAMC,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAAC,MAAMC,SAAS,CAACH,QAAQ,CAACF,QAAQ,EAAEC,KAAK,CAAC,EAAE,CAACD,QAAQ,EAAEC,KAAK,CAAC,CAAC;EAE5FE,KAAK,CAACG,SAAS,CAAC,MAAM;AACpB,IAAA,MAAMC,IAAI,GAAGR,GAAG,CAACS,OAAO;IACxB,IAAI,CAACD,IAAI,EAAE;AAEX,IAAA,MAAME,QAAQ,GAAG,IAAIC,oBAAoB,CAAC,CAAC,CAACC,CAAC,CAAC,KAAKA,CAAC,CAACC,cAAc,IAAIV,QAAQ,EAAE,EAAEP,OAAO,CAAC;AAC3Fc,IAAAA,QAAQ,CAACI,OAAO,CAACN,IAAI,CAAC;AACtB,IAAA,OAAO,MAAME,QAAQ,CAACK,UAAU,EAAE;EACpC,CAAC,EAAE,CAACf,GAAG,CAACS,OAAO,EAAER,QAAQ,CAAC,CAAC;AAC7B;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-local-storage.js","sources":["../src/use-local-storage.js"],"sourcesContent":["import { useState, useEffect } from \"react\";\n\nexport const useLocalStorage = (key, initialValue, session = false) => {\n const [storedValue, setStoredValue] = useState(() => {\n if (typeof window !== \"undefined\") {\n try {\n const item = session ? window.sessionStorage.getItem(key) : window.localStorage.getItem(key);\n return item !== null ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.info(error);\n return initialValue;\n }\n }\n });\n\n const setValue = (value) => {\n if (typeof window === \"undefined\") return [];\n try {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n if (valueToStore !== undefined) {\n const _value = JSON.stringify(valueToStore);\n if (session) {\n window.sessionStorage.setItem(key, _value);\n } else {\n window.localStorage.setItem(key, _value);\n }\n } else {\n if (session) {\n window.sessionStorage.removeItem(key);\n } else {\n window.localStorage.removeItem(key);\n }\n }\n window.dispatchEvent(new Event(key));\n setStoredValue(valueToStore);\n } catch (error) {\n console.info(error);\n }\n };\n\n useEffect(() => {\n const check = () => {\n const value = window.localStorage.getItem(key);\n if (storedValue !== value) setStoredValue(value);\n };\n window.addEventListener(key, check);\n return () => window.removeEventListener(key, check);\n }, []);\n\n return [storedValue, setValue];\n};\n\nexport default useLocalStorage;\n"],"names":["useLocalStorage","key","initialValue","session","storedValue","setStoredValue","useState","window","item","sessionStorage","getItem","localStorage","JSON","parse","error","console","info","setValue","value","valueToStore","Function","undefined","_value","stringify","setItem","removeItem","dispatchEvent","Event","useEffect","check","addEventListener","removeEventListener"],"mappings":";;AAEO,MAAMA,eAAe,GAAGA,CAACC,GAAG,EAAEC,YAAY,EAAEC,OAAO,GAAG,KAAK,KAAK;EACrE,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,QAAQ,CAAC,MAAM;AACnD,IAAA,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;MACjC,IAAI;QACF,MAAMC,IAAI,GAAGL,OAAO,GAAGI,MAAM,CAACE,cAAc,CAACC,OAAO,CAACT,GAAG,CAAC,GAAGM,MAAM,CAACI,YAAY,CAACD,OAAO,CAACT,GAAG,CAAC;QAC5F,OAAOO,IAAI,KAAK,IAAI,GAAGI,IAAI,CAACC,KAAK,CAACL,IAAI,CAAC,GAAGN,YAAY;MACxD,CAAC,CAAC,OAAOY,KAAK,EAAE;AACdC,QAAAA,OAAO,CAACC,IAAI,CAACF,KAAK,CAAC;AACnB,QAAA,OAAOZ,YAAY;AACrB,MAAA;AACF,IAAA;AACF,EAAA,CAAC,CAAC;EAEF,MAAMe,QAAQ,GAAIC,KAAK,IAAK;AAC1B,IAAA,IAAI,OAAOX,MAAM,KAAK,WAAW,EAAE,OAAO,EAAE;IAC5C,IAAI;MACF,MAAMY,YAAY,GAAGD,KAAK,YAAYE,QAAQ,GAAGF,KAAK,CAACd,WAAW,CAAC,GAAGc,KAAK;MAC3E,IAAIC,YAAY,KAAKE,SAAS,EAAE;AAC9B,QAAA,MAAMC,MAAM,GAAGV,IAAI,CAACW,SAAS,CAACJ,YAAY,CAAC;AAC3C,QAAA,IAAIhB,OAAO,EAAE;UACXI,MAAM,CAACE,cAAc,CAACe,OAAO,CAACvB,GAAG,EAAEqB,MAAM,CAAC;AAC5C,QAAA,CAAC,MAAM;UACLf,MAAM,CAACI,YAAY,CAACa,OAAO,CAACvB,GAAG,EAAEqB,MAAM,CAAC;AAC1C,QAAA;AACF,MAAA,CAAC,MAAM;AACL,QAAA,IAAInB,OAAO,EAAE;AACXI,UAAAA,MAAM,CAACE,cAAc,CAACgB,UAAU,CAACxB,GAAG,CAAC;AACvC,QAAA,CAAC,MAAM;AACLM,UAAAA,MAAM,CAACI,YAAY,CAACc,UAAU,CAACxB,GAAG,CAAC;AACrC,QAAA;AACF,MAAA;MACAM,MAAM,CAACmB,aAAa,CAAC,IAAIC,KAAK,CAAC1B,GAAG,CAAC,CAAC;MACpCI,cAAc,CAACc,YAAY,CAAC;IAC9B,CAAC,CAAC,OAAOL,KAAK,EAAE;AACdC,MAAAA,OAAO,CAACC,IAAI,CAACF,KAAK,CAAC;AACrB,IAAA;EACF,CAAC;AAEDc,EAAAA,SAAS,CAAC,MAAM;IACd,MAAMC,KAAK,GAAGA,MAAM;MAClB,MAAMX,KAAK,GAAGX,MAAM,CAACI,YAAY,CAACD,OAAO,CAACT,GAAG,CAAC;AAC9C,MAAA,IAAIG,WAAW,KAAKc,KAAK,EAAEb,cAAc,CAACa,KAAK,CAAC;IAClD,CAAC;AACDX,IAAAA,MAAM,CAACuB,gBAAgB,CAAC7B,GAAG,EAAE4B,KAAK,CAAC;IACnC,OAAO,MAAMtB,MAAM,CAACwB,mBAAmB,CAAC9B,GAAG,EAAE4B,KAAK,CAAC;EACrD,CAAC,EAAE,EAAE,CAAC;AAEN,EAAA,OAAO,CAACzB,WAAW,EAAEa,QAAQ,CAAC;AAChC;;;;"}
|
package/dist/use-resize.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-resize.js","sources":["../src/use-resize.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useResize = () => {\n const [size, setSize] = React.useState({\n width: null,\n height: null\n });\n\n const resize = React.useCallback(() => {\n setSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }, []);\n\n React.useLayoutEffect(() => {\n resize();\n window.addEventListener(\"resize\", resize);\n\n return () => {\n window.removeEventListener(\"resize\", resize);\n };\n }, [resize]);\n\n return size;\n};\n\nexport default useResize;\n"],"names":["useResize","size","setSize","React","useState","width","height","resize","useCallback","window","innerWidth","innerHeight","useLayoutEffect","addEventListener","removeEventListener"],"mappings":";;AAEO,MAAMA,SAAS,GAAGA,MAAM;EAC7B,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC;AACrCC,IAAAA,KAAK,EAAE,IAAI;AACXC,IAAAA,MAAM,EAAE;AACV,GAAC,CAAC;AAEF,EAAA,MAAMC,MAAM,GAAGJ,KAAK,CAACK,WAAW,CAAC,MAAM;AACrCN,IAAAA,OAAO,CAAC;MACNG,KAAK,EAAEI,MAAM,CAACC,UAAU;MACxBJ,MAAM,EAAEG,MAAM,CAACE;AACjB,KAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAENR,KAAK,CAACS,eAAe,CAAC,MAAM;AAC1BL,IAAAA,MAAM,EAAE;AACRE,IAAAA,MAAM,CAACI,gBAAgB,CAAC,QAAQ,EAAEN,MAAM,CAAC;AAEzC,IAAA,OAAO,MAAM;AACXE,MAAAA,MAAM,CAACK,mBAAmB,CAAC,QAAQ,EAAEP,MAAM,CAAC;IAC9C,CAAC;AACH,EAAA,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;AAEZ,EAAA,OAAON,IAAI;AACb;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-session-storage.js","sources":["../src/use-session-storage.js"],"sourcesContent":["import * as React from \"react\";\n\nconst dispatchEvent = (key, newValue) => {\n window.dispatchEvent(new StorageEvent(\"storage\", { key, newValue }));\n};\n\nconst setSessionStorageItem = (key, value) => {\n const stringifiedValue = JSON.stringify(value);\n window.sessionStorage.setItem(key, stringifiedValue);\n dispatchEvent(key, stringifiedValue);\n};\n\nconst removeSessionStorageItem = (key) => {\n window.sessionStorage.removeItem(key);\n dispatchEvent(key, null);\n};\n\nconst getSessionStorageItem = (key) => {\n return window.sessionStorage.getItem(key);\n};\n\nconst useSessionStorageSubscribe = (callback) => {\n window.addEventListener(\"storage\", callback);\n return () => window.removeEventListener(\"storage\", callback);\n};\n\nconst getSessionStorageServerSnapshot = () => {\n // throw Error(\"Le Session Storage n'est utilisable que côté client.\");\n};\n\nexport const useSessionStorage = (key, initialValue, fallback) => {\n const getClientSnapshot = () => getSessionStorageItem(key);\n\n const getServerSnapshot = fallback !== undefined ? () => fallback : undefined;\n\n const getSnapshot = typeof window !== \"undefined\" ? getClientSnapshot : getServerSnapshot;\n\n const store = React.useSyncExternalStore(useSessionStorageSubscribe, getSnapshot, getSessionStorageServerSnapshot);\n\n const setState = React.useCallback(\n (callback) => {\n try {\n const nextState = typeof callback === \"function\" ? callback(JSON.parse(store)) : callback;\n\n if (nextState === undefined || nextState === null) {\n removeSessionStorageItem(key);\n } else {\n setSessionStorageItem(key, nextState);\n }\n } catch (e) {\n console.warn(e);\n }\n },\n [key, store]\n );\n\n React.useEffect(() => {\n if (getSessionStorageItem(key) === null && typeof initialValue !== \"undefined\") {\n setSessionStorageItem(key, initialValue);\n }\n }, [key, initialValue]);\n\n return [store ? JSON.parse(store) : initialValue, setState];\n};\n\nexport default useSessionStorage;\n"],"names":["dispatchEvent","key","newValue","window","StorageEvent","setSessionStorageItem","value","stringifiedValue","JSON","stringify","sessionStorage","setItem","removeSessionStorageItem","removeItem","getSessionStorageItem","getItem","useSessionStorageSubscribe","callback","addEventListener","removeEventListener","getSessionStorageServerSnapshot","useSessionStorage","initialValue","fallback","getClientSnapshot","getServerSnapshot","undefined","getSnapshot","store","React","useSyncExternalStore","setState","useCallback","nextState","parse","e","console","warn","useEffect"],"mappings":"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"}
|
package/dist/use-skeleton.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-skeleton.js","sources":["../src/use-skeleton.js"],"sourcesContent":["import * as React from \"react\";\n\nconst OBSERVER = { childList: true, subtree: true, characterData: true };\n\nconst leaves = (node) => {\n if (!node) return [];\n\n const { children } = node;\n const list = Array.from(children).filter((child) => child.tagName !== \"svg\" || child?.remove());\n const { length } = list;\n\n if (length) return list.reduce((acc, node) => [...acc, ...leaves(node)], []);\n\n const width = 80; // (Math.ceil(Math.random() * 4) + 4) * 10;\n const min = 50; // (Math.ceil(Math.random() * 3) + 4) * 10;\n\n if (node.style.backgroundColor !== null) node.style.backgroundColor = \"var(--light-background)\";\n if (node.style.borderRadius === \"\") node.style.borderRadius = \"4px\";\n\n node.style.display = \"flex\";\n node.style.flexDirection = \"column\";\n node.style.borderColor = \"transparent\";\n node.style.gap = \"0.5px\";\n node.innerHTML = `<span style='min-width:${min}px;width:${width}%;height:14.5px;margin:0.5px 0;background-color:var(--light-background);border-radius:4px;' />`;\n node.parentNode.style.gap = \"1.5px\";\n\n return [node];\n};\n\nconst excarnate = (element) => {\n Array.from(element).forEach((child) => {\n child.style.borderColor = \"transparent\";\n child.style.filter = \"unset\";\n child.style.cursor = \"default\";\n child.style.pointerEvents = \"none\";\n child.classList.add(\"skeleton\");\n });\n};\n\nexport const useSkeleton = (ref) => {\n React.useEffect(() => {\n if (!ref.current) return;\n\n excarnate(ref.current.children);\n leaves(ref.current);\n\n const observer = new MutationObserver((mutations) => {\n observer.disconnect();\n mutations.forEach(({ addedNodes = [], type, target }) => {\n const parent = target.parentElement;\n addedNodes.forEach?.((node) => {\n if (node.nodeType === 1) {\n excarnate([node]);\n leaves(node);\n }\n });\n if (type === \"characterData\") {\n excarnate([parent]);\n leaves(parent);\n }\n });\n observer.observe(ref.current, OBSERVER);\n });\n\n observer.observe(ref.current, OBSERVER);\n\n return () => observer.disconnect();\n }, [ref.current]);\n};\n\nexport default useSkeleton;\n"],"names":["OBSERVER","childList","subtree","characterData","leaves","node","children","list","Array","from","filter","child","tagName","remove","length","reduce","acc","width","min","style","backgroundColor","borderRadius","display","flexDirection","borderColor","gap","innerHTML","parentNode","excarnate","element","forEach","cursor","pointerEvents","classList","add","useSkeleton","ref","React","useEffect","current","observer","MutationObserver","mutations","disconnect","addedNodes","type","target","parent","parentElement","nodeType","observe"],"mappings":"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"}
|
package/dist/use-summary.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-summary.js","sources":["../src/use-summary.js"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\n\nconst surface = ({ width, height }) => width * height;\n\nexport const useSummary = (elements = [], options = {}, target) => {\n const { threshold = 1, root = null, rootMargin = \"0px\" } = options;\n const [visible, setVisible] = React.useState(null);\n const reference = React.useRef(null);\n\n React.useEffect(() => {\n if (!elements.length) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n const [first] = entries.sort((a, b) => surface(b.intersectionRect) - surface(a.intersectionRect));\n if (first?.intersectionRect.height > 0) {\n setVisible(target(first));\n }\n },\n { threshold, root, rootMargin }\n );\n\n reference.current?.disconnect();\n\n elements.forEach((element) => observer.observe(element));\n reference.current = observer;\n\n return () => observer.disconnect();\n }, [elements, threshold, root, rootMargin, target]);\n\n return visible;\n};\n\nexport default useSummary;\n"],"names":["surface","width","height","useSummary","elements","options","target","threshold","root","rootMargin","visible","setVisible","React","useState","reference","useRef","useEffect","length","observer","IntersectionObserver","entries","first","sort","a","b","intersectionRect","current","disconnect","forEach","element","observe"],"mappings":";;AAIA,MAAMA,OAAO,GAAGA,CAAC;EAAEC,KAAK;AAAEC,EAAAA;AAAO,CAAC,KAAKD,KAAK,GAAGC,MAAM;AAE9C,MAAMC,UAAU,GAAGA,CAACC,QAAQ,GAAG,EAAE,EAAEC,OAAO,GAAG,EAAE,EAAEC,MAAM,KAAK;EACjE,MAAM;AAAEC,IAAAA,SAAS,GAAG,CAAC;AAAEC,IAAAA,IAAI,GAAG,IAAI;AAAEC,IAAAA,UAAU,GAAG;AAAM,GAAC,GAAGJ,OAAO;EAClE,MAAM,CAACK,OAAO,EAAEC,UAAU,CAAC,GAAGC,KAAK,CAACC,QAAQ,CAAC,IAAI,CAAC;AAClD,EAAA,MAAMC,SAAS,GAAGF,KAAK,CAACG,MAAM,CAAC,IAAI,CAAC;EAEpCH,KAAK,CAACI,SAAS,CAAC,MAAM;AACpB,IAAA,IAAI,CAACZ,QAAQ,CAACa,MAAM,EAAE;AAEtB,IAAA,MAAMC,QAAQ,GAAG,IAAIC,oBAAoB,CACtCC,OAAO,IAAK;MACX,MAAM,CAACC,KAAK,CAAC,GAAGD,OAAO,CAACE,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKxB,OAAO,CAACwB,CAAC,CAACC,gBAAgB,CAAC,GAAGzB,OAAO,CAACuB,CAAC,CAACE,gBAAgB,CAAC,CAAC;AACjG,MAAA,IAAIJ,KAAK,EAAEI,gBAAgB,CAACvB,MAAM,GAAG,CAAC,EAAE;AACtCS,QAAAA,UAAU,CAACL,MAAM,CAACe,KAAK,CAAC,CAAC;AAC3B,MAAA;AACF,IAAA,CAAC,EACD;MAAEd,SAAS;MAAEC,IAAI;AAAEC,MAAAA;AAAW,KAChC,CAAC;AAEDK,IAAAA,SAAS,CAACY,OAAO,EAAEC,UAAU,EAAE;IAE/BvB,QAAQ,CAACwB,OAAO,CAAEC,OAAO,IAAKX,QAAQ,CAACY,OAAO,CAACD,OAAO,CAAC,CAAC;IACxDf,SAAS,CAACY,OAAO,GAAGR,QAAQ;AAE5B,IAAA,OAAO,MAAMA,QAAQ,CAACS,UAAU,EAAE;AACpC,EAAA,CAAC,EAAE,CAACvB,QAAQ,EAAEG,SAAS,EAAEC,IAAI,EAAEC,UAAU,EAAEH,MAAM,CAAC,CAAC;AAEnD,EAAA,OAAOI,OAAO;AAChB;;;;"}
|
package/dist/use-timeout.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-timeout.js","sources":["../src/use-timeout.js"],"sourcesContent":["import * as React from \"react\";\n\nexport const useTimeout = (callback, time) => {\n const id = React.useRef(null);\n\n const clear = React.useCallback(() => {\n window.clearTimeout(id.current);\n }, []);\n\n React.useEffect(() => {\n id.current = window.setTimeout(callback, time);\n return clear;\n }, [time, clear]);\n\n return clear;\n};\n\nexport default useTimeout;\n"],"names":["useTimeout","callback","time","id","React","useRef","clear","useCallback","window","clearTimeout","current","useEffect","setTimeout"],"mappings":";;MAEaA,UAAU,GAAGA,CAACC,QAAQ,EAAEC,IAAI,KAAK;AAC5C,EAAA,MAAMC,EAAE,GAAGC,KAAK,CAACC,MAAM,CAAC,IAAI,CAAC;AAE7B,EAAA,MAAMC,KAAK,GAAGF,KAAK,CAACG,WAAW,CAAC,MAAM;AACpCC,IAAAA,MAAM,CAACC,YAAY,CAACN,EAAE,CAACO,OAAO,CAAC;EACjC,CAAC,EAAE,EAAE,CAAC;EAENN,KAAK,CAACO,SAAS,CAAC,MAAM;IACpBR,EAAE,CAACO,OAAO,GAAGF,MAAM,CAACI,UAAU,CAACX,QAAQ,EAAEC,IAAI,CAAC;AAC9C,IAAA,OAAOI,KAAK;AACd,EAAA,CAAC,EAAE,CAACJ,IAAI,EAAEI,KAAK,CAAC,CAAC;AAEjB,EAAA,OAAOA,KAAK;AACd;;;;"}
|
package/dist/use-tooltip.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-tooltip.js","sources":["../src/use-tooltip.js"],"sourcesContent":["import * as React from \"react\";\n\nconst limits = {\n top: 60,\n bottom: 60,\n right: 60,\n left: 60\n};\n\nexport const useTooltip = (item, text, position) => {\n React.useEffect(() => {\n if (text && item.current) {\n const { top, left, bottom, right } = item.current.getBoundingClientRect();\n item.current.dataset.tooltip = text;\n if (position) item.current.dataset[position] = \"\";\n if (top < limits.top) item.current.dataset.tooltipTop = \"\";\n if (window.innerHeight - bottom < limits.bottom) item.current.dataset.tooltipBottom = \"\";\n if (window.innerWidth - right < limits.right) item.current.dataset.tooltipRight = \"\";\n if (left < limits.left) item.current.dataset.tooltipLeft = \"\";\n }\n }, [item, text]);\n};\n\nexport default useTooltip;\n"],"names":["limits","top","bottom","right","left","useTooltip","item","text","position","React","useEffect","current","getBoundingClientRect","dataset","tooltip","tooltipTop","window","innerHeight","tooltipBottom","innerWidth","tooltipRight","tooltipLeft"],"mappings":";;AAEA,MAAMA,MAAM,GAAG;AACbC,EAAAA,GAAG,EAAE,EAAE;AACPC,EAAAA,MAAM,EAAE,EAAE;AACVC,EAAAA,KAAK,EAAE,EAAE;AACTC,EAAAA,IAAI,EAAE;AACR,CAAC;AAEM,MAAMC,UAAU,GAAGA,CAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,KAAK;EAClDC,KAAK,CAACC,SAAS,CAAC,MAAM;AACpB,IAAA,IAAIH,IAAI,IAAID,IAAI,CAACK,OAAO,EAAE;MACxB,MAAM;QAAEV,GAAG;QAAEG,IAAI;QAAEF,MAAM;AAAEC,QAAAA;AAAM,OAAC,GAAGG,IAAI,CAACK,OAAO,CAACC,qBAAqB,EAAE;AACzEN,MAAAA,IAAI,CAACK,OAAO,CAACE,OAAO,CAACC,OAAO,GAAGP,IAAI;MACnC,IAAIC,QAAQ,EAAEF,IAAI,CAACK,OAAO,CAACE,OAAO,CAACL,QAAQ,CAAC,GAAG,EAAE;AACjD,MAAA,IAAIP,GAAG,GAAGD,MAAM,CAACC,GAAG,EAAEK,IAAI,CAACK,OAAO,CAACE,OAAO,CAACE,UAAU,GAAG,EAAE;AAC1D,MAAA,IAAIC,MAAM,CAACC,WAAW,GAAGf,MAAM,GAAGF,MAAM,CAACE,MAAM,EAAEI,IAAI,CAACK,OAAO,CAACE,OAAO,CAACK,aAAa,GAAG,EAAE;AACxF,MAAA,IAAIF,MAAM,CAACG,UAAU,GAAGhB,KAAK,GAAGH,MAAM,CAACG,KAAK,EAAEG,IAAI,CAACK,OAAO,CAACE,OAAO,CAACO,YAAY,GAAG,EAAE;AACpF,MAAA,IAAIhB,IAAI,GAAGJ,MAAM,CAACI,IAAI,EAAEE,IAAI,CAACK,OAAO,CAACE,OAAO,CAACQ,WAAW,GAAG,EAAE;AAC/D,IAAA;AACF,EAAA,CAAC,EAAE,CAACf,IAAI,EAAEC,IAAI,CAAC,CAAC;AAClB;;;;"}
|