@contember/react-utils 1.3.0-alpha.22 → 1.3.0-alpha.24

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.
@@ -14,7 +14,7 @@ const urlStateStorage = {
14
14
  window.history.replaceState({}, "", newUrl);
15
15
  }
16
16
  };
17
- const createStateStorage = (getStorage) => {
17
+ const createStateStorageFromNativeStorage = (getStorage) => {
18
18
  return {
19
19
  getItem(key) {
20
20
  const value = getStorage().getItem(key.join("-"));
@@ -25,8 +25,8 @@ const createStateStorage = (getStorage) => {
25
25
  }
26
26
  };
27
27
  };
28
- const sessionStateStorage = createStateStorage(() => sessionStorage);
29
- const localStateStorage = createStateStorage(() => localStorage);
28
+ const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage);
29
+ const localStateStorage = createStateStorageFromNativeStorage(() => localStorage);
30
30
  const nullStorage = {
31
31
  getItem() {
32
32
  return null;
@@ -42,10 +42,7 @@ const builtInStorages = {
42
42
  };
43
43
  const useStoredState = (storageOrName, key, initializeValue) => {
44
44
  const storage = react.useMemo(() => {
45
- if (Array.isArray(storageOrName)) {
46
- return createFallbackStorage(storageOrName);
47
- }
48
- return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
45
+ return getStateStorage(storageOrName);
49
46
  }, [storageOrName]);
50
47
  const [value, setValue] = react.useState(() => {
51
48
  const value2 = storage.getItem(key);
@@ -68,11 +65,16 @@ const useSessionStorageState = (key, initializeValue) => {
68
65
  const useLocalStorageState = (key, initializeValue) => {
69
66
  return useStoredState(localStateStorage, key, initializeValue);
70
67
  };
68
+ const getStateStorage = (storageOrName) => {
69
+ if (Array.isArray(storageOrName)) {
70
+ return createFallbackStorage(storageOrName.map((it) => typeof it === "string" ? builtInStorages[it] : it));
71
+ }
72
+ return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
73
+ };
71
74
  const createFallbackStorage = (storageTypes) => {
72
- const resultStorages = storageTypes.map((it) => typeof it === "string" ? builtInStorages[it] : it);
73
75
  return {
74
76
  getItem(key) {
75
- for (const storage of resultStorages) {
77
+ for (const storage of storageTypes) {
76
78
  const value = storage.getItem(key);
77
79
  if (value !== null) {
78
80
  return value;
@@ -81,12 +83,13 @@ const createFallbackStorage = (storageTypes) => {
81
83
  return null;
82
84
  },
83
85
  setItem(key, value) {
84
- for (const storage of resultStorages) {
86
+ for (const storage of storageTypes) {
85
87
  storage.setItem(key, value);
86
88
  }
87
89
  }
88
90
  };
89
91
  };
92
+ exports.getStateStorage = getStateStorage;
90
93
  exports.localStateStorage = localStateStorage;
91
94
  exports.nullStorage = nullStorage;
92
95
  exports.sessionStateStorage = sessionStateStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"useStoredState.cjs","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\tif (Array.isArray(storageOrName)) {\n\t\t\treturn createFallbackStorage(storageOrName)\n\t\t}\n\t\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\n\nconst createFallbackStorage = <V extends Serializable>(storageTypes: StateStorageOrName[]): StateStorage => {\n\tconst resultStorages = storageTypes.map(it => typeof it === 'string' ? builtInStorages[it] : it)\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["useMemo","useState","value","useCallback"],"mappings":"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"}
1
+ {"version":3,"file":"useStoredState.cjs","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorageFromNativeStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorageFromNativeStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\treturn getStateStorage(storageOrName)\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\nexport const getStateStorage = (storageOrName: StateStorageOrName | StateStorageOrName[]) => {\n\tif (Array.isArray(storageOrName)) {\n\t\treturn createFallbackStorage(storageOrName.map(it => typeof it === 'string' ? builtInStorages[it] : it))\n\t}\n\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n}\n\n\nconst createFallbackStorage = (storageTypes: StateStorage[]): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["useMemo","useState","value","useCallback"],"mappings":"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"}
@@ -12,7 +12,7 @@ const urlStateStorage = {
12
12
  window.history.replaceState({}, "", newUrl);
13
13
  }
14
14
  };
15
- const createStateStorage = (getStorage) => {
15
+ const createStateStorageFromNativeStorage = (getStorage) => {
16
16
  return {
17
17
  getItem(key) {
18
18
  const value = getStorage().getItem(key.join("-"));
@@ -23,8 +23,8 @@ const createStateStorage = (getStorage) => {
23
23
  }
24
24
  };
25
25
  };
26
- const sessionStateStorage = createStateStorage(() => sessionStorage);
27
- const localStateStorage = createStateStorage(() => localStorage);
26
+ const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage);
27
+ const localStateStorage = createStateStorageFromNativeStorage(() => localStorage);
28
28
  const nullStorage = {
29
29
  getItem() {
30
30
  return null;
@@ -40,10 +40,7 @@ const builtInStorages = {
40
40
  };
41
41
  const useStoredState = (storageOrName, key, initializeValue) => {
42
42
  const storage = useMemo(() => {
43
- if (Array.isArray(storageOrName)) {
44
- return createFallbackStorage(storageOrName);
45
- }
46
- return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
43
+ return getStateStorage(storageOrName);
47
44
  }, [storageOrName]);
48
45
  const [value, setValue] = useState(() => {
49
46
  const value2 = storage.getItem(key);
@@ -66,11 +63,16 @@ const useSessionStorageState = (key, initializeValue) => {
66
63
  const useLocalStorageState = (key, initializeValue) => {
67
64
  return useStoredState(localStateStorage, key, initializeValue);
68
65
  };
66
+ const getStateStorage = (storageOrName) => {
67
+ if (Array.isArray(storageOrName)) {
68
+ return createFallbackStorage(storageOrName.map((it) => typeof it === "string" ? builtInStorages[it] : it));
69
+ }
70
+ return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
71
+ };
69
72
  const createFallbackStorage = (storageTypes) => {
70
- const resultStorages = storageTypes.map((it) => typeof it === "string" ? builtInStorages[it] : it);
71
73
  return {
72
74
  getItem(key) {
73
- for (const storage of resultStorages) {
75
+ for (const storage of storageTypes) {
74
76
  const value = storage.getItem(key);
75
77
  if (value !== null) {
76
78
  return value;
@@ -79,13 +81,14 @@ const createFallbackStorage = (storageTypes) => {
79
81
  return null;
80
82
  },
81
83
  setItem(key, value) {
82
- for (const storage of resultStorages) {
84
+ for (const storage of storageTypes) {
83
85
  storage.setItem(key, value);
84
86
  }
85
87
  }
86
88
  };
87
89
  };
88
90
  export {
91
+ getStateStorage,
89
92
  localStateStorage,
90
93
  nullStorage,
91
94
  sessionStateStorage,
@@ -1 +1 @@
1
- {"version":3,"file":"useStoredState.js","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\tif (Array.isArray(storageOrName)) {\n\t\t\treturn createFallbackStorage(storageOrName)\n\t\t}\n\t\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\n\nconst createFallbackStorage = <V extends Serializable>(storageTypes: StateStorageOrName[]): StateStorage => {\n\tconst resultStorages = storageTypes.map(it => typeof it === 'string' ? builtInStorages[it] : it)\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["value"],"mappings":";AAeO,MAAM,kBAAgC;AAAA,EAC5C,QAAQ,KAAK;AACZ,UAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,UAAM,QAAQ,aAAa,IAAI,IAAI,CAAC,CAAC;AACrC,WAAO,UAAU,QAAQ,UAAU,SAAY,KAAK,MAAM,KAAK,IAAI;AAAA,EACpE;AAAA,EACA,QAAQ,KAAK,OAAO;AACnB,UAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,iBAAa,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,KAAK,CAAC;AACxC,UAAA,SAAS,GAAG,OAAO,SAAS,QAAQ,IAAI,aAAa,SAAU,CAAA;AACrE,WAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,MAAM;AAAA,EAC3C;AACD;AAEA,MAAM,qBAAqB,CAAC,eAA4C;AAChE,SAAA;AAAA,IACN,QAAQ,KAAK;AACZ,YAAM,QAAQ,aAAa,QAAQ,IAAI,KAAK,GAAG,CAAC;AAChD,aAAO,UAAU,OAAO,KAAK,MAAM,KAAK,IAAI;AAAA,IAC7C;AAAA,IACA,QAAQ,KAAK,OAAO;AACR,iBAAA,EAAE,QAAQ,IAAI,KAAK,GAAG,GAAG,KAAK,UAAU,KAAK,CAAC;AAAA,IAC1D;AAAA,EAAA;AAEF;AAEa,MAAA,sBAAsB,mBAAmB,MAAM,cAAc;AAC7D,MAAA,oBAAoB,mBAAmB,MAAM,YAAY;AAC/D,MAAM,cAA4B;AAAA,EACxC,UAAU;AACF,WAAA;AAAA,EACR;AAAA,EACA,UAAU;AAAA,EACV;AACD;AAEA,MAAM,kBAAkB;AAAA,EACvB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACP;AAIO,MAAM,iBAAiB,CAAyB,eAA0D,KAAsB,oBAA2D;AAC3L,QAAA,UAAU,QAAQ,MAAM;AACzB,QAAA,MAAM,QAAQ,aAAa,GAAG;AACjC,aAAO,sBAAsB,aAAa;AAAA,IAC3C;AACA,WAAO,OAAO,kBAAkB,WAAW,gBAAgB,aAAa,IAAI;AAAA,EAAA,GAC1E,CAAC,aAAa,CAAC;AAElB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAY,MAAM;AACrCA,UAAAA,SAAQ,QAAQ,QAAQ,GAAG;AACjC,WAAO,gBAAgBA,MAAU;AAAA,EAAA,CACjC;AACM,SAAA;AAAA,IACN;AAAA,IACA,YAAY,CAAAA,WAAS;AACpB,eAAS,CAAW,YAAA;AACnB,cAAM,WAAW,OAAOA,WAAU,aAAcA,OAA4B,OAAO,IAAIA;AAC/E,gBAAA,QAAQ,KAAK,QAAQ;AACtB,eAAA;AAAA,MAAA,CACP;AAAA,IAAA,GACC,CAAC,KAAK,OAAO,CAAC;AAAA,EAAA;AAEnB;AAEa,MAAA,yBAAyB,CAAyB,KAAsB,oBAA2D;AACxI,SAAA,eAAkB,qBAAqB,KAAK,eAAe;AACnE;AAEa,MAAA,uBAAuB,CAAyB,KAAsB,oBAA2D;AACtI,SAAA,eAAkB,mBAAmB,KAAK,eAAe;AACjE;AAGA,MAAM,wBAAwB,CAAyB,iBAAqD;AACrG,QAAA,iBAAiB,aAAa,IAAI,CAAM,OAAA,OAAO,OAAO,WAAW,gBAAgB,EAAE,IAAI,EAAE;AACxF,SAAA;AAAA,IACN,QAAQ,KAAK;AACZ,iBAAW,WAAW,gBAAgB;AAC/B,cAAA,QAAQ,QAAQ,QAAQ,GAAG;AACjC,YAAI,UAAU,MAAM;AACZ,iBAAA;AAAA,QACR;AAAA,MACD;AACO,aAAA;AAAA,IACR;AAAA,IACA,QAAQ,KAAK,OAAO;AACnB,iBAAW,WAAW,gBAAgB;AAC7B,gBAAA,QAAQ,KAAK,KAAK;AAAA,MAC3B;AAAA,IACD;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"useStoredState.js","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorageFromNativeStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorageFromNativeStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\treturn getStateStorage(storageOrName)\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\nexport const getStateStorage = (storageOrName: StateStorageOrName | StateStorageOrName[]) => {\n\tif (Array.isArray(storageOrName)) {\n\t\treturn createFallbackStorage(storageOrName.map(it => typeof it === 'string' ? builtInStorages[it] : it))\n\t}\n\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n}\n\n\nconst createFallbackStorage = (storageTypes: StateStorage[]): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["value"],"mappings":"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"}
@@ -94,6 +94,7 @@ exports.useOnScrollWithin = useOnScrollWithin.useOnScrollWithin;
94
94
  exports.useOnWindowResize = useOnWindowResize.useOnWindowResize;
95
95
  exports.usePreviousValue = usePreviousValue.usePreviousValue;
96
96
  exports.useScrollOffsets = useScrollOffsets.useScrollOffsets;
97
+ exports.getStateStorage = useStoredState.getStateStorage;
97
98
  exports.localStateStorage = useStoredState.localStateStorage;
98
99
  exports.nullStorage = useStoredState.nullStorage;
99
100
  exports.sessionStateStorage = useStoredState.sessionStateStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -33,7 +33,7 @@ import { useOnScrollWithin } from "./hooks/useOnScrollWithin.js";
33
33
  import { useOnWindowResize } from "./hooks/useOnWindowResize.js";
34
34
  import { usePreviousValue } from "./hooks/usePreviousValue.js";
35
35
  import { useScrollOffsets } from "./hooks/useScrollOffsets.js";
36
- import { localStateStorage, nullStorage, sessionStateStorage, urlStateStorage, useLocalStorageState, useSessionStorageState, useStoredState } from "./hooks/useStoredState.js";
36
+ import { getStateStorage, localStateStorage, nullStorage, sessionStateStorage, urlStateStorage, useLocalStorageState, useSessionStorageState, useStoredState } from "./hooks/useStoredState.js";
37
37
  import { useUpdatedRef } from "./hooks/useUpdatedRef.js";
38
38
  import { useWindowSize } from "./hooks/useWindowSize.js";
39
39
  import { emptyArray } from "./referentiallyStable/emptyArray.js";
@@ -63,6 +63,7 @@ export {
63
63
  emptyArray,
64
64
  emptyObject,
65
65
  getChildrenAsLabel,
66
+ getStateStorage,
66
67
  identityFunction,
67
68
  isNoopScopedConsole,
68
69
  localStateStorage,
@@ -14,7 +14,7 @@ const urlStateStorage = {
14
14
  window.history.replaceState({}, "", newUrl);
15
15
  }
16
16
  };
17
- const createStateStorage = (getStorage) => {
17
+ const createStateStorageFromNativeStorage = (getStorage) => {
18
18
  return {
19
19
  getItem(key) {
20
20
  const value = getStorage().getItem(key.join("-"));
@@ -25,8 +25,8 @@ const createStateStorage = (getStorage) => {
25
25
  }
26
26
  };
27
27
  };
28
- const sessionStateStorage = createStateStorage(() => sessionStorage);
29
- const localStateStorage = createStateStorage(() => localStorage);
28
+ const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage);
29
+ const localStateStorage = createStateStorageFromNativeStorage(() => localStorage);
30
30
  const nullStorage = {
31
31
  getItem() {
32
32
  return null;
@@ -42,10 +42,7 @@ const builtInStorages = {
42
42
  };
43
43
  const useStoredState = (storageOrName, key, initializeValue) => {
44
44
  const storage = react.useMemo(() => {
45
- if (Array.isArray(storageOrName)) {
46
- return createFallbackStorage(storageOrName);
47
- }
48
- return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
45
+ return getStateStorage(storageOrName);
49
46
  }, [storageOrName]);
50
47
  const [value, setValue] = react.useState(() => {
51
48
  const value2 = storage.getItem(key);
@@ -68,11 +65,16 @@ const useSessionStorageState = (key, initializeValue) => {
68
65
  const useLocalStorageState = (key, initializeValue) => {
69
66
  return useStoredState(localStateStorage, key, initializeValue);
70
67
  };
68
+ const getStateStorage = (storageOrName) => {
69
+ if (Array.isArray(storageOrName)) {
70
+ return createFallbackStorage(storageOrName.map((it) => typeof it === "string" ? builtInStorages[it] : it));
71
+ }
72
+ return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
73
+ };
71
74
  const createFallbackStorage = (storageTypes) => {
72
- const resultStorages = storageTypes.map((it) => typeof it === "string" ? builtInStorages[it] : it);
73
75
  return {
74
76
  getItem(key) {
75
- for (const storage of resultStorages) {
77
+ for (const storage of storageTypes) {
76
78
  const value = storage.getItem(key);
77
79
  if (value !== null) {
78
80
  return value;
@@ -81,12 +83,13 @@ const createFallbackStorage = (storageTypes) => {
81
83
  return null;
82
84
  },
83
85
  setItem(key, value) {
84
- for (const storage of resultStorages) {
86
+ for (const storage of storageTypes) {
85
87
  storage.setItem(key, value);
86
88
  }
87
89
  }
88
90
  };
89
91
  };
92
+ exports.getStateStorage = getStateStorage;
90
93
  exports.localStateStorage = localStateStorage;
91
94
  exports.nullStorage = nullStorage;
92
95
  exports.sessionStateStorage = sessionStateStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"useStoredState.cjs","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\tif (Array.isArray(storageOrName)) {\n\t\t\treturn createFallbackStorage(storageOrName)\n\t\t}\n\t\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\n\nconst createFallbackStorage = <V extends Serializable>(storageTypes: StateStorageOrName[]): StateStorage => {\n\tconst resultStorages = storageTypes.map(it => typeof it === 'string' ? builtInStorages[it] : it)\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["useMemo","useState","value","useCallback"],"mappings":";;;AAeO,MAAM,kBAAgC;AAAA,EAC5C,QAAQ,KAAK;AACZ,UAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,UAAM,QAAQ,aAAa,IAAI,IAAI,CAAC,CAAC;AACrC,WAAO,UAAU,QAAQ,UAAU,SAAY,KAAK,MAAM,KAAK,IAAI;AAAA,EACpE;AAAA,EACA,QAAQ,KAAK,OAAO;AACnB,UAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,iBAAa,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,KAAK,CAAC;AACxC,UAAA,SAAS,GAAG,OAAO,SAAS,QAAQ,IAAI,aAAa,SAAU,CAAA;AACrE,WAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,MAAM;AAAA,EAC3C;AACD;AAEA,MAAM,qBAAqB,CAAC,eAA4C;AAChE,SAAA;AAAA,IACN,QAAQ,KAAK;AACZ,YAAM,QAAQ,aAAa,QAAQ,IAAI,KAAK,GAAG,CAAC;AAChD,aAAO,UAAU,OAAO,KAAK,MAAM,KAAK,IAAI;AAAA,IAC7C;AAAA,IACA,QAAQ,KAAK,OAAO;AACR,iBAAA,EAAE,QAAQ,IAAI,KAAK,GAAG,GAAG,KAAK,UAAU,KAAK,CAAC;AAAA,IAC1D;AAAA,EAAA;AAEF;AAEa,MAAA,sBAAsB,mBAAmB,MAAM,cAAc;AAC7D,MAAA,oBAAoB,mBAAmB,MAAM,YAAY;AAC/D,MAAM,cAA4B;AAAA,EACxC,UAAU;AACF,WAAA;AAAA,EACR;AAAA,EACA,UAAU;AAAA,EACV;AACD;AAEA,MAAM,kBAAkB;AAAA,EACvB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACP;AAIO,MAAM,iBAAiB,CAAyB,eAA0D,KAAsB,oBAA2D;AAC3L,QAAA,UAAUA,MAAAA,QAAQ,MAAM;AACzB,QAAA,MAAM,QAAQ,aAAa,GAAG;AACjC,aAAO,sBAAsB,aAAa;AAAA,IAC3C;AACA,WAAO,OAAO,kBAAkB,WAAW,gBAAgB,aAAa,IAAI;AAAA,EAAA,GAC1E,CAAC,aAAa,CAAC;AAElB,QAAM,CAAC,OAAO,QAAQ,IAAIC,eAAY,MAAM;AACrCC,UAAAA,SAAQ,QAAQ,QAAQ,GAAG;AACjC,WAAO,gBAAgBA,MAAU;AAAA,EAAA,CACjC;AACM,SAAA;AAAA,IACN;AAAA,IACAC,MAAA,YAAY,CAAAD,WAAS;AACpB,eAAS,CAAW,YAAA;AACnB,cAAM,WAAW,OAAOA,WAAU,aAAcA,OAA4B,OAAO,IAAIA;AAC/E,gBAAA,QAAQ,KAAK,QAAQ;AACtB,eAAA;AAAA,MAAA,CACP;AAAA,IAAA,GACC,CAAC,KAAK,OAAO,CAAC;AAAA,EAAA;AAEnB;AAEa,MAAA,yBAAyB,CAAyB,KAAsB,oBAA2D;AACxI,SAAA,eAAkB,qBAAqB,KAAK,eAAe;AACnE;AAEa,MAAA,uBAAuB,CAAyB,KAAsB,oBAA2D;AACtI,SAAA,eAAkB,mBAAmB,KAAK,eAAe;AACjE;AAGA,MAAM,wBAAwB,CAAyB,iBAAqD;AACrG,QAAA,iBAAiB,aAAa,IAAI,CAAM,OAAA,OAAO,OAAO,WAAW,gBAAgB,EAAE,IAAI,EAAE;AACxF,SAAA;AAAA,IACN,QAAQ,KAAK;AACZ,iBAAW,WAAW,gBAAgB;AAC/B,cAAA,QAAQ,QAAQ,QAAQ,GAAG;AACjC,YAAI,UAAU,MAAM;AACZ,iBAAA;AAAA,QACR;AAAA,MACD;AACO,aAAA;AAAA,IACR;AAAA,IACA,QAAQ,KAAK,OAAO;AACnB,iBAAW,WAAW,gBAAgB;AAC7B,gBAAA,QAAQ,KAAK,KAAK;AAAA,MAC3B;AAAA,IACD;AAAA,EAAA;AAEF;;;;;;;;"}
1
+ {"version":3,"file":"useStoredState.cjs","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorageFromNativeStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorageFromNativeStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\treturn getStateStorage(storageOrName)\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\nexport const getStateStorage = (storageOrName: StateStorageOrName | StateStorageOrName[]) => {\n\tif (Array.isArray(storageOrName)) {\n\t\treturn createFallbackStorage(storageOrName.map(it => typeof it === 'string' ? builtInStorages[it] : it))\n\t}\n\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n}\n\n\nconst createFallbackStorage = (storageTypes: StateStorage[]): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["useMemo","useState","value","useCallback"],"mappings":"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"}
@@ -12,7 +12,7 @@ const urlStateStorage = {
12
12
  window.history.replaceState({}, "", newUrl);
13
13
  }
14
14
  };
15
- const createStateStorage = (getStorage) => {
15
+ const createStateStorageFromNativeStorage = (getStorage) => {
16
16
  return {
17
17
  getItem(key) {
18
18
  const value = getStorage().getItem(key.join("-"));
@@ -23,8 +23,8 @@ const createStateStorage = (getStorage) => {
23
23
  }
24
24
  };
25
25
  };
26
- const sessionStateStorage = createStateStorage(() => sessionStorage);
27
- const localStateStorage = createStateStorage(() => localStorage);
26
+ const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage);
27
+ const localStateStorage = createStateStorageFromNativeStorage(() => localStorage);
28
28
  const nullStorage = {
29
29
  getItem() {
30
30
  return null;
@@ -40,10 +40,7 @@ const builtInStorages = {
40
40
  };
41
41
  const useStoredState = (storageOrName, key, initializeValue) => {
42
42
  const storage = useMemo(() => {
43
- if (Array.isArray(storageOrName)) {
44
- return createFallbackStorage(storageOrName);
45
- }
46
- return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
43
+ return getStateStorage(storageOrName);
47
44
  }, [storageOrName]);
48
45
  const [value, setValue] = useState(() => {
49
46
  const value2 = storage.getItem(key);
@@ -66,11 +63,16 @@ const useSessionStorageState = (key, initializeValue) => {
66
63
  const useLocalStorageState = (key, initializeValue) => {
67
64
  return useStoredState(localStateStorage, key, initializeValue);
68
65
  };
66
+ const getStateStorage = (storageOrName) => {
67
+ if (Array.isArray(storageOrName)) {
68
+ return createFallbackStorage(storageOrName.map((it) => typeof it === "string" ? builtInStorages[it] : it));
69
+ }
70
+ return typeof storageOrName === "string" ? builtInStorages[storageOrName] : storageOrName;
71
+ };
69
72
  const createFallbackStorage = (storageTypes) => {
70
- const resultStorages = storageTypes.map((it) => typeof it === "string" ? builtInStorages[it] : it);
71
73
  return {
72
74
  getItem(key) {
73
- for (const storage of resultStorages) {
75
+ for (const storage of storageTypes) {
74
76
  const value = storage.getItem(key);
75
77
  if (value !== null) {
76
78
  return value;
@@ -79,13 +81,14 @@ const createFallbackStorage = (storageTypes) => {
79
81
  return null;
80
82
  },
81
83
  setItem(key, value) {
82
- for (const storage of resultStorages) {
84
+ for (const storage of storageTypes) {
83
85
  storage.setItem(key, value);
84
86
  }
85
87
  }
86
88
  };
87
89
  };
88
90
  export {
91
+ getStateStorage,
89
92
  localStateStorage,
90
93
  nullStorage,
91
94
  sessionStateStorage,
@@ -1 +1 @@
1
- {"version":3,"file":"useStoredState.js","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\tif (Array.isArray(storageOrName)) {\n\t\t\treturn createFallbackStorage(storageOrName)\n\t\t}\n\t\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\n\nconst createFallbackStorage = <V extends Serializable>(storageTypes: StateStorageOrName[]): StateStorage => {\n\tconst resultStorages = storageTypes.map(it => typeof it === 'string' ? builtInStorages[it] : it)\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of resultStorages) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["value"],"mappings":";AAeO,MAAM,kBAAgC;AAAA,EAC5C,QAAQ,KAAK;AACZ,UAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,UAAM,QAAQ,aAAa,IAAI,IAAI,CAAC,CAAC;AACrC,WAAO,UAAU,QAAQ,UAAU,SAAY,KAAK,MAAM,KAAK,IAAI;AAAA,EACpE;AAAA,EACA,QAAQ,KAAK,OAAO;AACnB,UAAM,eAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM;AAC/D,iBAAa,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,KAAK,CAAC;AACxC,UAAA,SAAS,GAAG,OAAO,SAAS,QAAQ,IAAI,aAAa,SAAU,CAAA;AACrE,WAAO,QAAQ,aAAa,CAAC,GAAG,IAAI,MAAM;AAAA,EAC3C;AACD;AAEA,MAAM,qBAAqB,CAAC,eAA4C;AAChE,SAAA;AAAA,IACN,QAAQ,KAAK;AACZ,YAAM,QAAQ,aAAa,QAAQ,IAAI,KAAK,GAAG,CAAC;AAChD,aAAO,UAAU,OAAO,KAAK,MAAM,KAAK,IAAI;AAAA,IAC7C;AAAA,IACA,QAAQ,KAAK,OAAO;AACR,iBAAA,EAAE,QAAQ,IAAI,KAAK,GAAG,GAAG,KAAK,UAAU,KAAK,CAAC;AAAA,IAC1D;AAAA,EAAA;AAEF;AAEa,MAAA,sBAAsB,mBAAmB,MAAM,cAAc;AAC7D,MAAA,oBAAoB,mBAAmB,MAAM,YAAY;AAC/D,MAAM,cAA4B;AAAA,EACxC,UAAU;AACF,WAAA;AAAA,EACR;AAAA,EACA,UAAU;AAAA,EACV;AACD;AAEA,MAAM,kBAAkB;AAAA,EACvB,KAAK;AAAA,EACL,SAAS;AAAA,EACT,OAAO;AAAA,EACP,MAAM;AACP;AAIO,MAAM,iBAAiB,CAAyB,eAA0D,KAAsB,oBAA2D;AAC3L,QAAA,UAAU,QAAQ,MAAM;AACzB,QAAA,MAAM,QAAQ,aAAa,GAAG;AACjC,aAAO,sBAAsB,aAAa;AAAA,IAC3C;AACA,WAAO,OAAO,kBAAkB,WAAW,gBAAgB,aAAa,IAAI;AAAA,EAAA,GAC1E,CAAC,aAAa,CAAC;AAElB,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAY,MAAM;AACrCA,UAAAA,SAAQ,QAAQ,QAAQ,GAAG;AACjC,WAAO,gBAAgBA,MAAU;AAAA,EAAA,CACjC;AACM,SAAA;AAAA,IACN;AAAA,IACA,YAAY,CAAAA,WAAS;AACpB,eAAS,CAAW,YAAA;AACnB,cAAM,WAAW,OAAOA,WAAU,aAAcA,OAA4B,OAAO,IAAIA;AAC/E,gBAAA,QAAQ,KAAK,QAAQ;AACtB,eAAA;AAAA,MAAA,CACP;AAAA,IAAA,GACC,CAAC,KAAK,OAAO,CAAC;AAAA,EAAA;AAEnB;AAEa,MAAA,yBAAyB,CAAyB,KAAsB,oBAA2D;AACxI,SAAA,eAAkB,qBAAqB,KAAK,eAAe;AACnE;AAEa,MAAA,uBAAuB,CAAyB,KAAsB,oBAA2D;AACtI,SAAA,eAAkB,mBAAmB,KAAK,eAAe;AACjE;AAGA,MAAM,wBAAwB,CAAyB,iBAAqD;AACrG,QAAA,iBAAiB,aAAa,IAAI,CAAM,OAAA,OAAO,OAAO,WAAW,gBAAgB,EAAE,IAAI,EAAE;AACxF,SAAA;AAAA,IACN,QAAQ,KAAK;AACZ,iBAAW,WAAW,gBAAgB;AAC/B,cAAA,QAAQ,QAAQ,QAAQ,GAAG;AACjC,YAAI,UAAU,MAAM;AACZ,iBAAA;AAAA,QACR;AAAA,MACD;AACO,aAAA;AAAA,IACR;AAAA,IACA,QAAQ,KAAK,OAAO;AACnB,iBAAW,WAAW,gBAAgB;AAC7B,gBAAA,QAAQ,KAAK,KAAK;AAAA,MAC3B;AAAA,IACD;AAAA,EAAA;AAEF;"}
1
+ {"version":3,"file":"useStoredState.js","sources":["../../../src/hooks/useStoredState.ts"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react'\nimport { Serializable } from '../types'\n\nexport type SetState<V extends Serializable> = (value: V | ((current: V) => V)) => void;\nexport type StateStorageKey = [uniquePrefix: string, key: string]\n\nexport type ValueInitializer<V extends Serializable> = (storedValue: V | undefined) => V;\n\nexport interface StateStorage {\n\tgetItem(key: StateStorageKey): Serializable\n\n\tsetItem(key: StateStorageKey, value: Serializable): void\n}\n\n\nexport const urlStateStorage: StateStorage = {\n\tgetItem(key) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tconst value = searchParams.get(key[1])\n\t\treturn value !== null && value !== undefined ? JSON.parse(value) : null\n\t},\n\tsetItem(key, value) {\n\t\tconst searchParams = new URLSearchParams(window.location.search)\n\t\tsearchParams.set(key[1], JSON.stringify(value))\n\t\tconst newUrl = `${window.location.pathname}?${searchParams.toString()}`\n\t\twindow.history.replaceState({}, '', newUrl)\n\t},\n}\n\nconst createStateStorageFromNativeStorage = (getStorage: () => Storage): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tconst value = getStorage().getItem(key.join('-'))\n\t\t\treturn value !== null ? JSON.parse(value) : null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tgetStorage().setItem(key.join('-'), JSON.stringify(value))\n\t\t},\n\t}\n}\n\nexport const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage)\nexport const localStateStorage = createStateStorageFromNativeStorage(() => localStorage)\nexport const nullStorage: StateStorage = {\n\tgetItem() {\n\t\treturn null\n\t},\n\tsetItem() {\n\t},\n}\n\nconst builtInStorages = {\n\turl: urlStateStorage,\n\tsession: sessionStateStorage,\n\tlocal: localStateStorage,\n\tnull: nullStorage,\n}\n\nexport type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'null'\n\nexport const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\tconst storage = useMemo(() => {\n\t\treturn getStateStorage(storageOrName)\n\t}, [storageOrName])\n\n\tconst [value, setValue] = useState<V>(() => {\n\t\tconst value = storage.getItem(key)\n\t\treturn initializeValue(value as V)\n\t})\n\treturn [\n\t\tvalue,\n\t\tuseCallback(value => {\n\t\t\tsetValue(current => {\n\t\t\t\tconst newValue = typeof value === 'function' ? (value as (current: V) => V)(current) : value\n\t\t\t\tstorage.setItem(key, newValue)\n\t\t\t\treturn newValue\n\t\t\t})\n\t\t}, [key, storage]),\n\t]\n}\n\nexport const useSessionStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(sessionStateStorage, key, initializeValue)\n}\n\nexport const useLocalStorageState = <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {\n\treturn useStoredState<V>(localStateStorage, key, initializeValue)\n}\n\nexport const getStateStorage = (storageOrName: StateStorageOrName | StateStorageOrName[]) => {\n\tif (Array.isArray(storageOrName)) {\n\t\treturn createFallbackStorage(storageOrName.map(it => typeof it === 'string' ? builtInStorages[it] : it))\n\t}\n\treturn typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName\n}\n\n\nconst createFallbackStorage = (storageTypes: StateStorage[]): StateStorage => {\n\treturn {\n\t\tgetItem(key) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tconst value = storage.getItem(key)\n\t\t\t\tif (value !== null) {\n\t\t\t\t\treturn value\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t},\n\t\tsetItem(key, value) {\n\t\t\tfor (const storage of storageTypes) {\n\t\t\t\tstorage.setItem(key, value)\n\t\t\t}\n\t\t},\n\t}\n}\n"],"names":["value"],"mappings":"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"}
@@ -94,6 +94,7 @@ exports.useOnScrollWithin = useOnScrollWithin.useOnScrollWithin;
94
94
  exports.useOnWindowResize = useOnWindowResize.useOnWindowResize;
95
95
  exports.usePreviousValue = usePreviousValue.usePreviousValue;
96
96
  exports.useScrollOffsets = useScrollOffsets.useScrollOffsets;
97
+ exports.getStateStorage = useStoredState.getStateStorage;
97
98
  exports.localStateStorage = useStoredState.localStateStorage;
98
99
  exports.nullStorage = useStoredState.nullStorage;
99
100
  exports.sessionStateStorage = useStoredState.sessionStateStorage;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -33,7 +33,7 @@ import { useOnScrollWithin } from "./hooks/useOnScrollWithin.js";
33
33
  import { useOnWindowResize } from "./hooks/useOnWindowResize.js";
34
34
  import { usePreviousValue } from "./hooks/usePreviousValue.js";
35
35
  import { useScrollOffsets } from "./hooks/useScrollOffsets.js";
36
- import { localStateStorage, nullStorage, sessionStateStorage, urlStateStorage, useLocalStorageState, useSessionStorageState, useStoredState } from "./hooks/useStoredState.js";
36
+ import { getStateStorage, localStateStorage, nullStorage, sessionStateStorage, urlStateStorage, useLocalStorageState, useSessionStorageState, useStoredState } from "./hooks/useStoredState.js";
37
37
  import { useUpdatedRef } from "./hooks/useUpdatedRef.js";
38
38
  import { useWindowSize } from "./hooks/useWindowSize.js";
39
39
  import { emptyArray } from "./referentiallyStable/emptyArray.js";
@@ -63,6 +63,7 @@ export {
63
63
  emptyArray,
64
64
  emptyObject,
65
65
  getChildrenAsLabel,
66
+ getStateStorage,
66
67
  identityFunction,
67
68
  isNoopScopedConsole,
68
69
  localStateStorage,
@@ -14,4 +14,5 @@ export type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'n
14
14
  export declare const useStoredState: <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>) => [V, SetState<V>];
15
15
  export declare const useSessionStorageState: <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>) => [V, SetState<V>];
16
16
  export declare const useLocalStorageState: <V extends Serializable>(key: StateStorageKey, initializeValue: ValueInitializer<V>) => [V, SetState<V>];
17
+ export declare const getStateStorage: (storageOrName: StateStorageOrName | StateStorageOrName[]) => StateStorage;
17
18
  //# sourceMappingURL=useStoredState.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStoredState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useStoredState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AACxF,MAAM,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAEjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,CAAA;IAE3C,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CACxD;AAGD,eAAO,MAAM,eAAe,EAAE,YAY7B,CAAA;AAcD,eAAO,MAAM,mBAAmB,cAA2C,CAAA;AAC3E,eAAO,MAAM,iBAAiB,cAAyC,CAAA;AACvE,eAAO,MAAM,WAAW,EAAE,YAMzB,CAAA;AASD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAEpF,eAAO,MAAM,cAAc,0CAA2C,kBAAkB,GAAG,kBAAkB,EAAE,iFAsB9G,CAAA;AAED,eAAO,MAAM,sBAAsB,0GAElC,CAAA;AAED,eAAO,MAAM,oBAAoB,0GAEhC,CAAA"}
1
+ {"version":3,"file":"useStoredState.d.ts","sourceRoot":"","sources":["../../../src/hooks/useStoredState.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;AACxF,MAAM,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;AAEjE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,YAAY,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC5B,OAAO,CAAC,GAAG,EAAE,eAAe,GAAG,YAAY,CAAA;IAE3C,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAA;CACxD;AAGD,eAAO,MAAM,eAAe,EAAE,YAY7B,CAAA;AAcD,eAAO,MAAM,mBAAmB,cAA4D,CAAA;AAC5F,eAAO,MAAM,iBAAiB,cAA0D,CAAA;AACxF,eAAO,MAAM,WAAW,EAAE,YAMzB,CAAA;AASD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAA;AAEpF,eAAO,MAAM,cAAc,0CAA2C,kBAAkB,GAAG,kBAAkB,EAAE,iFAmB9G,CAAA;AAED,eAAO,MAAM,sBAAsB,0GAElC,CAAA;AAED,eAAO,MAAM,oBAAoB,0GAEhC,CAAA;AAED,eAAO,MAAM,eAAe,kBAAmB,kBAAkB,GAAG,kBAAkB,EAAE,iBAKvF,CAAA"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/scheduler/tracing.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../src/context/createRequiredContext.ts","../../src/context/createContext.ts","../../src/context/index.ts","../../src/debug-context/Types.ts","../../src/debug-context/Constants.ts","../../src/debug-context/Context.tsx","../../src/debug-context/index.ts","../../src/hooks/unwrapRefValue.ts","../../src/hooks/useAbortController.ts","../../src/referentiallyStable/emptyArray.ts","../../src/referentiallyStable/emptyObject.ts","../../src/referentiallyStable/identityFunction.ts","../../src/referentiallyStable/noop.ts","../../src/referentiallyStable/returnFalse.ts","../../src/referentiallyStable/returnTrue.ts","../../src/referentiallyStable/useReferentiallyStableCallback.ts","../../src/referentiallyStable/index.ts","../../src/hooks/useOnWindowResize.ts","../../src/hooks/useAddClassNameDuringResize.ts","../../src/hooks/usePreviousValue.ts","../../src/hooks/useConstantLengthInvariant.ts","../../src/hooks/useArrayMapMemo.ts","../../../utilities/dist/types/assert-types/AssertionError.d.ts","../../../utilities/dist/types/assert-types/Predicates.d.ts","../../../utilities/dist/types/assert-types/types.d.ts","../../../utilities/dist/types/assert-types/assert.d.ts","../../../utilities/dist/types/assert-types/assertNever.d.ts","../../../utilities/dist/types/assert-types/index.d.ts","../../../utilities/dist/types/class-name/colorSchemeClassName.d.ts","../../../utilities/dist/types/class-name/constants.d.ts","../../../utilities/dist/types/class-name/deduplicateClassName.d.ts","../../../utilities/dist/types/class-name/types.d.ts","../../../utilities/dist/types/class-name/filterThemedClassName.d.ts","../../../utilities/dist/types/class-name/flatClassNameList.d.ts","../../../utilities/dist/types/class-name/listClassName.d.ts","../../../utilities/dist/types/class-name/themeClassName.d.ts","../../../utilities/dist/types/class-name/index.d.ts","../../../utilities/dist/types/css-utilities/px.d.ts","../../../utilities/dist/types/css-utilities/index.d.ts","../../../utilities/dist/types/data-utilities/dateToStringWithoutTimezone.d.ts","../../../utilities/dist/types/data-utilities/index.d.ts","../../../utilities/dist/types/deprecate/types.d.ts","../../../utilities/dist/types/deprecate/deprecate.d.ts","../../../utilities/dist/types/deprecate/index.d.ts","../../../utilities/dist/types/dom/dataAttribute.d.ts","../../../utilities/dist/types/dom/getElementDimensions.d.ts","../../../utilities/dist/types/dom/getSizeFromResizeObserverEntry.d.ts","../../../utilities/dist/types/dom/shouldCancelStart.d.ts","../../../utilities/dist/types/dom/stateDataAttributes.d.ts","../../../utilities/dist/types/dom/svgSizeProps.d.ts","../../../utilities/dist/types/dom/index.d.ts","../../../utilities/dist/types/events/isSpecialLinkClick.d.ts","../../../utilities/dist/types/events/index.d.ts","../../../utilities/dist/types/functional/omit.d.ts","../../../utilities/dist/types/functional/pick.d.ts","../../../utilities/dist/types/functional/range.d.ts","../../../utilities/dist/types/functional/index.d.ts","../../../utilities/dist/types/string-utilities/kebabCase.d.ts","../../../utilities/dist/types/string-utilities/index.d.ts","../../../utilities/dist/types/types/Narrow.d.ts","../../../utilities/dist/types/types/Partial.d.ts","../../../utilities/dist/types/types/NonOptional.d.ts","../../../utilities/dist/types/types/PolymorphicRefs.d.ts","../../../utilities/dist/types/types/index.d.ts","../../../utilities/dist/types/index.d.ts","../../src/hooks/useOnElementResize.ts","../../src/hooks/useAutoHeightTextArea.ts","../../src/hooks/useChildrenAsLabel.ts","../../src/hooks/useCloseOnClickOutside.ts","../../src/hooks/useCloseOnEscape.ts","../../src/hooks/useComposeRef.ts","../../src/hooks/useConstantValueInvariant.ts","../../src/hooks/useWindowSize.ts","../../src/hooks/useContainerWidth.ts","../../src/hooks/useDebounce.ts","../../src/hooks/useDebounceCallback.ts","../../src/hooks/useDocumentTitle.ts","../../src/hooks/useElementSize.ts","../../src/hooks/useElementTopOffset.ts","../../src/hooks/useEventHandler.ts","../../../../node_modules/fast-deep-equal/es6/index.d.ts","../../src/hooks/useExpectSameValueReference.ts","../../src/hooks/useForceRender.ts","../../src/hooks/useId.ts","../../src/hooks/useIsMounted.ts","../../src/hooks/useObjectMemo.ts","../../src/hooks/useOnElementClickOutsideCallback.ts","../../src/hooks/useOnElementMouseEnterDelayedCallback.ts","../../src/hooks/useOnElementMutation.ts","../../src/hooks/useOnScrollWithin.ts","../../src/hooks/useScrollOffsets.ts","../../src/types/PropsWithRequiredChildren.ts","../../src/types/Serializable.ts","../../src/types/index.ts","../../src/hooks/useStoredState.ts","../../src/hooks/useUpdatedRef.ts","../../src/hooks/index.ts","../../src/theming/contexts.ts","../../src/theming/ColorSchemeProvider.tsx","../../src/theming/GlobalClassNamePrefixContext.ts","../../src/theming/useClassName.ts","../../src/theming/useClassNameFactory.ts","../../src/theming/useThemedClassName.ts","../../src/theming/useThemedClassNameFactory.ts","../../src/theming/index.ts","../../src/index.ts","../../../../node_modules/vite/types/hmrPayload.d.ts","../../../../node_modules/vite/types/customEvent.d.ts","../../../../node_modules/vite/types/hot.d.ts","../../../../node_modules/vite/types/importGlob.d.ts","../../../../node_modules/vite/types/importMeta.d.ts","../../../../node_modules/vite/client.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"0bd5e7096c7bc02bf70b2cc017fc45ef489cb19bd2f32a71af39ff5787f1b56a","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"369b91cb44fdb8a8fa15de2bd6c28a7abfe6cc16d483ea42291cc7b1efff88d4","affectsGlobalScope":true},"2879a055439b6c0c0132a1467120a0f85b56b5d735c973ad235acd958b1b5345",{"version":"26b824d9cce6391c324a3dec4a06885df3d9bf5998dbc957ad28f461524a2e35","signature":"57ad121b80fc96f58a204e71e0d1ebe970a9f12ca7e62de1e7298554d2603e0b"},{"version":"84eece3d0fce86d0890ff7482f7d129cd351455557940954e768b1126bddd2c2","signature":"e15175aac41016325e6162cb454fb2210dcc12232d6150e522a0aa2290c27702"},{"version":"dd6b2cccc1ce2bba7c6000ee0943493792dc186ea044a6362a02017e568f602c","signature":"221d79913a07871407b22c5bb9f4a0eed142f0314771663aaed21d303062ea07"},{"version":"fd1000297d832f3941f4805499412de58103aa078fffb6e09636bc5497a4a764","signature":"c2d7b2ba06f7ddcfc14a19836a07ca4e4fa995f29323bcf398a1e7b259a2f883"},{"version":"62a72689dd2257182702432b302c8fc9c713bbd3df063ec230577ad20d448564","signature":"1f6c8bf3acd3faf5b580fc7b547057de1eb12a9351a3c882c3027d0442404630"},{"version":"4f1da7b4f63d3a73cd9e64f93d0f2e3c65fdf494d0376a68a7527c56e38e0910","signature":"ccd3d9bcda5e494d59a4c994aff671739b1f8389e75ac7651e6f7ff6205583d0"},{"version":"4ee566ff97a4bb7fe21c656c2c63942a0fedfcfd1be0cd7880af771ff8ac59be","signature":"d5a966f87b35362b5d996d9ecf3d8508c27156956627498195abfdaf23326506"},{"version":"da2407349c44421984d8c588ecad6213bdbb4b2203d7f7b72e44f676392e6586","signature":"8f2446cd225d6848f764838175f31f918b704800880bd8dc045932d6b2a52673"},{"version":"1119fa53c926c20e281cb27ca310a053daee51ff4d4105fbec8c95cbc51deba8","signature":"76e9a763eef4a0ef8a4f50e387b9fad5266d471d8b0f62619f31bbd3d21b9814"},{"version":"6ed0434b66c265567ba50989270a2a406c1c7290de0ca0606424c5209f15c14b","signature":"944cd92c6b59feb32961d560267393f372b1dcff1d6cd71a6230ba03f91036b5"},{"version":"f9dccb27c442d882186eb81a6613368994304a1e19c581ab2d169e449f41a3ba","signature":"314e888c6a1a1cc4d30295ebacece510231e4e4ee7028434aee277abda977baf"},{"version":"ce96cdf4ec7233fd29eef8a8c8236c259997010527d25124c64760e645377271","signature":"f6e30e59f4a1f0d0e6b231c280322ce9b007ff9c54fdb13b707e870430341778"},{"version":"2f377947a423abcfb75b0e27d9986021be894b808ffa7cfcfde8d1e3b8214c90","signature":"58861fcc3db99d3761938fad76882bb93f726eaddbc3342cced707d00f94f5bd"},{"version":"194018367f7ed61f1bdbd2ce5c7ab2f16fb2f235dee82de70510ad132f6d5890","signature":"bda7d503a370f6aef217e2f68a326d4a5c2d4cae43f8131c084f509c8ccb83a7"},{"version":"9a2d06df39b9eb74e5d947dd74943894a9ad56a46c86bf0940e63a550233c376","signature":"6194964a45d631834d96f0c91ea7041d7e15f94db83b217e92466adf1646b894"},{"version":"59bf5133b21c380d75307ef184d78d14485e875cfea8f94a0393a7a628761a17","signature":"47450610465821f3ef5c6c116a91f2d1f3da33f37a9a4da00fff7a1a3bbaf8c4"},{"version":"31d0453c697851cead7aad3738e70a7ead0dd031185fe5824b994ac5bbbdabc6","signature":"d55e0e385634448cb9df2a75a80e9b44e4bdc1e87d2f942b0ee68c28365b9bfc"},{"version":"0b0cbad1c318fc84bf3fc7e437f2471020647c1125e107c1f0c3883c4cda9d0c","signature":"5d68e76b227ac7a7c2fd863ca5c7168117276051d049b49c3ff475d04390f669"},{"version":"117172d929e2830edadf916d606bc11cec34eebabe8528bb9b3f0e7e3f811d68","signature":"5666830778592987b29dac9758fe142b3db2934d845e60d1ad71884fdf3153c3"},{"version":"8ce84c30ed8e4ff9217beacd12b12344fc733ba4d759e016a6c2df97a172cfda","signature":"2bc449b91944ffae1f59471da701908ff793787f257f23b4ef71759acc97939f"},{"version":"1ec802e9ffbe86a6164b5809ed7819d11fb3e29f7b744827bc33830141718c74","signature":"572d37a64f63ea48d1e50cc50a3ffb9dea5fb130926dc53f9eef8e867c6982d5"},{"version":"b1096d58f6517057f746012925a47ec2d066d0c4143337982dc7f15467ca747e","signature":"809cd2debef3870c93afe5ddf02db6f18f4e223163bf252af70241de431f4465"},"f341c93fefe964ea97c5106e3d93c4271bb3951a06a34e08da704c6faf871380","e6cd10db13b47959e26122d816abc1d1c01bb53137ad620f73f8076dd963b652","c55bf39638366450edc9cb028ae72bd2c915e4bbc740dbf27a4d7dde00cf55d6","684fa42e4c7c6505105e948825329b720a388b7bf7624bfe2f51087a15d04445","a95c25e1f9146dd90f7cb36c7e306a25a67bdef1eaae7319a60d2f9d3ff66804","a98b93132fb74f455547d25af7e524e942504d265c037e235aaa38718083958f","821551b351ab0ff99fd29f7274f75cf937ae0ceaf7fed6120a1ee99e3e9a11c7","ec62de242997d09b8ddcc19c5353ffbd4bedd8d148e59c14e046f63d0bd2b9e3","854e693935e706cde39ec782c3d16ba2d76923d71accba703d21c71bba284184","8b1601671a8548877ad1647096eb08c1029cd2fff4e9db56306e5ead226ded24","9620c5bfd94afaac87bf94e5ae1efdc27d83ebb2103bcd5b19098fbd0a8b348c","49e29f37de0379778b35430743f3b2ec0934b5029ed22f7111d1a72edd86266d","0fbd308cd3436e453033babe3dea47ac92a96df652584aa1081ce382e7d54ada","9fdffc1da152e99dc75c341dc7daeffc6cfeb4d38e373762d97057d7eac515e5","feaa8ee29c586363e0884decde60df17b24143c04258b6cffe9b13696566c768","11dffd4e2a87837317cbb9e53560b5fa7fedecdfe3750e5bdc9def88c7bef662","f3c9d693e0597f6b1b5dd49bd0beaaa237bd491508991ea3c72b47d3c7d20fdb","747fcc330a861fdf770761870d94e1db8847c86cf82ee332ed4fdf506fa81ae7","b0511508476b9bf80ad623b1c7aa0b4c336eda1788c385973dc282d53ff7aed8","624e76b41eb76400df5e0cbacc5f7091e6bd0518e0f9f4ac4a047794b2c189f9","f14113b17b6a1863dd58e49e0bc504f21d51da969bc1fc4af1a07b3684f0de25","1762533296e00297d454534bdb27ddae5f6b69fef679295094cb0afb4e9a526a","1c84b348bb07619f2123fddd01c20184c6212540909bd98fdc450f7d4e234717","8bb29538074d6a78d49562f391bbe4a2b9b5ae028734d83e6601fe2741db7f6e","cc9bdde4319a73448db9e4dd8dc256d04f0060b90383b4563c3a32a3b67780d5","a4f90adab6e997a1a70c61ebe2080fc895e5c7cc6f4f125ada537f6eaa5eb780","f08668998295cdfe38a1db2bcd024341362cb20159dd8baa498064e560d0254b","dfe644b96a0786c3ed103bffe7331349022c647802d40030067cf71c9ce79bb5","f438b724a11131ee7a6f4501b159dee3a03ba689517d54cdbd2bebb5d6b66106","7ded9f0d899ffe1a25c259d0afdaa51e8e7c3e819c6bdfd6e16613778a1fad60","defe4bc30515b98744137a9938fd9039689da3a409ade4f632fcdedcab288375","9ecd8f32f134677d4134ee1178bedab19a51f1cb2ac468da4043f81c14ebd3ac","7c9ea735d5a29405896bf2e56d9f3afe0f5d1576736c54c4d5d879f08976d4db","203243c89d2ba33af45ffb13b75cbc6df13f49e937ff8b13bda460a68c19aa3c","ff0302b8dd06ec92107a56f081b7c7d3753bdb35a942a1c753f943553b0f00ae","0c6ae7360c8f7de225172914d960a5947b0a8f5e9e0a045a5f03c870fc98b1f5","5efac8d930c281e4cbbea8c1165a60d020bd549f9997e541bb3e59eb84d5af61","2530e26913543800e9f329fcaefbffe2904036d62aef1cf97e9738f070295ee7","2ed3dabf6725944e4a6aada55ce34ec864b8f593c7669cab66e690c5dad92077","c921746b36842e21243970c5ed44b488e842afe99843da3cb7f197242f4f2c9e","4b030016676aa17add8651d5f461d37a95ad981d417e5a4ae3c359ae24d3da10","5361132ff033a3d80d06317c3ac7f5616ec9792dd706f6040f737049a3debc31","39227d8a313a189db9a39005c433cbe640b4886dd85420428981cbd1083df249",{"version":"ff16987209681d2253c56ff05894060d23d4c59f088d7788d21ac4b6f27a89f2","signature":"f4846a5ce4f92bcfbd766a60b500be9132562b536501694b16eac9be117c1a93"},{"version":"9107d018e24df2d56105e99c84b5df45dff32ac249b8715c40512e1f3df18aec","signature":"4105be25a4337db6a374974bb8a51a25478eff481ff32bd5fff8ff62c9ae7344"},{"version":"bb2ff5b05c9bf54a410951151cb82719c27d412a23061812a39e9f4fda9c3321","signature":"5f4542d55d076b0b4bb1e5f95ef08d6492d76362544b7e4d095156d7ac4aa186"},{"version":"267665f19aca9b4495382a24a526d8dfcf28ab530fbfd5bc02c7c58813e6c025","signature":"206b7c2717efe369c471a11879613a235dae3afc30c6a63f22401a5f73ef311a"},{"version":"e68875a175ce7775a03f083fb9a6b54e0526ceb133131ea476dd31df9c417766","signature":"10b24802cc46d4cb5a6b42d516320506b75ba718ba1491ed025986dd53ab97cf"},{"version":"ba81cbdb0e8b70ee378bc4707204d493628f9198a269d3eddee8769f44d96b8d","signature":"273dab284b012bd39052d5068a8e5e493e79f7bbf603c3a6e8aa544d3a37a971"},{"version":"4e9b248518009250ac32d8d2a7537f8915067b27c385b19a9693206e3493d0be","signature":"5d05ccc4198e13f67f653cb968b468bb81cf3e65ae591cf59cf30f8ab6450237"},{"version":"e7ffbe95b1ad2d6a75ec1fa91328506c3e85f9162a53d7c1f81549092eec6a4b","signature":"89a2e13f35eafb164d59a5ec2c46cf97bf12c76a670d546a986c7880bde83c23"},{"version":"a36f682c6eb6df7b96beee25d15e913f7c7a296f36be00c74775db7a8dd31e0e","signature":"e28aa846ceae461c9881fc8c28b9c461da0a7ad7f7214895da8d3015ad7f187d"},{"version":"e7a67060180f7a26df5eb50bc0d146a97ba95ff352e40053ee133acbb1ec54d2","signature":"19fc07b31d401c27075277ed71154ab13c74ef43ab20898e7ae24de8d16fb172"},{"version":"8b46cbe63fa6800d645e6c9225b05988079787674eba03ac3fb7910ce04b2a8a","signature":"807c0151462ab7b02b0a3bf439c110128ebef4644850d10b95a280efad9241fd"},{"version":"a4b6b249f28c8f35231932226445ffa9b893033645cba97626bef58be79b2b64","signature":"983caabf3cd06702da1064b2792dad01147341ec2d11e399d982cfe43a9b039a"},{"version":"adf687d7747f42e26c6a6d8abe187c52531eb8d3122079a70b5a409852969f0b","signature":"7ce777e6990dbc2ecfb1c09157a66a78dbab17c610018611c1b3919983278d8b"},{"version":"1ef1472e0e169f3cbff6158e82a2a651a12b8da6be8ee9489a9bb36f4951d85a","signature":"eb5ea5b30f5ee36e03b77a5bb51e0d380f0c298d16d5a983e84d1bf626917810"},{"version":"c57c3dc474bd33922f44be9e8262f5b363d2f34afa9c456c34183532347438d3","signature":"0989b7833f22432b4effb9dd964ea745c4485174a7f205eff8b6eca7650fdd04"},"d979def17dea97ee491c975f3d3cb31957b7970a791c1d5a3854ea6cd4cce91e",{"version":"9c25d9faa9a0d10366d90ede3246b8e67daf0e39d55f1f355255c5b46e723a16","signature":"7223d57fe3a5c3ea34ff88f8f9d2711fe496d15b9032b6d2f9c0b4ca1e7cbd00"},{"version":"d0606fc9b7309eef1022f066b55be926544edc47e0b211c60a54367daa7f1320","signature":"2bd4625ce452e0f25677c4d07430710c57d424ec2d33391debae18ea9a67a56a"},{"version":"dd93b35183ddb71297dce8a9e6c71162fade0491c15dee546ee96a10362c65c8","signature":"d971ba1f17e274d839caeb0d88e8ebd84ffecade35028617c054b5b34d934ac5"},{"version":"8e83142922b25c87b8b3d90ecfc44a60a3017129abee86227a71bc2491e79678","signature":"b48798e7ef7f2e4f7bd9e6dbdcb037b24ea8f2effbb4bdd4a9a05930f01d9fc7"},{"version":"e3bac02b563a2ebfb9784935f4a039531c7341c565d1c0707e65623578555e83","signature":"9e9ed85ced77a7b59d07a821d69db8a8e780bcd1caeb5623e6ac04401cba31c4"},{"version":"9d2ec4c270e4360dfd32906b4d7614a240052b92fb9b98e8b3cebe2d89bb6d10","signature":"285ffd072e60b09837971b38641196165c190e95217de3d66d5c31261b023ef5"},{"version":"1d0e50c64ba60faf6ce22617d1ddfc92ae020f8c8b7cf26646005fb2d184ad46","signature":"ac913ee688a6300d23c9ec14d2c52b40d01106f8d6f91543eaed3e810aecd1ae"},{"version":"c711fb3e1244d3002a373b4d3cd7d1d6b08ed1a74b527cd4bdc12aa6584432bd","signature":"217c927c9096d539fa9ed50cddae8663efb63d7c9a3638ec66e323f124edf944"},{"version":"133c00e30ec9928d46a9005eaf8d89a3a42cbaedeadf5d894b976e5f36d10db5","signature":"7975d8566fd9321324b32045a4333e1d7edab85588faef8e9bdfc5efacc94df0"},{"version":"7b81c34986e958e7b86bf54eac75601a31296ba0c7b059e7c55063a320450133","signature":"e74bdf83c107823764f73f5ce4bc4ec44c5771e58c219caaf60de7cffe78bb25"},{"version":"26f0f8afb62e55578d063a85b8466922b60bda21c8cd674fd991543429b0a457","signature":"ba2e3244ab6bb9b566681fe3739144a3f3a6c549f8ffc18af5c6909f34b5367c"},{"version":"1ff0b5a9de5dd2ab9af8f3b2b0827aa5d819e2de0ac22ff9e83a4c7dc6971a2d","signature":"8b4adeab24aaca65cf5145650e670147494fbd9aa71ac29de6685b0bfbf4be05"},{"version":"0e3b9862a0ce71dc8c872a7d9e03aa8df63ebced4798b5a5b2a203648672e479","signature":"40ab9090ab933f2463706b6eab3f6cee55021b38beb59f1e52d323475eac2c92"},{"version":"57be495e056025f24a57a3b7f43d6352493061747cace6a831e2d6d4929400cb","signature":"1fd23e44866a0f29660d4ca5ca66eebe05a8b1610649aabb7e27d57303aa4bec"},{"version":"552149a29e0c220b7bee747b92a8ec42691443ef616b744a0c8e74a39b2dfa4f","signature":"da4d2fd24b5b25a9fff5fd42166c1fd6e44dacc8362bee445590583d95795f3f"},{"version":"50ecb1421606f28eb9df51cba9ca4555b9d4529cdad8c05670a23b18621e4206","signature":"98e90c42e930f7454e510f9ae5cab391a44c759ba7908a359b6ae0974968e958"},{"version":"ece23bbdafc69636c2804ab51079322dc325cb02e882239b30445d4a8f32021d","signature":"f945fcfdc4ba7a3afce46cbeade6c2af81cf8272bfe324b6ee10cd45bbcf2f8f"},{"version":"03d69a99035dc5e7f57aec85e62bee57314e7aad037c85f16a0e0b89439a9c00","signature":"815f62119b888cff0c4f77ed8376ec3cc443aa6e570424a387c28de14aceea36"},{"version":"62b72e6ae6c8dfcf625b064de8b1bf2f6d91b6e81d9dcac82c6730103ae6101f","signature":"564c57d76966679f0345941dfe3905b43c1c813d10dc6c6de2f1e79501a2c312"},{"version":"0f8e15ab1e746aecc5432121adc22d5436b39a837fe41900237b68d19f82f624","signature":"bbf051c7cb882188c13e724587aa4974b24f4a68b3df5a7c9f751ae1ecdd89a7"},{"version":"d75ff18068d8e90bf60e08d4addba9286a3ebddb4be3657112962a24e03415a8","signature":"4d87507e03b850a16b8da43d8e381e1136b78d44bf757ba4355f904d76b143aa"},{"version":"c27aa8ee7803f8a04a45baf26c8e7e59b0aa38a28ebe627d68fade4b8a0d19df","signature":"bd1dad81ccd386cd8408cd031f6a2ce9c6bbd378dc4c5544ecb4a7e2e40e733c"},{"version":"a5a11245de360ed201ff568db6d0ae34e340e28e903e2f0d9b06186f8c5b6421","signature":"f564c563e8232817dfaec31767c184e478b43df6e5512def7af163293a2568fa"},{"version":"9dfc4e73e97b77e7bb223e97abf60ffcbbb24bb542b8e48d67cb0c388eff0535","signature":"5a5999804b054cd7d1f7b0609de30f310ed6254154056852f9d7286ff8df16e6"},{"version":"a6f5cb62fc00945131ed2a8e6833120f244288f0a3e1631c455d434b2ca9a1e6","signature":"8ecb96737eac73dc563c1dbb3744bbff821070e5b4e338dc8f76957a59012ad4"},"bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","1363ba7d52f2353d0c4306d0ecdaf171bf4509c0148842f9fd8d3986c098a2eb","cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","21092de52736dc30f478fe5f1e88ad1b545ce4b276062999302aa65b30a6787a",{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true},{"version":"84d68135178bf014e5cdc27e88c9148fc22f82e1a733dc6e1869a5263e58d5db","affectsGlobalScope":true}],"root":[[72,93],[137,151],[153,177]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[66,67,68,69],[70],[182],[178],[179],[180,181],[70,71],[71,72,73],[71,75],[70,71,75,76],[71],[71,75,76,77],[71,79,80,89,90,91,92,93,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,161,162,166,167],[70,71,88,89],[70,71,92],[70,71,79,136,137],[71,91],[70,71,144],[70,71,78,79,88,136,137],[70,71,152],[70,71,79],[70,71,78,79,152],[70,71,78,79],[70,71,78],[70,71,78,79,88,89,136,161],[70,71,165],[70,71,89],[71,74,78,88,165,168,176],[71,81,82,83,84,85,86,87],[70,71,169],[71,74],[71,169,170,171,172,173,174,175],[70,71,136,171],[70,71,88,136,171],[71,136,169,172],[70,71,88,136,169,171],[71,163,164],[96],[94,95,96,97,98],[103],[100,101,102,103,104,105,106,107],[109],[111],[113],[113,114],[116,117,118,119,120,121],[123],[125,126,127],[99,108,110,112,115,122,124,128,130,135],[129],[131,132,133,134],[72,73],[75],[70,75],[75,76,77],[79,80,89,90,91,92,93,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,161,162,166,167],[79],[165],[74,78,88,165,168,176],[81,82,83,84,85,86,87],[169,170,171,172,173,174,175],[136],[163,164]],"referencedMap":[[70,1],[71,2],[183,3],[179,4],[180,5],[182,6],[73,7],[72,7],[74,8],[76,9],[77,10],[75,11],[78,12],[168,13],[79,7],[80,7],[90,14],[93,15],[138,16],[139,7],[140,7],[141,7],[142,7],[92,17],[143,17],[145,18],[146,7],[147,7],[148,7],[149,19],[150,7],[151,7],[153,20],[154,7],[155,7],[156,7],[157,7],[158,21],[159,21],[160,22],[137,23],[161,23],[89,24],[91,7],[162,25],[166,26],[167,7],[144,27],[177,28],[81,11],[82,11],[83,11],[88,29],[84,11],[85,11],[86,11],[87,7],[170,30],[171,7],[169,31],[176,32],[172,33],[173,34],[174,35],[175,36],[163,7],[164,11],[165,37],[97,38],[99,39],[104,40],[105,40],[108,41],[106,40],[110,42],[112,43],[114,44],[115,45],[122,46],[124,47],[128,48],[136,49],[130,50],[134,2],[135,51]],"exportedModulesMap":[[70,1],[71,2],[183,3],[179,4],[180,5],[182,6],[73,2],[72,2],[74,52],[76,53],[77,54],[78,55],[168,56],[79,2],[138,57],[139,2],[142,2],[145,2],[149,57],[150,2],[151,2],[154,2],[156,2],[158,57],[159,57],[160,57],[137,57],[161,57],[162,57],[166,58],[167,2],[177,59],[88,60],[170,7],[171,2],[169,2],[176,61],[172,62],[173,62],[174,62],[175,62],[163,2],[165,63],[97,38],[99,39],[104,40],[105,40],[108,41],[106,40],[110,42],[112,43],[114,44],[115,45],[122,46],[124,47],[128,48],[136,49],[130,50],[134,2],[135,51]],"semanticDiagnosticsPerFile":[68,66,70,71,69,67,152,64,65,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,58,56,57,59,60,10,1,11,63,62,61,183,179,178,180,181,182,73,72,74,76,77,75,78,168,79,80,90,93,138,139,140,141,142,92,143,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,137,161,89,91,162,166,167,144,177,81,82,83,88,84,85,86,87,170,171,169,176,172,173,174,175,163,164,165,94,95,97,98,99,96,100,101,102,104,105,108,106,107,103,110,109,111,112,114,115,113,116,117,118,122,119,120,121,124,123,128,125,126,127,136,130,129,131,133,132,134,135],"latestChangedDtsFile":"./index.d.ts"},"version":"5.3.3"}
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/scheduler/tracing.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../src/context/createRequiredContext.ts","../../src/context/createContext.ts","../../src/context/index.ts","../../src/debug-context/Types.ts","../../src/debug-context/Constants.ts","../../src/debug-context/Context.tsx","../../src/debug-context/index.ts","../../src/hooks/unwrapRefValue.ts","../../src/hooks/useAbortController.ts","../../src/referentiallyStable/emptyArray.ts","../../src/referentiallyStable/emptyObject.ts","../../src/referentiallyStable/identityFunction.ts","../../src/referentiallyStable/noop.ts","../../src/referentiallyStable/returnFalse.ts","../../src/referentiallyStable/returnTrue.ts","../../src/referentiallyStable/useReferentiallyStableCallback.ts","../../src/referentiallyStable/index.ts","../../src/hooks/useOnWindowResize.ts","../../src/hooks/useAddClassNameDuringResize.ts","../../src/hooks/usePreviousValue.ts","../../src/hooks/useConstantLengthInvariant.ts","../../src/hooks/useArrayMapMemo.ts","../../../utilities/dist/types/assert-types/AssertionError.d.ts","../../../utilities/dist/types/assert-types/Predicates.d.ts","../../../utilities/dist/types/assert-types/types.d.ts","../../../utilities/dist/types/assert-types/assert.d.ts","../../../utilities/dist/types/assert-types/assertNever.d.ts","../../../utilities/dist/types/assert-types/index.d.ts","../../../utilities/dist/types/class-name/colorSchemeClassName.d.ts","../../../utilities/dist/types/class-name/constants.d.ts","../../../utilities/dist/types/class-name/deduplicateClassName.d.ts","../../../utilities/dist/types/class-name/types.d.ts","../../../utilities/dist/types/class-name/filterThemedClassName.d.ts","../../../utilities/dist/types/class-name/flatClassNameList.d.ts","../../../utilities/dist/types/class-name/listClassName.d.ts","../../../utilities/dist/types/class-name/themeClassName.d.ts","../../../utilities/dist/types/class-name/index.d.ts","../../../utilities/dist/types/css-utilities/px.d.ts","../../../utilities/dist/types/css-utilities/index.d.ts","../../../utilities/dist/types/data-utilities/dateToStringWithoutTimezone.d.ts","../../../utilities/dist/types/data-utilities/index.d.ts","../../../utilities/dist/types/deprecate/types.d.ts","../../../utilities/dist/types/deprecate/deprecate.d.ts","../../../utilities/dist/types/deprecate/index.d.ts","../../../utilities/dist/types/dom/dataAttribute.d.ts","../../../utilities/dist/types/dom/getElementDimensions.d.ts","../../../utilities/dist/types/dom/getSizeFromResizeObserverEntry.d.ts","../../../utilities/dist/types/dom/shouldCancelStart.d.ts","../../../utilities/dist/types/dom/stateDataAttributes.d.ts","../../../utilities/dist/types/dom/svgSizeProps.d.ts","../../../utilities/dist/types/dom/index.d.ts","../../../utilities/dist/types/events/isSpecialLinkClick.d.ts","../../../utilities/dist/types/events/index.d.ts","../../../utilities/dist/types/functional/omit.d.ts","../../../utilities/dist/types/functional/pick.d.ts","../../../utilities/dist/types/functional/range.d.ts","../../../utilities/dist/types/functional/index.d.ts","../../../utilities/dist/types/string-utilities/kebabCase.d.ts","../../../utilities/dist/types/string-utilities/index.d.ts","../../../utilities/dist/types/types/Narrow.d.ts","../../../utilities/dist/types/types/Partial.d.ts","../../../utilities/dist/types/types/NonOptional.d.ts","../../../utilities/dist/types/types/PolymorphicRefs.d.ts","../../../utilities/dist/types/types/index.d.ts","../../../utilities/dist/types/index.d.ts","../../src/hooks/useOnElementResize.ts","../../src/hooks/useAutoHeightTextArea.ts","../../src/hooks/useChildrenAsLabel.ts","../../src/hooks/useCloseOnClickOutside.ts","../../src/hooks/useCloseOnEscape.ts","../../src/hooks/useComposeRef.ts","../../src/hooks/useConstantValueInvariant.ts","../../src/hooks/useWindowSize.ts","../../src/hooks/useContainerWidth.ts","../../src/hooks/useDebounce.ts","../../src/hooks/useDebounceCallback.ts","../../src/hooks/useDocumentTitle.ts","../../src/hooks/useElementSize.ts","../../src/hooks/useElementTopOffset.ts","../../src/hooks/useEventHandler.ts","../../../../node_modules/fast-deep-equal/es6/index.d.ts","../../src/hooks/useExpectSameValueReference.ts","../../src/hooks/useForceRender.ts","../../src/hooks/useId.ts","../../src/hooks/useIsMounted.ts","../../src/hooks/useObjectMemo.ts","../../src/hooks/useOnElementClickOutsideCallback.ts","../../src/hooks/useOnElementMouseEnterDelayedCallback.ts","../../src/hooks/useOnElementMutation.ts","../../src/hooks/useOnScrollWithin.ts","../../src/hooks/useScrollOffsets.ts","../../src/types/PropsWithRequiredChildren.ts","../../src/types/Serializable.ts","../../src/types/index.ts","../../src/hooks/useStoredState.ts","../../src/hooks/useUpdatedRef.ts","../../src/hooks/index.ts","../../src/theming/contexts.ts","../../src/theming/ColorSchemeProvider.tsx","../../src/theming/GlobalClassNamePrefixContext.ts","../../src/theming/useClassName.ts","../../src/theming/useClassNameFactory.ts","../../src/theming/useThemedClassName.ts","../../src/theming/useThemedClassNameFactory.ts","../../src/theming/index.ts","../../src/index.ts","../../../../node_modules/vite/types/hmrPayload.d.ts","../../../../node_modules/vite/types/customEvent.d.ts","../../../../node_modules/vite/types/hot.d.ts","../../../../node_modules/vite/types/importGlob.d.ts","../../../../node_modules/vite/types/importMeta.d.ts","../../../../node_modules/vite/client.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"0bd5e7096c7bc02bf70b2cc017fc45ef489cb19bd2f32a71af39ff5787f1b56a","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"369b91cb44fdb8a8fa15de2bd6c28a7abfe6cc16d483ea42291cc7b1efff88d4","affectsGlobalScope":true},"2879a055439b6c0c0132a1467120a0f85b56b5d735c973ad235acd958b1b5345",{"version":"26b824d9cce6391c324a3dec4a06885df3d9bf5998dbc957ad28f461524a2e35","signature":"57ad121b80fc96f58a204e71e0d1ebe970a9f12ca7e62de1e7298554d2603e0b"},{"version":"84eece3d0fce86d0890ff7482f7d129cd351455557940954e768b1126bddd2c2","signature":"e15175aac41016325e6162cb454fb2210dcc12232d6150e522a0aa2290c27702"},{"version":"dd6b2cccc1ce2bba7c6000ee0943493792dc186ea044a6362a02017e568f602c","signature":"221d79913a07871407b22c5bb9f4a0eed142f0314771663aaed21d303062ea07"},{"version":"fd1000297d832f3941f4805499412de58103aa078fffb6e09636bc5497a4a764","signature":"c2d7b2ba06f7ddcfc14a19836a07ca4e4fa995f29323bcf398a1e7b259a2f883"},{"version":"62a72689dd2257182702432b302c8fc9c713bbd3df063ec230577ad20d448564","signature":"1f6c8bf3acd3faf5b580fc7b547057de1eb12a9351a3c882c3027d0442404630"},{"version":"4f1da7b4f63d3a73cd9e64f93d0f2e3c65fdf494d0376a68a7527c56e38e0910","signature":"ccd3d9bcda5e494d59a4c994aff671739b1f8389e75ac7651e6f7ff6205583d0"},{"version":"4ee566ff97a4bb7fe21c656c2c63942a0fedfcfd1be0cd7880af771ff8ac59be","signature":"d5a966f87b35362b5d996d9ecf3d8508c27156956627498195abfdaf23326506"},{"version":"da2407349c44421984d8c588ecad6213bdbb4b2203d7f7b72e44f676392e6586","signature":"8f2446cd225d6848f764838175f31f918b704800880bd8dc045932d6b2a52673"},{"version":"1119fa53c926c20e281cb27ca310a053daee51ff4d4105fbec8c95cbc51deba8","signature":"76e9a763eef4a0ef8a4f50e387b9fad5266d471d8b0f62619f31bbd3d21b9814"},{"version":"6ed0434b66c265567ba50989270a2a406c1c7290de0ca0606424c5209f15c14b","signature":"944cd92c6b59feb32961d560267393f372b1dcff1d6cd71a6230ba03f91036b5"},{"version":"f9dccb27c442d882186eb81a6613368994304a1e19c581ab2d169e449f41a3ba","signature":"314e888c6a1a1cc4d30295ebacece510231e4e4ee7028434aee277abda977baf"},{"version":"ce96cdf4ec7233fd29eef8a8c8236c259997010527d25124c64760e645377271","signature":"f6e30e59f4a1f0d0e6b231c280322ce9b007ff9c54fdb13b707e870430341778"},{"version":"2f377947a423abcfb75b0e27d9986021be894b808ffa7cfcfde8d1e3b8214c90","signature":"58861fcc3db99d3761938fad76882bb93f726eaddbc3342cced707d00f94f5bd"},{"version":"194018367f7ed61f1bdbd2ce5c7ab2f16fb2f235dee82de70510ad132f6d5890","signature":"bda7d503a370f6aef217e2f68a326d4a5c2d4cae43f8131c084f509c8ccb83a7"},{"version":"9a2d06df39b9eb74e5d947dd74943894a9ad56a46c86bf0940e63a550233c376","signature":"6194964a45d631834d96f0c91ea7041d7e15f94db83b217e92466adf1646b894"},{"version":"59bf5133b21c380d75307ef184d78d14485e875cfea8f94a0393a7a628761a17","signature":"47450610465821f3ef5c6c116a91f2d1f3da33f37a9a4da00fff7a1a3bbaf8c4"},{"version":"31d0453c697851cead7aad3738e70a7ead0dd031185fe5824b994ac5bbbdabc6","signature":"d55e0e385634448cb9df2a75a80e9b44e4bdc1e87d2f942b0ee68c28365b9bfc"},{"version":"0b0cbad1c318fc84bf3fc7e437f2471020647c1125e107c1f0c3883c4cda9d0c","signature":"5d68e76b227ac7a7c2fd863ca5c7168117276051d049b49c3ff475d04390f669"},{"version":"117172d929e2830edadf916d606bc11cec34eebabe8528bb9b3f0e7e3f811d68","signature":"5666830778592987b29dac9758fe142b3db2934d845e60d1ad71884fdf3153c3"},{"version":"8ce84c30ed8e4ff9217beacd12b12344fc733ba4d759e016a6c2df97a172cfda","signature":"2bc449b91944ffae1f59471da701908ff793787f257f23b4ef71759acc97939f"},{"version":"1ec802e9ffbe86a6164b5809ed7819d11fb3e29f7b744827bc33830141718c74","signature":"572d37a64f63ea48d1e50cc50a3ffb9dea5fb130926dc53f9eef8e867c6982d5"},{"version":"b1096d58f6517057f746012925a47ec2d066d0c4143337982dc7f15467ca747e","signature":"809cd2debef3870c93afe5ddf02db6f18f4e223163bf252af70241de431f4465"},"f341c93fefe964ea97c5106e3d93c4271bb3951a06a34e08da704c6faf871380","e6cd10db13b47959e26122d816abc1d1c01bb53137ad620f73f8076dd963b652","c55bf39638366450edc9cb028ae72bd2c915e4bbc740dbf27a4d7dde00cf55d6","684fa42e4c7c6505105e948825329b720a388b7bf7624bfe2f51087a15d04445","a95c25e1f9146dd90f7cb36c7e306a25a67bdef1eaae7319a60d2f9d3ff66804","a98b93132fb74f455547d25af7e524e942504d265c037e235aaa38718083958f","821551b351ab0ff99fd29f7274f75cf937ae0ceaf7fed6120a1ee99e3e9a11c7","ec62de242997d09b8ddcc19c5353ffbd4bedd8d148e59c14e046f63d0bd2b9e3","854e693935e706cde39ec782c3d16ba2d76923d71accba703d21c71bba284184","8b1601671a8548877ad1647096eb08c1029cd2fff4e9db56306e5ead226ded24","9620c5bfd94afaac87bf94e5ae1efdc27d83ebb2103bcd5b19098fbd0a8b348c","49e29f37de0379778b35430743f3b2ec0934b5029ed22f7111d1a72edd86266d","0fbd308cd3436e453033babe3dea47ac92a96df652584aa1081ce382e7d54ada","9fdffc1da152e99dc75c341dc7daeffc6cfeb4d38e373762d97057d7eac515e5","feaa8ee29c586363e0884decde60df17b24143c04258b6cffe9b13696566c768","11dffd4e2a87837317cbb9e53560b5fa7fedecdfe3750e5bdc9def88c7bef662","f3c9d693e0597f6b1b5dd49bd0beaaa237bd491508991ea3c72b47d3c7d20fdb","747fcc330a861fdf770761870d94e1db8847c86cf82ee332ed4fdf506fa81ae7","b0511508476b9bf80ad623b1c7aa0b4c336eda1788c385973dc282d53ff7aed8","624e76b41eb76400df5e0cbacc5f7091e6bd0518e0f9f4ac4a047794b2c189f9","f14113b17b6a1863dd58e49e0bc504f21d51da969bc1fc4af1a07b3684f0de25","1762533296e00297d454534bdb27ddae5f6b69fef679295094cb0afb4e9a526a","1c84b348bb07619f2123fddd01c20184c6212540909bd98fdc450f7d4e234717","8bb29538074d6a78d49562f391bbe4a2b9b5ae028734d83e6601fe2741db7f6e","cc9bdde4319a73448db9e4dd8dc256d04f0060b90383b4563c3a32a3b67780d5","a4f90adab6e997a1a70c61ebe2080fc895e5c7cc6f4f125ada537f6eaa5eb780","f08668998295cdfe38a1db2bcd024341362cb20159dd8baa498064e560d0254b","dfe644b96a0786c3ed103bffe7331349022c647802d40030067cf71c9ce79bb5","f438b724a11131ee7a6f4501b159dee3a03ba689517d54cdbd2bebb5d6b66106","7ded9f0d899ffe1a25c259d0afdaa51e8e7c3e819c6bdfd6e16613778a1fad60","defe4bc30515b98744137a9938fd9039689da3a409ade4f632fcdedcab288375","9ecd8f32f134677d4134ee1178bedab19a51f1cb2ac468da4043f81c14ebd3ac","7c9ea735d5a29405896bf2e56d9f3afe0f5d1576736c54c4d5d879f08976d4db","203243c89d2ba33af45ffb13b75cbc6df13f49e937ff8b13bda460a68c19aa3c","ff0302b8dd06ec92107a56f081b7c7d3753bdb35a942a1c753f943553b0f00ae","0c6ae7360c8f7de225172914d960a5947b0a8f5e9e0a045a5f03c870fc98b1f5","5efac8d930c281e4cbbea8c1165a60d020bd549f9997e541bb3e59eb84d5af61","2530e26913543800e9f329fcaefbffe2904036d62aef1cf97e9738f070295ee7","2ed3dabf6725944e4a6aada55ce34ec864b8f593c7669cab66e690c5dad92077","c921746b36842e21243970c5ed44b488e842afe99843da3cb7f197242f4f2c9e","4b030016676aa17add8651d5f461d37a95ad981d417e5a4ae3c359ae24d3da10","5361132ff033a3d80d06317c3ac7f5616ec9792dd706f6040f737049a3debc31","39227d8a313a189db9a39005c433cbe640b4886dd85420428981cbd1083df249",{"version":"ff16987209681d2253c56ff05894060d23d4c59f088d7788d21ac4b6f27a89f2","signature":"f4846a5ce4f92bcfbd766a60b500be9132562b536501694b16eac9be117c1a93"},{"version":"9107d018e24df2d56105e99c84b5df45dff32ac249b8715c40512e1f3df18aec","signature":"4105be25a4337db6a374974bb8a51a25478eff481ff32bd5fff8ff62c9ae7344"},{"version":"bb2ff5b05c9bf54a410951151cb82719c27d412a23061812a39e9f4fda9c3321","signature":"5f4542d55d076b0b4bb1e5f95ef08d6492d76362544b7e4d095156d7ac4aa186"},{"version":"267665f19aca9b4495382a24a526d8dfcf28ab530fbfd5bc02c7c58813e6c025","signature":"206b7c2717efe369c471a11879613a235dae3afc30c6a63f22401a5f73ef311a"},{"version":"e68875a175ce7775a03f083fb9a6b54e0526ceb133131ea476dd31df9c417766","signature":"10b24802cc46d4cb5a6b42d516320506b75ba718ba1491ed025986dd53ab97cf"},{"version":"ba81cbdb0e8b70ee378bc4707204d493628f9198a269d3eddee8769f44d96b8d","signature":"273dab284b012bd39052d5068a8e5e493e79f7bbf603c3a6e8aa544d3a37a971"},{"version":"4e9b248518009250ac32d8d2a7537f8915067b27c385b19a9693206e3493d0be","signature":"5d05ccc4198e13f67f653cb968b468bb81cf3e65ae591cf59cf30f8ab6450237"},{"version":"e7ffbe95b1ad2d6a75ec1fa91328506c3e85f9162a53d7c1f81549092eec6a4b","signature":"89a2e13f35eafb164d59a5ec2c46cf97bf12c76a670d546a986c7880bde83c23"},{"version":"a36f682c6eb6df7b96beee25d15e913f7c7a296f36be00c74775db7a8dd31e0e","signature":"e28aa846ceae461c9881fc8c28b9c461da0a7ad7f7214895da8d3015ad7f187d"},{"version":"e7a67060180f7a26df5eb50bc0d146a97ba95ff352e40053ee133acbb1ec54d2","signature":"19fc07b31d401c27075277ed71154ab13c74ef43ab20898e7ae24de8d16fb172"},{"version":"8b46cbe63fa6800d645e6c9225b05988079787674eba03ac3fb7910ce04b2a8a","signature":"807c0151462ab7b02b0a3bf439c110128ebef4644850d10b95a280efad9241fd"},{"version":"a4b6b249f28c8f35231932226445ffa9b893033645cba97626bef58be79b2b64","signature":"983caabf3cd06702da1064b2792dad01147341ec2d11e399d982cfe43a9b039a"},{"version":"adf687d7747f42e26c6a6d8abe187c52531eb8d3122079a70b5a409852969f0b","signature":"7ce777e6990dbc2ecfb1c09157a66a78dbab17c610018611c1b3919983278d8b"},{"version":"1ef1472e0e169f3cbff6158e82a2a651a12b8da6be8ee9489a9bb36f4951d85a","signature":"eb5ea5b30f5ee36e03b77a5bb51e0d380f0c298d16d5a983e84d1bf626917810"},{"version":"c57c3dc474bd33922f44be9e8262f5b363d2f34afa9c456c34183532347438d3","signature":"0989b7833f22432b4effb9dd964ea745c4485174a7f205eff8b6eca7650fdd04"},"d979def17dea97ee491c975f3d3cb31957b7970a791c1d5a3854ea6cd4cce91e",{"version":"9c25d9faa9a0d10366d90ede3246b8e67daf0e39d55f1f355255c5b46e723a16","signature":"7223d57fe3a5c3ea34ff88f8f9d2711fe496d15b9032b6d2f9c0b4ca1e7cbd00"},{"version":"d0606fc9b7309eef1022f066b55be926544edc47e0b211c60a54367daa7f1320","signature":"2bd4625ce452e0f25677c4d07430710c57d424ec2d33391debae18ea9a67a56a"},{"version":"dd93b35183ddb71297dce8a9e6c71162fade0491c15dee546ee96a10362c65c8","signature":"d971ba1f17e274d839caeb0d88e8ebd84ffecade35028617c054b5b34d934ac5"},{"version":"8e83142922b25c87b8b3d90ecfc44a60a3017129abee86227a71bc2491e79678","signature":"b48798e7ef7f2e4f7bd9e6dbdcb037b24ea8f2effbb4bdd4a9a05930f01d9fc7"},{"version":"e3bac02b563a2ebfb9784935f4a039531c7341c565d1c0707e65623578555e83","signature":"9e9ed85ced77a7b59d07a821d69db8a8e780bcd1caeb5623e6ac04401cba31c4"},{"version":"9d2ec4c270e4360dfd32906b4d7614a240052b92fb9b98e8b3cebe2d89bb6d10","signature":"285ffd072e60b09837971b38641196165c190e95217de3d66d5c31261b023ef5"},{"version":"1d0e50c64ba60faf6ce22617d1ddfc92ae020f8c8b7cf26646005fb2d184ad46","signature":"ac913ee688a6300d23c9ec14d2c52b40d01106f8d6f91543eaed3e810aecd1ae"},{"version":"c711fb3e1244d3002a373b4d3cd7d1d6b08ed1a74b527cd4bdc12aa6584432bd","signature":"217c927c9096d539fa9ed50cddae8663efb63d7c9a3638ec66e323f124edf944"},{"version":"133c00e30ec9928d46a9005eaf8d89a3a42cbaedeadf5d894b976e5f36d10db5","signature":"7975d8566fd9321324b32045a4333e1d7edab85588faef8e9bdfc5efacc94df0"},{"version":"7b81c34986e958e7b86bf54eac75601a31296ba0c7b059e7c55063a320450133","signature":"e74bdf83c107823764f73f5ce4bc4ec44c5771e58c219caaf60de7cffe78bb25"},{"version":"26f0f8afb62e55578d063a85b8466922b60bda21c8cd674fd991543429b0a457","signature":"ba2e3244ab6bb9b566681fe3739144a3f3a6c549f8ffc18af5c6909f34b5367c"},{"version":"1ff0b5a9de5dd2ab9af8f3b2b0827aa5d819e2de0ac22ff9e83a4c7dc6971a2d","signature":"8b4adeab24aaca65cf5145650e670147494fbd9aa71ac29de6685b0bfbf4be05"},{"version":"0e3b9862a0ce71dc8c872a7d9e03aa8df63ebced4798b5a5b2a203648672e479","signature":"40ab9090ab933f2463706b6eab3f6cee55021b38beb59f1e52d323475eac2c92"},{"version":"6e957063d029f158dc13c56de3b0a216aa2cc990105871d4a2bce6301011ac43","signature":"a235538d09f6333ea3c805b93f93085e989856073d5f783d9c4054486e2e0865"},{"version":"552149a29e0c220b7bee747b92a8ec42691443ef616b744a0c8e74a39b2dfa4f","signature":"da4d2fd24b5b25a9fff5fd42166c1fd6e44dacc8362bee445590583d95795f3f"},{"version":"50ecb1421606f28eb9df51cba9ca4555b9d4529cdad8c05670a23b18621e4206","signature":"98e90c42e930f7454e510f9ae5cab391a44c759ba7908a359b6ae0974968e958"},{"version":"ece23bbdafc69636c2804ab51079322dc325cb02e882239b30445d4a8f32021d","signature":"f945fcfdc4ba7a3afce46cbeade6c2af81cf8272bfe324b6ee10cd45bbcf2f8f"},{"version":"03d69a99035dc5e7f57aec85e62bee57314e7aad037c85f16a0e0b89439a9c00","signature":"815f62119b888cff0c4f77ed8376ec3cc443aa6e570424a387c28de14aceea36"},{"version":"62b72e6ae6c8dfcf625b064de8b1bf2f6d91b6e81d9dcac82c6730103ae6101f","signature":"564c57d76966679f0345941dfe3905b43c1c813d10dc6c6de2f1e79501a2c312"},{"version":"0f8e15ab1e746aecc5432121adc22d5436b39a837fe41900237b68d19f82f624","signature":"bbf051c7cb882188c13e724587aa4974b24f4a68b3df5a7c9f751ae1ecdd89a7"},{"version":"d75ff18068d8e90bf60e08d4addba9286a3ebddb4be3657112962a24e03415a8","signature":"4d87507e03b850a16b8da43d8e381e1136b78d44bf757ba4355f904d76b143aa"},{"version":"c27aa8ee7803f8a04a45baf26c8e7e59b0aa38a28ebe627d68fade4b8a0d19df","signature":"bd1dad81ccd386cd8408cd031f6a2ce9c6bbd378dc4c5544ecb4a7e2e40e733c"},{"version":"a5a11245de360ed201ff568db6d0ae34e340e28e903e2f0d9b06186f8c5b6421","signature":"f564c563e8232817dfaec31767c184e478b43df6e5512def7af163293a2568fa"},{"version":"9dfc4e73e97b77e7bb223e97abf60ffcbbb24bb542b8e48d67cb0c388eff0535","signature":"5a5999804b054cd7d1f7b0609de30f310ed6254154056852f9d7286ff8df16e6"},{"version":"a6f5cb62fc00945131ed2a8e6833120f244288f0a3e1631c455d434b2ca9a1e6","signature":"8ecb96737eac73dc563c1dbb3744bbff821070e5b4e338dc8f76957a59012ad4"},"bcb6ea18f23dae2c48459d7b86d3adccd6898f824fcbf9da08b935f559896580","1363ba7d52f2353d0c4306d0ecdaf171bf4509c0148842f9fd8d3986c098a2eb","cbe726263ae9a7bf32352380f7e8ab66ee25b3457137e316929269c19e18a2be","21092de52736dc30f478fe5f1e88ad1b545ce4b276062999302aa65b30a6787a",{"version":"4025a454b1ca489b179ee8c684bdd70ff8c1967e382076ade53e7e4653e1daec","affectsGlobalScope":true},{"version":"84d68135178bf014e5cdc27e88c9148fc22f82e1a733dc6e1869a5263e58d5db","affectsGlobalScope":true}],"root":[[72,93],[137,151],[153,177]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[66,67,68,69],[70],[182],[178],[179],[180,181],[70,71],[71,72,73],[71,75],[70,71,75,76],[71],[71,75,76,77],[71,79,80,89,90,91,92,93,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,161,162,166,167],[70,71,88,89],[70,71,92],[70,71,79,136,137],[71,91],[70,71,144],[70,71,78,79,88,136,137],[70,71,152],[70,71,79],[70,71,78,79,152],[70,71,78,79],[70,71,78],[70,71,78,79,88,89,136,161],[70,71,165],[70,71,89],[71,74,78,88,165,168,176],[71,81,82,83,84,85,86,87],[70,71,169],[71,74],[71,169,170,171,172,173,174,175],[70,71,136,171],[70,71,88,136,171],[71,136,169,172],[70,71,88,136,169,171],[71,163,164],[96],[94,95,96,97,98],[103],[100,101,102,103,104,105,106,107],[109],[111],[113],[113,114],[116,117,118,119,120,121],[123],[125,126,127],[99,108,110,112,115,122,124,128,130,135],[129],[131,132,133,134],[72,73],[75],[70,75],[75,76,77],[79,80,89,90,91,92,93,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,161,162,166,167],[79],[165],[74,78,88,165,168,176],[81,82,83,84,85,86,87],[169,170,171,172,173,174,175],[136],[163,164]],"referencedMap":[[70,1],[71,2],[183,3],[179,4],[180,5],[182,6],[73,7],[72,7],[74,8],[76,9],[77,10],[75,11],[78,12],[168,13],[79,7],[80,7],[90,14],[93,15],[138,16],[139,7],[140,7],[141,7],[142,7],[92,17],[143,17],[145,18],[146,7],[147,7],[148,7],[149,19],[150,7],[151,7],[153,20],[154,7],[155,7],[156,7],[157,7],[158,21],[159,21],[160,22],[137,23],[161,23],[89,24],[91,7],[162,25],[166,26],[167,7],[144,27],[177,28],[81,11],[82,11],[83,11],[88,29],[84,11],[85,11],[86,11],[87,7],[170,30],[171,7],[169,31],[176,32],[172,33],[173,34],[174,35],[175,36],[163,7],[164,11],[165,37],[97,38],[99,39],[104,40],[105,40],[108,41],[106,40],[110,42],[112,43],[114,44],[115,45],[122,46],[124,47],[128,48],[136,49],[130,50],[134,2],[135,51]],"exportedModulesMap":[[70,1],[71,2],[183,3],[179,4],[180,5],[182,6],[73,2],[72,2],[74,52],[76,53],[77,54],[78,55],[168,56],[79,2],[138,57],[139,2],[142,2],[145,2],[149,57],[150,2],[151,2],[154,2],[156,2],[158,57],[159,57],[160,57],[137,57],[161,57],[162,57],[166,58],[167,2],[177,59],[88,60],[170,7],[171,2],[169,2],[176,61],[172,62],[173,62],[174,62],[175,62],[163,2],[165,63],[97,38],[99,39],[104,40],[105,40],[108,41],[106,40],[110,42],[112,43],[114,44],[115,45],[122,46],[124,47],[128,48],[136,49],[130,50],[134,2],[135,51]],"semanticDiagnosticsPerFile":[68,66,70,71,69,67,152,64,65,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,58,56,57,59,60,10,1,11,63,62,61,183,179,178,180,181,182,73,72,74,76,77,75,78,168,79,80,90,93,138,139,140,141,142,92,143,145,146,147,148,149,150,151,153,154,155,156,157,158,159,160,137,161,89,91,162,166,167,144,177,81,82,83,88,84,85,86,87,170,171,169,176,172,173,174,175,163,164,165,94,95,97,98,99,96,100,101,102,104,105,108,106,107,103,110,109,111,112,114,115,113,116,117,118,122,119,120,121,124,123,128,125,126,127,136,130,129,131,133,132,134,135],"latestChangedDtsFile":"./index.d.ts"},"version":"5.3.3"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@contember/react-utils",
3
3
  "license": "Apache-2.0",
4
- "version": "1.3.0-alpha.22",
4
+ "version": "1.3.0-alpha.24",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "main": "./dist/production/index.js",
@@ -38,7 +38,7 @@
38
38
  "react": "^17 || ^18"
39
39
  },
40
40
  "dependencies": {
41
- "@contember/utilities": "1.3.0-alpha.22",
41
+ "@contember/utilities": "1.3.0-alpha.24",
42
42
  "fast-deep-equal": "^3.1.3"
43
43
  },
44
44
  "stableVersion": "0.0.0"
@@ -27,7 +27,7 @@ export const urlStateStorage: StateStorage = {
27
27
  },
28
28
  }
29
29
 
30
- const createStateStorage = (getStorage: () => Storage): StateStorage => {
30
+ const createStateStorageFromNativeStorage = (getStorage: () => Storage): StateStorage => {
31
31
  return {
32
32
  getItem(key) {
33
33
  const value = getStorage().getItem(key.join('-'))
@@ -39,8 +39,8 @@ const createStateStorage = (getStorage: () => Storage): StateStorage => {
39
39
  }
40
40
  }
41
41
 
42
- export const sessionStateStorage = createStateStorage(() => sessionStorage)
43
- export const localStateStorage = createStateStorage(() => localStorage)
42
+ export const sessionStateStorage = createStateStorageFromNativeStorage(() => sessionStorage)
43
+ export const localStateStorage = createStateStorageFromNativeStorage(() => localStorage)
44
44
  export const nullStorage: StateStorage = {
45
45
  getItem() {
46
46
  return null
@@ -60,10 +60,7 @@ export type StateStorageOrName = StateStorage | 'url' | 'session' | 'local' | 'n
60
60
 
61
61
  export const useStoredState = <V extends Serializable>(storageOrName: StateStorageOrName | StateStorageOrName[], key: StateStorageKey, initializeValue: ValueInitializer<V>): [V, SetState<V>] => {
62
62
  const storage = useMemo(() => {
63
- if (Array.isArray(storageOrName)) {
64
- return createFallbackStorage(storageOrName)
65
- }
66
- return typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName
63
+ return getStateStorage(storageOrName)
67
64
  }, [storageOrName])
68
65
 
69
66
  const [value, setValue] = useState<V>(() => {
@@ -90,12 +87,18 @@ export const useLocalStorageState = <V extends Serializable>(key: StateStorageKe
90
87
  return useStoredState<V>(localStateStorage, key, initializeValue)
91
88
  }
92
89
 
90
+ export const getStateStorage = (storageOrName: StateStorageOrName | StateStorageOrName[]) => {
91
+ if (Array.isArray(storageOrName)) {
92
+ return createFallbackStorage(storageOrName.map(it => typeof it === 'string' ? builtInStorages[it] : it))
93
+ }
94
+ return typeof storageOrName === 'string' ? builtInStorages[storageOrName] : storageOrName
95
+ }
96
+
93
97
 
94
- const createFallbackStorage = <V extends Serializable>(storageTypes: StateStorageOrName[]): StateStorage => {
95
- const resultStorages = storageTypes.map(it => typeof it === 'string' ? builtInStorages[it] : it)
98
+ const createFallbackStorage = (storageTypes: StateStorage[]): StateStorage => {
96
99
  return {
97
100
  getItem(key) {
98
- for (const storage of resultStorages) {
101
+ for (const storage of storageTypes) {
99
102
  const value = storage.getItem(key)
100
103
  if (value !== null) {
101
104
  return value
@@ -104,7 +107,7 @@ const createFallbackStorage = <V extends Serializable>(storageTypes: StateStorag
104
107
  return null
105
108
  },
106
109
  setItem(key, value) {
107
- for (const storage of resultStorages) {
110
+ for (const storage of storageTypes) {
108
111
  storage.setItem(key, value)
109
112
  }
110
113
  },