@entur/utils 0.9.2 → 0.9.4
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/useWindowDimensions.d.ts +5 -3
- package/dist/utils.cjs.development.js +12 -7
- package/dist/utils.cjs.development.js.map +1 -1
- package/dist/utils.cjs.production.min.js +1 -1
- package/dist/utils.cjs.production.min.js.map +1 -1
- package/dist/utils.esm.js +12 -7
- package/dist/utils.esm.js.map +1 -1
- package/package.json +2 -2
|
@@ -116,6 +116,10 @@ var useOnEscape = function useOnEscape(ref, handler) {
|
|
|
116
116
|
|
|
117
117
|
// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs
|
|
118
118
|
var getWindowDimensions = function getWindowDimensions() {
|
|
119
|
+
if (typeof window === 'undefined') return {
|
|
120
|
+
width: undefined,
|
|
121
|
+
height: undefined
|
|
122
|
+
};
|
|
119
123
|
var _window = window,
|
|
120
124
|
width = _window.innerWidth,
|
|
121
125
|
height = _window.innerHeight;
|
|
@@ -132,10 +136,12 @@ var useWindowDimensions = function useWindowDimensions() {
|
|
|
132
136
|
function handleResize() {
|
|
133
137
|
setWindowDimensions(getWindowDimensions());
|
|
134
138
|
}
|
|
135
|
-
window
|
|
136
|
-
|
|
137
|
-
return
|
|
138
|
-
|
|
139
|
+
if (typeof window !== 'undefined') {
|
|
140
|
+
window.addEventListener('resize', handleResize);
|
|
141
|
+
return function () {
|
|
142
|
+
return window.removeEventListener('resize', handleResize);
|
|
143
|
+
};
|
|
144
|
+
}
|
|
139
145
|
}, []);
|
|
140
146
|
return windowDimensions;
|
|
141
147
|
};
|
|
@@ -161,9 +167,8 @@ function checkAndWarn() {
|
|
|
161
167
|
}
|
|
162
168
|
/** Warns the developer if they have forgotten to include styles */
|
|
163
169
|
function warnAboutMissingStyles() {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
if (typeof window === 'undefined' || ((_process = process) == null ? void 0 : (_process$env = _process.env) == null ? void 0 : _process$env.JEST_WORKER_ID) !== undefined) {
|
|
170
|
+
// We skip this check in production, and when we build static sites
|
|
171
|
+
if (typeof window === 'undefined') {
|
|
167
172
|
return;
|
|
168
173
|
}
|
|
169
174
|
// First, let's clear earlier calls to setTimeout
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs.development.js","sources":["../src/debounce.ts","../src/useRandomId.ts","../src/useOnMount.ts","../src/mergeRefs.ts","../src/useForceUpdate.ts","../src/useOnClickOutside.ts","../src/useOnEscape.ts","../src/useWindowDimensions.ts","../src/ConditionalWrapper.tsx","../src/warnAboutMissingStyles.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => any>(\n fn: T,\n delay: number,\n): (...args: Parameters<T>) => void {\n let id: any;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => fn(...args), delay);\n };\n}\n","import React from 'react';\n\nexport const useRandomId = (prefix?: string): string => {\n const ref = React.useRef(String(Math.random()).substring(2));\n return `${prefix}-${ref.current}`;\n};\n","import React from 'react';\n\nexport function useOnMount(callback: () => void): void {\n const hasRun = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!hasRun.current) {\n hasRun.current = true;\n callback();\n }\n }, [callback]);\n}\n","export const mergeRefs = <T extends HTMLElement>(\n ...refs: (React.MutableRefObject<T> | React.ForwardedRef<T> | undefined)[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import { useState } from 'react';\n\nexport const useForceUpdate = () => {\n const [_, setValue] = useState(0);\n return () => setValue(value => value + 1);\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnClickOutside = (\n refs: React.RefObject<HTMLDivElement>[],\n handler: () => void,\n) => {\n useEffect(() => {\n const listener = (event: Event) => {\n // If the ref contains the clicked element, then the click is not outside\n if (refs.some(ref => elementContainsEventTarget(ref.current, event))) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [refs, handler]);\n};\n\nconst elementContainsEventTarget = (\n element: HTMLElement | null,\n event: Event,\n) => {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find(target => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnEscape = (\n ref: React.RefObject<HTMLElement>,\n handler: () => void,\n) => {\n useEffect(() => {\n const runIfKeyIsEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') handler();\n };\n\n const currentRef = ref.current;\n currentRef?.addEventListener('keydown', runIfKeyIsEscape);\n\n return () => currentRef?.removeEventListener('keydown', runIfKeyIsEscape);\n }, [ref, handler]);\n};\n","// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs\nimport { useState, useEffect } from 'react';\n\nconst getWindowDimensions = () => {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions(),\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n};\n","import React from 'react';\n\ntype ConditionalWrapperType = {\n condition: boolean;\n wrapper: any;\n children: any;\n};\n\nexport const ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: ConditionalWrapperType) => (condition ? wrapper(children) : <>{children}</>);\n","import warning from 'tiny-warning';\n\nconst packagesToCheck: Set<string> = new Set();\nlet checkTimeoutId: number;\n\nfunction checkAndWarn() {\n const missingImports = Array.from(packagesToCheck)\n .filter(\n namespace =>\n parseInt(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(`--eds-${namespace}`),\n ) !== 1,\n )\n .sort();\n\n // Finally, we warn about those pesky imports\n const singleMissingImport = missingImports.length === 1;\n warning(\n missingImports.length === 0,\n `You are missing ${\n singleMissingImport\n ? 'a CSS import'\n : `${missingImports.length} CSS imports`\n }!\n\nPlease add the following CSS import${\n singleMissingImport ? '' : 's'\n } somewhere in your app:\n\n${missingImports\n .map(namespace => `\\t@import '@entur/${namespace}/dist/styles.css';`)\n .join('\\n')}\n`,\n );\n}\n\n/** Warns the developer if they have forgotten to include styles */\nexport function warnAboutMissingStyles(...namespaces: string[]): void {\n // We skip this check in production, jest, and when we build static sites\n if (\n !__DEV__ ||\n typeof window === 'undefined' ||\n process?.env?.JEST_WORKER_ID !== undefined\n ) {\n return;\n }\n // First, let's clear earlier calls to setTimeout\n window.clearTimeout(checkTimeoutId);\n\n // Next, let's add all namespaces to the set of packages to check\n namespaces.forEach(namespace => packagesToCheck.add(namespace));\n\n // Finally. let's trigger a run of the checker.\n checkTimeoutId = window.setTimeout(checkAndWarn, 1000);\n}\n"],"names":["debounce","fn","delay","id","args","clearTimeout","setTimeout","useRandomId","prefix","ref","React","useRef","String","Math","random","substring","current","useOnMount","callback","hasRun","useEffect","mergeRefs","refs","node","useForceUpdate","useState","setValue","value","useOnClickOutside","handler","listener","event","some","elementContainsEventTarget","document","addEventListener","removeEventListener","element","contains","target","composed","composedPath","find","window","useOnEscape","runIfKeyIsEscape","key","currentRef","getWindowDimensions","width","innerWidth","height","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","ConditionalWrapper","condition","wrapper","children","createElement","Fragment","packagesToCheck","Set","checkTimeoutId","checkAndWarn","missingImports","Array","from","filter","namespace","parseInt","getComputedStyle","documentElement","getPropertyValue","sort","singleMissingImport","length","warning","map","join","warnAboutMissingStyles","process","env","JEST_WORKER_ID","undefined","namespaces","forEach","add"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.cjs.development.js","sources":["../src/debounce.ts","../src/useRandomId.ts","../src/useOnMount.ts","../src/mergeRefs.ts","../src/useForceUpdate.ts","../src/useOnClickOutside.ts","../src/useOnEscape.ts","../src/useWindowDimensions.ts","../src/ConditionalWrapper.tsx","../src/warnAboutMissingStyles.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => any>(\n fn: T,\n delay: number,\n): (...args: Parameters<T>) => void {\n let id: any;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => fn(...args), delay);\n };\n}\n","import React from 'react';\n\nexport const useRandomId = (prefix?: string): string => {\n const ref = React.useRef(String(Math.random()).substring(2));\n return `${prefix}-${ref.current}`;\n};\n","import React from 'react';\n\nexport function useOnMount(callback: () => void): void {\n const hasRun = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!hasRun.current) {\n hasRun.current = true;\n callback();\n }\n }, [callback]);\n}\n","export const mergeRefs = <T extends HTMLElement>(\n ...refs: (React.MutableRefObject<T> | React.ForwardedRef<T> | undefined)[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import { useState } from 'react';\n\nexport const useForceUpdate = () => {\n const [_, setValue] = useState(0);\n return () => setValue(value => value + 1);\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnClickOutside = (\n refs: React.RefObject<HTMLDivElement>[],\n handler: () => void,\n) => {\n useEffect(() => {\n const listener = (event: Event) => {\n // If the ref contains the clicked element, then the click is not outside\n if (refs.some(ref => elementContainsEventTarget(ref.current, event))) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [refs, handler]);\n};\n\nconst elementContainsEventTarget = (\n element: HTMLElement | null,\n event: Event,\n) => {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find(target => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnEscape = (\n ref: React.RefObject<HTMLElement>,\n handler: () => void,\n) => {\n useEffect(() => {\n const runIfKeyIsEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') handler();\n };\n\n const currentRef = ref.current;\n currentRef?.addEventListener('keydown', runIfKeyIsEscape);\n\n return () => currentRef?.removeEventListener('keydown', runIfKeyIsEscape);\n }, [ref, handler]);\n};\n","// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs\nimport { useState, useEffect } from 'react';\n\ntype WindowDimensions = {\n width: number | undefined;\n height: number | undefined;\n};\n\nconst getWindowDimensions = () => {\n if (typeof window === 'undefined')\n return { width: undefined, height: undefined };\n\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = (): WindowDimensions => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions(),\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, []);\n\n return windowDimensions;\n};\n","import React from 'react';\n\ntype ConditionalWrapperType = {\n condition: boolean;\n wrapper: any;\n children: any;\n};\n\nexport const ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: ConditionalWrapperType) => (condition ? wrapper(children) : <>{children}</>);\n","import warning from 'tiny-warning';\n\nconst packagesToCheck: Set<string> = new Set();\nlet checkTimeoutId: number;\n\nfunction checkAndWarn() {\n const missingImports = Array.from(packagesToCheck)\n .filter(\n namespace =>\n parseInt(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(`--eds-${namespace}`),\n ) !== 1,\n )\n .sort();\n\n // Finally, we warn about those pesky imports\n const singleMissingImport = missingImports.length === 1;\n warning(\n missingImports.length === 0,\n `You are missing ${\n singleMissingImport\n ? 'a CSS import'\n : `${missingImports.length} CSS imports`\n }!\n\nPlease add the following CSS import${\n singleMissingImport ? '' : 's'\n } somewhere in your app:\n\n${missingImports\n .map(namespace => `\\t@import '@entur/${namespace}/dist/styles.css';`)\n .join('\\n')}\n`,\n );\n}\n\n/** Warns the developer if they have forgotten to include styles */\nexport function warnAboutMissingStyles(...namespaces: string[]): void {\n // We skip this check in production, and when we build static sites\n if (!__DEV__ || typeof window === 'undefined') {\n return;\n }\n // First, let's clear earlier calls to setTimeout\n window.clearTimeout(checkTimeoutId);\n\n // Next, let's add all namespaces to the set of packages to check\n namespaces.forEach(namespace => packagesToCheck.add(namespace));\n\n // Finally. let's trigger a run of the checker.\n checkTimeoutId = window.setTimeout(checkAndWarn, 1000);\n}\n"],"names":["debounce","fn","delay","id","args","clearTimeout","setTimeout","useRandomId","prefix","ref","React","useRef","String","Math","random","substring","current","useOnMount","callback","hasRun","useEffect","mergeRefs","refs","node","useForceUpdate","useState","setValue","value","useOnClickOutside","handler","listener","event","some","elementContainsEventTarget","document","addEventListener","removeEventListener","element","contains","target","composed","composedPath","find","window","useOnEscape","runIfKeyIsEscape","key","currentRef","getWindowDimensions","width","undefined","height","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","ConditionalWrapper","condition","wrapper","children","createElement","Fragment","packagesToCheck","Set","checkTimeoutId","checkAndWarn","missingImports","Array","from","filter","namespace","parseInt","getComputedStyle","documentElement","getPropertyValue","sort","singleMissingImport","length","warning","map","join","warnAboutMissingStyles","namespaces","forEach","add"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("tiny-warning");var t=n(e),r=function(){var e=window;return{width:e.innerWidth,height:e.innerHeight}};exports.ConditionalWrapper=function(e){var n=e.children;return e.condition?(0,e.wrapper)(n):t.default.createElement(t.default.Fragment,null,n)},exports.debounce=function(e,n){var t;return function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];clearTimeout(t),t=setTimeout((function(){return e.apply(void 0,u)}),n)}},exports.mergeRefs=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return function(e){for(var t=0,r=n;t<r.length;t++){var u=r[t];"function"==typeof u?u(e):u&&(u.current=e)}}},exports.useForceUpdate=function(){var n=e.useState(0)[1];return function(){return n((function(e){return e+1}))}},exports.useOnClickOutside=function(n,t){e.useEffect((function(){var e=function(e){n.some((function(n){return function(e,n){return!(!e||!(e.contains(n.target)||n.composed&&n.composedPath&&n.composedPath().find((function(n){return n!==window&&e.contains(n)}))))}(n.current,e)}))||t()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[n,t])},exports.useOnEscape=function(n,t){e.useEffect((function(){var e=function(e){"Escape"===e.key&&t()},r=n.current;return null==r||r.addEventListener("keydown",e),function(){return null==r?void 0:r.removeEventListener("keydown",e)}}),[n,t])},exports.useOnMount=function(e){var n=t.default.useRef(!1);t.default.useEffect((function(){n.current||(n.current=!0,e())}),[e])},exports.useRandomId=function(e){return e+"-"+t.default.useRef(String(Math.random()).substring(2)).current},exports.useWindowDimensions=function(){var n=e.useState(r()),t=n[0],u=n[1];return e.useEffect((function(){function e(){u(r())}return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}),[]),t},exports.warnAboutMissingStyles=function(){};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("tiny-warning");var t=n(e),r=function(){if("undefined"==typeof window)return{width:void 0,height:void 0};var e=window;return{width:e.innerWidth,height:e.innerHeight}};exports.ConditionalWrapper=function(e){var n=e.children;return e.condition?(0,e.wrapper)(n):t.default.createElement(t.default.Fragment,null,n)},exports.debounce=function(e,n){var t;return function(){for(var r=arguments.length,u=new Array(r),o=0;o<r;o++)u[o]=arguments[o];clearTimeout(t),t=setTimeout((function(){return e.apply(void 0,u)}),n)}},exports.mergeRefs=function(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return function(e){for(var t=0,r=n;t<r.length;t++){var u=r[t];"function"==typeof u?u(e):u&&(u.current=e)}}},exports.useForceUpdate=function(){var n=e.useState(0)[1];return function(){return n((function(e){return e+1}))}},exports.useOnClickOutside=function(n,t){e.useEffect((function(){var e=function(e){n.some((function(n){return function(e,n){return!(!e||!(e.contains(n.target)||n.composed&&n.composedPath&&n.composedPath().find((function(n){return n!==window&&e.contains(n)}))))}(n.current,e)}))||t()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[n,t])},exports.useOnEscape=function(n,t){e.useEffect((function(){var e=function(e){"Escape"===e.key&&t()},r=n.current;return null==r||r.addEventListener("keydown",e),function(){return null==r?void 0:r.removeEventListener("keydown",e)}}),[n,t])},exports.useOnMount=function(e){var n=t.default.useRef(!1);t.default.useEffect((function(){n.current||(n.current=!0,e())}),[e])},exports.useRandomId=function(e){return e+"-"+t.default.useRef(String(Math.random()).substring(2)).current},exports.useWindowDimensions=function(){var n=e.useState(r()),t=n[0],u=n[1];return e.useEffect((function(){function e(){u(r())}if("undefined"!=typeof window)return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}),[]),t},exports.warnAboutMissingStyles=function(){};
|
|
2
2
|
//# sourceMappingURL=utils.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs.production.min.js","sources":["../src/useWindowDimensions.ts","../src/ConditionalWrapper.tsx","../src/debounce.ts","../src/mergeRefs.ts","../src/useForceUpdate.ts","../src/useOnClickOutside.ts","../src/useOnEscape.ts","../src/useOnMount.ts","../src/useRandomId.ts","../src/warnAboutMissingStyles.ts"],"sourcesContent":["// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs\nimport { useState, useEffect } from 'react';\n\nconst getWindowDimensions = () => {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions(),\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n
|
|
1
|
+
{"version":3,"file":"utils.cjs.production.min.js","sources":["../src/useWindowDimensions.ts","../src/ConditionalWrapper.tsx","../src/debounce.ts","../src/mergeRefs.ts","../src/useForceUpdate.ts","../src/useOnClickOutside.ts","../src/useOnEscape.ts","../src/useOnMount.ts","../src/useRandomId.ts","../src/warnAboutMissingStyles.ts"],"sourcesContent":["// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs\nimport { useState, useEffect } from 'react';\n\ntype WindowDimensions = {\n width: number | undefined;\n height: number | undefined;\n};\n\nconst getWindowDimensions = () => {\n if (typeof window === 'undefined')\n return { width: undefined, height: undefined };\n\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = (): WindowDimensions => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions(),\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, []);\n\n return windowDimensions;\n};\n","import React from 'react';\n\ntype ConditionalWrapperType = {\n condition: boolean;\n wrapper: any;\n children: any;\n};\n\nexport const ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: ConditionalWrapperType) => (condition ? wrapper(children) : <>{children}</>);\n","export function debounce<T extends (...args: any[]) => any>(\n fn: T,\n delay: number,\n): (...args: Parameters<T>) => void {\n let id: any;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => fn(...args), delay);\n };\n}\n","export const mergeRefs = <T extends HTMLElement>(\n ...refs: (React.MutableRefObject<T> | React.ForwardedRef<T> | undefined)[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import { useState } from 'react';\n\nexport const useForceUpdate = () => {\n const [_, setValue] = useState(0);\n return () => setValue(value => value + 1);\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnClickOutside = (\n refs: React.RefObject<HTMLDivElement>[],\n handler: () => void,\n) => {\n useEffect(() => {\n const listener = (event: Event) => {\n // If the ref contains the clicked element, then the click is not outside\n if (refs.some(ref => elementContainsEventTarget(ref.current, event))) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [refs, handler]);\n};\n\nconst elementContainsEventTarget = (\n element: HTMLElement | null,\n event: Event,\n) => {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find(target => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnEscape = (\n ref: React.RefObject<HTMLElement>,\n handler: () => void,\n) => {\n useEffect(() => {\n const runIfKeyIsEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') handler();\n };\n\n const currentRef = ref.current;\n currentRef?.addEventListener('keydown', runIfKeyIsEscape);\n\n return () => currentRef?.removeEventListener('keydown', runIfKeyIsEscape);\n }, [ref, handler]);\n};\n","import React from 'react';\n\nexport function useOnMount(callback: () => void): void {\n const hasRun = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!hasRun.current) {\n hasRun.current = true;\n callback();\n }\n }, [callback]);\n}\n","import React from 'react';\n\nexport const useRandomId = (prefix?: string): string => {\n const ref = React.useRef(String(Math.random()).substring(2));\n return `${prefix}-${ref.current}`;\n};\n","import warning from 'tiny-warning';\n\nconst packagesToCheck: Set<string> = new Set();\nlet checkTimeoutId: number;\n\nfunction checkAndWarn() {\n const missingImports = Array.from(packagesToCheck)\n .filter(\n namespace =>\n parseInt(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(`--eds-${namespace}`),\n ) !== 1,\n )\n .sort();\n\n // Finally, we warn about those pesky imports\n const singleMissingImport = missingImports.length === 1;\n warning(\n missingImports.length === 0,\n `You are missing ${\n singleMissingImport\n ? 'a CSS import'\n : `${missingImports.length} CSS imports`\n }!\n\nPlease add the following CSS import${\n singleMissingImport ? '' : 's'\n } somewhere in your app:\n\n${missingImports\n .map(namespace => `\\t@import '@entur/${namespace}/dist/styles.css';`)\n .join('\\n')}\n`,\n );\n}\n\n/** Warns the developer if they have forgotten to include styles */\nexport function warnAboutMissingStyles(...namespaces: string[]): void {\n // We skip this check in production, and when we build static sites\n if (!__DEV__ || typeof window === 'undefined') {\n return;\n }\n // First, let's clear earlier calls to setTimeout\n window.clearTimeout(checkTimeoutId);\n\n // Next, let's add all namespaces to the set of packages to check\n namespaces.forEach(namespace => packagesToCheck.add(namespace));\n\n // Finally. let's trigger a run of the checker.\n checkTimeoutId = window.setTimeout(checkAndWarn, 1000);\n}\n"],"names":["getWindowDimensions","window","width","undefined","height","_window","innerWidth","innerHeight","_ref","children","condition","wrapper","React","createElement","Fragment","fn","delay","id","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","refs","node","_i","_refs","ref","current","useState","setValue","value","handler","useEffect","listener","event","some","element","contains","target","composed","composedPath","find","elementContainsEventTarget","document","addEventListener","removeEventListener","runIfKeyIsEscape","key","currentRef","callback","hasRun","useRef","prefix","String","Math","random","substring","_useState","windowDimensions","setWindowDimensions","handleResize"],"mappings":"sMAQMA,EAAsB,WAC1B,GAAsB,oBAAXC,OACT,MAAO,CAAEC,WAAOC,EAAWC,YAAQD,GAErC,IAAAE,EAAmDJ,OACnD,MAAO,CACLC,QAFMI,WAGNF,SAHyBG,yCCJK,SAAHC,GAAA,IAG7BC,IAAAA,SAAQ,SAFRC,WAGyCC,IAFzCA,SAEiDF,GAAYG,EAAA,QAAAC,cAAAD,EAAAA,QAAAE,SAAA,KAAGL,qBCZlD,SACdM,EACAC,GAEA,IAAIC,EACJ,OAAO,WAAY,IAAA,IAAAC,EAAAC,UAAAC,OAARC,EAAI,IAAAC,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAJF,EAAIE,GAAAJ,UAAAI,GACbC,aAAaP,GACbA,EAAKQ,YAAW,WAAA,OAAMV,EAAMM,WAAAA,EAAAA,KAAOL,uBCPd,WAErB,IAAA,IAAAE,EAAAC,UAAAC,OADCM,EAAuE,IAAAJ,MAAAJ,GAAAK,EAAA,EAAAA,EAAAL,EAAAK,IAAvEG,EAAuEH,GAAAJ,UAAAI,GAE1E,OAAO,SAACI,GACN,IAAA,IAAAC,EAAA,EAAAC,EAAkBH,EAAME,EAAAC,EAAAT,OAAAQ,IAAA,CAAnB,IAAME,EAAGD,EAAAD,GACO,mBAARE,EACTA,EAAIH,GACKG,IAAKA,EAAIC,QAAUJ,6BCLN,WACNK,IAAZC,EAAYD,WAAS,GAAb,GAClB,OAAO,WAAA,OAAMC,GAAS,SAAAC,GAAK,OAAIA,EAAQ,iCCFR,SAC/BR,EACAS,GAEAC,EAAAA,WAAU,WACR,IAAMC,EAAW,SAACC,GAEZZ,EAAKa,MAAK,SAAAT,GAAG,OAiBY,SACjCU,EACAF,GAEA,SAAKE,KAIDA,EAAQC,SAASH,EAAMI,SAKvBJ,EAAMK,UAAYL,EAAMM,cACTN,EAAMM,eAAeC,MAAK,SAAAH,GACzC,OAAIA,IAAWzC,QAGRuC,EAAQC,SAASC,QAnCHI,CAA2BhB,EAAIC,QAASO,OAI7DH,KAMF,OAHAY,SAASC,iBAAiB,YAAaX,GACvCU,SAASC,iBAAiB,aAAcX,GAEjC,WACLU,SAASE,oBAAoB,YAAaZ,GAC1CU,SAASE,oBAAoB,aAAcZ,MAE5C,CAACX,EAAMS,yBCrBe,SACzBL,EACAK,GAEAC,EAAAA,WAAU,WACR,IAAMc,EAAmB,SAACZ,GACN,WAAdA,EAAMa,KAAkBhB,KAGxBiB,EAAatB,EAAIC,QAGvB,OAFU,MAAVqB,GAAAA,EAAYJ,iBAAiB,UAAWE,GAEjC,WAAA,aAAME,SAAAA,EAAYH,oBAAoB,UAAWC,MACvD,CAACpB,EAAKK,wBCbL,SAAqBkB,GACzB,IAAMC,EAAS1C,EAAAA,QAAM2C,QAAgB,GAErC3C,EAAK,QAACwB,WAAU,WACTkB,EAAOvB,UACVuB,EAAOvB,SAAU,EACjBsB,OAED,CAACA,yBCRqB,SAACG,GAE1B,OAAUA,EAAM,IADJ5C,EAAAA,QAAM2C,OAAOE,OAAOC,KAAKC,UAAUC,UAAU,IACjC7B,qCReS,WACjC,IAAA8B,EAAgD7B,WAC9ChC,KADK8D,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAe5C,OAXAzB,EAAAA,WAAU,WACR,SAAS4B,IACPD,EAAoB/D,KAGtB,GAAsB,oBAAXC,OAET,OADAA,OAAO+C,iBAAiB,SAAUgB,GAC3B,WAAA,OAAM/D,OAAOgD,oBAAoB,SAAUe,MAEnD,IAEIF,kCSIO"}
|
package/dist/utils.esm.js
CHANGED
|
@@ -107,6 +107,10 @@ var useOnEscape = function useOnEscape(ref, handler) {
|
|
|
107
107
|
|
|
108
108
|
// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs
|
|
109
109
|
var getWindowDimensions = function getWindowDimensions() {
|
|
110
|
+
if (typeof window === 'undefined') return {
|
|
111
|
+
width: undefined,
|
|
112
|
+
height: undefined
|
|
113
|
+
};
|
|
110
114
|
var _window = window,
|
|
111
115
|
width = _window.innerWidth,
|
|
112
116
|
height = _window.innerHeight;
|
|
@@ -123,10 +127,12 @@ var useWindowDimensions = function useWindowDimensions() {
|
|
|
123
127
|
function handleResize() {
|
|
124
128
|
setWindowDimensions(getWindowDimensions());
|
|
125
129
|
}
|
|
126
|
-
window
|
|
127
|
-
|
|
128
|
-
return
|
|
129
|
-
|
|
130
|
+
if (typeof window !== 'undefined') {
|
|
131
|
+
window.addEventListener('resize', handleResize);
|
|
132
|
+
return function () {
|
|
133
|
+
return window.removeEventListener('resize', handleResize);
|
|
134
|
+
};
|
|
135
|
+
}
|
|
130
136
|
}, []);
|
|
131
137
|
return windowDimensions;
|
|
132
138
|
};
|
|
@@ -152,9 +158,8 @@ function checkAndWarn() {
|
|
|
152
158
|
}
|
|
153
159
|
/** Warns the developer if they have forgotten to include styles */
|
|
154
160
|
function warnAboutMissingStyles() {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
if (!(process.env.NODE_ENV !== "production") || typeof window === 'undefined' || ((_process = process) == null ? void 0 : (_process$env = _process.env) == null ? void 0 : _process$env.JEST_WORKER_ID) !== undefined) {
|
|
161
|
+
// We skip this check in production, and when we build static sites
|
|
162
|
+
if (!(process.env.NODE_ENV !== "production") || typeof window === 'undefined') {
|
|
158
163
|
return;
|
|
159
164
|
}
|
|
160
165
|
// First, let's clear earlier calls to setTimeout
|
package/dist/utils.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.esm.js","sources":["../src/debounce.ts","../src/useRandomId.ts","../src/useOnMount.ts","../src/mergeRefs.ts","../src/useForceUpdate.ts","../src/useOnClickOutside.ts","../src/useOnEscape.ts","../src/useWindowDimensions.ts","../src/ConditionalWrapper.tsx","../src/warnAboutMissingStyles.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => any>(\n fn: T,\n delay: number,\n): (...args: Parameters<T>) => void {\n let id: any;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => fn(...args), delay);\n };\n}\n","import React from 'react';\n\nexport const useRandomId = (prefix?: string): string => {\n const ref = React.useRef(String(Math.random()).substring(2));\n return `${prefix}-${ref.current}`;\n};\n","import React from 'react';\n\nexport function useOnMount(callback: () => void): void {\n const hasRun = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!hasRun.current) {\n hasRun.current = true;\n callback();\n }\n }, [callback]);\n}\n","export const mergeRefs = <T extends HTMLElement>(\n ...refs: (React.MutableRefObject<T> | React.ForwardedRef<T> | undefined)[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import { useState } from 'react';\n\nexport const useForceUpdate = () => {\n const [_, setValue] = useState(0);\n return () => setValue(value => value + 1);\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnClickOutside = (\n refs: React.RefObject<HTMLDivElement>[],\n handler: () => void,\n) => {\n useEffect(() => {\n const listener = (event: Event) => {\n // If the ref contains the clicked element, then the click is not outside\n if (refs.some(ref => elementContainsEventTarget(ref.current, event))) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [refs, handler]);\n};\n\nconst elementContainsEventTarget = (\n element: HTMLElement | null,\n event: Event,\n) => {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find(target => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnEscape = (\n ref: React.RefObject<HTMLElement>,\n handler: () => void,\n) => {\n useEffect(() => {\n const runIfKeyIsEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') handler();\n };\n\n const currentRef = ref.current;\n currentRef?.addEventListener('keydown', runIfKeyIsEscape);\n\n return () => currentRef?.removeEventListener('keydown', runIfKeyIsEscape);\n }, [ref, handler]);\n};\n","// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs\nimport { useState, useEffect } from 'react';\n\nconst getWindowDimensions = () => {\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = () => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions(),\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n return windowDimensions;\n};\n","import React from 'react';\n\ntype ConditionalWrapperType = {\n condition: boolean;\n wrapper: any;\n children: any;\n};\n\nexport const ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: ConditionalWrapperType) => (condition ? wrapper(children) : <>{children}</>);\n","import warning from 'tiny-warning';\n\nconst packagesToCheck: Set<string> = new Set();\nlet checkTimeoutId: number;\n\nfunction checkAndWarn() {\n const missingImports = Array.from(packagesToCheck)\n .filter(\n namespace =>\n parseInt(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(`--eds-${namespace}`),\n ) !== 1,\n )\n .sort();\n\n // Finally, we warn about those pesky imports\n const singleMissingImport = missingImports.length === 1;\n warning(\n missingImports.length === 0,\n `You are missing ${\n singleMissingImport\n ? 'a CSS import'\n : `${missingImports.length} CSS imports`\n }!\n\nPlease add the following CSS import${\n singleMissingImport ? '' : 's'\n } somewhere in your app:\n\n${missingImports\n .map(namespace => `\\t@import '@entur/${namespace}/dist/styles.css';`)\n .join('\\n')}\n`,\n );\n}\n\n/** Warns the developer if they have forgotten to include styles */\nexport function warnAboutMissingStyles(...namespaces: string[]): void {\n // We skip this check in production, jest, and when we build static sites\n if (\n !__DEV__ ||\n typeof window === 'undefined' ||\n process?.env?.JEST_WORKER_ID !== undefined\n ) {\n return;\n }\n // First, let's clear earlier calls to setTimeout\n window.clearTimeout(checkTimeoutId);\n\n // Next, let's add all namespaces to the set of packages to check\n namespaces.forEach(namespace => packagesToCheck.add(namespace));\n\n // Finally. let's trigger a run of the checker.\n checkTimeoutId = window.setTimeout(checkAndWarn, 1000);\n}\n"],"names":["debounce","fn","delay","id","args","clearTimeout","setTimeout","useRandomId","prefix","ref","React","useRef","String","Math","random","substring","current","useOnMount","callback","hasRun","useEffect","mergeRefs","refs","node","useForceUpdate","useState","setValue","value","useOnClickOutside","handler","listener","event","some","elementContainsEventTarget","document","addEventListener","removeEventListener","element","contains","target","composed","composedPath","find","window","useOnEscape","runIfKeyIsEscape","key","currentRef","getWindowDimensions","width","innerWidth","height","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","ConditionalWrapper","condition","wrapper","children","createElement","Fragment","packagesToCheck","Set","checkTimeoutId","checkAndWarn","missingImports","Array","from","filter","namespace","parseInt","getComputedStyle","documentElement","getPropertyValue","sort","singleMissingImport","length","warning","map","join","warnAboutMissingStyles","process","env","JEST_WORKER_ID","undefined","namespaces","forEach","add"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.esm.js","sources":["../src/debounce.ts","../src/useRandomId.ts","../src/useOnMount.ts","../src/mergeRefs.ts","../src/useForceUpdate.ts","../src/useOnClickOutside.ts","../src/useOnEscape.ts","../src/useWindowDimensions.ts","../src/ConditionalWrapper.tsx","../src/warnAboutMissingStyles.ts"],"sourcesContent":["export function debounce<T extends (...args: any[]) => any>(\n fn: T,\n delay: number,\n): (...args: Parameters<T>) => void {\n let id: any;\n return (...args) => {\n clearTimeout(id);\n id = setTimeout(() => fn(...args), delay);\n };\n}\n","import React from 'react';\n\nexport const useRandomId = (prefix?: string): string => {\n const ref = React.useRef(String(Math.random()).substring(2));\n return `${prefix}-${ref.current}`;\n};\n","import React from 'react';\n\nexport function useOnMount(callback: () => void): void {\n const hasRun = React.useRef<boolean>(false);\n\n React.useEffect(() => {\n if (!hasRun.current) {\n hasRun.current = true;\n callback();\n }\n }, [callback]);\n}\n","export const mergeRefs = <T extends HTMLElement>(\n ...refs: (React.MutableRefObject<T> | React.ForwardedRef<T> | undefined)[]\n) => {\n return (node: T) => {\n for (const ref of refs) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) ref.current = node;\n }\n };\n};\n","import { useState } from 'react';\n\nexport const useForceUpdate = () => {\n const [_, setValue] = useState(0);\n return () => setValue(value => value + 1);\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnClickOutside = (\n refs: React.RefObject<HTMLDivElement>[],\n handler: () => void,\n) => {\n useEffect(() => {\n const listener = (event: Event) => {\n // If the ref contains the clicked element, then the click is not outside\n if (refs.some(ref => elementContainsEventTarget(ref.current, event))) {\n return;\n }\n\n handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [refs, handler]);\n};\n\nconst elementContainsEventTarget = (\n element: HTMLElement | null,\n event: Event,\n) => {\n if (!element) {\n return false;\n }\n\n if (element.contains(event.target as Node)) {\n return true;\n }\n\n // For elements inside a Shadow DOM we need to check the composedPath\n if (event.composed && event.composedPath) {\n const contains = event.composedPath().find(target => {\n if (target === window) {\n return false;\n }\n return element.contains(target as Node);\n });\n return contains ? true : false;\n }\n\n return false;\n};\n","import React, { useEffect } from 'react';\n\nexport const useOnEscape = (\n ref: React.RefObject<HTMLElement>,\n handler: () => void,\n) => {\n useEffect(() => {\n const runIfKeyIsEscape = (event: KeyboardEvent) => {\n if (event.key === 'Escape') handler();\n };\n\n const currentRef = ref.current;\n currentRef?.addEventListener('keydown', runIfKeyIsEscape);\n\n return () => currentRef?.removeEventListener('keydown', runIfKeyIsEscape);\n }, [ref, handler]);\n};\n","// from https://stackoverflow.com/questions/36862334/get-viewport-window-height-in-reactjs\nimport { useState, useEffect } from 'react';\n\ntype WindowDimensions = {\n width: number | undefined;\n height: number | undefined;\n};\n\nconst getWindowDimensions = () => {\n if (typeof window === 'undefined')\n return { width: undefined, height: undefined };\n\n const { innerWidth: width, innerHeight: height } = window;\n return {\n width,\n height,\n };\n};\n\nexport const useWindowDimensions = (): WindowDimensions => {\n const [windowDimensions, setWindowDimensions] = useState(\n getWindowDimensions(),\n );\n\n useEffect(() => {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, []);\n\n return windowDimensions;\n};\n","import React from 'react';\n\ntype ConditionalWrapperType = {\n condition: boolean;\n wrapper: any;\n children: any;\n};\n\nexport const ConditionalWrapper = ({\n condition,\n wrapper,\n children,\n}: ConditionalWrapperType) => (condition ? wrapper(children) : <>{children}</>);\n","import warning from 'tiny-warning';\n\nconst packagesToCheck: Set<string> = new Set();\nlet checkTimeoutId: number;\n\nfunction checkAndWarn() {\n const missingImports = Array.from(packagesToCheck)\n .filter(\n namespace =>\n parseInt(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(`--eds-${namespace}`),\n ) !== 1,\n )\n .sort();\n\n // Finally, we warn about those pesky imports\n const singleMissingImport = missingImports.length === 1;\n warning(\n missingImports.length === 0,\n `You are missing ${\n singleMissingImport\n ? 'a CSS import'\n : `${missingImports.length} CSS imports`\n }!\n\nPlease add the following CSS import${\n singleMissingImport ? '' : 's'\n } somewhere in your app:\n\n${missingImports\n .map(namespace => `\\t@import '@entur/${namespace}/dist/styles.css';`)\n .join('\\n')}\n`,\n );\n}\n\n/** Warns the developer if they have forgotten to include styles */\nexport function warnAboutMissingStyles(...namespaces: string[]): void {\n // We skip this check in production, and when we build static sites\n if (!__DEV__ || typeof window === 'undefined') {\n return;\n }\n // First, let's clear earlier calls to setTimeout\n window.clearTimeout(checkTimeoutId);\n\n // Next, let's add all namespaces to the set of packages to check\n namespaces.forEach(namespace => packagesToCheck.add(namespace));\n\n // Finally. let's trigger a run of the checker.\n checkTimeoutId = window.setTimeout(checkAndWarn, 1000);\n}\n"],"names":["debounce","fn","delay","id","args","clearTimeout","setTimeout","useRandomId","prefix","ref","React","useRef","String","Math","random","substring","current","useOnMount","callback","hasRun","useEffect","mergeRefs","refs","node","useForceUpdate","useState","setValue","value","useOnClickOutside","handler","listener","event","some","elementContainsEventTarget","document","addEventListener","removeEventListener","element","contains","target","composed","composedPath","find","window","useOnEscape","runIfKeyIsEscape","key","currentRef","getWindowDimensions","width","undefined","height","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","ConditionalWrapper","condition","wrapper","children","createElement","Fragment","packagesToCheck","Set","checkTimeoutId","checkAndWarn","missingImports","Array","from","filter","namespace","parseInt","getComputedStyle","documentElement","getPropertyValue","sort","singleMissingImport","length","warning","map","join","warnAboutMissingStyles","namespaces","forEach","add"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@entur/utils",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.4",
|
|
4
4
|
"license": "EUPL-1.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/utils.esm.js",
|
|
@@ -28,5 +28,5 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"tiny-warning": "^1.0.3"
|
|
30
30
|
},
|
|
31
|
-
"gitHead": "
|
|
31
|
+
"gitHead": "0da1a9e2532f60cc1a456a79ad3aa689514ca2c7"
|
|
32
32
|
}
|