@blateral/b.kit 2.3.0-beta.1.3 → 2.3.0-beta.1.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/cjs/EventBlock-10b9d78d.js +2 -0
- package/cjs/EventBlock-10b9d78d.js.map +1 -0
- package/cjs/FileUpload-ece8bb07.js +2 -0
- package/cjs/FileUpload-ece8bb07.js.map +1 -0
- package/cjs/Filter-d6d90b8b.js +2 -0
- package/cjs/Filter-d6d90b8b.js.map +1 -0
- package/cjs/FilterField-cf9e2f16.js +2 -0
- package/cjs/FilterField-cf9e2f16.js.map +1 -0
- package/cjs/Grid-39b12e21.js +2 -0
- package/cjs/Grid-39b12e21.js.map +1 -0
- package/cjs/InfoList-577f3c57.js +2 -0
- package/cjs/InfoList-577f3c57.js.map +1 -0
- package/cjs/POICard-492bf8d0.js +2 -0
- package/cjs/POICard-492bf8d0.js.map +1 -0
- package/cjs/TableBlock-a5b16e8f.js +2 -0
- package/cjs/TableBlock-a5b16e8f.js.map +1 -0
- package/cjs/Tag-5c72cc0d.js +2 -0
- package/cjs/Tag-5c72cc0d.js.map +1 -0
- package/cjs/VideoBlock-301997a9.js +2 -0
- package/cjs/VideoBlock-301997a9.js.map +1 -0
- package/cjs/VideoCard-405b518a.js +2 -0
- package/cjs/VideoCard-405b518a.js.map +1 -0
- package/cjs/Wrapper-91748bdb.js +2 -0
- package/cjs/Wrapper-91748bdb.js.map +1 -0
- package/cjs/base.js +1 -1
- package/cjs/blocks.js +1 -1
- package/cjs/escape-1ef8dd83.js +2 -0
- package/cjs/escape-1ef8dd83.js.map +1 -0
- package/cjs/fields.js +1 -1
- package/cjs/fields.js.map +1 -1
- package/cjs/footer.js +1 -1
- package/cjs/footer.js.map +1 -1
- package/cjs/hooks.js +1 -1
- package/cjs/hooks.js.map +1 -1
- package/cjs/sections.js +1 -1
- package/cjs/sections.js.map +1 -1
- package/cjs/sections_events.js +2 -0
- package/cjs/sections_events.js.map +1 -0
- package/cjs/sections_forms.js +2 -0
- package/cjs/sections_forms.js.map +1 -0
- package/cjs/sections_jobs.js +2 -0
- package/cjs/sections_jobs.js.map +1 -0
- package/cjs/sections_news.js +1 -1
- package/cjs/sections_news.js.map +1 -1
- package/cjs/sections_pois.js +2 -0
- package/cjs/sections_pois.js.map +1 -0
- package/cjs/structuredData-0b1278a9.js +2 -0
- package/cjs/structuredData-0b1278a9.js.map +1 -0
- package/cjs/urlParams-7525f638.js +2 -0
- package/cjs/urlParams-7525f638.js.map +1 -0
- package/cjs/useEqualSheetHeight-cfd4176e.js +2 -0
- package/cjs/useEqualSheetHeight-cfd4176e.js.map +1 -0
- package/cjs/useGeolocation-d8946470.js +2 -0
- package/cjs/useGeolocation-d8946470.js.map +1 -0
- package/cjs/useLazyInput-f71c221b.js +2 -0
- package/cjs/useLazyInput-f71c221b.js.map +1 -0
- package/cjs/useLeafletMap-2e608b01.js +2 -0
- package/cjs/useLeafletMap-2e608b01.js.map +1 -0
- package/cjs/useScrollTo-fdd665da.js +2 -0
- package/cjs/useScrollTo-fdd665da.js.map +1 -0
- package/esm/{Actions-73e13c48.js → Actions-3f06c2e9.js} +3 -3
- package/esm/{Actions-73e13c48.js.map → Actions-3f06c2e9.js.map} +1 -1
- package/esm/{Bdot-30b047cc.js → Bdot-fae262fc.js} +3 -3
- package/esm/{Bdot-30b047cc.js.map → Bdot-fae262fc.js.map} +1 -1
- package/esm/{Button-678be396.js → Button-ab1a4e79.js} +3 -3
- package/esm/{Button-678be396.js.map → Button-ab1a4e79.js.map} +1 -1
- package/esm/{ButtonGhost-6673a07e.js → ButtonGhost-5b498dba.js} +3 -3
- package/esm/{ButtonGhost-6673a07e.js.map → ButtonGhost-5b498dba.js.map} +1 -1
- package/esm/{Callout-439308f6.js → Callout-389fed95.js} +4 -4
- package/esm/{Callout-439308f6.js.map → Callout-389fed95.js.map} +1 -1
- package/esm/{Checkbox-a365d733.js → Checkbox-957d8f33.js} +5 -5
- package/esm/{Checkbox-a365d733.js.map → Checkbox-957d8f33.js.map} +1 -1
- package/esm/{ClockFilled-8784ddac.js → ClockFilled-6bae80dc.js} +2 -2
- package/esm/{ClockFilled-8784ddac.js.map → ClockFilled-6bae80dc.js.map} +1 -1
- package/esm/{Control-e61c9395.js → Control-57a287dc.js} +3 -3
- package/esm/{Control-e61c9395.js.map → Control-57a287dc.js.map} +1 -1
- package/esm/{Copy-3444d005.js → Copy-fb124972.js} +4 -4
- package/esm/{Copy-3444d005.js.map → Copy-fb124972.js.map} +1 -1
- package/esm/EventBlock-0109da13.js +132 -0
- package/esm/EventBlock-0109da13.js.map +1 -0
- package/esm/{FilterField-f423b4d1.js → FileUpload-4ba0a672.js} +48 -165
- package/esm/FileUpload-4ba0a672.js.map +1 -0
- package/esm/Filter-fec6dc5c.js +32 -0
- package/esm/Filter-fec6dc5c.js.map +1 -0
- package/esm/FilterField-03097694.js +129 -0
- package/esm/FilterField-03097694.js.map +1 -0
- package/esm/{Wrapper-f4a70e30.js → Grid-151498da.js} +7 -224
- package/esm/Grid-151498da.js.map +1 -0
- package/esm/{Image-82417953.js → Image-b538f659.js} +5 -5
- package/esm/{Image-82417953.js.map → Image-b538f659.js.map} +1 -1
- package/esm/InfoList-616d17fd.js +74 -0
- package/esm/InfoList-616d17fd.js.map +1 -0
- package/esm/{LanguageSwitcher-a53094d3.js → LanguageSwitcher-058e0145.js} +5 -5
- package/esm/{LanguageSwitcher-a53094d3.js.map → LanguageSwitcher-058e0145.js.map} +1 -1
- package/esm/{LibThemeProvider-90a5375f.js → LibThemeProvider-a38c5bf1.js} +3 -3
- package/esm/{LibThemeProvider-90a5375f.js.map → LibThemeProvider-a38c5bf1.js.map} +1 -1
- package/esm/{Link-ee8a48ed.js → Link-0a1e35d6.js} +3 -3
- package/esm/{Link-ee8a48ed.js.map → Link-0a1e35d6.js.map} +1 -1
- package/esm/{Navigation-ece0ff0d.js → Navigation-13dce48c.js} +10 -10
- package/esm/{Navigation-ece0ff0d.js.map → Navigation-13dce48c.js.map} +1 -1
- package/esm/POICard-392a2c3a.js +116 -0
- package/esm/POICard-392a2c3a.js.map +1 -0
- package/esm/{Pointer-da4d0977.js → Pointer-bc68154f.js} +3 -3
- package/esm/{Pointer-da4d0977.js.map → Pointer-bc68154f.js.map} +1 -1
- package/esm/{SocialList-7c00c70e.js → SocialList-4396cad9.js} +5 -5
- package/esm/{SocialList-7c00c70e.js.map → SocialList-4396cad9.js.map} +1 -1
- package/esm/{TableBlock-0bbde956.js → TableBlock-26530c71.js} +11 -70
- package/esm/TableBlock-26530c71.js.map +1 -0
- package/esm/Tag-72424779.js +67 -0
- package/esm/Tag-72424779.js.map +1 -0
- package/esm/{POICard-d8832988.js → VideoBlock-b3f4ae27.js} +39 -332
- package/esm/VideoBlock-b3f4ae27.js.map +1 -0
- package/esm/{VideoCard-2557407b.js → VideoCard-3fd368ef.js} +8 -35
- package/esm/VideoCard-3fd368ef.js.map +1 -0
- package/esm/Wrapper-29347885.js +224 -0
- package/esm/Wrapper-29347885.js.map +1 -0
- package/esm/base.js +4 -3
- package/esm/base.js.map +1 -1
- package/esm/blocks.js +19 -15
- package/esm/blocks.js.map +1 -1
- package/esm/buttons.js +6 -6
- package/esm/cookies.js +8 -8
- package/esm/escape-cbff9c25.js +6 -0
- package/esm/escape-cbff9c25.js.map +1 -0
- package/esm/fields.js +12 -9
- package/esm/fields.js.map +1 -1
- package/esm/footer.js +10 -9
- package/esm/footer.js.map +1 -1
- package/esm/hooks.js +13 -9
- package/esm/hooks.js.map +1 -1
- package/esm/icons.js +1 -1
- package/esm/index.js +3 -3
- package/esm/{navigation-49280321.js → navigation-a2998143.js} +2 -2
- package/esm/{navigation-49280321.js.map → navigation-a2998143.js.map} +1 -1
- package/esm/navigation.js +12 -12
- package/esm/sections.js +2595 -5807
- package/esm/sections.js.map +1 -1
- package/esm/sections_events.js +573 -0
- package/esm/sections_events.js.map +1 -0
- package/esm/sections_forms.js +1405 -0
- package/esm/sections_forms.js.map +1 -0
- package/esm/sections_jobs.js +508 -0
- package/esm/sections_jobs.js.map +1 -0
- package/esm/sections_news.js +102 -97
- package/esm/sections_news.js.map +1 -1
- package/esm/sections_pois.js +719 -0
- package/esm/sections_pois.js.map +1 -0
- package/esm/structuredData-87423414.js +117 -0
- package/esm/structuredData-87423414.js.map +1 -0
- package/esm/{styles-5f78e59d.js → styles-f6c54818.js} +2 -2
- package/esm/{styles-5f78e59d.js.map → styles-f6c54818.js.map} +1 -1
- package/esm/typography.js +6 -6
- package/esm/urlParams-9cfdaf71.js +51 -0
- package/esm/urlParams-9cfdaf71.js.map +1 -0
- package/esm/{useCookieConsent-db86e5cb.js → useCookieConsent-8caef116.js} +2 -2
- package/esm/{useCookieConsent-db86e5cb.js.map → useCookieConsent-8caef116.js.map} +1 -1
- package/esm/{urlParams-882563ce.js → useEqualSheetHeight-c18cebd3.js} +4 -105
- package/esm/useEqualSheetHeight-c18cebd3.js.map +1 -0
- package/esm/useGeolocation-f9f073cc.js +95 -0
- package/esm/useGeolocation-f9f073cc.js.map +1 -0
- package/esm/useLazyInput-e66fc5be.js +85 -0
- package/esm/useLazyInput-e66fc5be.js.map +1 -0
- package/esm/{useGeolocation-c81e3efc.js → useLeafletMap-6dea7a8e.js} +4 -175
- package/esm/useLeafletMap-6dea7a8e.js.map +1 -0
- package/esm/{useMediaQuery-43629cbb.js → useMediaQuery-0d473a9c.js} +2 -2
- package/esm/{useMediaQuery-43629cbb.js.map → useMediaQuery-0d473a9c.js.map} +1 -1
- package/esm/useScrollTo-70af34bf.js +57 -0
- package/esm/useScrollTo-70af34bf.js.map +1 -0
- package/package.json +1 -1
- package/sections/events/package.json +7 -0
- package/sections/forms/package.json +7 -0
- package/sections/jobs/package.json +7 -0
- package/sections/pois/package.json +7 -0
- package/types/sections.d.ts +0 -10
- package/types/sections.d.ts.map +1 -1
- package/types/sections_events.d.ts +4 -0
- package/types/sections_events.d.ts.map +1 -0
- package/types/sections_forms.d.ts +3 -0
- package/types/sections_forms.d.ts.map +1 -0
- package/types/sections_jobs.d.ts +3 -0
- package/types/sections_jobs.d.ts.map +1 -0
- package/types/sections_news.d.ts +2 -2
- package/types/sections_news.d.ts.map +1 -1
- package/types/sections_pois.d.ts +4 -0
- package/types/sections_pois.d.ts.map +1 -0
- package/cjs/FilterField-497e998f.js +0 -2
- package/cjs/FilterField-497e998f.js.map +0 -1
- package/cjs/POICard-9911980e.js +0 -2
- package/cjs/POICard-9911980e.js.map +0 -1
- package/cjs/TableBlock-080c9c2e.js +0 -2
- package/cjs/TableBlock-080c9c2e.js.map +0 -1
- package/cjs/VideoCard-1fa209fc.js +0 -2
- package/cjs/VideoCard-1fa209fc.js.map +0 -1
- package/cjs/Wrapper-3b9c9e89.js +0 -2
- package/cjs/Wrapper-3b9c9e89.js.map +0 -1
- package/cjs/urlParams-1d03b5a6.js +0 -2
- package/cjs/urlParams-1d03b5a6.js.map +0 -1
- package/cjs/useGeolocation-4d38150b.js +0 -2
- package/cjs/useGeolocation-4d38150b.js.map +0 -1
- package/esm/FilterField-f423b4d1.js.map +0 -1
- package/esm/POICard-d8832988.js.map +0 -1
- package/esm/TableBlock-0bbde956.js.map +0 -1
- package/esm/VideoCard-2557407b.js.map +0 -1
- package/esm/Wrapper-f4a70e30.js.map +0 -1
- package/esm/urlParams-882563ce.js.map +0 -1
- package/esm/useGeolocation-c81e3efc.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"urlParams-9cfdaf71.js","sources":["../src/utils/urlParams.ts"],"sourcesContent":["import { concat } from './concat';\n\nconst isSupported =\n typeof window !== 'undefined' && 'URLSearchParams' in window;\n\nexport const getUrlParams = () => {\n const obj: Record<string, string> = {};\n if (!isSupported) return obj;\n\n const paramsObj = Object.fromEntries(\n new URLSearchParams(window.location.search)\n );\n\n for (const param in paramsObj) {\n let value = paramsObj[param];\n if (typeof value === 'string') {\n value = decodeURIComponent(value);\n }\n obj[param] = value;\n }\n\n return obj;\n};\n\nexport const setUrlParam = (key: string, value: string | number) => {\n if (\n !isSupported ||\n (typeof value !== 'string' && typeof value !== 'number')\n ) {\n return;\n }\n\n const params = getUrlParams();\n params[key] = value.toString();\n\n const currentParams = new URLSearchParams(window.location.search);\n for (const param in params) {\n currentParams.set(param, encodeURIComponent(params[param]));\n }\n\n updateUrl(currentParams);\n};\n\nexport const deleteUrlParam = (key: string) => {\n if (!isSupported) return;\n const currentParams = new URLSearchParams(window.location.search);\n currentParams.delete(key);\n\n updateUrl(currentParams);\n};\n\nconst updateUrl = (params: URLSearchParams) => {\n if (!params) return;\n\n const queries = params.toString();\n const url = queries\n ? concat([location.pathname, queries + location.hash], '?')\n : location.pathname + location.hash;\n\n window.history.replaceState({}, '', url);\n};\n"],"names":["isSupported","window","getUrlParams","obj","paramsObj","Object","fromEntries","URLSearchParams","location","search","param","value","decodeURIComponent","setUrlParam","key","params","toString","currentParams","set","encodeURIComponent","updateUrl","deleteUrlParam","delete","queries","url","concat","pathname","hash","history","replaceState"],"mappings":";;AAEA,IAAMA,WAAW,GACb,OAAOC,MAAP,KAAkB,WAAlB,IAAiC,qBAAqBA,MAD1D,CAAA;AAGO,IAAMC,YAAY,GAAG,YAAA;AACxB,EAAMC,IAAAA,GAAG,GAA2B,EAApC,CAAA;AACA,EAAA,IAAI,CAACH,WAAL,EAAkB,OAAOG,GAAP,CAAA;AAElB,EAAA,IAAMC,SAAS,GAAGC,MAAM,CAACC,WAAP,CACd,IAAIC,eAAJ,CAAoBN,MAAM,CAACO,QAAP,CAAgBC,MAApC,CADc,CAAlB,CAAA;;AAIA,EAAA,KAAK,IAAMC,KAAX,IAAoBN,SAApB,EAA+B;AAC3B,IAAA,IAAIO,KAAK,GAAGP,SAAS,CAACM,KAAD,CAArB,CAAA;;AACA,IAAA,IAAI,OAAOC,KAAP,KAAiB,QAArB,EAA+B;AAC3BA,MAAAA,KAAK,GAAGC,kBAAkB,CAACD,KAAD,CAA1B,CAAA;AACH,KAAA;;AACDR,IAAAA,GAAG,CAACO,KAAD,CAAH,GAAaC,KAAb,CAAA;AACH,GAAA;;AAED,EAAA,OAAOR,GAAP,CAAA;AACH,EAjBM;IAmBMU,WAAW,GAAG,UAACC,GAAD,EAAcH,KAAd,EAAoC;AAC3D,EAAA,IACI,CAACX,WAAD,IACC,OAAOW,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAFnD,EAGE;AACE,IAAA,OAAA;AACH,GAAA;;AAED,EAAMI,IAAAA,MAAM,GAAGb,YAAY,EAA3B,CAAA;AACAa,EAAAA,MAAM,CAACD,GAAD,CAAN,GAAcH,KAAK,CAACK,QAAN,EAAd,CAAA;AAEA,EAAMC,IAAAA,aAAa,GAAG,IAAIV,eAAJ,CAAoBN,MAAM,CAACO,QAAP,CAAgBC,MAApC,CAAtB,CAAA;;AACA,EAAA,KAAK,IAAMC,KAAX,IAAoBK,MAApB,EAA4B;AACxBE,IAAAA,aAAa,CAACC,GAAd,CAAkBR,KAAlB,EAAyBS,kBAAkB,CAACJ,MAAM,CAACL,KAAD,CAAP,CAA3C,CAAA,CAAA;AACH,GAAA;;AAEDU,EAAAA,SAAS,CAACH,aAAD,CAAT,CAAA;AACH,EAjBM;AAmBMI,IAAAA,cAAc,GAAG,UAACP,GAAD,EAAY;AACtC,EAAI,IAAA,CAACd,WAAL,EAAkB,OAAA;AAClB,EAAMiB,IAAAA,aAAa,GAAG,IAAIV,eAAJ,CAAoBN,MAAM,CAACO,QAAP,CAAgBC,MAApC,CAAtB,CAAA;AACAQ,EAAAA,aAAa,CAACK,MAAd,CAAqBR,GAArB,CAAA,CAAA;AAEAM,EAAAA,SAAS,CAACH,aAAD,CAAT,CAAA;AACH,EANM;;AAQP,IAAMG,SAAS,GAAG,UAACL,MAAD,EAAwB;AACtC,EAAI,IAAA,CAACA,MAAL,EAAa,OAAA;AAEb,EAAA,IAAMQ,OAAO,GAAGR,MAAM,CAACC,QAAP,EAAhB,CAAA;AACA,EAAMQ,IAAAA,GAAG,GAAGD,OAAO,GACbE,MAAM,CAAC,CAACjB,QAAQ,CAACkB,QAAV,EAAoBH,OAAO,GAAGf,QAAQ,CAACmB,IAAvC,CAAD,EAA+C,GAA/C,CADO,GAEbnB,QAAQ,CAACkB,QAAT,GAAoBlB,QAAQ,CAACmB,IAFnC,CAAA;AAIA1B,EAAAA,MAAM,CAAC2B,OAAP,CAAeC,YAAf,CAA4B,EAA5B,EAAgC,EAAhC,EAAoCL,GAApC,CAAA,CAAA;AACH,CATD;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __assign } from './ClockFilled-
|
|
1
|
+
import { _ as __assign } from './ClockFilled-6bae80dc.js';
|
|
2
2
|
import { useMemo, useState, useCallback, useEffect } from 'react';
|
|
3
3
|
import ReactDOMServer from 'react-dom/server';
|
|
4
4
|
|
|
@@ -336,4 +336,4 @@ var useCookieConsent = function (props, onSubmit, statusRenderer) {
|
|
|
336
336
|
};
|
|
337
337
|
|
|
338
338
|
export { setCookie as a, bindConsentButtons as b, deleteCookie as d, getCookie as g, isUrlInWhitelist as i, selectors as s, useCookieConsent as u };
|
|
339
|
-
//# sourceMappingURL=useCookieConsent-
|
|
339
|
+
//# sourceMappingURL=useCookieConsent-8caef116.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCookieConsent-db86e5cb.js","sources":["../src/utils/cookie-consent/cookie.ts","../src/utils/cookie-consent/mutations.ts","../src/utils/cookie-consent/useCookieConsent.tsx"],"sourcesContent":["export interface Cookie<T extends object> {\n name: string;\n data: T;\n}\n\nexport const setCookie = <T extends object>({\n name,\n data,\n days = -1,\n path = '/',\n}: {\n name: string;\n data: T;\n days?: number;\n path?: string;\n}) => {\n let cookieString = `${name}=`;\n\n try {\n const stringifiedData = JSON.stringify(data);\n cookieString += encodeURIComponent(stringifiedData);\n } catch (err) {\n console.warn('Cannot save data to cookie!');\n }\n\n // specify path\n cookieString += `; path=${path};`;\n\n // check if cookie should have lifetime\n if (days >= 0) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n cookieString += ` expires=${date.toUTCString()};`;\n }\n document.cookie = cookieString;\n};\n\nexport const getCookie = <T extends object>(\n name: string\n): Cookie<T> | undefined => {\n let cookie = undefined;\n\n try {\n // get cookie value\n const b = document.cookie.match(\n '(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)'\n );\n let cookieValue = b ? b.pop() : '';\n cookieValue = cookieValue ? decodeURIComponent(cookieValue) : '';\n\n if (!cookieValue) return;\n\n cookie = {\n name: name,\n data: JSON.parse(cookieValue) as T,\n } as Cookie<T>;\n } catch (err) {\n console.warn(err);\n }\n\n return cookie;\n};\n\nexport const deleteCookie = (name: string) => {\n setCookie<any>({ name, data: {} });\n};\n","export const isUrlInWhitelist = (\n urlString: string,\n whitelist: string[] = []\n) => {\n let isInWhiteList = false;\n for (let i = 0; i < whitelist.length; i++) {\n if (urlString.indexOf(whitelist[i]) > -1) {\n isInWhiteList = true;\n break;\n }\n }\n return isInWhiteList;\n};\n\nexport const bindConsentButtons = (\n callback: () => void,\n selectors: string[] = []\n) => {\n const allConsentButtons = document.querySelectorAll(selectors.join(', '));\n\n for (let i = 0, len = allConsentButtons.length; i < len; i++) {\n allConsentButtons[i].addEventListener('click', callback);\n }\n};\n\nexport const activateTrackingScripts = (scriptTypeSelectors: string[] = []) => {\n const selectors = scriptTypeSelectors\n .filter((selector) => selector)\n .map((selector) => `script[type='text/${selector}']`)\n .join(', ');\n\n const scriptElements = selectors\n ? document.querySelectorAll(selectors)\n : [];\n\n let i = scriptElements.length;\n const newScriptElements: HTMLScriptElement[] = [];\n while (i--) {\n // create new script element to call it\n const newScriptElement = document.createElement('script');\n newScriptElement.type = 'text/javascript';\n\n if (scriptElements[i].hasAttribute('src')) {\n newScriptElement.src = scriptElements[i].getAttribute('src')!;\n newScriptElement.async = true;\n } else {\n newScriptElement.innerHTML = scriptElements[i].innerHTML;\n }\n\n // add new script tags to list\n newScriptElements.push(newScriptElement);\n\n // delete old helper element\n if (scriptElements[i].parentNode) {\n // eslint-disable-next-line no-unused-expressions\n scriptElements[i].parentNode?.removeChild(scriptElements[i]);\n }\n }\n\n // append new script tags\n i = newScriptElements.length;\n while (i--) {\n // append / activate script\n document.body.appendChild(newScriptElements[i]);\n }\n};\n\nexport const updateConsentStatus = (\n content: string,\n selectors: string[] = []\n) => {\n if (!content) return;\n const statusElements = document.querySelectorAll(selectors.join(', '));\n\n for (let i = 0, len = statusElements.length; i < len; i++) {\n statusElements[i].innerHTML = content;\n }\n};\n","import React, { useEffect, useState, useMemo, useCallback } from 'react';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { Cookie, getCookie, setCookie } from './cookie';\nimport { activateTrackingScripts, updateConsentStatus } from './mutations';\n\nexport interface CookieType {\n label: string;\n isAccepted: boolean;\n isEditable: boolean;\n}\n\nexport interface CookieTypes {\n [key: string]: CookieType;\n}\n\nexport interface CookieConsentData {\n types: Record<string, boolean>;\n updatedAt: number;\n}\n\nexport interface CookieConsentSettings {\n cookieName?: string;\n initialCookieTypes?: CookieTypes;\n lifetime?: number;\n}\n\nexport const selectors = {\n buttons: {\n class: 'cookie-consent-button',\n attribute: 'data-consent-button',\n },\n status: {\n class: 'cookie-consent-status',\n attribute: 'data-consent-status',\n },\n script: (key: string) => `cookie-consent-script-${key}`,\n};\n\nconst useCookieConsent = (\n props: CookieConsentSettings,\n onSubmit?: () => void,\n statusRenderer?: (props: {\n updatedAt: number;\n state: CookieTypes;\n }) => React.ReactElement\n) => {\n const settings: Required<CookieConsentSettings> = useMemo(() => {\n return {\n cookieName: 'cookie-consent-v2',\n lifetime: 365,\n initialCookieTypes: {\n essentials: {\n isEditable: false,\n isAccepted: true,\n label: 'Essential functionalities',\n },\n },\n ...props,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [cookieTypes, setCookieTypes] = useState<CookieTypes>(\n settings.initialCookieTypes\n );\n\n const updateStatus = useCallback(() => {\n const cookie = getCookie(\n settings.cookieName\n ) as Cookie<CookieConsentData>;\n\n let statusMsg = '-';\n\n if (cookie && cookie.data) {\n const statusHtml = statusRenderer?.({\n updatedAt: cookie.data.updatedAt,\n state: cookieTypes,\n });\n if (statusHtml) {\n statusMsg = ReactDOMServer.renderToStaticMarkup(statusHtml);\n }\n }\n\n updateConsentStatus(statusMsg, [\n `[${selectors.status.attribute}]`,\n `.${selectors.status.class}`,\n ]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [settings.cookieName]);\n\n useEffect(() => {\n const cookie = getCookie(\n settings.cookieName\n ) as Cookie<CookieConsentData>;\n\n if (cookie && cookie.data?.types) {\n setCookieTypes((prev) => {\n const cPrev = { ...prev };\n for (const key in cPrev) {\n if (!cookie.data.types[key]) continue;\n cPrev[key].isAccepted = cookie.data.types[key];\n }\n\n handleScriptActivation(cPrev);\n\n return cPrev;\n });\n }\n updateStatus();\n }, [settings, settings.cookieName, updateStatus]);\n\n const mapToCookieData = (types: CookieTypes): Record<string, boolean> => {\n const data = {};\n if (!types) return data;\n\n for (const key in types) {\n data[key] = types[key].isAccepted;\n }\n\n return data;\n };\n\n /** Accept all types of cookies */\n const acceptAll = useCallback(() => {\n console.info('Accept all cookie types');\n\n setCookieTypes((prev) => {\n const types = { ...prev };\n for (const key in types) {\n if (!types[key].isEditable) continue;\n types[key].isAccepted = true;\n }\n\n setCookie<CookieConsentData>({\n name: settings.cookieName,\n data: {\n types: mapToCookieData(types),\n updatedAt: new Date().getTime(),\n },\n days: settings.lifetime,\n });\n\n updateStatus();\n handleScriptActivation(types);\n return types;\n });\n onSubmit?.();\n }, [onSubmit, settings.cookieName, settings.lifetime, updateStatus]);\n\n /** Decline all types of cookies (except required ones) */\n const declineAll = useCallback(() => {\n console.info('Decline all cookie types');\n\n setCookieTypes((prev) => {\n const types = { ...prev };\n for (const key in types) {\n if (!types[key].isEditable) continue;\n types[key].isAccepted = false;\n }\n\n setCookie<CookieConsentData>({\n name: settings.cookieName,\n data: {\n types: mapToCookieData(types),\n updatedAt: new Date().getTime(),\n },\n days: settings.lifetime,\n });\n\n updateStatus();\n handleScriptActivation(types);\n return types;\n });\n onSubmit?.();\n }, [onSubmit, settings.cookieName, settings.lifetime, updateStatus]);\n\n /** Accept selected types of cookies */\n const acceptSelected = useCallback(() => {\n console.info('Accept selected cookie types');\n\n setCookie<CookieConsentData>({\n name: settings.cookieName,\n data: {\n types: mapToCookieData(cookieTypes),\n updatedAt: new Date().getTime(),\n },\n days: settings.lifetime,\n });\n\n updateStatus();\n handleScriptActivation(cookieTypes);\n onSubmit?.();\n }, [\n cookieTypes,\n onSubmit,\n settings.cookieName,\n settings.lifetime,\n updateStatus,\n ]);\n\n const handleScriptActivation = (types: CookieTypes) => {\n if (!types) return;\n\n // activate scripts from cookie types\n const acceptedKeys = Object.keys(types).filter(\n (key) => types[key].isAccepted\n );\n activateTrackingScripts(\n acceptedKeys.map((key) => selectors.script(key))\n );\n };\n\n /** Set or toggle consent status of cookie type */\n const setConsent = (type: keyof CookieTypes, isAccepted?: boolean) => {\n setCookieTypes((prev) => {\n const types = { ...prev };\n if (!types[type] || !types[type].isEditable) return types;\n\n if (isAccepted !== undefined) {\n types[type].isAccepted = isAccepted;\n } else {\n types[type].isAccepted = !types[type].isAccepted;\n }\n\n return types;\n });\n };\n\n const getCookieValue = (): Cookie<CookieConsentData> | undefined => {\n return getCookie(settings.cookieName) as Cookie<CookieConsentData>;\n };\n\n return {\n cookieTypes,\n acceptAll,\n acceptSelected,\n declineAll,\n setConsent,\n getCookieValue,\n };\n};\n\nexport default useCookieConsent;\n"],"names":["setCookie","_a","name","data","_b","days","_c","path","cookieString","concat","stringifiedData","JSON","stringify","encodeURIComponent","err","console","warn","date","Date","setTime","getTime","toUTCString","document","cookie","getCookie","undefined","b","match","cookieValue","pop","decodeURIComponent","parse","deleteCookie","isUrlInWhitelist","urlString","whitelist","isInWhiteList","i","length","indexOf","bindConsentButtons","callback","selectors","allConsentButtons","querySelectorAll","join","len","addEventListener","activateTrackingScripts","scriptTypeSelectors","filter","selector","map","scriptElements","newScriptElements","newScriptElement","createElement","type","hasAttribute","src","getAttribute","async","innerHTML","push","parentNode","removeChild","body","appendChild","updateConsentStatus","content","statusElements","buttons","class","attribute","status","script","key","useCookieConsent","props","onSubmit","statusRenderer","settings","useMemo","__assign","cookieName","lifetime","initialCookieTypes","essentials","isEditable","isAccepted","label","useState","cookieTypes","setCookieTypes","updateStatus","useCallback","statusMsg","statusHtml","updatedAt","state","ReactDOMServer","renderToStaticMarkup","useEffect","types","prev","cPrev","handleScriptActivation","mapToCookieData","acceptAll","info","declineAll","acceptSelected","acceptedKeys","Object","keys","setConsent","getCookieValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useCookieConsent-8caef116.js","sources":["../src/utils/cookie-consent/cookie.ts","../src/utils/cookie-consent/mutations.ts","../src/utils/cookie-consent/useCookieConsent.tsx"],"sourcesContent":["export interface Cookie<T extends object> {\n name: string;\n data: T;\n}\n\nexport const setCookie = <T extends object>({\n name,\n data,\n days = -1,\n path = '/',\n}: {\n name: string;\n data: T;\n days?: number;\n path?: string;\n}) => {\n let cookieString = `${name}=`;\n\n try {\n const stringifiedData = JSON.stringify(data);\n cookieString += encodeURIComponent(stringifiedData);\n } catch (err) {\n console.warn('Cannot save data to cookie!');\n }\n\n // specify path\n cookieString += `; path=${path};`;\n\n // check if cookie should have lifetime\n if (days >= 0) {\n const date = new Date();\n date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);\n cookieString += ` expires=${date.toUTCString()};`;\n }\n document.cookie = cookieString;\n};\n\nexport const getCookie = <T extends object>(\n name: string\n): Cookie<T> | undefined => {\n let cookie = undefined;\n\n try {\n // get cookie value\n const b = document.cookie.match(\n '(^|;)\\\\s*' + name + '\\\\s*=\\\\s*([^;]+)'\n );\n let cookieValue = b ? b.pop() : '';\n cookieValue = cookieValue ? decodeURIComponent(cookieValue) : '';\n\n if (!cookieValue) return;\n\n cookie = {\n name: name,\n data: JSON.parse(cookieValue) as T,\n } as Cookie<T>;\n } catch (err) {\n console.warn(err);\n }\n\n return cookie;\n};\n\nexport const deleteCookie = (name: string) => {\n setCookie<any>({ name, data: {} });\n};\n","export const isUrlInWhitelist = (\n urlString: string,\n whitelist: string[] = []\n) => {\n let isInWhiteList = false;\n for (let i = 0; i < whitelist.length; i++) {\n if (urlString.indexOf(whitelist[i]) > -1) {\n isInWhiteList = true;\n break;\n }\n }\n return isInWhiteList;\n};\n\nexport const bindConsentButtons = (\n callback: () => void,\n selectors: string[] = []\n) => {\n const allConsentButtons = document.querySelectorAll(selectors.join(', '));\n\n for (let i = 0, len = allConsentButtons.length; i < len; i++) {\n allConsentButtons[i].addEventListener('click', callback);\n }\n};\n\nexport const activateTrackingScripts = (scriptTypeSelectors: string[] = []) => {\n const selectors = scriptTypeSelectors\n .filter((selector) => selector)\n .map((selector) => `script[type='text/${selector}']`)\n .join(', ');\n\n const scriptElements = selectors\n ? document.querySelectorAll(selectors)\n : [];\n\n let i = scriptElements.length;\n const newScriptElements: HTMLScriptElement[] = [];\n while (i--) {\n // create new script element to call it\n const newScriptElement = document.createElement('script');\n newScriptElement.type = 'text/javascript';\n\n if (scriptElements[i].hasAttribute('src')) {\n newScriptElement.src = scriptElements[i].getAttribute('src')!;\n newScriptElement.async = true;\n } else {\n newScriptElement.innerHTML = scriptElements[i].innerHTML;\n }\n\n // add new script tags to list\n newScriptElements.push(newScriptElement);\n\n // delete old helper element\n if (scriptElements[i].parentNode) {\n // eslint-disable-next-line no-unused-expressions\n scriptElements[i].parentNode?.removeChild(scriptElements[i]);\n }\n }\n\n // append new script tags\n i = newScriptElements.length;\n while (i--) {\n // append / activate script\n document.body.appendChild(newScriptElements[i]);\n }\n};\n\nexport const updateConsentStatus = (\n content: string,\n selectors: string[] = []\n) => {\n if (!content) return;\n const statusElements = document.querySelectorAll(selectors.join(', '));\n\n for (let i = 0, len = statusElements.length; i < len; i++) {\n statusElements[i].innerHTML = content;\n }\n};\n","import React, { useEffect, useState, useMemo, useCallback } from 'react';\nimport ReactDOMServer from 'react-dom/server';\n\nimport { Cookie, getCookie, setCookie } from './cookie';\nimport { activateTrackingScripts, updateConsentStatus } from './mutations';\n\nexport interface CookieType {\n label: string;\n isAccepted: boolean;\n isEditable: boolean;\n}\n\nexport interface CookieTypes {\n [key: string]: CookieType;\n}\n\nexport interface CookieConsentData {\n types: Record<string, boolean>;\n updatedAt: number;\n}\n\nexport interface CookieConsentSettings {\n cookieName?: string;\n initialCookieTypes?: CookieTypes;\n lifetime?: number;\n}\n\nexport const selectors = {\n buttons: {\n class: 'cookie-consent-button',\n attribute: 'data-consent-button',\n },\n status: {\n class: 'cookie-consent-status',\n attribute: 'data-consent-status',\n },\n script: (key: string) => `cookie-consent-script-${key}`,\n};\n\nconst useCookieConsent = (\n props: CookieConsentSettings,\n onSubmit?: () => void,\n statusRenderer?: (props: {\n updatedAt: number;\n state: CookieTypes;\n }) => React.ReactElement\n) => {\n const settings: Required<CookieConsentSettings> = useMemo(() => {\n return {\n cookieName: 'cookie-consent-v2',\n lifetime: 365,\n initialCookieTypes: {\n essentials: {\n isEditable: false,\n isAccepted: true,\n label: 'Essential functionalities',\n },\n },\n ...props,\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const [cookieTypes, setCookieTypes] = useState<CookieTypes>(\n settings.initialCookieTypes\n );\n\n const updateStatus = useCallback(() => {\n const cookie = getCookie(\n settings.cookieName\n ) as Cookie<CookieConsentData>;\n\n let statusMsg = '-';\n\n if (cookie && cookie.data) {\n const statusHtml = statusRenderer?.({\n updatedAt: cookie.data.updatedAt,\n state: cookieTypes,\n });\n if (statusHtml) {\n statusMsg = ReactDOMServer.renderToStaticMarkup(statusHtml);\n }\n }\n\n updateConsentStatus(statusMsg, [\n `[${selectors.status.attribute}]`,\n `.${selectors.status.class}`,\n ]);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [settings.cookieName]);\n\n useEffect(() => {\n const cookie = getCookie(\n settings.cookieName\n ) as Cookie<CookieConsentData>;\n\n if (cookie && cookie.data?.types) {\n setCookieTypes((prev) => {\n const cPrev = { ...prev };\n for (const key in cPrev) {\n if (!cookie.data.types[key]) continue;\n cPrev[key].isAccepted = cookie.data.types[key];\n }\n\n handleScriptActivation(cPrev);\n\n return cPrev;\n });\n }\n updateStatus();\n }, [settings, settings.cookieName, updateStatus]);\n\n const mapToCookieData = (types: CookieTypes): Record<string, boolean> => {\n const data = {};\n if (!types) return data;\n\n for (const key in types) {\n data[key] = types[key].isAccepted;\n }\n\n return data;\n };\n\n /** Accept all types of cookies */\n const acceptAll = useCallback(() => {\n console.info('Accept all cookie types');\n\n setCookieTypes((prev) => {\n const types = { ...prev };\n for (const key in types) {\n if (!types[key].isEditable) continue;\n types[key].isAccepted = true;\n }\n\n setCookie<CookieConsentData>({\n name: settings.cookieName,\n data: {\n types: mapToCookieData(types),\n updatedAt: new Date().getTime(),\n },\n days: settings.lifetime,\n });\n\n updateStatus();\n handleScriptActivation(types);\n return types;\n });\n onSubmit?.();\n }, [onSubmit, settings.cookieName, settings.lifetime, updateStatus]);\n\n /** Decline all types of cookies (except required ones) */\n const declineAll = useCallback(() => {\n console.info('Decline all cookie types');\n\n setCookieTypes((prev) => {\n const types = { ...prev };\n for (const key in types) {\n if (!types[key].isEditable) continue;\n types[key].isAccepted = false;\n }\n\n setCookie<CookieConsentData>({\n name: settings.cookieName,\n data: {\n types: mapToCookieData(types),\n updatedAt: new Date().getTime(),\n },\n days: settings.lifetime,\n });\n\n updateStatus();\n handleScriptActivation(types);\n return types;\n });\n onSubmit?.();\n }, [onSubmit, settings.cookieName, settings.lifetime, updateStatus]);\n\n /** Accept selected types of cookies */\n const acceptSelected = useCallback(() => {\n console.info('Accept selected cookie types');\n\n setCookie<CookieConsentData>({\n name: settings.cookieName,\n data: {\n types: mapToCookieData(cookieTypes),\n updatedAt: new Date().getTime(),\n },\n days: settings.lifetime,\n });\n\n updateStatus();\n handleScriptActivation(cookieTypes);\n onSubmit?.();\n }, [\n cookieTypes,\n onSubmit,\n settings.cookieName,\n settings.lifetime,\n updateStatus,\n ]);\n\n const handleScriptActivation = (types: CookieTypes) => {\n if (!types) return;\n\n // activate scripts from cookie types\n const acceptedKeys = Object.keys(types).filter(\n (key) => types[key].isAccepted\n );\n activateTrackingScripts(\n acceptedKeys.map((key) => selectors.script(key))\n );\n };\n\n /** Set or toggle consent status of cookie type */\n const setConsent = (type: keyof CookieTypes, isAccepted?: boolean) => {\n setCookieTypes((prev) => {\n const types = { ...prev };\n if (!types[type] || !types[type].isEditable) return types;\n\n if (isAccepted !== undefined) {\n types[type].isAccepted = isAccepted;\n } else {\n types[type].isAccepted = !types[type].isAccepted;\n }\n\n return types;\n });\n };\n\n const getCookieValue = (): Cookie<CookieConsentData> | undefined => {\n return getCookie(settings.cookieName) as Cookie<CookieConsentData>;\n };\n\n return {\n cookieTypes,\n acceptAll,\n acceptSelected,\n declineAll,\n setConsent,\n getCookieValue,\n };\n};\n\nexport default useCookieConsent;\n"],"names":["setCookie","_a","name","data","_b","days","_c","path","cookieString","concat","stringifiedData","JSON","stringify","encodeURIComponent","err","console","warn","date","Date","setTime","getTime","toUTCString","document","cookie","getCookie","undefined","b","match","cookieValue","pop","decodeURIComponent","parse","deleteCookie","isUrlInWhitelist","urlString","whitelist","isInWhiteList","i","length","indexOf","bindConsentButtons","callback","selectors","allConsentButtons","querySelectorAll","join","len","addEventListener","activateTrackingScripts","scriptTypeSelectors","filter","selector","map","scriptElements","newScriptElements","newScriptElement","createElement","type","hasAttribute","src","getAttribute","async","innerHTML","push","parentNode","removeChild","body","appendChild","updateConsentStatus","content","statusElements","buttons","class","attribute","status","script","key","useCookieConsent","props","onSubmit","statusRenderer","settings","useMemo","__assign","cookieName","lifetime","initialCookieTypes","essentials","isEditable","isAccepted","label","useState","cookieTypes","setCookieTypes","updateStatus","useCallback","statusMsg","statusHtml","updatedAt","state","ReactDOMServer","renderToStaticMarkup","useEffect","types","prev","cPrev","handleScriptActivation","mapToCookieData","acceptAll","info","declineAll","acceptSelected","acceptedKeys","Object","keys","setConsent","getCookieValue"],"mappings":";;;;AAKaA,IAAAA,SAAS,GAAG,UAAmBC,EAAnB,EAUxB;AATG,EAAA,IAAAC,IAAI,UAAJ;AAAA,MACAC,IAAI,UADJ;AAAA,MAEAC,EAAA,GAAAH,EAAA,CAAAI,IAFA;AAAA,MAEAA,IAAI,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,CAAC,CAAJ,KAFJ;AAAA,MAGAE,EAAA,GAAAL,EAAA,CAAAM,IAHA;AAAA,MAGAA,IAAI,GAAAD,EAAA,KAAA,KAAA,CAAA,GAAG,GAAH,GAAMA,EAHV,CAAA;AAUA,EAAIE,IAAAA,YAAY,GAAG,EAAGC,CAAAA,MAAH,CAAGP,IAAH,KAAA,CAAnB,CAAA;;AAEA,EAAI,IAAA;AACA,IAAA,IAAMQ,eAAe,GAAGC,IAAI,CAACC,SAAL,CAAeT,IAAf,CAAxB,CAAA;AACAK,IAAAA,YAAY,IAAIK,kBAAkB,CAACH,eAAD,CAAlC,CAAA;AACH,GAHD,CAGE,OAAOI,GAAP,EAAY;AACVC,IAAAA,OAAO,CAACC,IAAR,CAAa,6BAAb,CAAA,CAAA;AACH,GARJ;;;AAWGR,EAAAA,YAAY,IAAI,SAAA,CAAAC,MAAA,CAAUF,IAAV,EAAc,GAAd,CAAhB,CAXH;;AAcG,EAAIF,IAAAA,IAAI,IAAI,CAAZ,EAAe;AACX,IAAA,IAAMY,IAAI,GAAG,IAAIC,IAAJ,EAAb,CAAA;AACAD,IAAAA,IAAI,CAACE,OAAL,CAAaF,IAAI,CAACG,OAAL,EAAA,GAAiBf,IAAI,GAAG,EAAP,GAAY,EAAZ,GAAiB,EAAjB,GAAsB,IAApD,CAAA,CAAA;AACAG,IAAAA,YAAY,IAAI,WAAA,CAAYC,MAAZ,CAAYQ,IAAI,CAACI,WAAL,EAAZ,KAAA,CAAhB,CAAA;AACH,GAAA;;AACDC,EAAAA,QAAQ,CAACC,MAAT,GAAkBf,YAAlB,CAAA;AACH,EA9BM;AAgCMgB,IAAAA,SAAS,GAAG,UACrBtB,IADqB,EACT;AAEZ,EAAIqB,IAAAA,MAAM,GAAGE,SAAb,CAAA;;AAEA,EAAI,IAAA;AACA;AACA,IAAA,IAAMC,CAAC,GAAGJ,QAAQ,CAACC,MAAT,CAAgBI,KAAhB,CACN,WAAczB,GAAAA,IAAd,GAAqB,kBADf,CAAV,CAAA;AAGA,IAAI0B,IAAAA,WAAW,GAAGF,CAAC,GAAGA,CAAC,CAACG,GAAF,EAAH,GAAa,EAAhC,CAAA;AACAD,IAAAA,WAAW,GAAGA,WAAW,GAAGE,kBAAkB,CAACF,WAAD,CAArB,GAAqC,EAA9D,CAAA;AAEA,IAAI,IAAA,CAACA,WAAL,EAAkB,OAAA;AAElBL,IAAAA,MAAM,GAAG;AACLrB,MAAAA,IAAI,EAAEA,IADD;AAELC,MAAAA,IAAI,EAAEQ,IAAI,CAACoB,KAAL,CAAWH,WAAX,CAAA;AAFD,KAAT,CAAA;AAIH,GAdD,CAcE,OAAOd,GAAP,EAAY;AACVC,IAAAA,OAAO,CAACC,IAAR,CAAaF,GAAb,CAAA,CAAA;AACH,GAAA;;AAED,EAAA,OAAOS,MAAP,CAAA;AACH,EAxBM;AA0BMS,IAAAA,YAAY,GAAG,UAAC9B,IAAD,EAAa;AACrCF,EAAAA,SAAS,CAAM;AAAEE,IAAAA,IAAI,EAAAA,IAAN;AAAQC,IAAAA,IAAI,EAAE,EAAA;AAAd,GAAN,CAAT,CAAA;AACH;;ICjEY8B,gBAAgB,GAAG,UAC5BC,SAD4B,EAE5BC,SAF4B,EAEJ;AAAxB,EAAA,IAAAA,SAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,SAAwB,GAAA,EAAxB,CAAA;AAAwB,GAAA;;AAExB,EAAIC,IAAAA,aAAa,GAAG,KAApB,CAAA;;AACA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGF,SAAS,CAACG,MAA9B,EAAsCD,CAAC,EAAvC,EAA2C;AACvC,IAAIH,IAAAA,SAAS,CAACK,OAAV,CAAkBJ,SAAS,CAACE,CAAD,CAA3B,CAAA,GAAkC,CAAC,CAAvC,EAA0C;AACtCD,MAAAA,aAAa,GAAG,IAAhB,CAAA;AACA,MAAA,MAAA;AACH,KAAA;AACJ,GAAA;;AACD,EAAA,OAAOA,aAAP,CAAA;AACH,EAZM;IAcMI,kBAAkB,GAAG,UAC9BC,QAD8B,EAE9BC,SAF8B,EAEN;AAAxB,EAAA,IAAAA,SAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,SAAwB,GAAA,EAAxB,CAAA;AAAwB,GAAA;;AAExB,EAAA,IAAMC,iBAAiB,GAAGrB,QAAQ,CAACsB,gBAAT,CAA0BF,SAAS,CAACG,IAAV,CAAe,IAAf,CAA1B,CAA1B,CAAA;;AAEA,EAAA,KAAK,IAAIR,CAAC,GAAG,CAAR,EAAWS,GAAG,GAAGH,iBAAiB,CAACL,MAAxC,EAAgDD,CAAC,GAAGS,GAApD,EAAyDT,CAAC,EAA1D,EAA8D;AAC1DM,IAAAA,iBAAiB,CAACN,CAAD,CAAjB,CAAqBU,gBAArB,CAAsC,OAAtC,EAA+CN,QAA/C,CAAA,CAAA;AACH,GAAA;AACJ,EATM;AAWA,IAAMO,uBAAuB,GAAG,UAACC,mBAAD,EAAmC;;;AAAlC,EAAA,IAAAA,mBAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,mBAAkC,GAAA,EAAlC,CAAA;AAAkC,GAAA;;AACtE,EAAMP,IAAAA,SAAS,GAAGO,mBAAmB,CAChCC,MADa,CACN,UAACC,QAAD,EAAS;AAAK,IAAA,OAAAA,QAAA,CAAA;AAAQ,GADhB,CAEbC,CAAAA,GAFa,CAET,UAACD,QAAD,EAAc;AAAA,IAAA,OAAA,2BAAA,CAAqBA,QAArB,EAA6B,IAA7B,CAAA,CAAA;AAAiC,GAFtC,CAGbN,CAAAA,IAHa,CAGR,IAHQ,CAAlB,CAAA;AAKA,EAAMQ,IAAAA,cAAc,GAAGX,SAAS,GAC1BpB,QAAQ,CAACsB,gBAAT,CAA0BF,SAA1B,CAD0B,GAE1B,EAFN,CAAA;AAIA,EAAA,IAAIL,CAAC,GAAGgB,cAAc,CAACf,MAAvB,CAAA;AACA,EAAMgB,IAAAA,iBAAiB,GAAwB,EAA/C,CAAA;;AACA,EAAOjB,OAAAA,CAAC,EAAR,EAAY;AACR;AACA,IAAA,IAAMkB,gBAAgB,GAAGjC,QAAQ,CAACkC,aAAT,CAAuB,QAAvB,CAAzB,CAAA;AACAD,IAAAA,gBAAgB,CAACE,IAAjB,GAAwB,iBAAxB,CAAA;;AAEA,IAAIJ,IAAAA,cAAc,CAAChB,CAAD,CAAd,CAAkBqB,YAAlB,CAA+B,KAA/B,CAAJ,EAA2C;AACvCH,MAAAA,gBAAgB,CAACI,GAAjB,GAAuBN,cAAc,CAAChB,CAAD,CAAd,CAAkBuB,YAAlB,CAA+B,KAA/B,CAAvB,CAAA;AACAL,MAAAA,gBAAgB,CAACM,KAAjB,GAAyB,IAAzB,CAAA;AACH,KAHD,MAGO;AACHN,MAAAA,gBAAgB,CAACO,SAAjB,GAA6BT,cAAc,CAAChB,CAAD,CAAd,CAAkByB,SAA/C,CAAA;AACH,KAVO;;;AAaRR,IAAAA,iBAAiB,CAACS,IAAlB,CAAuBR,gBAAvB,EAbQ;;AAgBR,IAAA,IAAIF,cAAc,CAAChB,CAAD,CAAd,CAAkB2B,UAAtB,EAAkC;AAC9B;AACA,MAAA/D,CAAAA,EAAA,GAAAoD,cAAc,CAAChB,CAAD,CAAd,CAAkB2B,UAAlB,MAA4B,IAA5B,IAA4B/D,EAAA,KAAA,KAAA,CAA5B,GAA4B,KAAA,CAA5B,GAA4BA,EAAA,CAAEgE,WAAF,CAAcZ,cAAc,CAAChB,CAAD,CAA5B,CAA5B,CAAA;AACH,KAAA;AACJ,GAhCqE;;;AAmCtEA,EAAAA,CAAC,GAAGiB,iBAAiB,CAAChB,MAAtB,CAAA;;AACA,EAAOD,OAAAA,CAAC,EAAR,EAAY;AACR;AACAf,IAAAA,QAAQ,CAAC4C,IAAT,CAAcC,WAAd,CAA0Bb,iBAAiB,CAACjB,CAAD,CAA3C,CAAA,CAAA;AACH,GAAA;AACJ,CAxCM,CAAA;AA0CA,IAAM+B,mBAAmB,GAAG,UAC/BC,OAD+B,EAE/B3B,SAF+B,EAEP;AAAxB,EAAA,IAAAA,SAAA,KAAA,KAAA,CAAA,EAAA;AAAAA,IAAAA,SAAwB,GAAA,EAAxB,CAAA;AAAwB,GAAA;;AAExB,EAAI,IAAA,CAAC2B,OAAL,EAAc,OAAA;AACd,EAAA,IAAMC,cAAc,GAAGhD,QAAQ,CAACsB,gBAAT,CAA0BF,SAAS,CAACG,IAAV,CAAe,IAAf,CAA1B,CAAvB,CAAA;;AAEA,EAAA,KAAK,IAAIR,CAAC,GAAG,CAAR,EAAWS,GAAG,GAAGwB,cAAc,CAAChC,MAArC,EAA6CD,CAAC,GAAGS,GAAjD,EAAsDT,CAAC,EAAvD,EAA2D;AACvDiC,IAAAA,cAAc,CAACjC,CAAD,CAAd,CAAkByB,SAAlB,GAA8BO,OAA9B,CAAA;AACH,GAAA;AACJ,CAVM;;ACxCA,IAAM3B,SAAS,GAAG;AACrB6B,EAAAA,OAAO,EAAE;AACLC,IAAAA,KAAK,EAAE,uBADF;AAELC,IAAAA,SAAS,EAAE,qBAAA;AAFN,GADY;AAKrBC,EAAAA,MAAM,EAAE;AACJF,IAAAA,KAAK,EAAE,uBADH;AAEJC,IAAAA,SAAS,EAAE,qBAAA;AAFP,GALa;AASrBE,EAAAA,MAAM,EAAE,UAACC,GAAD,EAAY;AAAK,IAAA,OAAA,wBAAyBnE,CAAAA,MAAzB,CAAyBmE,GAAzB,CAAA,CAAA;AAA8B,GAAA;AATlC,EAAlB;;AAYDC,IAAAA,gBAAgB,GAAG,UACrBC,KADqB,EAErBC,QAFqB,EAGrBC,cAHqB,EAMG;AAExB,EAAA,IAAMC,QAAQ,GAAoCC,OAAO,CAAC,YAAA;AACtD,IAAA,OACIC,QAAA,CAAA;AAAAC,MAAAA,UAAU,EAAE,mBAAZ;AACAC,MAAAA,QAAQ,EAAE,GADV;AAEAC,MAAAA,kBAAkB,EAAE;AAChBC,QAAAA,UAAU,EAAE;AACRC,UAAAA,UAAU,EAAE,KADJ;AAERC,UAAAA,UAAU,EAAE,IAFJ;AAGRC,UAAAA,KAAK,EAAE,2BAAA;AAHC,SAAA;AADI,OAAA;AAFpB,KAAA,EASGZ,KATH,CADJ,CADsD;AAczD,GAdwD,EActD,EAdsD,CAAzD,CAAA;;AAgBM,EAAA,IAAA7E,EAAgC,GAAA0F,QAAQ,CAC1CV,QAAQ,CAACK,kBADiC,CAAxC;AAAA,MAACM,WAAW,GAAA3F,EAAA,CAAA,CAAA,CAAZ;AAAA,MAAc4F,cAAc,QAA5B,CAAA;;AAIN,EAAA,IAAMC,YAAY,GAAGC,WAAW,CAAC,YAAA;AAC7B,IAAA,IAAMxE,MAAM,GAAGC,SAAS,CACpByD,QAAQ,CAACG,UADW,CAAxB,CAAA;AAIA,IAAIY,IAAAA,SAAS,GAAG,GAAhB,CAAA;;AAEA,IAAA,IAAIzE,MAAM,IAAIA,MAAM,CAACpB,IAArB,EAA2B;AACvB,MAAA,IAAM8F,UAAU,GAAGjB,cAAc,SAAd,IAAAA,cAAc,KAAA,KAAA,CAAd,GAAc,KAAA,CAAd,GAAAA,cAAc,CAAG;AAChCkB,QAAAA,SAAS,EAAE3E,MAAM,CAACpB,IAAP,CAAY+F,SADS;AAEhCC,QAAAA,KAAK,EAAEP,WAAAA;AAFyB,OAAH,CAAjC,CAAA;;AAIA,MAAA,IAAIK,UAAJ,EAAgB;AACZD,QAAAA,SAAS,GAAGI,cAAc,CAACC,oBAAf,CAAoCJ,UAApC,CAAZ,CAAA;AACH,OAAA;AACJ,KAAA;;AAED7B,IAAAA,mBAAmB,CAAC4B,SAAD,EAAY,CAC3B,GAAA,CAAAvF,MAAA,CAAIiC,SAAS,CAACgC,MAAV,CAAiBD,SAArB,EAAiC,GAAjC,CAD2B,EAE3B,GAAA,CAAAhE,MAAA,CAAIiC,SAAS,CAACgC,MAAV,CAAiBF,KAArB,CAF2B,CAAZ,CAAnB,CAjB6B;AAsBhC,GAtB+B,EAsB7B,CAACS,QAAQ,CAACG,UAAV,CAtB6B,CAAhC,CAAA;AAwBAkB,EAAAA,SAAS,CAAC,YAAA;;;AACN,IAAA,IAAM/E,MAAM,GAAGC,SAAS,CACpByD,QAAQ,CAACG,UADW,CAAxB,CAAA;;AAIA,IAAI7D,IAAAA,MAAM,KAAI,CAAAtB,EAAA,GAAAsB,MAAM,CAACpB,IAAP,MAAW,IAAX,IAAWF,EAAA,KAAA,KAAA,CAAX,GAAW,KAAA,CAAX,GAAWA,EAAA,CAAEsG,KAAjB,CAAV,EAAkC;AAC9BV,MAAAA,cAAc,CAAC,UAACW,IAAD,EAAK;AAChB,QAAA,IAAMC,KAAK,GAAAtB,QAAA,CAAA,EAAA,EAAQqB,IAAR,CAAX,CAAA;;AACA,QAAA,KAAK,IAAM5B,GAAX,IAAkB6B,KAAlB,EAAyB;AACrB,UAAI,IAAA,CAAClF,MAAM,CAACpB,IAAP,CAAYoG,KAAZ,CAAkB3B,GAAlB,CAAL,EAA6B,SAAA;AAC7B6B,UAAAA,KAAK,CAAC7B,GAAD,CAAL,CAAWa,UAAX,GAAwBlE,MAAM,CAACpB,IAAP,CAAYoG,KAAZ,CAAkB3B,GAAlB,CAAxB,CAAA;AACH,SAAA;;AAED8B,QAAAA,sBAAsB,CAACD,KAAD,CAAtB,CAAA;AAEA,QAAA,OAAOA,KAAP,CAAA;AACH,OAVa,CAAd,CAAA;AAWH,KAAA;;AACDX,IAAAA,YAAY,EAAA,CAAA;AACf,GAnBQ,EAmBN,CAACb,QAAD,EAAWA,QAAQ,CAACG,UAApB,EAAgCU,YAAhC,CAnBM,CAAT,CAAA;;AAqBA,EAAA,IAAMa,eAAe,GAAG,UAACJ,KAAD,EAAmB;AACvC,IAAMpG,IAAAA,IAAI,GAAG,EAAb,CAAA;AACA,IAAA,IAAI,CAACoG,KAAL,EAAY,OAAOpG,IAAP,CAAA;;AAEZ,IAAA,KAAK,IAAMyE,GAAX,IAAkB2B,KAAlB,EAAyB;AACrBpG,MAAAA,IAAI,CAACyE,GAAD,CAAJ,GAAY2B,KAAK,CAAC3B,GAAD,CAAL,CAAWa,UAAvB,CAAA;AACH,KAAA;;AAED,IAAA,OAAOtF,IAAP,CAAA;AACH,GATD,CAAA;AAWA;;;AACA,EAAA,IAAMyG,SAAS,GAAGb,WAAW,CAAC,YAAA;AAC1BhF,IAAAA,OAAO,CAAC8F,IAAR,CAAa,yBAAb,CAAA,CAAA;AAEAhB,IAAAA,cAAc,CAAC,UAACW,IAAD,EAAK;AAChB,MAAA,IAAMD,KAAK,GAAApB,QAAA,CAAA,EAAA,EAAQqB,IAAR,CAAX,CAAA;;AACA,MAAA,KAAK,IAAM5B,GAAX,IAAkB2B,KAAlB,EAAyB;AACrB,QAAA,IAAI,CAACA,KAAK,CAAC3B,GAAD,CAAL,CAAWY,UAAhB,EAA4B,SAAA;AAC5Be,QAAAA,KAAK,CAAC3B,GAAD,CAAL,CAAWa,UAAX,GAAwB,IAAxB,CAAA;AACH,OAAA;;AAEDzF,MAAAA,SAAS,CAAoB;AACzBE,QAAAA,IAAI,EAAE+E,QAAQ,CAACG,UADU;AAEzBjF,QAAAA,IAAI,EAAE;AACFoG,UAAAA,KAAK,EAAEI,eAAe,CAACJ,KAAD,CADpB;AAEFL,UAAAA,SAAS,EAAE,IAAIhF,IAAJ,GAAWE,OAAX,EAAA;AAFT,SAFmB;AAMzBf,QAAAA,IAAI,EAAE4E,QAAQ,CAACI,QAAAA;AANU,OAApB,CAAT,CAAA;AASAS,MAAAA,YAAY,EAAA,CAAA;AACZY,MAAAA,sBAAsB,CAACH,KAAD,CAAtB,CAAA;AACA,MAAA,OAAOA,KAAP,CAAA;AACH,KAnBa,CAAd,CAAA;AAoBAxB,IAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,EAAR,CAAA;AACH,GAxB4B,EAwB1B,CAACA,QAAD,EAAWE,QAAQ,CAACG,UAApB,EAAgCH,QAAQ,CAACI,QAAzC,EAAmDS,YAAnD,CAxB0B,CAA7B,CAAA;AA0BA;;AACA,EAAA,IAAMgB,UAAU,GAAGf,WAAW,CAAC,YAAA;AAC3BhF,IAAAA,OAAO,CAAC8F,IAAR,CAAa,0BAAb,CAAA,CAAA;AAEAhB,IAAAA,cAAc,CAAC,UAACW,IAAD,EAAK;AAChB,MAAA,IAAMD,KAAK,GAAApB,QAAA,CAAA,EAAA,EAAQqB,IAAR,CAAX,CAAA;;AACA,MAAA,KAAK,IAAM5B,GAAX,IAAkB2B,KAAlB,EAAyB;AACrB,QAAA,IAAI,CAACA,KAAK,CAAC3B,GAAD,CAAL,CAAWY,UAAhB,EAA4B,SAAA;AAC5Be,QAAAA,KAAK,CAAC3B,GAAD,CAAL,CAAWa,UAAX,GAAwB,KAAxB,CAAA;AACH,OAAA;;AAEDzF,MAAAA,SAAS,CAAoB;AACzBE,QAAAA,IAAI,EAAE+E,QAAQ,CAACG,UADU;AAEzBjF,QAAAA,IAAI,EAAE;AACFoG,UAAAA,KAAK,EAAEI,eAAe,CAACJ,KAAD,CADpB;AAEFL,UAAAA,SAAS,EAAE,IAAIhF,IAAJ,GAAWE,OAAX,EAAA;AAFT,SAFmB;AAMzBf,QAAAA,IAAI,EAAE4E,QAAQ,CAACI,QAAAA;AANU,OAApB,CAAT,CAAA;AASAS,MAAAA,YAAY,EAAA,CAAA;AACZY,MAAAA,sBAAsB,CAACH,KAAD,CAAtB,CAAA;AACA,MAAA,OAAOA,KAAP,CAAA;AACH,KAnBa,CAAd,CAAA;AAoBAxB,IAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,EAAR,CAAA;AACH,GAxB6B,EAwB3B,CAACA,QAAD,EAAWE,QAAQ,CAACG,UAApB,EAAgCH,QAAQ,CAACI,QAAzC,EAAmDS,YAAnD,CAxB2B,CAA9B,CAAA;AA0BA;;AACA,EAAA,IAAMiB,cAAc,GAAGhB,WAAW,CAAC,YAAA;AAC/BhF,IAAAA,OAAO,CAAC8F,IAAR,CAAa,8BAAb,CAAA,CAAA;AAEA7G,IAAAA,SAAS,CAAoB;AACzBE,MAAAA,IAAI,EAAE+E,QAAQ,CAACG,UADU;AAEzBjF,MAAAA,IAAI,EAAE;AACFoG,QAAAA,KAAK,EAAEI,eAAe,CAACf,WAAD,CADpB;AAEFM,QAAAA,SAAS,EAAE,IAAIhF,IAAJ,GAAWE,OAAX,EAAA;AAFT,OAFmB;AAMzBf,MAAAA,IAAI,EAAE4E,QAAQ,CAACI,QAAAA;AANU,KAApB,CAAT,CAAA;AASAS,IAAAA,YAAY,EAAA,CAAA;AACZY,IAAAA,sBAAsB,CAACd,WAAD,CAAtB,CAAA;AACAb,IAAAA,QAAQ,KAAR,IAAA,IAAAA,QAAQ,KAAR,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,QAAQ,EAAR,CAAA;AACH,GAfiC,EAe/B,CACCa,WADD,EAECb,QAFD,EAGCE,QAAQ,CAACG,UAHV,EAICH,QAAQ,CAACI,QAJV,EAKCS,YALD,CAf+B,CAAlC,CAAA;;AAuBA,EAAA,IAAMY,sBAAsB,GAAG,UAACH,KAAD,EAAmB;AAC9C,IAAA,IAAI,CAACA,KAAL,EAAY,OADkC;;AAI9C,IAAA,IAAMS,YAAY,GAAGC,MAAM,CAACC,IAAP,CAAYX,KAAZ,CAAA,CAAmBrD,MAAnB,CACjB,UAAC0B,GAAD,EAAS;AAAA,MAAA,OAAA2B,KAAK,CAAC3B,GAAD,CAAL,CAAWa,UAAX,CAAA;AAAqB,KADb,CAArB,CAAA;AAGAzC,IAAAA,uBAAuB,CACnBgE,YAAY,CAAC5D,GAAb,CAAiB,UAACwB,GAAD,EAAS;AAAA,MAAA,OAAAlC,SAAS,CAACiC,MAAV,CAAiBC,GAAjB,CAAA,CAAA;AAAqB,KAA/C,CADmB,CAAvB,CAAA;AAGH,GAVD,CAAA;AAYA;;;AACA,EAAA,IAAMuC,UAAU,GAAG,UAAC1D,IAAD,EAA0BgC,UAA1B,EAA8C;AAC7DI,IAAAA,cAAc,CAAC,UAACW,IAAD,EAAK;AAChB,MAAA,IAAMD,KAAK,GAAApB,QAAA,CAAA,EAAA,EAAQqB,IAAR,CAAX,CAAA;;AACA,MAAA,IAAI,CAACD,KAAK,CAAC9C,IAAD,CAAN,IAAgB,CAAC8C,KAAK,CAAC9C,IAAD,CAAL,CAAY+B,UAAjC,EAA6C,OAAOe,KAAP,CAAA;;AAE7C,MAAId,IAAAA,UAAU,KAAKhE,SAAnB,EAA8B;AAC1B8E,QAAAA,KAAK,CAAC9C,IAAD,CAAL,CAAYgC,UAAZ,GAAyBA,UAAzB,CAAA;AACH,OAFD,MAEO;AACHc,QAAAA,KAAK,CAAC9C,IAAD,CAAL,CAAYgC,UAAZ,GAAyB,CAACc,KAAK,CAAC9C,IAAD,CAAL,CAAYgC,UAAtC,CAAA;AACH,OAAA;;AAED,MAAA,OAAOc,KAAP,CAAA;AACH,KAXa,CAAd,CAAA;AAYH,GAbD,CAAA;;AAeA,EAAMa,IAAAA,cAAc,GAAG,YAAA;AACnB,IAAA,OAAO5F,SAAS,CAACyD,QAAQ,CAACG,UAAV,CAAhB,CAAA;AACH,GAFD,CAAA;;AAIA,EAAO,OAAA;AACHQ,IAAAA,WAAW,EAAAA,WADR;AAEHgB,IAAAA,SAAS,EAAAA,SAFN;AAGHG,IAAAA,cAAc,EAAAA,cAHX;AAIHD,IAAAA,UAAU,EAAAA,UAJP;AAKHK,IAAAA,UAAU,EAAAA,UALP;AAMHC,IAAAA,cAAc,EAAAA,cAAAA;AANX,GAAP,CAAA;AAQH;;;;"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { _ as __assign, e as __spreadArray } from './ClockFilled-
|
|
1
|
+
import { _ as __assign, e as __spreadArray } from './ClockFilled-6bae80dc.js';
|
|
2
2
|
import { useState, useEffect, useRef, useCallback, createRef } from 'react';
|
|
3
|
-
import { u as useMediaQuery } from './useMediaQuery-
|
|
4
|
-
import { c as concat } from './concat-ab3c66f2.js';
|
|
3
|
+
import { u as useMediaQuery } from './useMediaQuery-0d473a9c.js';
|
|
5
4
|
|
|
6
5
|
var useFontsLoaded = function () {
|
|
7
6
|
var _a = useState(false),
|
|
@@ -193,105 +192,5 @@ var useEqualSheetHeight = function (props) {
|
|
|
193
192
|
};
|
|
194
193
|
};
|
|
195
194
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
var firstPos = useRef(0);
|
|
199
|
-
|
|
200
|
-
var _a = useState(undefined),
|
|
201
|
-
targetPos = _a[0],
|
|
202
|
-
setTargetPos = _a[1];
|
|
203
|
-
|
|
204
|
-
var outQuad = function (n) {
|
|
205
|
-
return n * (2 - n);
|
|
206
|
-
};
|
|
207
|
-
|
|
208
|
-
useEffect(function () {
|
|
209
|
-
if (targetPos === undefined) return;
|
|
210
|
-
|
|
211
|
-
if ('scrollBehavior' in document.documentElement.style) {
|
|
212
|
-
window.scroll({
|
|
213
|
-
top: targetPos,
|
|
214
|
-
left: 0,
|
|
215
|
-
behavior: 'smooth'
|
|
216
|
-
});
|
|
217
|
-
setTargetPos(undefined);
|
|
218
|
-
} else {
|
|
219
|
-
var animate_1 = function (timestamp) {
|
|
220
|
-
if (startTime.current === -1) {
|
|
221
|
-
startTime.current = timestamp || new Date().getTime();
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
var elapsed = timestamp - startTime.current;
|
|
225
|
-
var progress = elapsed / fallbackScrollDuration;
|
|
226
|
-
var easeProgress = +outQuad(progress).toFixed(2);
|
|
227
|
-
var newPos = targetPos === 0 ? firstPos.current - firstPos.current * easeProgress : firstPos.current + targetPos * easeProgress; // scroll to new position
|
|
228
|
-
|
|
229
|
-
window.scrollTo(0, newPos);
|
|
230
|
-
|
|
231
|
-
if (targetPos > 0 && newPos >= firstPos.current + targetPos || targetPos < 0 && newPos <= firstPos.current + targetPos || targetPos === 0 && newPos <= 0) {
|
|
232
|
-
cancelAnimationFrame(startTime.current);
|
|
233
|
-
startTime.current = -1;
|
|
234
|
-
setTargetPos(undefined);
|
|
235
|
-
} else {
|
|
236
|
-
window.requestAnimationFrame(animate_1);
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
|
|
240
|
-
cancelAnimationFrame(startTime.current);
|
|
241
|
-
startTime.current = -1;
|
|
242
|
-
firstPos.current = window.pageYOffset || document.documentElement.scrollTop;
|
|
243
|
-
window.requestAnimationFrame(animate_1);
|
|
244
|
-
}
|
|
245
|
-
}, [targetPos, fallbackScrollDuration]);
|
|
246
|
-
return setTargetPos;
|
|
247
|
-
};
|
|
248
|
-
|
|
249
|
-
var isSupported = typeof window !== 'undefined' && 'URLSearchParams' in window;
|
|
250
|
-
var getUrlParams = function () {
|
|
251
|
-
var obj = {};
|
|
252
|
-
if (!isSupported) return obj;
|
|
253
|
-
var paramsObj = Object.fromEntries(new URLSearchParams(window.location.search));
|
|
254
|
-
|
|
255
|
-
for (var param in paramsObj) {
|
|
256
|
-
var value = paramsObj[param];
|
|
257
|
-
|
|
258
|
-
if (typeof value === 'string') {
|
|
259
|
-
value = decodeURIComponent(value);
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
obj[param] = value;
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
return obj;
|
|
266
|
-
};
|
|
267
|
-
var setUrlParam = function (key, value) {
|
|
268
|
-
if (!isSupported || typeof value !== 'string' && typeof value !== 'number') {
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
|
|
272
|
-
var params = getUrlParams();
|
|
273
|
-
params[key] = value.toString();
|
|
274
|
-
var currentParams = new URLSearchParams(window.location.search);
|
|
275
|
-
|
|
276
|
-
for (var param in params) {
|
|
277
|
-
currentParams.set(param, encodeURIComponent(params[param]));
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
updateUrl(currentParams);
|
|
281
|
-
};
|
|
282
|
-
var deleteUrlParam = function (key) {
|
|
283
|
-
if (!isSupported) return;
|
|
284
|
-
var currentParams = new URLSearchParams(window.location.search);
|
|
285
|
-
currentParams.delete(key);
|
|
286
|
-
updateUrl(currentParams);
|
|
287
|
-
};
|
|
288
|
-
|
|
289
|
-
var updateUrl = function (params) {
|
|
290
|
-
if (!params) return;
|
|
291
|
-
var queries = params.toString();
|
|
292
|
-
var url = queries ? concat([location.pathname, queries + location.hash], '?') : location.pathname + location.hash;
|
|
293
|
-
window.history.replaceState({}, '', url);
|
|
294
|
-
};
|
|
295
|
-
|
|
296
|
-
export { useFontsLoaded as a, useScrollTo as b, useResizeThrottle as c, deleteUrlParam as d, getUrlParams as g, setUrlParam as s, useEqualSheetHeight as u };
|
|
297
|
-
//# sourceMappingURL=urlParams-882563ce.js.map
|
|
195
|
+
export { useFontsLoaded as a, useResizeThrottle as b, useEqualSheetHeight as u };
|
|
196
|
+
//# sourceMappingURL=useEqualSheetHeight-c18cebd3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEqualSheetHeight-c18cebd3.js","sources":["../src/utils/useFontsLoaded.ts","../src/utils/useResizeThrottle.ts","../src/utils/useEqualSheetHeight.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\n\nexport const useFontsLoaded = () => {\n const [allFontsLoaded, setFontLoaded] = useState<boolean | undefined>(\n false\n );\n\n useEffect(() => {\n const waitForFonts = () => {\n (document as any)?.fonts?.ready?.then(() => {\n setFontLoaded(true);\n });\n };\n\n if ((document as any).fonts === undefined) setFontLoaded(undefined);\n else waitForFonts();\n }, []);\n\n return allFontsLoaded;\n};\n","import { useEffect, useRef, useState } from 'react';\n\nexport interface ResizeState {\n clientWidth: number;\n clientHeight: number;\n innerHeight: number;\n innerWidth: number;\n}\n\nconst useResizeThrottle = (\n timeout = 0,\n callback?: (state: ResizeState) => void\n) => {\n const [throttledState, setThrottledState] =\n useState<ResizeState | null>(null);\n\n const timeoutRef = useRef<number>(-1);\n const lastState = useRef<ResizeState>({\n clientWidth: 0,\n clientHeight: 0,\n innerHeight: 0,\n innerWidth: 0,\n });\n\n const updateResizeState = () => {\n if (typeof window === 'undefined' || typeof document === 'undefined') {\n return;\n }\n\n lastState.current = {\n clientWidth: document.documentElement.clientWidth,\n clientHeight: document.documentElement.clientHeight,\n innerHeight: window.innerHeight,\n innerWidth: window.innerWidth,\n };\n };\n\n useEffect(() => {\n if (typeof window === 'undefined') return;\n\n const handleResize = () => {\n updateResizeState();\n\n if (timeoutRef.current === -1) {\n timeoutRef.current = window.setTimeout(() => {\n callback?.(lastState.current);\n setThrottledState(lastState.current);\n timeoutRef.current = -1;\n }, timeout);\n }\n };\n\n updateResizeState();\n callback?.(lastState.current);\n setThrottledState(lastState.current);\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n }, [callback, timeout]);\n\n return throttledState;\n};\n\nexport default useResizeThrottle;\n","import {\n useEffect,\n useState,\n MutableRefObject,\n createRef,\n useCallback,\n} from 'react';\nimport { useMediaQuery } from './useMediaQuery';\nimport { useFontsLoaded } from 'utils/useFontsLoaded';\nimport useResizeThrottle from './useResizeThrottle';\n\ninterface ItemsPerRow {\n small?: number;\n medium?: number;\n semilarge?: number;\n large?: number;\n xlarge?: number;\n}\n\ntype Mq = keyof ItemsPerRow;\n\n// ********************\n// useEqualSheetHeight\n// ********************\n\nexport const useEqualSheetHeight = <T extends HTMLElement>(props: {\n listLength: number;\n identifiers: string[];\n responsive?: ItemsPerRow;\n /** Throttle timeout for resize events. Default: 400ms */\n resizeThrottleTimeout?: number;\n}) => {\n const defaultResponsive = {\n small: 1,\n medium: 1,\n semilarge: 2,\n large: 3,\n xlarge: 3,\n ...props.responsive,\n };\n const mqs: Mq[] = ['small', 'medium', 'semilarge', 'large', 'xlarge'];\n const currentMq = useMediaQuery(mqs) as Mq | undefined;\n const itemsPerRow = currentMq\n ? defaultResponsive[currentMq]\n : defaultResponsive.small;\n\n const [sheetRefs, setSheetRefs] = useState<MutableRefObject<T>[]>([]);\n const fontsLoaded = useFontsLoaded();\n\n const setHeights = useCallback(\n (\n heights: (number | null)[],\n selector: string,\n refs: MutableRefObject<T>[]\n ) => {\n const makeRows = (\n result: Array<number | null>[],\n _: number,\n index: number,\n arr: Array<number | null>\n ) => {\n // make new row after 3 items\n if (index % itemsPerRow === 0) {\n result.push(\n arr.slice(index, index + itemsPerRow) as Array<number>\n );\n }\n return result;\n };\n\n // put item heights in 2-dimensional array to sort them in rows\n const heightsInRows = heights.reduce(makeRows, []);\n\n heightsInRows.forEach((rowHeights, y) => {\n const validHeights = rowHeights.filter(\n (height) => height !== null\n ) as number[];\n\n const highest = validHeights.slice().sort((vA, vB) => {\n if (vA && vB) {\n if (vA > vB) return -1;\n return 1;\n } else return 0;\n })[0];\n\n // set height of all items in row to the highest value\n if (rowHeights.length > 1 && highest) {\n for (let x = 0; x < rowHeights.length; x++) {\n const index = x + y * itemsPerRow;\n const el = refs[index].current.querySelector(selector);\n\n el?.setAttribute('style', `height: ${highest}px`);\n }\n }\n });\n },\n [itemsPerRow]\n );\n\n // Throttle viewport resize event for performance\n const resizeState = useResizeThrottle(\n props.resizeThrottleTimeout !== undefined\n ? props.resizeThrottleTimeout\n : 400\n );\n\n useEffect(() => {\n const resize = (refs: MutableRefObject<T>[]) => () => {\n const identifierSizes = new Map<string, Array<number | null>>();\n\n // create identifier map\n for (let i = 0; i < props.identifiers.length; i++) {\n identifierSizes.set(props.identifiers[i], []);\n }\n\n // set height values\n refs.filter((ref) => ref.current).forEach(({ current }) => {\n // get height for each element\n props.identifiers.forEach((id) => {\n const element = current.querySelector(id);\n const prevHeights = identifierSizes.get(id);\n let height: number | null = null;\n\n if (element) {\n element.removeAttribute('style');\n height = element.getBoundingClientRect().height;\n }\n\n if (prevHeights) {\n identifierSizes.set(id, [...prevHeights, height]);\n }\n });\n });\n\n // set heights for each identifier\n identifierSizes.forEach((value, key) => {\n setHeights(value, key, refs);\n });\n };\n\n const resizeHandler = resize(sheetRefs);\n resizeHandler();\n }, [props.identifiers, resizeState, setHeights, sheetRefs, fontsLoaded]);\n\n const triggerCalculation = useCallback(() => {\n setSheetRefs((prev) =>\n Array(props.listLength)\n .fill(null)\n .map((_, i) => prev[i] || createRef())\n );\n }, [props.listLength]);\n\n useEffect(() => {\n setSheetRefs((prev) =>\n Array(props.listLength)\n .fill(null)\n .map((_, i) => prev[i] || createRef())\n );\n }, [props.listLength]);\n\n return {\n sheetRefs,\n triggerCalculation,\n };\n};\n"],"names":["useFontsLoaded","_a","useState","allFontsLoaded","setFontLoaded","useEffect","waitForFonts","_b","document","fonts","ready","then","undefined","useResizeThrottle","timeout","callback","throttledState","setThrottledState","timeoutRef","useRef","lastState","clientWidth","clientHeight","innerHeight","innerWidth","updateResizeState","window","current","documentElement","handleResize","setTimeout","addEventListener","removeEventListener","useEqualSheetHeight","props","defaultResponsive","__assign","small","medium","semilarge","large","xlarge","responsive","mqs","currentMq","useMediaQuery","itemsPerRow","sheetRefs","setSheetRefs","fontsLoaded","setHeights","useCallback","heights","selector","refs","makeRows","result","_","index","arr","push","slice","heightsInRows","reduce","forEach","rowHeights","y","validHeights","filter","height","highest","sort","vA","vB","length","x","el","querySelector","setAttribute","concat","resizeState","resizeThrottleTimeout","resize","identifierSizes","Map","i","identifiers","set","ref","id","element","prevHeights","get","removeAttribute","getBoundingClientRect","value","key","resizeHandler","triggerCalculation","prev","Array","listLength","fill","map","createRef"],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
var useGeolocation = function (enableHighAccuracy, autostart) {
|
|
4
|
+
if (enableHighAccuracy === void 0) {
|
|
5
|
+
enableHighAccuracy = true;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
if (autostart === void 0) {
|
|
9
|
+
autostart = true;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
var _a = useState(),
|
|
13
|
+
isSupported = _a[0],
|
|
14
|
+
setIsSupported = _a[1];
|
|
15
|
+
|
|
16
|
+
var _b = useState(),
|
|
17
|
+
isEnabled = _b[0],
|
|
18
|
+
setIsEnabled = _b[1];
|
|
19
|
+
|
|
20
|
+
var _c = useState(),
|
|
21
|
+
location = _c[0],
|
|
22
|
+
setLocation = _c[1];
|
|
23
|
+
|
|
24
|
+
var _d = useState(),
|
|
25
|
+
error = _d[0],
|
|
26
|
+
setError = _d[1];
|
|
27
|
+
|
|
28
|
+
var watchRef = useRef();
|
|
29
|
+
useEffect(function () {
|
|
30
|
+
setIsSupported('geolocation' in navigator);
|
|
31
|
+
}, []);
|
|
32
|
+
var cancel = useCallback(function () {
|
|
33
|
+
setIsEnabled(false);
|
|
34
|
+
|
|
35
|
+
if (watchRef.current) {
|
|
36
|
+
navigator.geolocation.clearWatch(watchRef.current);
|
|
37
|
+
}
|
|
38
|
+
}, []);
|
|
39
|
+
useEffect(function () {
|
|
40
|
+
if (!autostart || !('geolocation' in navigator)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
cancel();
|
|
45
|
+
navigator.geolocation.watchPosition(handleSuccess, handleError, {
|
|
46
|
+
enableHighAccuracy: enableHighAccuracy
|
|
47
|
+
});
|
|
48
|
+
setIsEnabled(true);
|
|
49
|
+
var watch = watchRef.current;
|
|
50
|
+
return function () {
|
|
51
|
+
if (watch) {
|
|
52
|
+
setIsEnabled(false);
|
|
53
|
+
navigator.geolocation.clearWatch(watch);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}, [autostart, cancel, enableHighAccuracy]);
|
|
57
|
+
var reset = useCallback(function () {
|
|
58
|
+
return new Promise(function (resolve, reject) {
|
|
59
|
+
cancel();
|
|
60
|
+
setIsEnabled(false);
|
|
61
|
+
navigator.geolocation.watchPosition(function (position) {
|
|
62
|
+
handleSuccess(position);
|
|
63
|
+
resolve(position);
|
|
64
|
+
}, function (err) {
|
|
65
|
+
handleError(err);
|
|
66
|
+
reject(err);
|
|
67
|
+
}, {
|
|
68
|
+
enableHighAccuracy: enableHighAccuracy
|
|
69
|
+
});
|
|
70
|
+
setIsEnabled(true);
|
|
71
|
+
});
|
|
72
|
+
}, [cancel, enableHighAccuracy]);
|
|
73
|
+
|
|
74
|
+
var handleSuccess = function (position) {
|
|
75
|
+
setLocation(position);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var handleError = function (error) {
|
|
79
|
+
setIsEnabled(false);
|
|
80
|
+
console.log(error);
|
|
81
|
+
setError(error);
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
isSupported: isSupported,
|
|
86
|
+
isEnabled: isEnabled,
|
|
87
|
+
location: location,
|
|
88
|
+
error: error,
|
|
89
|
+
reset: reset,
|
|
90
|
+
cancel: cancel
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export { useGeolocation as u };
|
|
95
|
+
//# sourceMappingURL=useGeolocation-f9f073cc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useGeolocation-f9f073cc.js","sources":["../src/utils/useGeolocation.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from 'react';\n\nconst useGeolocation = (enableHighAccuracy = true, autostart = true) => {\n const [isSupported, setIsSupported] = useState<boolean>();\n const [isEnabled, setIsEnabled] = useState<boolean>();\n const [location, setLocation] = useState<GeolocationPosition>();\n const [error, setError] = useState<GeolocationPositionError>();\n const watchRef = useRef<number | null>();\n\n useEffect(() => {\n setIsSupported('geolocation' in navigator);\n }, []);\n\n const cancel = useCallback(() => {\n setIsEnabled(false);\n if (watchRef.current) {\n navigator.geolocation.clearWatch(watchRef.current);\n }\n }, []);\n\n useEffect(() => {\n if (!autostart || !('geolocation' in navigator)) {\n return;\n }\n\n cancel();\n navigator.geolocation.watchPosition(handleSuccess, handleError, {\n enableHighAccuracy,\n });\n setIsEnabled(true);\n const watch = watchRef.current;\n\n return () => {\n if (watch) {\n setIsEnabled(false);\n navigator.geolocation.clearWatch(watch);\n }\n };\n }, [autostart, cancel, enableHighAccuracy]);\n\n const reset = useCallback(() => {\n return new Promise<GeolocationPosition>((resolve, reject) => {\n cancel();\n setIsEnabled(false);\n navigator.geolocation.watchPosition(\n (position) => {\n handleSuccess(position);\n resolve(position);\n },\n (err) => {\n handleError(err);\n reject(err);\n },\n {\n enableHighAccuracy,\n }\n );\n setIsEnabled(true);\n });\n }, [cancel, enableHighAccuracy]);\n\n const handleSuccess = (position: GeolocationPosition) => {\n setLocation(position);\n };\n\n const handleError = (error: GeolocationPositionError) => {\n setIsEnabled(false);\n console.log(error);\n\n setError(error);\n };\n\n return { isSupported, isEnabled, location, error, reset, cancel };\n};\n\nexport default useGeolocation;\n"],"names":["useGeolocation","enableHighAccuracy","autostart","_a","useState","isSupported","setIsSupported","_b","isEnabled","setIsEnabled","_c","location","setLocation","_d","error","setError","watchRef","useRef","useEffect","navigator","cancel","useCallback","current","geolocation","clearWatch","watchPosition","handleSuccess","handleError","watch","reset","Promise","resolve","reject","position","err","console","log"],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { useRef, useEffect, useCallback, useState } from 'react';
|
|
2
|
+
import { e as __spreadArray } from './ClockFilled-6bae80dc.js';
|
|
3
|
+
|
|
4
|
+
var useTimeout = function (callback, delay) {
|
|
5
|
+
var callbackRef = useRef(callback);
|
|
6
|
+
var timeoutRef = useRef();
|
|
7
|
+
useEffect(function () {
|
|
8
|
+
callbackRef.current = callback;
|
|
9
|
+
}, [callback]);
|
|
10
|
+
var set = useCallback(function () {
|
|
11
|
+
timeoutRef.current = window.setTimeout(function () {
|
|
12
|
+
var _a;
|
|
13
|
+
|
|
14
|
+
return (_a = callbackRef.current) === null || _a === void 0 ? void 0 : _a.call(callbackRef);
|
|
15
|
+
}, delay);
|
|
16
|
+
}, [delay]);
|
|
17
|
+
var clear = useCallback(function () {
|
|
18
|
+
timeoutRef.current && window.clearTimeout(timeoutRef.current);
|
|
19
|
+
}, []);
|
|
20
|
+
useEffect(function () {
|
|
21
|
+
set();
|
|
22
|
+
return clear;
|
|
23
|
+
}, [delay, set, clear]);
|
|
24
|
+
var reset = useCallback(function () {
|
|
25
|
+
clear();
|
|
26
|
+
set();
|
|
27
|
+
}, [clear, set]);
|
|
28
|
+
return {
|
|
29
|
+
clear: clear,
|
|
30
|
+
reset: reset
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var useDebounce = function (callback, delay, deps) {
|
|
35
|
+
var _a = useTimeout(callback, delay),
|
|
36
|
+
clear = _a.clear,
|
|
37
|
+
reset = _a.reset;
|
|
38
|
+
|
|
39
|
+
useEffect(reset, __spreadArray(__spreadArray([], deps, true), [reset], false)); // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
40
|
+
|
|
41
|
+
useEffect(clear, []);
|
|
42
|
+
return {
|
|
43
|
+
clear: clear,
|
|
44
|
+
reset: reset
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
var useLazyInput = function (callback, initial, delay) {
|
|
49
|
+
if (delay === void 0) {
|
|
50
|
+
delay = 600;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
var _a = useState(initial),
|
|
54
|
+
value = _a[0],
|
|
55
|
+
setValue = _a[1];
|
|
56
|
+
|
|
57
|
+
var clear = useDebounce(function () {
|
|
58
|
+
return callback === null || callback === void 0 ? void 0 : callback(value);
|
|
59
|
+
}, delay, [value]).clear;
|
|
60
|
+
var update = useCallback(function (value, withoutDelay) {
|
|
61
|
+
if (withoutDelay === void 0) {
|
|
62
|
+
withoutDelay = false;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
setValue(value);
|
|
66
|
+
|
|
67
|
+
if (withoutDelay) {
|
|
68
|
+
clear();
|
|
69
|
+
callback === null || callback === void 0 ? void 0 : callback(value);
|
|
70
|
+
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
71
|
+
|
|
72
|
+
}, []);
|
|
73
|
+
var forceUpdate = useCallback(function () {
|
|
74
|
+
clear();
|
|
75
|
+
callback === null || callback === void 0 ? void 0 : callback(value);
|
|
76
|
+
}, [callback, clear, value]);
|
|
77
|
+
return {
|
|
78
|
+
update: update,
|
|
79
|
+
value: value,
|
|
80
|
+
forceUpdate: forceUpdate
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export { useDebounce as a, useLazyInput as b, useTimeout as u };
|
|
85
|
+
//# sourceMappingURL=useLazyInput-e66fc5be.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLazyInput-e66fc5be.js","sources":["../src/utils/useTimeout.ts","../src/utils/useDebounce.ts","../src/utils/useLazyInput.ts"],"sourcesContent":["import { useCallback, useEffect, useRef } from 'react';\n\nconst useTimeout = (callback: () => void, delay: number) => {\n const callbackRef = useRef(callback);\n const timeoutRef = useRef<number>();\n\n useEffect(() => {\n callbackRef.current = callback;\n }, [callback]);\n\n const set = useCallback(() => {\n timeoutRef.current = window.setTimeout(\n () => callbackRef.current?.(),\n delay\n );\n }, [delay]);\n\n const clear = useCallback(() => {\n timeoutRef.current && window.clearTimeout(timeoutRef.current);\n }, []);\n\n useEffect(() => {\n set();\n return clear;\n }, [delay, set, clear]);\n\n const reset = useCallback(() => {\n clear();\n set();\n }, [clear, set]);\n\n return { clear, reset };\n};\n\nexport default useTimeout;\n","import { DependencyList, useEffect } from 'react';\nimport useTimeout from './useTimeout';\n\nconst useDebounce = (\n callback: () => void,\n delay: number,\n deps: DependencyList\n) => {\n const { clear, reset } = useTimeout(callback, delay);\n\n useEffect(reset, [...deps, reset]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(clear, []);\n\n return {\n clear,\n reset,\n };\n};\n\nexport default useDebounce;\n","import { useCallback, useState } from 'react';\nimport useDebounce from './useDebounce';\n\nconst useLazyInput = (\n callback: (value: string) => void,\n initial: string,\n delay = 600\n) => {\n const [value, setValue] = useState<string>(initial);\n const { clear } = useDebounce(() => callback?.(value), delay, [value]);\n\n const update = useCallback((value: string, withoutDelay = false) => {\n setValue(value);\n if (withoutDelay) {\n clear();\n callback?.(value);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const forceUpdate = useCallback(() => {\n clear();\n callback?.(value);\n }, [callback, clear, value]);\n\n return {\n update,\n value,\n forceUpdate,\n };\n};\n\nexport default useLazyInput;\n"],"names":["useTimeout","callback","delay","callbackRef","useRef","timeoutRef","useEffect","current","set","useCallback","window","setTimeout","_a","call","clear","clearTimeout","reset","useDebounce","deps","__spreadArray","useLazyInput","initial","useState","value","setValue","update","withoutDelay","forceUpdate"],"mappings":"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"}
|