@lowentry/react-redux 1.15.3 → 1.15.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -10,7 +10,7 @@ This plugin adds utility functions to make it easier to use React and Redux in y
10
10
  For example, some of the things it does is:
11
11
 
12
12
  - it combines React, Redux, ReactRedux, RTK, etc, functions into a single object, so you won't have to figure out where it is located anymore, you simply call LeRed.functionName.
13
- - it provides improvements to the regular Redux functions, such as `createSlice` (allowing you to call those actions directly), and `useEffect` (solving the comparison of the given dependencies' values using `fast-deep-equal/react`, rather than doing a shallow compare).
13
+ - it provides improvements to the regular Redux functions, such as `createSlice` (allowing you to call those actions directly), and `useEffect` (solving the comparison of the given dependencies' values using a deep equals compare, rather than doing a shallow compare).
14
14
  - it provides lots of helper functions, such as `useEffectInterval` (which is a combination of `useEffect` and `setInterval`).
15
15
  - it automatically adds support for Redux-Saga to your Redux code, allowing you to call other Redux actions from within a Redux action (as well as the host of other things that Redux-Saga can do, such as obtain the data from selectors, run delays, etc).
16
16
 
package/index.js CHANGED
@@ -12,7 +12,6 @@ import * as ReactDOM from 'react-dom';
12
12
  import * as ReactRedux from 'react-redux';
13
13
  import * as ReduxSaga from 'redux-saga';
14
14
  import * as ReduxSagaEffects from 'redux-saga/effects';
15
- import FastDeepEqualReact from 'fast-deep-equal/react';
16
15
  import { LeUtils, ISSET, ARRAY, STRING, INT_LAX_ANY, IS_OBJECT, IS_ARRAY } from '@lowentry/utils';
17
16
 
18
17
  var _excluded = ["store", "children"],
@@ -171,11 +170,11 @@ var LeRed = function () {
171
170
  if (typeof equalsComparator !== 'function') {
172
171
  console.error(errorMessage);
173
172
  console.error(equalsComparator);
174
- return FastDeepEqualReact;
173
+ return LeUtils.equals;
175
174
  }
176
175
  return equalsComparator;
177
176
  }
178
- return FastDeepEqualReact;
177
+ return LeUtils.equals;
179
178
  };
180
179
  var useCompareMemoize = function useCompareMemoize(value, equalsComparator) {
181
180
  var ref = React.useRef();
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\n\nexport const LeRed = (() =>\n{\n\t/** @type {Object} */\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.useUrlHashParams();\n\t * ```\n\t */\n\tLeRed.useUrlHashParams = (() =>\n\t{\n\t\tconst getHashString = () => (globalThis?.location?.hash?.trim()?.replace(/^#/, '') ?? '');\n\t\tconst parseHashParams = (hashString) => Object.fromEntries(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","useUrlHashParams","getHashString","_globalThis$location$","_globalThis$location","location","hash","replace","parseHashParams","hashString","Object","fromEntries","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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"}
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 {LeUtils, ISSET, ARRAY, STRING, INT_LAX_ANY, IS_OBJECT, IS_ARRAY} from '@lowentry/utils';\n\n\nexport const LeRed = (() =>\n{\n\t/** @type {Object} */\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 LeUtils.equals;\n\t\t\t}\n\t\t\treturn equalsComparator;\n\t\t}\n\t\treturn LeUtils.equals;\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.useUrlHashParams();\n\t * ```\n\t */\n\tLeRed.useUrlHashParams = (() =>\n\t{\n\t\tconst getHashString = () => (globalThis?.location?.hash?.trim()?.replace(/^#/, '') ?? '');\n\t\tconst parseHashParams = (hashString) => Object.fromEntries(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","equals","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","useUrlHashParams","getHashString","_globalThis$location$","_globalThis$location","location","hash","replace","parseHashParams","hashString","Object","fromEntries","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","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.15.3",
3
+ "version": "1.15.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -31,7 +31,6 @@
31
31
  "@babel/runtime": "*",
32
32
  "@lowentry/utils": "^1",
33
33
  "@reduxjs/toolkit": "*",
34
- "fast-deep-equal": "^3",
35
34
  "react": "^18||^19",
36
35
  "react-dom": "^18||^19",
37
36
  "react-redux": "*",
@@ -42,7 +41,6 @@
42
41
  "@babel/runtime": "*",
43
42
  "@lowentry/utils": "^1",
44
43
  "@reduxjs/toolkit": "*",
45
- "fast-deep-equal": "^3",
46
44
  "react": "^18||^19",
47
45
  "react-dom": "^18||^19",
48
46
  "react-redux": "*",
package/src/LeRed.jsx CHANGED
@@ -4,7 +4,6 @@ import * as ReactDOM from 'react-dom';
4
4
  import * as ReactRedux from 'react-redux';
5
5
  import * as ReduxSaga from 'redux-saga';
6
6
  import * as ReduxSagaEffects from 'redux-saga/effects';
7
- import FastDeepEqualReact from 'fast-deep-equal/react';
8
7
  import {LeUtils, ISSET, ARRAY, STRING, INT_LAX_ANY, IS_OBJECT, IS_ARRAY} from '@lowentry/utils';
9
8
 
10
9
 
@@ -150,11 +149,11 @@ export const LeRed = (() =>
150
149
  {
151
150
  console.error(errorMessage);
152
151
  console.error(equalsComparator);
153
- return FastDeepEqualReact;
152
+ return LeUtils.equals;
154
153
  }
155
154
  return equalsComparator;
156
155
  }
157
- return FastDeepEqualReact;
156
+ return LeUtils.equals;
158
157
  };
159
158
 
160
159
  const useCompareMemoize = (value, equalsComparator) =>