@lowentry/react-redux 1.11.4 → 1.13.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -741,20 +741,18 @@ var LeRed = function () {
741
741
  };
742
742
  LeRed.useEffectShutdown = function (callable, comparingValues, equalsComparator) {
743
743
  return LeRed.useEffect(function () {
744
+ var _globalThis$addEventL;
744
745
  var run = function run() {
745
746
  callable();
746
747
  };
747
- if (typeof window !== 'undefined') {
748
- window.addEventListener('beforeunload', run, {
748
+ globalThis === null || globalThis === void 0 || (_globalThis$addEventL = globalThis.addEventListener) === null || _globalThis$addEventL === void 0 || _globalThis$addEventL.call(globalThis, 'beforeunload', run, {
749
+ capture: true
750
+ });
751
+ return function () {
752
+ var _globalThis$removeEve;
753
+ globalThis === null || globalThis === void 0 || (_globalThis$removeEve = globalThis.removeEventListener) === null || _globalThis$removeEve === void 0 || _globalThis$removeEve.call(globalThis, 'beforeunload', run, {
749
754
  capture: true
750
755
  });
751
- }
752
- return function () {
753
- if (typeof window !== 'undefined') {
754
- window.removeEventListener('beforeunload', run, {
755
- capture: true
756
- });
757
- }
758
756
  run();
759
757
  };
760
758
  }, [comparingValues, equalsComparator]);
@@ -762,26 +760,23 @@ var LeRed = function () {
762
760
  LeRed.useEffectPageFocusLost = function (callable, comparingValues, equalsComparator) {
763
761
  var events = ['pagehide', 'freeze', 'blur', 'visibilitychange'];
764
762
  return LeRed.useEffect(function () {
765
- if (typeof window === 'undefined') {
766
- return;
767
- }
768
763
  var run = function run() {
769
- if (typeof document === 'undefined') {
770
- return;
771
- }
772
- if (document.visibilityState !== 'hidden' && document.hasFocus()) {
764
+ var _globalThis$document, _globalThis$document2, _globalThis$document3;
765
+ if ((globalThis === null || globalThis === void 0 || (_globalThis$document = globalThis.document) === null || _globalThis$document === void 0 ? void 0 : _globalThis$document.visibilityState) !== 'hidden' && globalThis !== null && globalThis !== void 0 && (_globalThis$document2 = globalThis.document) !== null && _globalThis$document2 !== void 0 && (_globalThis$document3 = _globalThis$document2.hasFocus) !== null && _globalThis$document3 !== void 0 && _globalThis$document3.call(_globalThis$document2)) {
773
766
  return;
774
767
  }
775
768
  callable();
776
769
  };
777
770
  events.forEach(function (type) {
778
- return window.addEventListener(type, run, {
771
+ var _globalThis$addEventL2;
772
+ globalThis === null || globalThis === void 0 || (_globalThis$addEventL2 = globalThis.addEventListener) === null || _globalThis$addEventL2 === void 0 || _globalThis$addEventL2.call(globalThis, type, run, {
779
773
  capture: true
780
774
  });
781
775
  });
782
776
  return function () {
783
777
  events.forEach(function (type) {
784
- return window.removeEventListener(type, run, {
778
+ var _globalThis$removeEve2;
779
+ globalThis === null || globalThis === void 0 || (_globalThis$removeEve2 = globalThis.removeEventListener) === null || _globalThis$removeEve2 === void 0 || _globalThis$removeEve2.call(globalThis, type, run, {
785
780
  capture: true
786
781
  });
787
782
  });
@@ -827,14 +822,14 @@ var LeRed = function () {
827
822
  setHasFont = _LeRed$useState2[1];
828
823
  LeRed.useEffect(function () {
829
824
  if (!hasFont) {
830
- var _document;
831
- if (typeof window === 'undefined' || !ISSET((_document = document) === null || _document === void 0 || (_document = _document.fonts) === null || _document === void 0 ? void 0 : _document.check)) {
825
+ var _globalThis$document4;
826
+ if (!(globalThis !== null && globalThis !== void 0 && (_globalThis$document4 = globalThis.document) !== null && _globalThis$document4 !== void 0 && (_globalThis$document4 = _globalThis$document4.fonts) !== null && _globalThis$document4 !== void 0 && _globalThis$document4.check)) {
832
827
  setHasFont(true);
833
828
  return;
834
829
  }
835
830
  var handler = setInterval(function () {
836
831
  try {
837
- if (document.fonts.check(font)) {
832
+ if (globalThis.document.fonts.check(font)) {
838
833
  clearInterval(handler);
839
834
  setHasFont(true);
840
835
  }
@@ -859,18 +854,19 @@ var LeRed = function () {
859
854
  LeRed.useScript = function (url) {
860
855
  var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
861
856
  return LeRed.useEffect(function () {
862
- if (typeof window === 'undefined' || !document) {
857
+ var _globalThis$document5, _globalThis$document6, _globalThis$document7;
858
+ if (!(globalThis !== null && globalThis !== void 0 && (_globalThis$document5 = globalThis.document) !== null && _globalThis$document5 !== void 0 && _globalThis$document5.createElement) || !(globalThis !== null && globalThis !== void 0 && (_globalThis$document6 = globalThis.document) !== null && _globalThis$document6 !== void 0 && (_globalThis$document6 = _globalThis$document6.head) !== null && _globalThis$document6 !== void 0 && _globalThis$document6.appendChild) || !(globalThis !== null && globalThis !== void 0 && (_globalThis$document7 = globalThis.document) !== null && _globalThis$document7 !== void 0 && (_globalThis$document7 = _globalThis$document7.head) !== null && _globalThis$document7 !== void 0 && _globalThis$document7.removeChild)) {
863
859
  return;
864
860
  }
865
- var script = document.createElement('script');
861
+ var script = globalThis.document.createElement('script');
866
862
  script.type = 'text/javascript';
867
863
  script.src = url;
868
864
  LeUtils.each(props, function (value, key) {
869
865
  script.setAttribute(key, value);
870
866
  });
871
- document.head.appendChild(script);
867
+ globalThis.document.head.appendChild(script);
872
868
  return function () {
873
- return document.head.removeChild(script);
869
+ return globalThis.document.head.removeChild(script);
874
870
  };
875
871
  }, [url, props]);
876
872
  };
@@ -917,26 +913,26 @@ var LeRed = function () {
917
913
  _LeRed$useState4$[1];
918
914
  var setValue = _LeRed$useState4[1];
919
915
  LeRed.useEffect(function () {
920
- if (typeof window === 'undefined') {
916
+ if (!(globalThis !== null && globalThis !== void 0 && globalThis.addEventListener) || !(globalThis !== null && globalThis !== void 0 && globalThis.removeEventListener)) {
921
917
  return;
922
918
  }
923
919
  var callback = function callback(e) {
924
920
  setValue([e === null || e === void 0 ? void 0 : e.detail, LeUtils.uniqueId()]);
925
921
  };
926
922
  var eventName = 'lowentrytriggerable_' + event;
927
- window.addEventListener(eventName, callback);
923
+ globalThis.addEventListener(eventName, callback);
928
924
  return function () {
929
- return window.removeEventListener(eventName, callback);
925
+ return globalThis.removeEventListener(eventName, callback);
930
926
  };
931
927
  }, [event]);
932
928
  return value;
933
929
  };
934
930
  LeRed.trigger = function (event, value) {
935
- if (typeof window === 'undefined') {
931
+ if (!(globalThis !== null && globalThis !== void 0 && globalThis.dispatchEvent) || !(globalThis !== null && globalThis !== void 0 && globalThis.CustomEvent)) {
936
932
  return;
937
933
  }
938
934
  var eventName = 'lowentrytriggerable_' + event;
939
- window.dispatchEvent(new CustomEvent(eventName, {
935
+ globalThis.dispatchEvent(new globalThis.CustomEvent(eventName, {
940
936
  detail: value
941
937
  }));
942
938
  };
@@ -983,14 +979,12 @@ var LeRed = function () {
983
979
  * const [goForwards, goBackwards] = LeRed.useHistory(() => console.log('has gone forwards'), () => console.log('has gone backwards'));
984
980
  * ```
985
981
  */
986
- LeRed.useHistory = function () {
982
+ LeRed.useHistory = function (_globalThis$addEventL3) {
987
983
  var historyStateListeners = [];
988
- if (typeof window !== 'undefined') {
989
- window.addEventListener('popstate', function () {
990
- var _historyStateListener;
991
- (_historyStateListener = historyStateListeners.pop()) === null || _historyStateListener === void 0 || _historyStateListener.callback();
992
- });
993
- }
984
+ globalThis === null || globalThis === void 0 || (_globalThis$addEventL3 = globalThis.addEventListener) === null || _globalThis$addEventL3 === void 0 || _globalThis$addEventL3.call(globalThis, 'popstate', function () {
985
+ var _historyStateListener;
986
+ (_historyStateListener = historyStateListeners.pop()) === null || _historyStateListener === void 0 || _historyStateListener.callback();
987
+ });
994
988
  var addListener = function addListener(callback) {
995
989
  var id = LeUtils.uniqueId();
996
990
  historyStateListeners.push({
@@ -1077,16 +1071,62 @@ var LeRed = function () {
1077
1071
  return [state, forwards, backwards];
1078
1072
  };
1079
1073
 
1074
+ /**
1075
+ * Allows you to listen to the hash of the URL (window.location.hash).
1076
+ *
1077
+ * The hash can be useful than the query, as changing the hash will not cause the page to reload. Plus there's a good way to listen to hash changes, using the `hashchange` event, which is lacking for the query.
1078
+ *
1079
+ * Example:
1080
+ *
1081
+ * ```js
1082
+ * const [hashParams, hashString] = LeRed.useHashParams();
1083
+ * ```
1084
+ */
1085
+ LeRed.useHashParams = function () {
1086
+ var getHashString = function getHashString() {
1087
+ var _globalThis$location$, _globalThis$location;
1088
+ return (_globalThis$location$ = globalThis === null || globalThis === void 0 || (_globalThis$location = globalThis.location) === null || _globalThis$location === void 0 || (_globalThis$location = _globalThis$location.hash) === null || _globalThis$location === void 0 || (_globalThis$location = _globalThis$location.trim()) === null || _globalThis$location === void 0 ? void 0 : _globalThis$location.replace(/^#/, '')) !== null && _globalThis$location$ !== void 0 ? _globalThis$location$ : '';
1089
+ };
1090
+ var parseHashParams = function parseHashParams(hashString) {
1091
+ return new URLSearchParams(hashString);
1092
+ };
1093
+
1094
+ /**
1095
+ * @returns {[hashParams:URLSearchParams, hashString:string]}
1096
+ */
1097
+ return function () {
1098
+ var _LeRed$useState9 = LeRed.useState(getHashString),
1099
+ _LeRed$useState0 = _slicedToArray(_LeRed$useState9, 2),
1100
+ hashString = _LeRed$useState0[0],
1101
+ setHashString = _LeRed$useState0[1];
1102
+ var hashParams = LeRed.useMemo(function () {
1103
+ return parseHashParams(hashString);
1104
+ }, [hashString]);
1105
+ LeRed.useEffect(function () {
1106
+ var _globalThis$addEventL4;
1107
+ var onUrlChanged = function onUrlChanged() {
1108
+ setHashString(getHashString());
1109
+ };
1110
+ globalThis === null || globalThis === void 0 || (_globalThis$addEventL4 = globalThis.addEventListener) === null || _globalThis$addEventL4 === void 0 || _globalThis$addEventL4.call(globalThis, 'hashchange', onUrlChanged);
1111
+ return function () {
1112
+ var _globalThis$removeEve3;
1113
+ globalThis === null || globalThis === void 0 || (_globalThis$removeEve3 = globalThis.removeEventListener) === null || _globalThis$removeEve3 === void 0 || _globalThis$removeEve3.call(globalThis, 'hashchange', onUrlChanged);
1114
+ };
1115
+ }, []);
1116
+ return [hashParams, hashString];
1117
+ };
1118
+ }();
1119
+
1080
1120
  /**
1081
1121
  * Allows you to easily create an <pre><img></pre> url and onError handler that will automatically retry loading the image if it fails.
1082
1122
  */
1083
1123
  LeRed.useRetryingImageUrl = function (url, options) {
1084
1124
  url = STRING(url);
1085
1125
  var urlHasQ = url.includes('?');
1086
- var _LeRed$useState9 = LeRed.useState(url),
1087
- _LeRed$useState0 = _slicedToArray(_LeRed$useState9, 2),
1088
- imageUrl = _LeRed$useState0[0],
1089
- setImageUrl = _LeRed$useState0[1];
1126
+ var _LeRed$useState1 = LeRed.useState(url),
1127
+ _LeRed$useState10 = _slicedToArray(_LeRed$useState1, 2),
1128
+ imageUrl = _LeRed$useState10[0],
1129
+ setImageUrl = _LeRed$useState10[1];
1090
1130
  var retries = LeRed.useRef(0);
1091
1131
  var timeout = LeRed.useRef({
1092
1132
  remove: function remove() {
@@ -1126,18 +1166,18 @@ var LeRed = function () {
1126
1166
  var comparingValuesRef = LeRed.useRef(comparingValuesClone);
1127
1167
  var latestComparingValuesRef = LeRed.useRef();
1128
1168
  latestComparingValuesRef.current = comparingValuesClone;
1129
- var _LeRed$useState1 = LeRed.useState(null),
1130
- _LeRed$useState10 = _slicedToArray(_LeRed$useState1, 2),
1131
- data = _LeRed$useState10[0],
1132
- setData = _LeRed$useState10[1];
1133
- var _LeRed$useState11 = LeRed.useState(true),
1169
+ var _LeRed$useState11 = LeRed.useState(null),
1134
1170
  _LeRed$useState12 = _slicedToArray(_LeRed$useState11, 2),
1135
- loading = _LeRed$useState12[0],
1136
- setLoading = _LeRed$useState12[1];
1137
- var _LeRed$useState13 = LeRed.useState(null),
1171
+ data = _LeRed$useState12[0],
1172
+ setData = _LeRed$useState12[1];
1173
+ var _LeRed$useState13 = LeRed.useState(true),
1138
1174
  _LeRed$useState14 = _slicedToArray(_LeRed$useState13, 2),
1139
- error = _LeRed$useState14[0],
1140
- setError = _LeRed$useState14[1];
1175
+ loading = _LeRed$useState14[0],
1176
+ setLoading = _LeRed$useState14[1];
1177
+ var _LeRed$useState15 = LeRed.useState(null),
1178
+ _LeRed$useState16 = _slicedToArray(_LeRed$useState15, 2),
1179
+ error = _LeRed$useState16[0],
1180
+ setError = _LeRed$useState16[1];
1141
1181
  LeRed.useEffect(function () {
1142
1182
  setLoading(true);
1143
1183
  setData(null);
@@ -1377,7 +1417,7 @@ var LeRed = function () {
1377
1417
  });
1378
1418
  LeRed.PreloadComponent = function (load) {
1379
1419
  if (typeof window !== 'undefined') {
1380
- var promise = load(); // start loading already, before it's being rendered in React
1420
+ var promise = load(); // in the browser, start loading already, before it's being rendered in React
1381
1421
  return function () {
1382
1422
  return promise;
1383
1423
  };
@@ -1388,10 +1428,10 @@ var LeRed = function () {
1388
1428
  var loading = _ref9.loading,
1389
1429
  load = _ref9.load,
1390
1430
  other = _objectWithoutProperties(_ref9, _excluded2);
1391
- var _LeRed$useState15 = LeRed.useState(loading !== null && loading !== void 0 ? loading : null),
1392
- _LeRed$useState16 = _slicedToArray(_LeRed$useState15, 2),
1393
- Component = _LeRed$useState16[0],
1394
- setComponent = _LeRed$useState16[1];
1431
+ var _LeRed$useState17 = LeRed.useState(loading !== null && loading !== void 0 ? loading : null),
1432
+ _LeRed$useState18 = _slicedToArray(_LeRed$useState17, 2),
1433
+ Component = _LeRed$useState18[0],
1434
+ setComponent = _LeRed$useState18[1];
1395
1435
  LeRed.useEffect(function () {
1396
1436
  _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {
1397
1437
  var LoadedComponent, _t6;
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["src/LeRed.jsx"],"sourcesContent":["import * as RTK from '@reduxjs/toolkit';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactRedux from 'react-redux';\nimport * as ReduxSaga from 'redux-saga';\nimport * as ReduxSagaEffects from 'redux-saga/effects';\nimport FastDeepEqualReact from 'fast-deep-equal/react';\nimport {LeUtils, ISSET, ARRAY, STRING, INT_LAX_ANY, IS_OBJECT, IS_ARRAY} from '@lowentry/utils';\n\nexport const LeRed = (() =>\n{\n\tconst LeRed = {};\n\t\n\t\n\ttry\n\t{\n\t\tconst set = (key, value, ignoreOverrides = false) =>\n\t\t{\n\t\t\tconst keyFirstChar = key.charAt(0);\n\t\t\tif(keyFirstChar === keyFirstChar.toLowerCase() && (keyFirstChar !== keyFirstChar.toUpperCase()))\n\t\t\t{\n\t\t\t\tif((key === 'default') || (key === 'version'))\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif((key === 'set') || (key === 'setAll'))\n\t\t\t\t{\n\t\t\t\t\tconsole.error('tried to override LeRed[\"' + key + '\"], which isn\\'t allowed, to:');\n\t\t\t\t\tconsole.error(value);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif((ignoreOverrides !== true) && (key in LeRed))\n\t\t\t\t{\n\t\t\t\t\tconsole.warn('LeRed[\"' + key + '\"] was overwritten, from:');\n\t\t\t\t\tconsole.warn(LeRed[key]);\n\t\t\t\t\tconsole.warn('to:');\n\t\t\t\t\tconsole.warn(value);\n\t\t\t\t}\n\t\t\t\tLeRed[key] = value;\n\t\t\t}\n\t\t};\n\t\tconst setAll = (obj, ignoreOverrides = false, optionalSkipHasOwnPropertyCheck = true) =>\n\t\t{\n\t\t\tLeUtils.each(obj, (value, key) =>\n\t\t\t{\n\t\t\t\tset(key, value, ignoreOverrides);\n\t\t\t}, optionalSkipHasOwnPropertyCheck);\n\t\t};\n\t\t\n\t\tLeRed.set = (key, value) => set(key, value, true);\n\t\tLeRed.setAll = (obj, optionalSkipHasOwnPropertyCheck = true) => setAll(obj, true, optionalSkipHasOwnPropertyCheck);\n\t\t\n\t\tsetAll(ReactDOM);\n\t\tsetAll(ReduxSaga);\n\t\tsetAll({effects:{...ReduxSagaEffects}});\n\t\tsetAll(RTK);\n\t\tsetAll(React);\n\t\tsetAll(ReactRedux);\n\t\t\n\t\tLeRed.effects.delayFrames = function* (frames = 1)\n\t\t{\n\t\t\tyield LeRed.effects.call(() =>\n\t\t\t{\n\t\t\t\treturn new Promise((resolve, reject) =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tLeUtils.setAnimationFrameTimeout(resolve, frames);\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\treject(e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\t\n\t\tLeRed.effects.interval = function* (callback, intervalMs)\n\t\t{\n\t\t\tlet channel = LeRed.eventChannel((emitter) =>\n\t\t\t{\n\t\t\t\tconst interval = setInterval(() =>\n\t\t\t\t{\n\t\t\t\t\temitter({});\n\t\t\t\t}, intervalMs);\n\t\t\t\treturn () =>\n\t\t\t\t{\n\t\t\t\t\tclearInterval(interval);\n\t\t\t\t};\n\t\t\t});\n\t\t\t\n\t\t\tconst stop = () =>\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tif(channel !== null)\n\t\t\t\t\t{\n\t\t\t\t\t\tchannel.close();\n\t\t\t\t\t\tchannel = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch(e)\n\t\t\t\t{\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\twhile(channel !== null)\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tyield LeRed.effects.take(channel);\n\t\t\t\t\tyield callback(stop);\n\t\t\t\t}\n\t\t\t\tcatch(e)\n\t\t\t\t{\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\tfinally\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tif(yield LeRed.effects.cancelled())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tchannel.close();\n\t\t\t\t\t\t\tchannel = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\tcatch(e)\n\t{\n\t\tconsole.error(e);\n\t}\n\t\n\t\n\tconst fixEqualsComparator = (equalsComparator, errorMessage) =>\n\t{\n\t\tif(ISSET(equalsComparator))\n\t\t{\n\t\t\tif(typeof equalsComparator !== 'function')\n\t\t\t{\n\t\t\t\tconsole.error(errorMessage);\n\t\t\t\tconsole.error(equalsComparator);\n\t\t\t\treturn FastDeepEqualReact;\n\t\t\t}\n\t\t\treturn equalsComparator;\n\t\t}\n\t\treturn FastDeepEqualReact;\n\t};\n\t\n\tconst useCompareMemoize = (value, equalsComparator) =>\n\t{\n\t\tconst ref = React.useRef();\n\t\tif(!equalsComparator(value, ref.current))\n\t\t{\n\t\t\tref.current = value;\n\t\t}\n\t\treturn ref.current;\n\t};\n\t\n\t\n\tLeRed.configureStore = (storeData) =>\n\t{\n\t\tif(storeData.__lowentry_store__ === true)\n\t\t{\n\t\t\treturn storeData;\n\t\t}\n\t\tif(ISSET(storeData.slices))\n\t\t{\n\t\t\tstoreData.reducer = storeData.slices;\n\t\t\tdelete storeData.slices;\n\t\t}\n\t\tlet sagaListeners = [];\n\t\tif(ISSET(storeData.reducer))\n\t\t{\n\t\t\tlet slices = storeData.reducer;\n\t\t\tif(typeof slices === 'object')\n\t\t\t{\n\t\t\t\tif(slices.name || slices.__lowentry_unfinished_slice)\n\t\t\t\t{\n\t\t\t\t\tslices = [slices];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet slicesArray = [];\n\t\t\t\t\tLeUtils.each(slices, (slice, index) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(!slice.name)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tslice.name = index;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tslicesArray.push(slice);\n\t\t\t\t\t});\n\t\t\t\t\tslices = slicesArray;\n\t\t\t\t}\n\t\t\t}\n\t\t\tslices = ARRAY(slices);\n\t\t\t\n\t\t\tlet initialState = {};\n\t\t\tlet reducerArrays = {};\n\t\t\tLeUtils.each(slices, (slice, index) =>\n\t\t\t{\n\t\t\t\tif(!slice.name)\n\t\t\t\t{\n\t\t\t\t\tslice.name = 'slice_' + index;\n\t\t\t\t}\n\t\t\t\tif(slice.__lowentry_unfinished_slice)\n\t\t\t\t{\n\t\t\t\t\tdelete slice.__lowentry_unfinished_slice;\n\t\t\t\t\tslice = LeRed.createSlice(slice);\n\t\t\t\t}\n\t\t\t\tinitialState[slice.name] = ((typeof slice.state === 'function') ? slice.state() : slice.state);\n\t\t\t\tLeUtils.each(slice.reducers, (reducer, reducerName) =>\n\t\t\t\t{\n\t\t\t\t\tconst fullReducerName = reducerName.startsWith('lowentrystore/') ? reducerName.substring('lowentrystore/'.length) : (slice.name + '/' + reducerName);\n\t\t\t\t\tif(typeof reducerArrays[fullReducerName] === 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\treducerArrays[fullReducerName] = [];\n\t\t\t\t\t}\n\t\t\t\t\treducerArrays[fullReducerName].push(reducer);\n\t\t\t\t});\n\t\t\t\tLeUtils.each(slice.sagaListeners, (sagaListener, reducerName) =>\n\t\t\t\t{\n\t\t\t\t\tLeUtils.each(LeUtils.flattenArray(sagaListener), (listener) =>\n\t\t\t\t\t{\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsagaListeners.push(listener());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('an error was thrown by your saga code, in slice \"' + slice.name + '\", action \"' + reducerName + '\":');\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\t\n\t\t\t/** @type {object|*} */\n\t\t\tlet reducers = {};\n\t\t\tLeUtils.each(reducerArrays, (reducerArray, reducerName) =>\n\t\t\t{\n\t\t\t\treducerArray = LeUtils.flattenArray(reducerArray);\n\t\t\t\tif(reducerArray.length <= 0)\n\t\t\t\t{\n\t\t\t\t\treducers[reducerName] = reducerArray[0];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treducers[reducerName] = (...args) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tLeUtils.each(reducerArray, (reducer) =>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treducer(...args);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tstoreData.reducer = RTK.createSlice({\n\t\t\t\tname: 'lowentrystore',\n\t\t\t\tinitialState:initialState,\n\t\t\t\treducers: reducers,\n\t\t\t}).reducer;\n\t\t}\n\t\tif(ISSET(storeData.state))\n\t\t{\n\t\t\tstoreData.preloadedState = storeData.state;\n\t\t\tdelete storeData.state;\n\t\t}\n\t\tif(ISSET(storeData.preloadedState))\n\t\t{\n\t\t\tstoreData.preloadedState = {reducer:storeData.preloadedState};\n\t\t}\n\t\t\n\t\tlet middleware = ARRAY(storeData.middleware);\n\t\tlet sagaMiddleware = null;\n\t\tif(sagaListeners.length > 0)\n\t\t{\n\t\t\tsagaMiddleware = ReduxSaga.default();\n\t\t\tmiddleware.push(sagaMiddleware);\n\t\t}\n\t\tstoreData.middleware = (getDefaultMiddleware) => getDefaultMiddleware().concat(...middleware);\n\t\t\n\t\t/** @type {RTK.EnhancedStore|*} */\n\t\tlet store = RTK.configureStore(storeData);\n\t\tstore.__lowentry_store__ = true;\n\t\tstore.state = () => store.getState().reducer;\n\t\t\n\t\tconst dispatch = store.dispatch;\n\t\t// noinspection JSValidateTypes\n\t\tstore.dispatch = (action) =>\n\t\t{\n\t\t\taction.__lowentry_dispatch__ = true;\n\t\t\tif(STRING(action.type).startsWith('lowentrystore/lowentryaction/'))\n\t\t\t{\n\t\t\t\taction.__lowentry_dispatch_result__ = [];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdelete action.__lowentry_dispatch_result__;\n\t\t\t}\n\t\t\tdispatch(action);\n\t\t\tconst result = action.__lowentry_dispatch_result__;\n\t\t\tdelete action.__lowentry_dispatch_result__;\n\t\t\tdelete action.__lowentry_dispatch__;\n\t\t\treturn result;\n\t\t};\n\t\t\n\t\tif(sagaMiddleware !== null)\n\t\t{\n\t\t\tsagaMiddleware.run(function* ()\n\t\t\t{\n\t\t\t\tyield ReduxSagaEffects.all(sagaListeners);\n\t\t\t});\n\t\t}\n\t\treturn store;\n\t};\n\t\n\tLeRed.createAction = (id) =>\n\t{\n\t\treturn RTK.createAction('lowentrystore/lowentryaction/' + id);\n\t};\n\t\n\tLeRed.createSelector = (selectorsGenerator) =>\n\t{\n\t\treturn function(stateOfSlice)\n\t\t{\n\t\t\tconst state = this;\n\t\t\tconst selectors = selectorsGenerator.apply(state, [stateOfSlice]);\n\t\t\tlet selectorArgs = [];\n\t\t\t\n\t\t\tfor(let i = 0; i < selectors.length - 1; i++)\n\t\t\t{\n\t\t\t\tlet selectorsEntry = selectors[i];\n\t\t\t\tif(typeof selectorsEntry === 'function')\n\t\t\t\t{\n\t\t\t\t\tselectorsEntry = selectorsEntry.apply(state, [state]);\n\t\t\t\t}\n\t\t\t\tselectorArgs.push(selectorsEntry);\n\t\t\t}\n\t\t\t\n\t\t\tlet finalSelector = selectors[selectors.length - 1];\n\t\t\tif(typeof finalSelector === 'function')\n\t\t\t{\n\t\t\t\tfinalSelector = finalSelector.apply(state, selectorArgs);\n\t\t\t}\n\t\t\treturn finalSelector;\n\t\t};\n\t};\n\t\n\tLeRed.createCachedSelector = (selectorsGenerator, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.createCachedSelector() was given an invalid comparator:');\n\t\tif(equalsComparator === false)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet previousSelectorArgs = null;\n\t\tlet previousFinalSelectorResult = null;\n\t\treturn function(stateOfSlice)\n\t\t{\n\t\t\tconst state = this;\n\t\t\tconst selectors = selectorsGenerator.apply(state, [stateOfSlice]);\n\t\t\tlet selectorArgs = [];\n\t\t\t\n\t\t\tfor(let i = 0; i < selectors.length - 1; i++)\n\t\t\t{\n\t\t\t\tlet selectorsEntry = selectors[i];\n\t\t\t\tif(typeof selectorsEntry === 'function')\n\t\t\t\t{\n\t\t\t\t\tselectorsEntry = selectorsEntry.apply(state, [state]);\n\t\t\t\t}\n\t\t\t\tselectorArgs.push(selectorsEntry);\n\t\t\t}\n\t\t\t\n\t\t\tlet finalSelector = selectors[selectors.length - 1];\n\t\t\tif(typeof finalSelector === 'function')\n\t\t\t{\n\t\t\t\tif(equalsComparator(previousSelectorArgs, selectorArgs))\n\t\t\t\t{\n\t\t\t\t\tfinalSelector = previousFinalSelectorResult;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfinalSelector = finalSelector.apply(state, selectorArgs);\n\t\t\t\t\tpreviousSelectorArgs = selectorArgs;\n\t\t\t\t\tpreviousFinalSelectorResult = finalSelector;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn finalSelector;\n\t\t};\n\t};\n\t\n\tLeRed.createSlice = (slice) =>\n\t{\n\t\tif(Array.isArray(slice))\n\t\t{\n\t\t\tconst e = new Error('the given slice is an array (instead of an object)');\n\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code:');\n\t\t\tconsole.error(e);\n\t\t\tthrow e;\n\t\t}\n\t\tif(slice.name)\n\t\t{\n\t\t\tlet actions = {};\n\t\t\tlet reducers = {};\n\t\t\tlet sagas = {};\n\t\t\tlet sagaListeners = {};\n\t\t\tLeUtils.each(slice.actions, (reducer, reducerNames) =>\n\t\t\t{\n\t\t\t\tLeUtils.each(reducerNames.split(','), (reducerName) =>\n\t\t\t\t{\n\t\t\t\t\tif(reducerName.length <= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst reducerAction = RTK.createAction((reducerName.startsWith('lowentrystore/') ? '' : ('lowentrystore/' + slice.name + '/')) + reducerName);\n\t\t\t\t\tactions[reducerName] = reducerAction;\n\t\t\t\t\tLeUtils.each(LeUtils.flattenArray(reducer), (reducer) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(LeUtils.isGeneratorFunction(reducer))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst sagaListener = function* ()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyield ReduxSagaEffects.takeEvery(reducerAction, function* (/** @type {RTK.Action|*} */ action)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t/** @type {((value:*)=>void)|null|*} */\n\t\t\t\t\t\t\t\t\tlet promiseResolve = null;\n\t\t\t\t\t\t\t\t\t/** @type {((reason:*)=>void)|null|*} */\n\t\t\t\t\t\t\t\t\tlet promiseReject = null;\n\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif(action.__lowentry_dispatch__ === true)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tconst promise = new Promise((resolve, reject) =>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tpromiseResolve = resolve;\n\t\t\t\t\t\t\t\t\t\t\t\tpromiseReject = reject;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tif(Array.isArray(action.__lowentry_dispatch_result__))\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tif(typeof promise !== 'undefined')\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__.push(promise);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__ = promise;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tconst result = yield reducer.apply(slice, [action.payload]);\n\t\t\t\t\t\t\t\t\t\tif(promiseResolve !== null)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tpromiseResolve(result);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", action \"' + reducerName + '\":');\n\t\t\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\t\t\tif(promiseReject !== null)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tpromiseReject(e);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcatch(e2)\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.error(e2);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(ISSET(sagas[reducerName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagas[reducerName].push(reducer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagas[reducerName] = [reducer];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(ISSET(sagaListeners[reducerName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagaListeners[reducerName].push(sagaListener);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagaListeners[reducerName] = [sagaListener];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst reducerFunction = (state, action) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tconst result = reducer.apply(state, [state[slice.name], action.payload]);\n\t\t\t\t\t\t\t\t\tif(action.__lowentry_dispatch__ === true)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif(Array.isArray(action.__lowentry_dispatch_result__))\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tif(typeof result !== 'undefined')\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__.push(result);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__ = result;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", action \"' + reducerName + '\":');\n\t\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(ISSET(reducers[reducerName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treducers[reducerName].push(reducerFunction);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treducers[reducerName] = [reducerFunction];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\tslice.actions = actions;\n\t\t\tslice.reducers = reducers;\n\t\t\tslice.sagas = sagas;\n\t\t\tslice.sagaListeners = sagaListeners;\n\t\t\t\n\t\t\tlet selectors = {};\n\t\t\tLeUtils.each(slice.selectors, (selector, selectorName) =>\n\t\t\t{\n\t\t\t\tselectors[selectorName] = (state) =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\treturn selector.apply(state, [state[slice.name]]);\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", selector \"' + selectorName + '\":');\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t\tslice.selectors = selectors;\n\t\t\t\n\t\t\tlet getters = {};\n\t\t\tLeUtils.each(slice.getters, (getter, getterName) =>\n\t\t\t{\n\t\t\t\tgetters[getterName] = (...params) =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tconst selector = getter(...params);\n\t\t\t\t\t\treturn (state) =>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn selector.apply(state, [state[slice.name]]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", getter \"' + getterName + '\":');\n\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", getter \"' + getterName + '\":');\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t\tslice.getters = getters;\n\t\t\treturn slice;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tslice.__lowentry_unfinished_slice = true;\n\t\t\treturn slice;\n\t\t}\n\t};\n\t\n\tLeRed.createFastSlice = (slice) =>\n\t{\n\t\tif(Array.isArray(slice))\n\t\t{\n\t\t\tconst e = new Error('the given slice is an array (instead of an object)');\n\t\t\tconsole.error('an error was thrown by your LeRed.createFastSlice(...) code:');\n\t\t\tconsole.error(e);\n\t\t\tthrow e;\n\t\t}\n\t\t\n\t\tlet actions = {};\n\t\tLeUtils.each(slice.actions, (reducer, reducerName) =>\n\t\t{\n\t\t\tactions[reducerName] = (...params) => reducer.apply(slice, [slice.state, ...params]);\n\t\t});\n\t\tslice.actions = actions;\n\t\t\n\t\tlet selectors = {};\n\t\tLeUtils.each(slice.selectors, (selector, selectorName) =>\n\t\t{\n\t\t\tselectors[selectorName] = () => selector.apply(slice, [slice.state]);\n\t\t});\n\t\tslice.selectors = new Proxy(selectors, {\n\t\t\tget:(target, key) => (key in target) ? target[key]() : undefined,\n\t\t});\n\t\t\n\t\tlet getters = {};\n\t\tLeUtils.each(slice.getters, (selector, selectorName) =>\n\t\t{\n\t\t\tgetters[selectorName] = (...params) => selector.apply(slice, [slice.state, ...params]);\n\t\t});\n\t\tslice.getters = getters;\n\t\treturn slice;\n\t};\n\t\n\tLeRed.current = (obj) =>\n\t{\n\t\ttry\n\t\t{\n\t\t\treturn RTK.current(obj);\n\t\t}\n\t\tcatch(e)\n\t\t{\n\t\t}\n\t\treturn obj;\n\t};\n\t\n\tLeRed.useConfigureStore = (storeData) =>\n\t{\n\t\treturn LeRed.useMemo(() => LeRed.configureStore(storeData), [storeData]);\n\t};\n\t\n\tLeRed.useSelector = (selector, equalsComparator) =>\n\t{\n\t\tif(typeof selector !== 'function')\n\t\t{\n\t\t\tconsole.error('LeRed.useSelector() was given an invalid selector:');\n\t\t\tconsole.error(selector);\n\t\t\tselector = () =>\n\t\t\t{\n\t\t\t};\n\t\t}\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useSelector() was given an invalid comparator:');\n\t\treturn ReactRedux.useSelector(selector, equalsComparator);\n\t};\n\t\n\tLeRed.useEffect = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useEffect() was given an invalid comparator:');\n\t\tcomparingValues = ARRAY(comparingValues);\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tcomparingValues = comparingValues.map(value => useCompareMemoize(value, equalsComparator));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\treturn React.useEffect(callable, comparingValues);\n\t};\n\t\n\tLeRed.useEffectInterval = (callable, comparingValues, intervalMs, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() => LeUtils.setInterval(callable, intervalMs, fireImmediately).remove, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectAnimationFrameInterval = (callable, comparingValues, intervalFrames, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() => LeUtils.setAnimationFrameInterval(callable, intervalFrames, fireImmediately).remove, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectGenerator = (callable, comparingValues, intervalMs, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tlet stop = false;\n\t\t\t\n\t\t\t(async () =>\n\t\t\t{\n\t\t\t\tfor(const promise of callable())\n\t\t\t\t{\n\t\t\t\t\tif(stop)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tawait promise;\n\t\t\t\t\tif(stop)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t\t\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tstop = true;\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectGeneratorLoop = (callable, comparingValues, intervalMs, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tlet stop = false;\n\t\t\t\n\t\t\t(async () =>\n\t\t\t{\n\t\t\t\twhile(!stop)\n\t\t\t\t{\n\t\t\t\t\tfor(const promise of callable())\n\t\t\t\t\t{\n\t\t\t\t\t\tif(stop)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait promise;\n\t\t\t\t\t\tif(stop)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t\t\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tstop = true;\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectShutdown = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tconst run = () =>\n\t\t\t{\n\t\t\t\tcallable();\n\t\t\t};\n\t\t\t\n\t\t\tif(typeof window !== 'undefined')\n\t\t\t{\n\t\t\t\twindow.addEventListener('beforeunload', run, {capture:true});\n\t\t\t}\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tif(typeof window !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\twindow.removeEventListener('beforeunload', run, {capture:true});\n\t\t\t\t}\n\t\t\t\trun();\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectPageFocusLost = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tconst events = ['pagehide', 'freeze', 'blur', 'visibilitychange'];\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tif((typeof window === 'undefined'))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst run = () =>\n\t\t\t{\n\t\t\t\tif(typeof document === 'undefined')\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif((document.visibilityState !== 'hidden') && document.hasFocus())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcallable();\n\t\t\t};\n\t\t\t\n\t\t\tevents.forEach(type => window.addEventListener(type, run, {capture:true}));\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tevents.forEach(type => window.removeEventListener(type, run, {capture:true}));\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.memo = (component, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.memo() was given an invalid comparator:');\n\t\treturn React.memo(component, equalsComparator);\n\t};\n\t\n\tLeRed.useMemo = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useMemo() was given an invalid comparator:');\n\t\tcomparingValues = ARRAY(comparingValues);\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tcomparingValues = comparingValues.map(value => useCompareMemoize(value, equalsComparator));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\treturn React.useMemo(callable, comparingValues);\n\t};\n\t\n\tLeRed.useCallback = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useCallback() was given an invalid comparator:');\n\t\tcomparingValues = ARRAY(comparingValues);\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tcomparingValues = comparingValues.map(value => useCompareMemoize(value, equalsComparator));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\treturn React.useCallback(callable, comparingValues);\n\t};\n\t\n\tLeRed.usePrevious = (value, initialValue) =>\n\t{\n\t\tconst ref = LeRed.useRef(initialValue);\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tref.current = value;\n\t\t}, [value]);\n\t\treturn ref.current;\n\t};\n\t\n\tLeRed.useFont = (font) =>\n\t{\n\t\tfont = '12px ' + STRING(font).trim();\n\t\tconst [hasFont, setHasFont] = LeRed.useState(false);\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tif(!hasFont)\n\t\t\t{\n\t\t\t\tif((typeof window === 'undefined') || !ISSET(document?.fonts?.check))\n\t\t\t\t{\n\t\t\t\t\tsetHasFont(true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst handler = setInterval(() =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tif(document.fonts.check(font))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclearInterval(handler);\n\t\t\t\t\t\t\tsetHasFont(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\tclearInterval(handler);\n\t\t\t\t\t\tsetHasFont(true);\n\t\t\t\t\t}\n\t\t\t\t}, 30);\n\t\t\t}\n\t\t}, [hasFont]);\n\t\treturn hasFont;\n\t};\n\t\n\t/**\n\t * Adds a <script> tag to the <head> of the document.\n\t * Only for development and testing purposes.\n\t *\n\t * @param {string} url The URL of the js file to include.\n\t * @param {object} props Additional props of the <script> tag.\n\t */\n\tLeRed.useScript = (url, props = {}) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tif((typeof window === 'undefined') || !document)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst script = document.createElement('script');\n\t\t\tscript.type = 'text/javascript';\n\t\t\tscript.src = url;\n\t\t\t\n\t\t\tLeUtils.each(props, (value, key) =>\n\t\t\t{\n\t\t\t\tscript.setAttribute(key, value);\n\t\t\t});\n\t\t\t\n\t\t\tdocument.head.appendChild(script);\n\t\t\treturn () => document.head.removeChild(script);\n\t\t}, [url, props]);\n\t};\n\t\n\tLeRed.mergeRefs = (...refs) =>\n\t{\n\t\trefs = LeUtils.flattenArray(refs);\n\t\tif(!refs)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tlet newRefs = [];\n\t\tLeUtils.each(refs, (ref) =>\n\t\t{\n\t\t\tif(ref)\n\t\t\t{\n\t\t\t\tnewRefs.push(ref);\n\t\t\t}\n\t\t});\n\t\trefs = newRefs;\n\t\t\n\t\tif(refs.length <= 0)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tif(refs.length === 1)\n\t\t{\n\t\t\treturn refs[0];\n\t\t}\n\t\treturn (inst) =>\n\t\t{\n\t\t\tLeUtils.each(refs, (ref) =>\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tif(typeof ref === 'function')\n\t\t\t\t\t{\n\t\t\t\t\t\tref(inst);\n\t\t\t\t\t}\n\t\t\t\t\telse if(ref)\n\t\t\t\t\t{\n\t\t\t\t\t\tref.current = inst;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch(e)\n\t\t\t\t{\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t};\n\t\n\tLeRed.useTriggerable = (event) =>\n\t{\n\t\tconst [[value, uniqueId], setValue] = LeRed.useState([null, LeUtils.uniqueId()]);\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tif(typeof window === 'undefined')\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst callback = (e) =>\n\t\t\t{\n\t\t\t\tsetValue([e?.detail, LeUtils.uniqueId()]);\n\t\t\t};\n\t\t\t\n\t\t\tconst eventName = 'lowentrytriggerable_' + event;\n\t\t\twindow.addEventListener(eventName, callback);\n\t\t\treturn () => window.removeEventListener(eventName, callback);\n\t\t}, [event]);\n\t\t\n\t\treturn value;\n\t};\n\t\n\tLeRed.trigger = (event, value) =>\n\t{\n\t\tif(typeof window === 'undefined')\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tconst eventName = 'lowentrytriggerable_' + event;\n\t\twindow.dispatchEvent(new CustomEvent(eventName, {detail:value}));\n\t};\n\t\n\t/**\n\t * A useState() hook that automatically resets to the defaultValue after the given duration.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * const [value, setValue] = LeRed.useTempState(true, 2000);\n\t * // somewhere in your code:\n\t * setValue(false); // value is now false, after 2 seconds it will be reset to true\n\t * ```\n\t *\n\t * Repeated calls cause the timer to reset, meaning each set value will always remain for the full given duration.\n\t */\n\tLeRed.useTempState = (defaultValue, duration) =>\n\t{\n\t\tconst [value, setValue] = LeRed.useState(defaultValue);\n\t\tconst timeoutHandle = LeRed.useRef(null);\n\t\t\n\t\treturn [value, (newValue) =>\n\t\t{\n\t\t\tif(timeoutHandle.current)\n\t\t\t{\n\t\t\t\tclearTimeout(timeoutHandle.current);\n\t\t\t}\n\t\t\tsetValue(newValue);\n\t\t\ttimeoutHandle.current = setTimeout(() =>\n\t\t\t{\n\t\t\t\ttimeoutHandle.current = null;\n\t\t\t\tsetValue(defaultValue);\n\t\t\t}, duration);\n\t\t}];\n\t};\n\t\n\t/**\n\t * Allows you to listen to the browser history events (forwards, backwards) and execute a callback on those events.\n\t *\n\t * You pass 2 functions to it (the callbacks), and it also provides 2 functions (for manually going forwards and backwards).\n\t *\n\t * Usage:\n\t *\n\t * ```js\n\t * const [goForwards, goBackwards] = LeRed.useHistory(() => console.log('has gone forwards'), () => console.log('has gone backwards'));\n\t * ```\n\t */\n\tLeRed.useHistory = (() =>\n\t{\n\t\tlet historyStateListeners = [];\n\t\t\n\t\tif(typeof window !== 'undefined')\n\t\t{\n\t\t\twindow.addEventListener('popstate', () =>\n\t\t\t{\n\t\t\t\thistoryStateListeners.pop()?.callback();\n\t\t\t});\n\t\t}\n\t\t\n\t\tconst addListener = (callback) =>\n\t\t{\n\t\t\tconst id = LeUtils.uniqueId();\n\t\t\thistoryStateListeners.push({id, callback});\n\t\t\treturn id;\n\t\t};\n\t\t\n\t\tconst removeListener = (id) =>\n\t\t{\n\t\t\tif(!id)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thistoryStateListeners = historyStateListeners.filter(listener => (listener.id !== id));\n\t\t};\n\t\t\n\t\treturn (onForward, onBack) =>\n\t\t{\n\t\t\tconst remaining = LeRed.useRef(0);\n\t\t\tconst id = LeRed.useRef(null);\n\t\t\t\n\t\t\tconst goBack = LeRed.useCallback(() =>\n\t\t\t{\n\t\t\t\tif(remaining.current <= 0)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tremaining.current--;\n\t\t\t\tif(remaining.current === 0)\n\t\t\t\t{\n\t\t\t\t\tif(id.current)\n\t\t\t\t\t{\n\t\t\t\t\t\tremoveListener(id.current);\n\t\t\t\t\t}\n\t\t\t\t\tid.current = null;\n\t\t\t\t}\n\t\t\t\tonBack();\n\t\t\t}, [onBack]);\n\t\t\t\n\t\t\treturn [\n\t\t\t\t() => /** do **/\n\t\t\t\t{\n\t\t\t\t\tLeRed.navigate('#');\n\t\t\t\t\tremaining.current++;\n\t\t\t\t\tif(remaining.current === 1)\n\t\t\t\t\t{\n\t\t\t\t\t\tif(id.current)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tremoveListener(id.current);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tid.current = addListener(goBack);\n\t\t\t\t\t}\n\t\t\t\t\tonForward();\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t() => /** undo **/\n\t\t\t\t{\n\t\t\t\t\tif(remaining.current > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tLeRed.navigate(-1);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t];\n\t\t};\n\t})();\n\t\n\t/**\n\t * Similar to {@link LeRed.useHistory}, but this is specifically for toggling a boolean state between true and false. For example, for a modal, which you'd like to be closed when the user goes back in history.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * const [isModalOpen, openModal, closeModal] = LeRed.useHistoryState(false); // you'd open it programmatically using openModal(), afterwards, if the user goes back in history, it will close again\n\t * ```\n\t *\n\t * or, if you'd like it to be true by default:\n\t *\n\t * ```js\n\t * const [isModalOpen, openModal, closeModal] = LeRed.useHistoryState(true); // you'd close it programmatically using closeModal(), afterwards, if the user goes back in history, it will open again\n\t * ```\n\t */\n\tLeRed.useHistoryState = (initialState) =>\n\t{\n\t\tconst [state, setState] = LeRed.useState(!!initialState);\n\t\tconst [forwards, backwards] = LeRed.useHistory(() => setState(!initialState), () => setState(!!initialState));\n\t\tif(!!initialState)\n\t\t{\n\t\t\treturn [state, backwards, forwards];\n\t\t}\n\t\treturn [state, forwards, backwards];\n\t};\n\t\n\t/**\n\t * Allows you to easily create an <pre><img></pre> url and onError handler that will automatically retry loading the image if it fails.\n\t */\n\tLeRed.useRetryingImageUrl = (url, options) =>\n\t{\n\t\turl = STRING(url);\n\t\tconst urlHasQ = url.includes('?');\n\t\t\n\t\tconst [imageUrl, setImageUrl] = LeRed.useState(url);\n\t\tconst retries = LeRed.useRef(0);\n\t\tconst timeout = LeRed.useRef({remove:() => undefined});\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\ttimeout.current.remove();\n\t\t\tretries.current = 0;\n\t\t\tsetImageUrl(url);\n\t\t}, [url]);\n\t\t\n\t\tconst onImageLoadError = LeRed.useCallback(() =>\n\t\t{\n\t\t\tif(retries.current < INT_LAX_ANY(options?.retries, 30))\n\t\t\t{\n\t\t\t\tconst defaultDelay = 100 + (50 * retries.current);\n\t\t\t\ttimeout.current.remove();\n\t\t\t\ttimeout.current = LeUtils.setTimeout(() =>\n\t\t\t\t{\n\t\t\t\t\tsetImageUrl(url + (urlHasQ ? '&' : '?') + (options?.queryParam || 'lowentryretryingimgversion') + '=' + (retries.current++));\n\t\t\t\t}, (typeof options?.delay === 'function') ? INT_LAX_ANY(options?.delay(retries.current), defaultDelay) : (INT_LAX_ANY(options?.delay, defaultDelay)));\n\t\t\t}\n\t\t}, [url, options]);\n\t\t\n\t\tconst onImageLoadErrorIgnored = LeRed.useCallback(() =>\n\t\t{\n\t\t}, []);\n\t\t\n\t\tif(!url)\n\t\t{\n\t\t\treturn [url, onImageLoadErrorIgnored];\n\t\t}\n\t\treturn [imageUrl, onImageLoadError];\n\t};\n\t\n\t/**\n\t * Allows you to easily convert promises to react hooks.\n\t *\n\t * The given callable should return promises. The returned promises can be an array, an object, or even a single promise. The returned data of this hook will match the promises it has operated on.\n\t *\n\t * The given comparingValues can be anything, this is used to detect whether the given promises have changed or not, and so whether new promises have to be generated and executed again.\n\t */\n\tLeRed.usePromises = (callable, comparingValues) =>\n\t{\n\t\tconst comparingValuesClone = LeUtils.clone(comparingValues);\n\t\tconst comparingValuesRef = LeRed.useRef(comparingValuesClone);\n\t\tconst latestComparingValuesRef = LeRed.useRef();\n\t\tlatestComparingValuesRef.current = comparingValuesClone;\n\t\t\n\t\tconst [data, setData] = LeRed.useState(null);\n\t\tconst [loading, setLoading] = LeRed.useState(true);\n\t\tconst [error, setError] = LeRed.useState(null);\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tsetLoading(true);\n\t\t\tsetData(null);\n\t\t\tsetError(null);\n\t\t\t\n\t\t\ttry\n\t\t\t{\n\t\t\t\tconst promises = callable();\n\t\t\t\t\n\t\t\t\tconst promisesIsObject = IS_OBJECT(promises) && (typeof promises?.then !== 'function');\n\t\t\t\tconst promisesIsArray = IS_ARRAY(promises);\n\t\t\t\t\n\t\t\t\tlet promisesKeyed = [];\n\t\t\t\tif(promisesIsObject || promisesIsArray)\n\t\t\t\t{\n\t\t\t\t\tLeUtils.each(promises, (promise, key) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tpromisesKeyed.push({promise, key});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpromisesKeyed.push({promise:promises, key:undefined});\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlet wrappedPromises = [];\n\t\t\t\tLeUtils.each(promisesKeyed, ({promise, key}) =>\n\t\t\t\t{\n\t\t\t\t\twrappedPromises.push(promise\n\t\t\t\t\t\t.then(async result => ({result, key})));\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tPromise.all(wrappedPromises)\n\t\t\t\t\t.then(resultObjects =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(promisesIsObject)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet results = {};\n\t\t\t\t\t\t\tLeUtils.each(resultObjects, ({result, key}) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tresults[key] = result;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if(promisesIsArray)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet results = [];\n\t\t\t\t\t\t\tLeUtils.each(resultObjects, ({result, key}) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tresults[key] = result;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn resultObjects.pop()?.result;\n\t\t\t\t\t})\n\t\t\t\t\t.then(results =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(!LeUtils.equals(latestComparingValuesRef.current, comparingValuesClone))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// canceled\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcomparingValuesRef.current = comparingValuesClone;\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetData(results);\n\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(!LeUtils.equals(latestComparingValuesRef.current, comparingValuesClone))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// canceled\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcomparingValuesRef.current = comparingValuesClone;\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetData(null);\n\t\t\t\t\t\tsetError(LeUtils.purgeErrorMessage(error));\n\t\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn () =>\n\t\t\t\t{\n\t\t\t\t\tLeUtils.each(wrappedPromises, promise =>\n\t\t\t\t\t{\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpromise?.cancel?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Failed to cancel the given promise:', e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpromise?.remove?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Failed to remove the given promise:', e);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}\n\t\t\tcatch(error)\n\t\t\t{\n\t\t\t\tLeUtils.setAnimationFrameTimeout(() =>\n\t\t\t\t{\n\t\t\t\t\tif(!LeUtils.equals(latestComparingValuesRef.current, comparingValuesClone))\n\t\t\t\t\t{\n\t\t\t\t\t\t// canceled\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcomparingValuesRef.current = comparingValuesClone;\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tsetData(null);\n\t\t\t\t\tsetError(LeUtils.purgeErrorMessage(error));\n\t\t\t\t});\n\t\t\t}\n\t\t}, [comparingValuesClone]);\n\t\t\n\t\tif(!LeUtils.equals(comparingValuesRef.current, comparingValuesClone))\n\t\t{\n\t\t\treturn [null, true, null];\n\t\t}\n\t\treturn [data, loading, error];\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external data.\n\t */\n\tLeRed.useExternal = (url, options, responseFunction) =>\n\t{\n\t\treturn LeRed.usePromises(() =>\n\t\t{\n\t\t\tconst createFetch = (urlString) => LeUtils.fetch(STRING(urlString), {retries:3, ...(options ?? {})})\n\t\t\t\t.then(async response =>\n\t\t\t\t{\n\t\t\t\t\tconst data = await responseFunction(response);\n\t\t\t\t\tif(typeof options?.verify === 'function')\n\t\t\t\t\t{\n\t\t\t\t\t\tawait options.verify(data, response);\n\t\t\t\t\t}\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t\n\t\t\tif(IS_OBJECT(url))\n\t\t\t{\n\t\t\t\tlet promises = {};\n\t\t\t\tLeUtils.each(url, (urlString, key) =>\n\t\t\t\t{\n\t\t\t\t\tpromises[key] = createFetch(urlString);\n\t\t\t\t});\n\t\t\t\treturn promises;\n\t\t\t}\n\t\t\tif(IS_ARRAY(url))\n\t\t\t{\n\t\t\t\tlet promises = [];\n\t\t\t\tLeUtils.each(url, urlString =>\n\t\t\t\t{\n\t\t\t\t\tpromises.push(createFetch(urlString));\n\t\t\t\t});\n\t\t\t\treturn promises;\n\t\t\t}\n\t\t\treturn createFetch(url);\n\t\t}, [url, options, responseFunction]);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external JSON data.\n\t */\n\tLeRed.useExternalJson = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.json(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external Blob data.\n\t */\n\tLeRed.useExternalBlob = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.blob(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external ArrayBuffer data.\n\t */\n\tLeRed.useExternalArrayBuffer = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.arrayBuffer(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external string data.\n\t */\n\tLeRed.useExternalString = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.text(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external form data.\n\t */\n\tLeRed.useExternalFormData = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.formData(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t\n\tLeRed.Root = LeRed.memo(({store, children, ...other}) =>\n\t{\n\t\tif(ISSET(store))\n\t\t{\n\t\t\tstore = LeRed.configureStore(store);\n\t\t\treturn (<ReactRedux.Provider store={store} children={children} {...other}/>);\n\t\t}\n\t\treturn children;\n\t});\n\t\n\tLeRed.PreloadComponent = (load) =>\n\t{\n\t\tif(typeof window !== 'undefined')\n\t\t{\n\t\t\tconst promise = load(); // start loading already, before it's being rendered in React\n\t\t\treturn () => promise;\n\t\t}\n\t\treturn load;\n\t};\n\t\n\tLeRed.LoadComponent = LeRed.memo(({loading, load, ...other}) =>\n\t{\n\t\tconst [Component, setComponent] = LeRed.useState(loading ?? null);\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\t(async () =>\n\t\t\t{\n\t\t\t\tconst LoadedComponent = (typeof load === 'function') ? await load() : await load;\n\t\t\t\tif(!LoadedComponent)\n\t\t\t\t{\n\t\t\t\t\tsetComponent(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetComponent(<LoadedComponent {...other}/>);\n\t\t\t})();\n\t\t}, []);\n\t\t\n\t\treturn Component;\n\t});\n\t\n\t\n\tif(typeof Proxy === 'undefined')\n\t{\n\t\treturn LeRed;\n\t}\n\t\n\treturn new Proxy(LeRed, {\n\t\tset:(target, key, value) =>\n\t\t {\n\t\t\t LeRed.set(key, value);\n\t\t\t return true;\n\t\t },\n\t});\n})();\n"],"names":["LeRed","set","key","value","ignoreOverrides","arguments","length","undefined","keyFirstChar","charAt","toLowerCase","toUpperCase","console","error","warn","setAll","obj","optionalSkipHasOwnPropertyCheck","LeUtils","each","ReactDOM","ReduxSaga","effects","_objectSpread","ReduxSagaEffects","RTK","React","ReactRedux","delayFrames","frames","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","call","Promise","resolve","reject","setAnimationFrameTimeout","e","stop","interval","_callee2","callback","intervalMs","channel","_t","_t2","_context2","eventChannel","emitter","setInterval","clearInterval","close","take","cancelled","sent","finish","fixEqualsComparator","equalsComparator","errorMessage","ISSET","FastDeepEqualReact","useCompareMemoize","ref","useRef","current","configureStore","storeData","__lowentry_store__","slices","reducer","sagaListeners","_typeof","name","__lowentry_unfinished_slice","slicesArray","slice","index","push","ARRAY","initialState","reducerArrays","createSlice","state","reducers","reducerName","fullReducerName","startsWith","substring","sagaListener","flattenArray","listener","reducerArray","_len","args","Array","_key","apply","preloadedState","middleware","sagaMiddleware","getDefaultMiddleware","_getDefaultMiddleware","concat","_toConsumableArray","store","getState","dispatch","action","__lowentry_dispatch__","STRING","type","__lowentry_dispatch_result__","result","run","_callee3","_context3","all","createAction","id","createSelector","selectorsGenerator","stateOfSlice","selectors","selectorArgs","i","selectorsEntry","finalSelector","createCachedSelector","previousSelectorArgs","previousFinalSelectorResult","isArray","Error","actions","sagas","reducerNames","split","reducerAction","isGeneratorFunction","_context5","takeEvery","_callee4","promiseResolve","promiseReject","promise","_t3","_context4","payload","e2","reducerFunction","selector","selectorName","getters","getter","getterName","createFastSlice","_len2","params","_key2","Proxy","get","target","_len3","_key3","useConfigureStore","useMemo","useSelector","useEffect","callable","comparingValues","map","useEffectInterval","fireImmediately","remove","useEffectAnimationFrameInterval","intervalFrames","setAnimationFrameInterval","useEffectGenerator","_asyncToGenerator","_callee5","_iterator","_step","_t4","_context6","_createForOfIteratorHelper","s","n","done","abrupt","f","useEffectGeneratorLoop","_callee6","_iterator2","_step2","_t5","_context7","useEffectShutdown","window","addEventListener","capture","removeEventListener","useEffectPageFocusLost","events","document","visibilityState","hasFocus","forEach","memo","component","useCallback","usePrevious","initialValue","useFont","font","trim","_LeRed$useState","useState","_LeRed$useState2","_slicedToArray","hasFont","setHasFont","_document","fonts","check","handler","useScript","url","props","script","createElement","src","setAttribute","head","appendChild","removeChild","mergeRefs","_len4","refs","_key4","newRefs","inst","useTriggerable","event","_LeRed$useState3","uniqueId","_LeRed$useState4","_LeRed$useState4$","setValue","detail","eventName","trigger","dispatchEvent","CustomEvent","useTempState","defaultValue","duration","_LeRed$useState5","_LeRed$useState6","timeoutHandle","newValue","clearTimeout","setTimeout","useHistory","historyStateListeners","_historyStateListener","pop","addListener","removeListener","filter","onForward","onBack","remaining","goBack","navigate","useHistoryState","_LeRed$useState7","_LeRed$useState8","setState","_LeRed$useHistory","_LeRed$useHistory2","forwards","backwards","useRetryingImageUrl","options","urlHasQ","includes","_LeRed$useState9","_LeRed$useState0","imageUrl","setImageUrl","retries","timeout","onImageLoadError","INT_LAX_ANY","defaultDelay","queryParam","delay","onImageLoadErrorIgnored","usePromises","comparingValuesClone","clone","comparingValuesRef","latestComparingValuesRef","_LeRed$useState1","_LeRed$useState10","data","setData","_LeRed$useState11","_LeRed$useState12","loading","setLoading","_LeRed$useState13","_LeRed$useState14","setError","promises","promisesIsObject","IS_OBJECT","then","promisesIsArray","IS_ARRAY","promisesKeyed","wrappedPromises","_ref3","_ref4","_callee7","_context8","_x","resultObjects","_resultObjects$pop","results","_ref5","_ref6","equals","purgeErrorMessage","_promise$cancel","cancel","_promise$remove","useExternal","responseFunction","createFetch","urlString","fetch","_ref7","_callee8","response","_context9","verify","_x2","useExternalJson","json","useExternalBlob","blob","useExternalArrayBuffer","arrayBuffer","useExternalString","text","useExternalFormData","formData","Root","_ref8","children","other","_objectWithoutProperties","_excluded","Provider","_extends","PreloadComponent","load","LoadComponent","_ref9","_excluded2","_LeRed$useState15","_LeRed$useState16","Component","setComponent","_callee9","LoadedComponent","_t6","_context0"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["src/LeRed.jsx"],"sourcesContent":["import * as RTK from '@reduxjs/toolkit';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport * as ReactRedux from 'react-redux';\nimport * as ReduxSaga from 'redux-saga';\nimport * as ReduxSagaEffects from 'redux-saga/effects';\nimport FastDeepEqualReact from 'fast-deep-equal/react';\nimport {LeUtils, ISSET, ARRAY, STRING, INT_LAX_ANY, IS_OBJECT, IS_ARRAY} from '@lowentry/utils';\n\nexport const LeRed = (() =>\n{\n\tconst LeRed = {};\n\t\n\t\n\ttry\n\t{\n\t\tconst set = (key, value, ignoreOverrides = false) =>\n\t\t{\n\t\t\tconst keyFirstChar = key.charAt(0);\n\t\t\tif(keyFirstChar === keyFirstChar.toLowerCase() && (keyFirstChar !== keyFirstChar.toUpperCase()))\n\t\t\t{\n\t\t\t\tif((key === 'default') || (key === 'version'))\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif((key === 'set') || (key === 'setAll'))\n\t\t\t\t{\n\t\t\t\t\tconsole.error('tried to override LeRed[\"' + key + '\"], which isn\\'t allowed, to:');\n\t\t\t\t\tconsole.error(value);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif((ignoreOverrides !== true) && (key in LeRed))\n\t\t\t\t{\n\t\t\t\t\tconsole.warn('LeRed[\"' + key + '\"] was overwritten, from:');\n\t\t\t\t\tconsole.warn(LeRed[key]);\n\t\t\t\t\tconsole.warn('to:');\n\t\t\t\t\tconsole.warn(value);\n\t\t\t\t}\n\t\t\t\tLeRed[key] = value;\n\t\t\t}\n\t\t};\n\t\tconst setAll = (obj, ignoreOverrides = false, optionalSkipHasOwnPropertyCheck = true) =>\n\t\t{\n\t\t\tLeUtils.each(obj, (value, key) =>\n\t\t\t{\n\t\t\t\tset(key, value, ignoreOverrides);\n\t\t\t}, optionalSkipHasOwnPropertyCheck);\n\t\t};\n\t\t\n\t\tLeRed.set = (key, value) => set(key, value, true);\n\t\tLeRed.setAll = (obj, optionalSkipHasOwnPropertyCheck = true) => setAll(obj, true, optionalSkipHasOwnPropertyCheck);\n\t\t\n\t\tsetAll(ReactDOM);\n\t\tsetAll(ReduxSaga);\n\t\tsetAll({effects:{...ReduxSagaEffects}});\n\t\tsetAll(RTK);\n\t\tsetAll(React);\n\t\tsetAll(ReactRedux);\n\t\t\n\t\tLeRed.effects.delayFrames = function* (frames = 1)\n\t\t{\n\t\t\tyield LeRed.effects.call(() =>\n\t\t\t{\n\t\t\t\treturn new Promise((resolve, reject) =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tLeUtils.setAnimationFrameTimeout(resolve, frames);\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\treject(e);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t};\n\t\t\n\t\tLeRed.effects.interval = function* (callback, intervalMs)\n\t\t{\n\t\t\tlet channel = LeRed.eventChannel((emitter) =>\n\t\t\t{\n\t\t\t\tconst interval = setInterval(() =>\n\t\t\t\t{\n\t\t\t\t\temitter({});\n\t\t\t\t}, intervalMs);\n\t\t\t\treturn () =>\n\t\t\t\t{\n\t\t\t\t\tclearInterval(interval);\n\t\t\t\t};\n\t\t\t});\n\t\t\t\n\t\t\tconst stop = () =>\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tif(channel !== null)\n\t\t\t\t\t{\n\t\t\t\t\t\tchannel.close();\n\t\t\t\t\t\tchannel = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch(e)\n\t\t\t\t{\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t};\n\t\t\t\n\t\t\twhile(channel !== null)\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tyield LeRed.effects.take(channel);\n\t\t\t\t\tyield callback(stop);\n\t\t\t\t}\n\t\t\t\tcatch(e)\n\t\t\t\t{\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\tfinally\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tif(yield LeRed.effects.cancelled())\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tchannel.close();\n\t\t\t\t\t\t\tchannel = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n\tcatch(e)\n\t{\n\t\tconsole.error(e);\n\t}\n\t\n\t\n\tconst fixEqualsComparator = (equalsComparator, errorMessage) =>\n\t{\n\t\tif(ISSET(equalsComparator))\n\t\t{\n\t\t\tif(typeof equalsComparator !== 'function')\n\t\t\t{\n\t\t\t\tconsole.error(errorMessage);\n\t\t\t\tconsole.error(equalsComparator);\n\t\t\t\treturn FastDeepEqualReact;\n\t\t\t}\n\t\t\treturn equalsComparator;\n\t\t}\n\t\treturn FastDeepEqualReact;\n\t};\n\t\n\tconst useCompareMemoize = (value, equalsComparator) =>\n\t{\n\t\tconst ref = React.useRef();\n\t\tif(!equalsComparator(value, ref.current))\n\t\t{\n\t\t\tref.current = value;\n\t\t}\n\t\treturn ref.current;\n\t};\n\t\n\t\n\tLeRed.configureStore = (storeData) =>\n\t{\n\t\tif(storeData.__lowentry_store__ === true)\n\t\t{\n\t\t\treturn storeData;\n\t\t}\n\t\tif(ISSET(storeData.slices))\n\t\t{\n\t\t\tstoreData.reducer = storeData.slices;\n\t\t\tdelete storeData.slices;\n\t\t}\n\t\tlet sagaListeners = [];\n\t\tif(ISSET(storeData.reducer))\n\t\t{\n\t\t\tlet slices = storeData.reducer;\n\t\t\tif(typeof slices === 'object')\n\t\t\t{\n\t\t\t\tif(slices.name || slices.__lowentry_unfinished_slice)\n\t\t\t\t{\n\t\t\t\t\tslices = [slices];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet slicesArray = [];\n\t\t\t\t\tLeUtils.each(slices, (slice, index) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(!slice.name)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tslice.name = index;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tslicesArray.push(slice);\n\t\t\t\t\t});\n\t\t\t\t\tslices = slicesArray;\n\t\t\t\t}\n\t\t\t}\n\t\t\tslices = ARRAY(slices);\n\t\t\t\n\t\t\tlet initialState = {};\n\t\t\tlet reducerArrays = {};\n\t\t\tLeUtils.each(slices, (slice, index) =>\n\t\t\t{\n\t\t\t\tif(!slice.name)\n\t\t\t\t{\n\t\t\t\t\tslice.name = 'slice_' + index;\n\t\t\t\t}\n\t\t\t\tif(slice.__lowentry_unfinished_slice)\n\t\t\t\t{\n\t\t\t\t\tdelete slice.__lowentry_unfinished_slice;\n\t\t\t\t\tslice = LeRed.createSlice(slice);\n\t\t\t\t}\n\t\t\t\tinitialState[slice.name] = ((typeof slice.state === 'function') ? slice.state() : slice.state);\n\t\t\t\tLeUtils.each(slice.reducers, (reducer, reducerName) =>\n\t\t\t\t{\n\t\t\t\t\tconst fullReducerName = reducerName.startsWith('lowentrystore/') ? reducerName.substring('lowentrystore/'.length) : (slice.name + '/' + reducerName);\n\t\t\t\t\tif(typeof reducerArrays[fullReducerName] === 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\treducerArrays[fullReducerName] = [];\n\t\t\t\t\t}\n\t\t\t\t\treducerArrays[fullReducerName].push(reducer);\n\t\t\t\t});\n\t\t\t\tLeUtils.each(slice.sagaListeners, (sagaListener, reducerName) =>\n\t\t\t\t{\n\t\t\t\t\tLeUtils.each(LeUtils.flattenArray(sagaListener), (listener) =>\n\t\t\t\t\t{\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsagaListeners.push(listener());\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('an error was thrown by your saga code, in slice \"' + slice.name + '\", action \"' + reducerName + '\":');\n\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\t\n\t\t\t/** @type {object|*} */\n\t\t\tlet reducers = {};\n\t\t\tLeUtils.each(reducerArrays, (reducerArray, reducerName) =>\n\t\t\t{\n\t\t\t\treducerArray = LeUtils.flattenArray(reducerArray);\n\t\t\t\tif(reducerArray.length <= 0)\n\t\t\t\t{\n\t\t\t\t\treducers[reducerName] = reducerArray[0];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treducers[reducerName] = (...args) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tLeUtils.each(reducerArray, (reducer) =>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treducer(...args);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t\t\n\t\t\tstoreData.reducer = RTK.createSlice({\n\t\t\t\tname: 'lowentrystore',\n\t\t\t\tinitialState:initialState,\n\t\t\t\treducers: reducers,\n\t\t\t}).reducer;\n\t\t}\n\t\tif(ISSET(storeData.state))\n\t\t{\n\t\t\tstoreData.preloadedState = storeData.state;\n\t\t\tdelete storeData.state;\n\t\t}\n\t\tif(ISSET(storeData.preloadedState))\n\t\t{\n\t\t\tstoreData.preloadedState = {reducer:storeData.preloadedState};\n\t\t}\n\t\t\n\t\tlet middleware = ARRAY(storeData.middleware);\n\t\tlet sagaMiddleware = null;\n\t\tif(sagaListeners.length > 0)\n\t\t{\n\t\t\tsagaMiddleware = ReduxSaga.default();\n\t\t\tmiddleware.push(sagaMiddleware);\n\t\t}\n\t\tstoreData.middleware = (getDefaultMiddleware) => getDefaultMiddleware().concat(...middleware);\n\t\t\n\t\t/** @type {RTK.EnhancedStore|*} */\n\t\tlet store = RTK.configureStore(storeData);\n\t\tstore.__lowentry_store__ = true;\n\t\tstore.state = () => store.getState().reducer;\n\t\t\n\t\tconst dispatch = store.dispatch;\n\t\t// noinspection JSValidateTypes\n\t\tstore.dispatch = (action) =>\n\t\t{\n\t\t\taction.__lowentry_dispatch__ = true;\n\t\t\tif(STRING(action.type).startsWith('lowentrystore/lowentryaction/'))\n\t\t\t{\n\t\t\t\taction.__lowentry_dispatch_result__ = [];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tdelete action.__lowentry_dispatch_result__;\n\t\t\t}\n\t\t\tdispatch(action);\n\t\t\tconst result = action.__lowentry_dispatch_result__;\n\t\t\tdelete action.__lowentry_dispatch_result__;\n\t\t\tdelete action.__lowentry_dispatch__;\n\t\t\treturn result;\n\t\t};\n\t\t\n\t\tif(sagaMiddleware !== null)\n\t\t{\n\t\t\tsagaMiddleware.run(function* ()\n\t\t\t{\n\t\t\t\tyield ReduxSagaEffects.all(sagaListeners);\n\t\t\t});\n\t\t}\n\t\treturn store;\n\t};\n\t\n\tLeRed.createAction = (id) =>\n\t{\n\t\treturn RTK.createAction('lowentrystore/lowentryaction/' + id);\n\t};\n\t\n\tLeRed.createSelector = (selectorsGenerator) =>\n\t{\n\t\treturn function(stateOfSlice)\n\t\t{\n\t\t\tconst state = this;\n\t\t\tconst selectors = selectorsGenerator.apply(state, [stateOfSlice]);\n\t\t\tlet selectorArgs = [];\n\t\t\t\n\t\t\tfor(let i = 0; i < selectors.length - 1; i++)\n\t\t\t{\n\t\t\t\tlet selectorsEntry = selectors[i];\n\t\t\t\tif(typeof selectorsEntry === 'function')\n\t\t\t\t{\n\t\t\t\t\tselectorsEntry = selectorsEntry.apply(state, [state]);\n\t\t\t\t}\n\t\t\t\tselectorArgs.push(selectorsEntry);\n\t\t\t}\n\t\t\t\n\t\t\tlet finalSelector = selectors[selectors.length - 1];\n\t\t\tif(typeof finalSelector === 'function')\n\t\t\t{\n\t\t\t\tfinalSelector = finalSelector.apply(state, selectorArgs);\n\t\t\t}\n\t\t\treturn finalSelector;\n\t\t};\n\t};\n\t\n\tLeRed.createCachedSelector = (selectorsGenerator, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.createCachedSelector() was given an invalid comparator:');\n\t\tif(equalsComparator === false)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tlet previousSelectorArgs = null;\n\t\tlet previousFinalSelectorResult = null;\n\t\treturn function(stateOfSlice)\n\t\t{\n\t\t\tconst state = this;\n\t\t\tconst selectors = selectorsGenerator.apply(state, [stateOfSlice]);\n\t\t\tlet selectorArgs = [];\n\t\t\t\n\t\t\tfor(let i = 0; i < selectors.length - 1; i++)\n\t\t\t{\n\t\t\t\tlet selectorsEntry = selectors[i];\n\t\t\t\tif(typeof selectorsEntry === 'function')\n\t\t\t\t{\n\t\t\t\t\tselectorsEntry = selectorsEntry.apply(state, [state]);\n\t\t\t\t}\n\t\t\t\tselectorArgs.push(selectorsEntry);\n\t\t\t}\n\t\t\t\n\t\t\tlet finalSelector = selectors[selectors.length - 1];\n\t\t\tif(typeof finalSelector === 'function')\n\t\t\t{\n\t\t\t\tif(equalsComparator(previousSelectorArgs, selectorArgs))\n\t\t\t\t{\n\t\t\t\t\tfinalSelector = previousFinalSelectorResult;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tfinalSelector = finalSelector.apply(state, selectorArgs);\n\t\t\t\t\tpreviousSelectorArgs = selectorArgs;\n\t\t\t\t\tpreviousFinalSelectorResult = finalSelector;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn finalSelector;\n\t\t};\n\t};\n\t\n\tLeRed.createSlice = (slice) =>\n\t{\n\t\tif(Array.isArray(slice))\n\t\t{\n\t\t\tconst e = new Error('the given slice is an array (instead of an object)');\n\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code:');\n\t\t\tconsole.error(e);\n\t\t\tthrow e;\n\t\t}\n\t\tif(slice.name)\n\t\t{\n\t\t\tlet actions = {};\n\t\t\tlet reducers = {};\n\t\t\tlet sagas = {};\n\t\t\tlet sagaListeners = {};\n\t\t\tLeUtils.each(slice.actions, (reducer, reducerNames) =>\n\t\t\t{\n\t\t\t\tLeUtils.each(reducerNames.split(','), (reducerName) =>\n\t\t\t\t{\n\t\t\t\t\tif(reducerName.length <= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst reducerAction = RTK.createAction((reducerName.startsWith('lowentrystore/') ? '' : ('lowentrystore/' + slice.name + '/')) + reducerName);\n\t\t\t\t\tactions[reducerName] = reducerAction;\n\t\t\t\t\tLeUtils.each(LeUtils.flattenArray(reducer), (reducer) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(LeUtils.isGeneratorFunction(reducer))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst sagaListener = function* ()\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tyield ReduxSagaEffects.takeEvery(reducerAction, function* (/** @type {RTK.Action|*} */ action)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t/** @type {((value:*)=>void)|null|*} */\n\t\t\t\t\t\t\t\t\tlet promiseResolve = null;\n\t\t\t\t\t\t\t\t\t/** @type {((reason:*)=>void)|null|*} */\n\t\t\t\t\t\t\t\t\tlet promiseReject = null;\n\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif(action.__lowentry_dispatch__ === true)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tconst promise = new Promise((resolve, reject) =>\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tpromiseResolve = resolve;\n\t\t\t\t\t\t\t\t\t\t\t\tpromiseReject = reject;\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\tif(Array.isArray(action.__lowentry_dispatch_result__))\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tif(typeof promise !== 'undefined')\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__.push(promise);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__ = promise;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tconst result = yield reducer.apply(slice, [action.payload]);\n\t\t\t\t\t\t\t\t\t\tif(promiseResolve !== null)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tpromiseResolve(result);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", action \"' + reducerName + '\":');\n\t\t\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\t\t\tif(promiseReject !== null)\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tpromiseReject(e);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tcatch(e2)\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\tconsole.error(e2);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(ISSET(sagas[reducerName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagas[reducerName].push(reducer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagas[reducerName] = [reducer];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(ISSET(sagaListeners[reducerName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagaListeners[reducerName].push(sagaListener);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsagaListeners[reducerName] = [sagaListener];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst reducerFunction = (state, action) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tconst result = reducer.apply(state, [state[slice.name], action.payload]);\n\t\t\t\t\t\t\t\t\tif(action.__lowentry_dispatch__ === true)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tif(Array.isArray(action.__lowentry_dispatch_result__))\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tif(typeof result !== 'undefined')\n\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__.push(result);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\taction.__lowentry_dispatch_result__ = result;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", action \"' + reducerName + '\":');\n\t\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif(ISSET(reducers[reducerName]))\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treducers[reducerName].push(reducerFunction);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treducers[reducerName] = [reducerFunction];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t\tslice.actions = actions;\n\t\t\tslice.reducers = reducers;\n\t\t\tslice.sagas = sagas;\n\t\t\tslice.sagaListeners = sagaListeners;\n\t\t\t\n\t\t\tlet selectors = {};\n\t\t\tLeUtils.each(slice.selectors, (selector, selectorName) =>\n\t\t\t{\n\t\t\t\tselectors[selectorName] = (state) =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\treturn selector.apply(state, [state[slice.name]]);\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", selector \"' + selectorName + '\":');\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t\tslice.selectors = selectors;\n\t\t\t\n\t\t\tlet getters = {};\n\t\t\tLeUtils.each(slice.getters, (getter, getterName) =>\n\t\t\t{\n\t\t\t\tgetters[getterName] = (...params) =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tconst selector = getter(...params);\n\t\t\t\t\t\treturn (state) =>\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttry\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn selector.apply(state, [state[slice.name]]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", getter \"' + getterName + '\":');\n\t\t\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\t\t\tthrow e;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error('an error was thrown by your LeRed.createSlice(...) code, by slice \"' + slice.name + '\", getter \"' + getterName + '\":');\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\t\t\tslice.getters = getters;\n\t\t\treturn slice;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tslice.__lowentry_unfinished_slice = true;\n\t\t\treturn slice;\n\t\t}\n\t};\n\t\n\tLeRed.createFastSlice = (slice) =>\n\t{\n\t\tif(Array.isArray(slice))\n\t\t{\n\t\t\tconst e = new Error('the given slice is an array (instead of an object)');\n\t\t\tconsole.error('an error was thrown by your LeRed.createFastSlice(...) code:');\n\t\t\tconsole.error(e);\n\t\t\tthrow e;\n\t\t}\n\t\t\n\t\tlet actions = {};\n\t\tLeUtils.each(slice.actions, (reducer, reducerName) =>\n\t\t{\n\t\t\tactions[reducerName] = (...params) => reducer.apply(slice, [slice.state, ...params]);\n\t\t});\n\t\tslice.actions = actions;\n\t\t\n\t\tlet selectors = {};\n\t\tLeUtils.each(slice.selectors, (selector, selectorName) =>\n\t\t{\n\t\t\tselectors[selectorName] = () => selector.apply(slice, [slice.state]);\n\t\t});\n\t\tslice.selectors = new Proxy(selectors, {\n\t\t\tget:(target, key) => (key in target) ? target[key]() : undefined,\n\t\t});\n\t\t\n\t\tlet getters = {};\n\t\tLeUtils.each(slice.getters, (selector, selectorName) =>\n\t\t{\n\t\t\tgetters[selectorName] = (...params) => selector.apply(slice, [slice.state, ...params]);\n\t\t});\n\t\tslice.getters = getters;\n\t\treturn slice;\n\t};\n\t\n\tLeRed.current = (obj) =>\n\t{\n\t\ttry\n\t\t{\n\t\t\treturn RTK.current(obj);\n\t\t}\n\t\tcatch(e)\n\t\t{\n\t\t}\n\t\treturn obj;\n\t};\n\t\n\tLeRed.useConfigureStore = (storeData) =>\n\t{\n\t\treturn LeRed.useMemo(() => LeRed.configureStore(storeData), [storeData]);\n\t};\n\t\n\tLeRed.useSelector = (selector, equalsComparator) =>\n\t{\n\t\tif(typeof selector !== 'function')\n\t\t{\n\t\t\tconsole.error('LeRed.useSelector() was given an invalid selector:');\n\t\t\tconsole.error(selector);\n\t\t\tselector = () =>\n\t\t\t{\n\t\t\t};\n\t\t}\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useSelector() was given an invalid comparator:');\n\t\treturn ReactRedux.useSelector(selector, equalsComparator);\n\t};\n\t\n\tLeRed.useEffect = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useEffect() was given an invalid comparator:');\n\t\tcomparingValues = ARRAY(comparingValues);\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tcomparingValues = comparingValues.map(value => useCompareMemoize(value, equalsComparator));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\treturn React.useEffect(callable, comparingValues);\n\t};\n\t\n\tLeRed.useEffectInterval = (callable, comparingValues, intervalMs, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() => LeUtils.setInterval(callable, intervalMs, fireImmediately).remove, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectAnimationFrameInterval = (callable, comparingValues, intervalFrames, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() => LeUtils.setAnimationFrameInterval(callable, intervalFrames, fireImmediately).remove, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectGenerator = (callable, comparingValues, intervalMs, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tlet stop = false;\n\t\t\t\n\t\t\t(async () =>\n\t\t\t{\n\t\t\t\tfor(const promise of callable())\n\t\t\t\t{\n\t\t\t\t\tif(stop)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tawait promise;\n\t\t\t\t\tif(stop)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t\t\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tstop = true;\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectGeneratorLoop = (callable, comparingValues, intervalMs, fireImmediately, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tlet stop = false;\n\t\t\t\n\t\t\t(async () =>\n\t\t\t{\n\t\t\t\twhile(!stop)\n\t\t\t\t{\n\t\t\t\t\tfor(const promise of callable())\n\t\t\t\t\t{\n\t\t\t\t\t\tif(stop)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait promise;\n\t\t\t\t\t\tif(stop)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})();\n\t\t\t\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tstop = true;\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectShutdown = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tconst run = () =>\n\t\t\t{\n\t\t\t\tcallable();\n\t\t\t};\n\t\t\t\n\t\t\tglobalThis?.addEventListener?.('beforeunload', run, {capture:true});\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tglobalThis?.removeEventListener?.('beforeunload', run, {capture:true});\n\t\t\t\trun();\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.useEffectPageFocusLost = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tconst events = ['pagehide', 'freeze', 'blur', 'visibilitychange'];\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tconst run = () =>\n\t\t\t{\n\t\t\t\tif((globalThis?.document?.visibilityState !== 'hidden') && globalThis?.document?.hasFocus?.())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tcallable();\n\t\t\t};\n\t\t\t\n\t\t\tevents.forEach(type =>\n\t\t\t{\n\t\t\t\tglobalThis?.addEventListener?.(type, run, {capture:true});\n\t\t\t});\n\t\t\treturn () =>\n\t\t\t{\n\t\t\t\tevents.forEach(type =>\n\t\t\t\t{\n\t\t\t\t\tglobalThis?.removeEventListener?.(type, run, {capture:true});\n\t\t\t\t});\n\t\t\t};\n\t\t}, [comparingValues, equalsComparator]);\n\t};\n\t\n\tLeRed.memo = (component, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.memo() was given an invalid comparator:');\n\t\treturn React.memo(component, equalsComparator);\n\t};\n\t\n\tLeRed.useMemo = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useMemo() was given an invalid comparator:');\n\t\tcomparingValues = ARRAY(comparingValues);\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tcomparingValues = comparingValues.map(value => useCompareMemoize(value, equalsComparator));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\treturn React.useMemo(callable, comparingValues);\n\t};\n\t\n\tLeRed.useCallback = (callable, comparingValues, equalsComparator) =>\n\t{\n\t\tequalsComparator = fixEqualsComparator(equalsComparator, 'LeRed.useCallback() was given an invalid comparator:');\n\t\tcomparingValues = ARRAY(comparingValues);\n\t\t// eslint-disable-next-line react-hooks/rules-of-hooks\n\t\tcomparingValues = comparingValues.map(value => useCompareMemoize(value, equalsComparator));\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\treturn React.useCallback(callable, comparingValues);\n\t};\n\t\n\tLeRed.usePrevious = (value, initialValue) =>\n\t{\n\t\tconst ref = LeRed.useRef(initialValue);\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tref.current = value;\n\t\t}, [value]);\n\t\treturn ref.current;\n\t};\n\t\n\tLeRed.useFont = (font) =>\n\t{\n\t\tfont = '12px ' + STRING(font).trim();\n\t\tconst [hasFont, setHasFont] = LeRed.useState(false);\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tif(!hasFont)\n\t\t\t{\n\t\t\t\tif(!globalThis?.document?.fonts?.check)\n\t\t\t\t{\n\t\t\t\t\tsetHasFont(true);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst handler = setInterval(() =>\n\t\t\t\t{\n\t\t\t\t\ttry\n\t\t\t\t\t{\n\t\t\t\t\t\tif(globalThis.document.fonts.check(font))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tclearInterval(handler);\n\t\t\t\t\t\t\tsetHasFont(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch(e)\n\t\t\t\t\t{\n\t\t\t\t\t\tconsole.error(e);\n\t\t\t\t\t\tclearInterval(handler);\n\t\t\t\t\t\tsetHasFont(true);\n\t\t\t\t\t}\n\t\t\t\t}, 30);\n\t\t\t}\n\t\t}, [hasFont]);\n\t\treturn hasFont;\n\t};\n\t\n\t/**\n\t * Adds a <script> tag to the <head> of the document.\n\t * Only for development and testing purposes.\n\t *\n\t * @param {string} url The URL of the js file to include.\n\t * @param {object} props Additional props of the <script> tag.\n\t */\n\tLeRed.useScript = (url, props = {}) =>\n\t{\n\t\treturn LeRed.useEffect(() =>\n\t\t{\n\t\t\tif(!globalThis?.document?.createElement || !globalThis?.document?.head?.appendChild || !globalThis?.document?.head?.removeChild)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst script = globalThis.document.createElement('script');\n\t\t\tscript.type = 'text/javascript';\n\t\t\tscript.src = url;\n\t\t\t\n\t\t\tLeUtils.each(props, (value, key) =>\n\t\t\t{\n\t\t\t\tscript.setAttribute(key, value);\n\t\t\t});\n\t\t\t\n\t\t\tglobalThis.document.head.appendChild(script);\n\t\t\treturn () => globalThis.document.head.removeChild(script);\n\t\t}, [url, props]);\n\t};\n\t\n\tLeRed.mergeRefs = (...refs) =>\n\t{\n\t\trefs = LeUtils.flattenArray(refs);\n\t\tif(!refs)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tlet newRefs = [];\n\t\tLeUtils.each(refs, (ref) =>\n\t\t{\n\t\t\tif(ref)\n\t\t\t{\n\t\t\t\tnewRefs.push(ref);\n\t\t\t}\n\t\t});\n\t\trefs = newRefs;\n\t\t\n\t\tif(refs.length <= 0)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tif(refs.length === 1)\n\t\t{\n\t\t\treturn refs[0];\n\t\t}\n\t\treturn (inst) =>\n\t\t{\n\t\t\tLeUtils.each(refs, (ref) =>\n\t\t\t{\n\t\t\t\ttry\n\t\t\t\t{\n\t\t\t\t\tif(typeof ref === 'function')\n\t\t\t\t\t{\n\t\t\t\t\t\tref(inst);\n\t\t\t\t\t}\n\t\t\t\t\telse if(ref)\n\t\t\t\t\t{\n\t\t\t\t\t\tref.current = inst;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcatch(e)\n\t\t\t\t{\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\t};\n\t\n\tLeRed.useTriggerable = (event) =>\n\t{\n\t\tconst [[value, uniqueId], setValue] = LeRed.useState([null, LeUtils.uniqueId()]);\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tif(!globalThis?.addEventListener || !globalThis?.removeEventListener)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tconst callback = (e) =>\n\t\t\t{\n\t\t\t\tsetValue([e?.detail, LeUtils.uniqueId()]);\n\t\t\t};\n\t\t\t\n\t\t\tconst eventName = 'lowentrytriggerable_' + event;\n\t\t\tglobalThis.addEventListener(eventName, callback);\n\t\t\treturn () => globalThis.removeEventListener(eventName, callback);\n\t\t}, [event]);\n\t\t\n\t\treturn value;\n\t};\n\t\n\tLeRed.trigger = (event, value) =>\n\t{\n\t\tif(!globalThis?.dispatchEvent || !globalThis?.CustomEvent)\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tconst eventName = 'lowentrytriggerable_' + event;\n\t\tglobalThis.dispatchEvent(new globalThis.CustomEvent(eventName, {detail:value}));\n\t};\n\t\n\t/**\n\t * A useState() hook that automatically resets to the defaultValue after the given duration.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * const [value, setValue] = LeRed.useTempState(true, 2000);\n\t * // somewhere in your code:\n\t * setValue(false); // value is now false, after 2 seconds it will be reset to true\n\t * ```\n\t *\n\t * Repeated calls cause the timer to reset, meaning each set value will always remain for the full given duration.\n\t */\n\tLeRed.useTempState = (defaultValue, duration) =>\n\t{\n\t\tconst [value, setValue] = LeRed.useState(defaultValue);\n\t\tconst timeoutHandle = LeRed.useRef(null);\n\t\t\n\t\treturn [value, (newValue) =>\n\t\t{\n\t\t\tif(timeoutHandle.current)\n\t\t\t{\n\t\t\t\tclearTimeout(timeoutHandle.current);\n\t\t\t}\n\t\t\tsetValue(newValue);\n\t\t\ttimeoutHandle.current = setTimeout(() =>\n\t\t\t{\n\t\t\t\ttimeoutHandle.current = null;\n\t\t\t\tsetValue(defaultValue);\n\t\t\t}, duration);\n\t\t}];\n\t};\n\t\n\t/**\n\t * Allows you to listen to the browser history events (forwards, backwards) and execute a callback on those events.\n\t *\n\t * You pass 2 functions to it (the callbacks), and it also provides 2 functions (for manually going forwards and backwards).\n\t *\n\t * Usage:\n\t *\n\t * ```js\n\t * const [goForwards, goBackwards] = LeRed.useHistory(() => console.log('has gone forwards'), () => console.log('has gone backwards'));\n\t * ```\n\t */\n\tLeRed.useHistory = (() =>\n\t{\n\t\tlet historyStateListeners = [];\n\t\t\n\t\tglobalThis?.addEventListener?.('popstate', () =>\n\t\t{\n\t\t\thistoryStateListeners.pop()?.callback();\n\t\t});\n\t\t\n\t\tconst addListener = (callback) =>\n\t\t{\n\t\t\tconst id = LeUtils.uniqueId();\n\t\t\thistoryStateListeners.push({id, callback});\n\t\t\treturn id;\n\t\t};\n\t\t\n\t\tconst removeListener = (id) =>\n\t\t{\n\t\t\tif(!id)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\thistoryStateListeners = historyStateListeners.filter(listener => (listener.id !== id));\n\t\t};\n\t\t\n\t\treturn (onForward, onBack) =>\n\t\t{\n\t\t\tconst remaining = LeRed.useRef(0);\n\t\t\tconst id = LeRed.useRef(null);\n\t\t\t\n\t\t\tconst goBack = LeRed.useCallback(() =>\n\t\t\t{\n\t\t\t\tif(remaining.current <= 0)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tremaining.current--;\n\t\t\t\tif(remaining.current === 0)\n\t\t\t\t{\n\t\t\t\t\tif(id.current)\n\t\t\t\t\t{\n\t\t\t\t\t\tremoveListener(id.current);\n\t\t\t\t\t}\n\t\t\t\t\tid.current = null;\n\t\t\t\t}\n\t\t\t\tonBack();\n\t\t\t}, [onBack]);\n\t\t\t\n\t\t\treturn [\n\t\t\t\t() => /** do **/\n\t\t\t\t{\n\t\t\t\t\tLeRed.navigate('#');\n\t\t\t\t\tremaining.current++;\n\t\t\t\t\tif(remaining.current === 1)\n\t\t\t\t\t{\n\t\t\t\t\t\tif(id.current)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tremoveListener(id.current);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tid.current = addListener(goBack);\n\t\t\t\t\t}\n\t\t\t\t\tonForward();\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t() => /** undo **/\n\t\t\t\t{\n\t\t\t\t\tif(remaining.current > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tLeRed.navigate(-1);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t];\n\t\t};\n\t})();\n\t\n\t/**\n\t * Similar to {@link LeRed.useHistory}, but this is specifically for toggling a boolean state between true and false. For example, for a modal, which you'd like to be closed when the user goes back in history.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * const [isModalOpen, openModal, closeModal] = LeRed.useHistoryState(false); // you'd open it programmatically using openModal(), afterwards, if the user goes back in history, it will close again\n\t * ```\n\t *\n\t * or, if you'd like it to be true by default:\n\t *\n\t * ```js\n\t * const [isModalOpen, openModal, closeModal] = LeRed.useHistoryState(true); // you'd close it programmatically using closeModal(), afterwards, if the user goes back in history, it will open again\n\t * ```\n\t */\n\tLeRed.useHistoryState = (initialState) =>\n\t{\n\t\tconst [state, setState] = LeRed.useState(!!initialState);\n\t\tconst [forwards, backwards] = LeRed.useHistory(() => setState(!initialState), () => setState(!!initialState));\n\t\tif(!!initialState)\n\t\t{\n\t\t\treturn [state, backwards, forwards];\n\t\t}\n\t\treturn [state, forwards, backwards];\n\t};\n\t\n\t/**\n\t * Allows you to listen to the hash of the URL (window.location.hash).\n\t *\n\t * The hash can be useful than the query, as changing the hash will not cause the page to reload. Plus there's a good way to listen to hash changes, using the `hashchange` event, which is lacking for the query.\n\t *\n\t * Example:\n\t *\n\t * ```js\n\t * const [hashParams, hashString] = LeRed.useHashParams();\n\t * ```\n\t */\n\tLeRed.useHashParams = (() =>\n\t{\n\t\tconst getHashString = () => (globalThis?.location?.hash?.trim()?.replace(/^#/, '') ?? '');\n\t\tconst parseHashParams = (hashString) => (new URLSearchParams(hashString));\n\t\t\n\t\t/**\n\t\t * @returns {[hashParams:URLSearchParams, hashString:string]}\n\t\t */\n\t\treturn () =>\n\t\t{\n\t\t\tconst [hashString, setHashString] = LeRed.useState(getHashString);\n\t\t\tconst hashParams = LeRed.useMemo(() => parseHashParams(hashString), [hashString]);\n\t\t\t\n\t\t\tLeRed.useEffect(() =>\n\t\t\t{\n\t\t\t\tconst onUrlChanged = () =>\n\t\t\t\t{\n\t\t\t\t\tsetHashString(getHashString());\n\t\t\t\t};\n\t\t\t\t\n\t\t\t\tglobalThis?.addEventListener?.('hashchange', onUrlChanged);\n\t\t\t\treturn () =>\n\t\t\t\t{\n\t\t\t\t\tglobalThis?.removeEventListener?.('hashchange', onUrlChanged);\n\t\t\t\t};\n\t\t\t}, []);\n\t\t\t\n\t\t\treturn [hashParams, hashString];\n\t\t};\n\t})();\n\t\n\t/**\n\t * Allows you to easily create an <pre><img></pre> url and onError handler that will automatically retry loading the image if it fails.\n\t */\n\tLeRed.useRetryingImageUrl = (url, options) =>\n\t{\n\t\turl = STRING(url);\n\t\tconst urlHasQ = url.includes('?');\n\t\t\n\t\tconst [imageUrl, setImageUrl] = LeRed.useState(url);\n\t\tconst retries = LeRed.useRef(0);\n\t\tconst timeout = LeRed.useRef({remove:() => undefined});\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\ttimeout.current.remove();\n\t\t\tretries.current = 0;\n\t\t\tsetImageUrl(url);\n\t\t}, [url]);\n\t\t\n\t\tconst onImageLoadError = LeRed.useCallback(() =>\n\t\t{\n\t\t\tif(retries.current < INT_LAX_ANY(options?.retries, 30))\n\t\t\t{\n\t\t\t\tconst defaultDelay = 100 + (50 * retries.current);\n\t\t\t\ttimeout.current.remove();\n\t\t\t\ttimeout.current = LeUtils.setTimeout(() =>\n\t\t\t\t{\n\t\t\t\t\tsetImageUrl(url + (urlHasQ ? '&' : '?') + (options?.queryParam || 'lowentryretryingimgversion') + '=' + (retries.current++));\n\t\t\t\t}, (typeof options?.delay === 'function') ? INT_LAX_ANY(options?.delay(retries.current), defaultDelay) : (INT_LAX_ANY(options?.delay, defaultDelay)));\n\t\t\t}\n\t\t}, [url, options]);\n\t\t\n\t\tconst onImageLoadErrorIgnored = LeRed.useCallback(() =>\n\t\t{\n\t\t}, []);\n\t\t\n\t\tif(!url)\n\t\t{\n\t\t\treturn [url, onImageLoadErrorIgnored];\n\t\t}\n\t\treturn [imageUrl, onImageLoadError];\n\t};\n\t\n\t/**\n\t * Allows you to easily convert promises to react hooks.\n\t *\n\t * The given callable should return promises. The returned promises can be an array, an object, or even a single promise. The returned data of this hook will match the promises it has operated on.\n\t *\n\t * The given comparingValues can be anything, this is used to detect whether the given promises have changed or not, and so whether new promises have to be generated and executed again.\n\t */\n\tLeRed.usePromises = (callable, comparingValues) =>\n\t{\n\t\tconst comparingValuesClone = LeUtils.clone(comparingValues);\n\t\tconst comparingValuesRef = LeRed.useRef(comparingValuesClone);\n\t\tconst latestComparingValuesRef = LeRed.useRef();\n\t\tlatestComparingValuesRef.current = comparingValuesClone;\n\t\t\n\t\tconst [data, setData] = LeRed.useState(null);\n\t\tconst [loading, setLoading] = LeRed.useState(true);\n\t\tconst [error, setError] = LeRed.useState(null);\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\tsetLoading(true);\n\t\t\tsetData(null);\n\t\t\tsetError(null);\n\t\t\t\n\t\t\ttry\n\t\t\t{\n\t\t\t\tconst promises = callable();\n\t\t\t\t\n\t\t\t\tconst promisesIsObject = IS_OBJECT(promises) && (typeof promises?.then !== 'function');\n\t\t\t\tconst promisesIsArray = IS_ARRAY(promises);\n\t\t\t\t\n\t\t\t\tlet promisesKeyed = [];\n\t\t\t\tif(promisesIsObject || promisesIsArray)\n\t\t\t\t{\n\t\t\t\t\tLeUtils.each(promises, (promise, key) =>\n\t\t\t\t\t{\n\t\t\t\t\t\tpromisesKeyed.push({promise, key});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpromisesKeyed.push({promise:promises, key:undefined});\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlet wrappedPromises = [];\n\t\t\t\tLeUtils.each(promisesKeyed, ({promise, key}) =>\n\t\t\t\t{\n\t\t\t\t\twrappedPromises.push(promise\n\t\t\t\t\t\t.then(async result => ({result, key})));\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tPromise.all(wrappedPromises)\n\t\t\t\t\t.then(resultObjects =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(promisesIsObject)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet results = {};\n\t\t\t\t\t\t\tLeUtils.each(resultObjects, ({result, key}) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tresults[key] = result;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if(promisesIsArray)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlet results = [];\n\t\t\t\t\t\t\tLeUtils.each(resultObjects, ({result, key}) =>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tresults[key] = result;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn resultObjects.pop()?.result;\n\t\t\t\t\t})\n\t\t\t\t\t.then(results =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(!LeUtils.equals(latestComparingValuesRef.current, comparingValuesClone))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// canceled\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcomparingValuesRef.current = comparingValuesClone;\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetData(results);\n\t\t\t\t\t\tsetError(null);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif(!LeUtils.equals(latestComparingValuesRef.current, comparingValuesClone))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// canceled\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcomparingValuesRef.current = comparingValuesClone;\n\t\t\t\t\t\tsetLoading(false);\n\t\t\t\t\t\tsetData(null);\n\t\t\t\t\t\tsetError(LeUtils.purgeErrorMessage(error));\n\t\t\t\t\t});\n\t\t\t\t\n\t\t\t\treturn () =>\n\t\t\t\t{\n\t\t\t\t\tLeUtils.each(wrappedPromises, promise =>\n\t\t\t\t\t{\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpromise?.cancel?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Failed to cancel the given promise:', e);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\ttry\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpromise?.remove?.();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcatch(e)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconsole.error('Failed to remove the given promise:', e);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}\n\t\t\tcatch(error)\n\t\t\t{\n\t\t\t\tLeUtils.setAnimationFrameTimeout(() =>\n\t\t\t\t{\n\t\t\t\t\tif(!LeUtils.equals(latestComparingValuesRef.current, comparingValuesClone))\n\t\t\t\t\t{\n\t\t\t\t\t\t// canceled\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tcomparingValuesRef.current = comparingValuesClone;\n\t\t\t\t\tsetLoading(false);\n\t\t\t\t\tsetData(null);\n\t\t\t\t\tsetError(LeUtils.purgeErrorMessage(error));\n\t\t\t\t});\n\t\t\t}\n\t\t}, [comparingValuesClone]);\n\t\t\n\t\tif(!LeUtils.equals(comparingValuesRef.current, comparingValuesClone))\n\t\t{\n\t\t\treturn [null, true, null];\n\t\t}\n\t\treturn [data, loading, error];\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external data.\n\t */\n\tLeRed.useExternal = (url, options, responseFunction) =>\n\t{\n\t\treturn LeRed.usePromises(() =>\n\t\t{\n\t\t\tconst createFetch = (urlString) => LeUtils.fetch(STRING(urlString), {retries:3, ...(options ?? {})})\n\t\t\t\t.then(async response =>\n\t\t\t\t{\n\t\t\t\t\tconst data = await responseFunction(response);\n\t\t\t\t\tif(typeof options?.verify === 'function')\n\t\t\t\t\t{\n\t\t\t\t\t\tawait options.verify(data, response);\n\t\t\t\t\t}\n\t\t\t\t\treturn data;\n\t\t\t\t});\n\t\t\t\n\t\t\tif(IS_OBJECT(url))\n\t\t\t{\n\t\t\t\tlet promises = {};\n\t\t\t\tLeUtils.each(url, (urlString, key) =>\n\t\t\t\t{\n\t\t\t\t\tpromises[key] = createFetch(urlString);\n\t\t\t\t});\n\t\t\t\treturn promises;\n\t\t\t}\n\t\t\tif(IS_ARRAY(url))\n\t\t\t{\n\t\t\t\tlet promises = [];\n\t\t\t\tLeUtils.each(url, urlString =>\n\t\t\t\t{\n\t\t\t\t\tpromises.push(createFetch(urlString));\n\t\t\t\t});\n\t\t\t\treturn promises;\n\t\t\t}\n\t\t\treturn createFetch(url);\n\t\t}, [url, options, responseFunction]);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external JSON data.\n\t */\n\tLeRed.useExternalJson = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.json(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external Blob data.\n\t */\n\tLeRed.useExternalBlob = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.blob(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external ArrayBuffer data.\n\t */\n\tLeRed.useExternalArrayBuffer = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.arrayBuffer(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external string data.\n\t */\n\tLeRed.useExternalString = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.text(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t/**\n\t * Allows you to easily obtain external form data.\n\t */\n\tLeRed.useExternalFormData = (url, options) =>\n\t{\n\t\tconst responseFunction = LeRed.useCallback(response => response.formData(), []);\n\t\treturn LeRed.useExternal(url, options, responseFunction);\n\t};\n\t\n\t\n\tLeRed.Root = LeRed.memo(({store, children, ...other}) =>\n\t{\n\t\tif(ISSET(store))\n\t\t{\n\t\t\tstore = LeRed.configureStore(store);\n\t\t\treturn (<ReactRedux.Provider store={store} children={children} {...other}/>);\n\t\t}\n\t\treturn children;\n\t});\n\t\n\tLeRed.PreloadComponent = (load) =>\n\t{\n\t\tif(typeof window !== 'undefined')\n\t\t{\n\t\t\tconst promise = load(); // in the browser, start loading already, before it's being rendered in React\n\t\t\treturn () => promise;\n\t\t}\n\t\treturn load;\n\t};\n\t\n\tLeRed.LoadComponent = LeRed.memo(({loading, load, ...other}) =>\n\t{\n\t\tconst [Component, setComponent] = LeRed.useState(loading ?? null);\n\t\t\n\t\tLeRed.useEffect(() =>\n\t\t{\n\t\t\t(async () =>\n\t\t\t{\n\t\t\t\tconst LoadedComponent = (typeof load === 'function') ? await load() : await load;\n\t\t\t\tif(!LoadedComponent)\n\t\t\t\t{\n\t\t\t\t\tsetComponent(null);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tsetComponent(<LoadedComponent {...other}/>);\n\t\t\t})();\n\t\t}, []);\n\t\t\n\t\treturn Component;\n\t});\n\t\n\t\n\tif(typeof Proxy === 'undefined')\n\t{\n\t\treturn LeRed;\n\t}\n\t\n\treturn new Proxy(LeRed, {\n\t\tset:(target, key, value) =>\n\t\t {\n\t\t\t LeRed.set(key, value);\n\t\t\t return true;\n\t\t },\n\t});\n})();\n"],"names":["LeRed","set","key","value","ignoreOverrides","arguments","length","undefined","keyFirstChar","charAt","toLowerCase","toUpperCase","console","error","warn","setAll","obj","optionalSkipHasOwnPropertyCheck","LeUtils","each","ReactDOM","ReduxSaga","effects","_objectSpread","ReduxSagaEffects","RTK","React","ReactRedux","delayFrames","frames","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","call","Promise","resolve","reject","setAnimationFrameTimeout","e","stop","interval","_callee2","callback","intervalMs","channel","_t","_t2","_context2","eventChannel","emitter","setInterval","clearInterval","close","take","cancelled","sent","finish","fixEqualsComparator","equalsComparator","errorMessage","ISSET","FastDeepEqualReact","useCompareMemoize","ref","useRef","current","configureStore","storeData","__lowentry_store__","slices","reducer","sagaListeners","_typeof","name","__lowentry_unfinished_slice","slicesArray","slice","index","push","ARRAY","initialState","reducerArrays","createSlice","state","reducers","reducerName","fullReducerName","startsWith","substring","sagaListener","flattenArray","listener","reducerArray","_len","args","Array","_key","apply","preloadedState","middleware","sagaMiddleware","getDefaultMiddleware","_getDefaultMiddleware","concat","_toConsumableArray","store","getState","dispatch","action","__lowentry_dispatch__","STRING","type","__lowentry_dispatch_result__","result","run","_callee3","_context3","all","createAction","id","createSelector","selectorsGenerator","stateOfSlice","selectors","selectorArgs","i","selectorsEntry","finalSelector","createCachedSelector","previousSelectorArgs","previousFinalSelectorResult","isArray","Error","actions","sagas","reducerNames","split","reducerAction","isGeneratorFunction","_context5","takeEvery","_callee4","promiseResolve","promiseReject","promise","_t3","_context4","payload","e2","reducerFunction","selector","selectorName","getters","getter","getterName","createFastSlice","_len2","params","_key2","Proxy","get","target","_len3","_key3","useConfigureStore","useMemo","useSelector","useEffect","callable","comparingValues","map","useEffectInterval","fireImmediately","remove","useEffectAnimationFrameInterval","intervalFrames","setAnimationFrameInterval","useEffectGenerator","_asyncToGenerator","_callee5","_iterator","_step","_t4","_context6","_createForOfIteratorHelper","s","n","done","abrupt","f","useEffectGeneratorLoop","_callee6","_iterator2","_step2","_t5","_context7","useEffectShutdown","_globalThis$addEventL","globalThis","addEventListener","capture","_globalThis$removeEve","removeEventListener","useEffectPageFocusLost","events","_globalThis$document","_globalThis$document2","_globalThis$document3","document","visibilityState","hasFocus","forEach","_globalThis$addEventL2","_globalThis$removeEve2","memo","component","useCallback","usePrevious","initialValue","useFont","font","trim","_LeRed$useState","useState","_LeRed$useState2","_slicedToArray","hasFont","setHasFont","_globalThis$document4","fonts","check","handler","useScript","url","props","_globalThis$document5","_globalThis$document6","_globalThis$document7","createElement","head","appendChild","removeChild","script","src","setAttribute","mergeRefs","_len4","refs","_key4","newRefs","inst","useTriggerable","event","_LeRed$useState3","uniqueId","_LeRed$useState4","_LeRed$useState4$","setValue","detail","eventName","trigger","dispatchEvent","CustomEvent","useTempState","defaultValue","duration","_LeRed$useState5","_LeRed$useState6","timeoutHandle","newValue","clearTimeout","setTimeout","useHistory","_globalThis$addEventL3","historyStateListeners","_historyStateListener","pop","addListener","removeListener","filter","onForward","onBack","remaining","goBack","navigate","useHistoryState","_LeRed$useState7","_LeRed$useState8","setState","_LeRed$useHistory","_LeRed$useHistory2","forwards","backwards","useHashParams","getHashString","_globalThis$location$","_globalThis$location","location","hash","replace","parseHashParams","hashString","URLSearchParams","_LeRed$useState9","_LeRed$useState0","setHashString","hashParams","_globalThis$addEventL4","onUrlChanged","_globalThis$removeEve3","useRetryingImageUrl","options","urlHasQ","includes","_LeRed$useState1","_LeRed$useState10","imageUrl","setImageUrl","retries","timeout","onImageLoadError","INT_LAX_ANY","defaultDelay","queryParam","delay","onImageLoadErrorIgnored","usePromises","comparingValuesClone","clone","comparingValuesRef","latestComparingValuesRef","_LeRed$useState11","_LeRed$useState12","data","setData","_LeRed$useState13","_LeRed$useState14","loading","setLoading","_LeRed$useState15","_LeRed$useState16","setError","promises","promisesIsObject","IS_OBJECT","then","promisesIsArray","IS_ARRAY","promisesKeyed","wrappedPromises","_ref3","_ref4","_callee7","_context8","_x","resultObjects","_resultObjects$pop","results","_ref5","_ref6","equals","purgeErrorMessage","_promise$cancel","cancel","_promise$remove","useExternal","responseFunction","createFetch","urlString","fetch","_ref7","_callee8","response","_context9","verify","_x2","useExternalJson","json","useExternalBlob","blob","useExternalArrayBuffer","arrayBuffer","useExternalString","text","useExternalFormData","formData","Root","_ref8","children","other","_objectWithoutProperties","_excluded","Provider","_extends","PreloadComponent","load","window","LoadComponent","_ref9","_excluded2","_LeRed$useState17","_LeRed$useState18","Component","setComponent","_callee9","LoadedComponent","_t6","_context0"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lowentry/react-redux",
3
- "version": "1.11.4",
3
+ "version": "1.13.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./index.js",
package/src/LeRed.jsx CHANGED
@@ -769,16 +769,10 @@ export const LeRed = (() =>
769
769
  callable();
770
770
  };
771
771
 
772
- if(typeof window !== 'undefined')
773
- {
774
- window.addEventListener('beforeunload', run, {capture:true});
775
- }
772
+ globalThis?.addEventListener?.('beforeunload', run, {capture:true});
776
773
  return () =>
777
774
  {
778
- if(typeof window !== 'undefined')
779
- {
780
- window.removeEventListener('beforeunload', run, {capture:true});
781
- }
775
+ globalThis?.removeEventListener?.('beforeunload', run, {capture:true});
782
776
  run();
783
777
  };
784
778
  }, [comparingValues, equalsComparator]);
@@ -789,28 +783,25 @@ export const LeRed = (() =>
789
783
  const events = ['pagehide', 'freeze', 'blur', 'visibilitychange'];
790
784
  return LeRed.useEffect(() =>
791
785
  {
792
- if((typeof window === 'undefined'))
793
- {
794
- return;
795
- }
796
-
797
786
  const run = () =>
798
787
  {
799
- if(typeof document === 'undefined')
800
- {
801
- return;
802
- }
803
- if((document.visibilityState !== 'hidden') && document.hasFocus())
788
+ if((globalThis?.document?.visibilityState !== 'hidden') && globalThis?.document?.hasFocus?.())
804
789
  {
805
790
  return;
806
791
  }
807
792
  callable();
808
793
  };
809
794
 
810
- events.forEach(type => window.addEventListener(type, run, {capture:true}));
795
+ events.forEach(type =>
796
+ {
797
+ globalThis?.addEventListener?.(type, run, {capture:true});
798
+ });
811
799
  return () =>
812
800
  {
813
- events.forEach(type => window.removeEventListener(type, run, {capture:true}));
801
+ events.forEach(type =>
802
+ {
803
+ globalThis?.removeEventListener?.(type, run, {capture:true});
804
+ });
814
805
  };
815
806
  }, [comparingValues, equalsComparator]);
816
807
  };
@@ -859,7 +850,7 @@ export const LeRed = (() =>
859
850
  {
860
851
  if(!hasFont)
861
852
  {
862
- if((typeof window === 'undefined') || !ISSET(document?.fonts?.check))
853
+ if(!globalThis?.document?.fonts?.check)
863
854
  {
864
855
  setHasFont(true);
865
856
  return;
@@ -869,7 +860,7 @@ export const LeRed = (() =>
869
860
  {
870
861
  try
871
862
  {
872
- if(document.fonts.check(font))
863
+ if(globalThis.document.fonts.check(font))
873
864
  {
874
865
  clearInterval(handler);
875
866
  setHasFont(true);
@@ -898,12 +889,12 @@ export const LeRed = (() =>
898
889
  {
899
890
  return LeRed.useEffect(() =>
900
891
  {
901
- if((typeof window === 'undefined') || !document)
892
+ if(!globalThis?.document?.createElement || !globalThis?.document?.head?.appendChild || !globalThis?.document?.head?.removeChild)
902
893
  {
903
894
  return;
904
895
  }
905
896
 
906
- const script = document.createElement('script');
897
+ const script = globalThis.document.createElement('script');
907
898
  script.type = 'text/javascript';
908
899
  script.src = url;
909
900
 
@@ -912,8 +903,8 @@ export const LeRed = (() =>
912
903
  script.setAttribute(key, value);
913
904
  });
914
905
 
915
- document.head.appendChild(script);
916
- return () => document.head.removeChild(script);
906
+ globalThis.document.head.appendChild(script);
907
+ return () => globalThis.document.head.removeChild(script);
917
908
  }, [url, props]);
918
909
  };
919
910
 
@@ -972,7 +963,7 @@ export const LeRed = (() =>
972
963
 
973
964
  LeRed.useEffect(() =>
974
965
  {
975
- if(typeof window === 'undefined')
966
+ if(!globalThis?.addEventListener || !globalThis?.removeEventListener)
976
967
  {
977
968
  return;
978
969
  }
@@ -983,8 +974,8 @@ export const LeRed = (() =>
983
974
  };
984
975
 
985
976
  const eventName = 'lowentrytriggerable_' + event;
986
- window.addEventListener(eventName, callback);
987
- return () => window.removeEventListener(eventName, callback);
977
+ globalThis.addEventListener(eventName, callback);
978
+ return () => globalThis.removeEventListener(eventName, callback);
988
979
  }, [event]);
989
980
 
990
981
  return value;
@@ -992,12 +983,12 @@ export const LeRed = (() =>
992
983
 
993
984
  LeRed.trigger = (event, value) =>
994
985
  {
995
- if(typeof window === 'undefined')
986
+ if(!globalThis?.dispatchEvent || !globalThis?.CustomEvent)
996
987
  {
997
988
  return;
998
989
  }
999
990
  const eventName = 'lowentrytriggerable_' + event;
1000
- window.dispatchEvent(new CustomEvent(eventName, {detail:value}));
991
+ globalThis.dispatchEvent(new globalThis.CustomEvent(eventName, {detail:value}));
1001
992
  };
1002
993
 
1003
994
  /**
@@ -1048,13 +1039,10 @@ export const LeRed = (() =>
1048
1039
  {
1049
1040
  let historyStateListeners = [];
1050
1041
 
1051
- if(typeof window !== 'undefined')
1042
+ globalThis?.addEventListener?.('popstate', () =>
1052
1043
  {
1053
- window.addEventListener('popstate', () =>
1054
- {
1055
- historyStateListeners.pop()?.callback();
1056
- });
1057
- }
1044
+ historyStateListeners.pop()?.callback();
1045
+ });
1058
1046
 
1059
1047
  const addListener = (callback) =>
1060
1048
  {
@@ -1148,6 +1136,48 @@ export const LeRed = (() =>
1148
1136
  return [state, forwards, backwards];
1149
1137
  };
1150
1138
 
1139
+ /**
1140
+ * Allows you to listen to the hash of the URL (window.location.hash).
1141
+ *
1142
+ * The hash can be useful than the query, as changing the hash will not cause the page to reload. Plus there's a good way to listen to hash changes, using the `hashchange` event, which is lacking for the query.
1143
+ *
1144
+ * Example:
1145
+ *
1146
+ * ```js
1147
+ * const [hashParams, hashString] = LeRed.useHashParams();
1148
+ * ```
1149
+ */
1150
+ LeRed.useHashParams = (() =>
1151
+ {
1152
+ const getHashString = () => (globalThis?.location?.hash?.trim()?.replace(/^#/, '') ?? '');
1153
+ const parseHashParams = (hashString) => (new URLSearchParams(hashString));
1154
+
1155
+ /**
1156
+ * @returns {[hashParams:URLSearchParams, hashString:string]}
1157
+ */
1158
+ return () =>
1159
+ {
1160
+ const [hashString, setHashString] = LeRed.useState(getHashString);
1161
+ const hashParams = LeRed.useMemo(() => parseHashParams(hashString), [hashString]);
1162
+
1163
+ LeRed.useEffect(() =>
1164
+ {
1165
+ const onUrlChanged = () =>
1166
+ {
1167
+ setHashString(getHashString());
1168
+ };
1169
+
1170
+ globalThis?.addEventListener?.('hashchange', onUrlChanged);
1171
+ return () =>
1172
+ {
1173
+ globalThis?.removeEventListener?.('hashchange', onUrlChanged);
1174
+ };
1175
+ }, []);
1176
+
1177
+ return [hashParams, hashString];
1178
+ };
1179
+ })();
1180
+
1151
1181
  /**
1152
1182
  * Allows you to easily create an <pre><img></pre> url and onError handler that will automatically retry loading the image if it fails.
1153
1183
  */
@@ -1438,7 +1468,7 @@ export const LeRed = (() =>
1438
1468
  {
1439
1469
  if(typeof window !== 'undefined')
1440
1470
  {
1441
- const promise = load(); // start loading already, before it's being rendered in React
1471
+ const promise = load(); // in the browser, start loading already, before it's being rendered in React
1442
1472
  return () => promise;
1443
1473
  }
1444
1474
  return load;