@startlibs/core 1.1.0 → 1.2.0-rc.2

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.
Files changed (119) hide show
  1. package/lib/SlotFill.mjs +4 -4
  2. package/lib/SlotFill.mjs.map +1 -1
  3. package/lib/StartlibsProvider.mjs.map +1 -1
  4. package/lib/hocs/WithLazyResource.mjs +4 -4
  5. package/lib/hocs/WithLazyResource.mjs.map +1 -1
  6. package/lib/hocs/WithRef.mjs.map +1 -1
  7. package/lib/hocs/consumes.mjs +1 -1
  8. package/lib/hocs/consumes.mjs.map +1 -1
  9. package/lib/hocs/withDialogError.mjs +1 -1
  10. package/lib/hocs/withDialogError.mjs.map +1 -1
  11. package/lib/hocs/withGroupEvent.mjs +1 -1
  12. package/lib/hocs/withGroupEvent.mjs.map +1 -1
  13. package/lib/hooks/WithConstant.mjs +2 -2
  14. package/lib/hooks/WithConstant.mjs.map +1 -1
  15. package/lib/hooks/WithEffect.mjs.map +1 -1
  16. package/lib/hooks/useAsyncEffect.mjs.map +1 -1
  17. package/lib/hooks/useCallState.mjs +1 -1
  18. package/lib/hooks/useCallState.mjs.map +1 -1
  19. package/lib/hooks/useCallbackStable.mjs.map +1 -1
  20. package/lib/hooks/useConstant.mjs.map +1 -1
  21. package/lib/hooks/useConsumerCatalog.mjs.map +1 -1
  22. package/lib/hooks/useEnsureRef.mjs.map +1 -1
  23. package/lib/hooks/useForceUpdate.mjs +7 -7
  24. package/lib/hooks/useForceUpdate.mjs.map +1 -1
  25. package/lib/hooks/useIsUnmounted.mjs.map +1 -1
  26. package/lib/hooks/usePopupToggle.mjs +1 -1
  27. package/lib/hooks/usePopupToggle.mjs.map +1 -1
  28. package/lib/hooks/usePrevious.mjs.map +1 -1
  29. package/lib/hooks/useRecycleFocus.mjs.map +1 -1
  30. package/lib/hooks/useRefMemo.mjs.map +1 -1
  31. package/lib/hooks/useRefState.mjs +1 -1
  32. package/lib/hooks/useRefState.mjs.map +1 -1
  33. package/lib/hooks/useSignal.mjs +15 -15
  34. package/lib/hooks/useSignal.mjs.map +1 -1
  35. package/lib/hooks/useTitle.mjs +2 -2
  36. package/lib/hooks/useTitle.mjs.map +1 -1
  37. package/lib/hooks/useToggle.mjs +1 -1
  38. package/lib/hooks/useToggle.mjs.map +1 -1
  39. package/lib/hooks/useUpdateEffect.mjs.map +1 -1
  40. package/lib/hooks/useUpdateOnResize.mjs.map +1 -1
  41. package/lib/hooks/useWithTransition.mjs +1 -1
  42. package/lib/hooks/useWithTransition.mjs.map +1 -1
  43. package/lib/hooks/willUseLayers.mjs +2 -2
  44. package/lib/hooks/willUseLayers.mjs.map +1 -1
  45. package/lib/hooks/willUseSharedCallback.mjs.map +1 -1
  46. package/lib/hooks/willUseSharedState.mjs +3 -3
  47. package/lib/hooks/willUseSharedState.mjs.map +1 -1
  48. package/lib/hooks/willUseSpreadState.mjs +4 -4
  49. package/lib/hooks/willUseSpreadState.mjs.map +1 -1
  50. package/lib/index.cjs +164 -164
  51. package/lib/index.cjs.map +1 -1
  52. package/lib/index.mjs +10 -10
  53. package/lib-yak/SlotFill.mjs +230 -0
  54. package/lib-yak/SlotFill.mjs.map +1 -0
  55. package/lib-yak/StartlibsProvider.mjs +62 -0
  56. package/lib-yak/StartlibsProvider.mjs.map +1 -0
  57. package/lib-yak/hocs/WithLazyResource.mjs +74 -0
  58. package/lib-yak/hocs/WithLazyResource.mjs.map +1 -0
  59. package/lib-yak/hocs/WithRef.mjs +20 -0
  60. package/lib-yak/hocs/WithRef.mjs.map +1 -0
  61. package/lib-yak/hocs/consumes.mjs +22 -0
  62. package/lib-yak/hocs/consumes.mjs.map +1 -0
  63. package/lib-yak/hocs/withDialogError.mjs +22 -0
  64. package/lib-yak/hocs/withDialogError.mjs.map +1 -0
  65. package/lib-yak/hocs/withGroupEvent.mjs +45 -0
  66. package/lib-yak/hocs/withGroupEvent.mjs.map +1 -0
  67. package/lib-yak/hooks/WithConstant.mjs +13 -0
  68. package/lib-yak/hooks/WithConstant.mjs.map +1 -0
  69. package/lib-yak/hooks/WithEffect.mjs +12 -0
  70. package/lib-yak/hooks/WithEffect.mjs.map +1 -0
  71. package/lib-yak/hooks/useAsyncEffect.mjs +14 -0
  72. package/lib-yak/hooks/useAsyncEffect.mjs.map +1 -0
  73. package/lib-yak/hooks/useCallState.mjs +21 -0
  74. package/lib-yak/hooks/useCallState.mjs.map +1 -0
  75. package/lib-yak/hooks/useCallbackStable.mjs +17 -0
  76. package/lib-yak/hooks/useCallbackStable.mjs.map +1 -0
  77. package/lib-yak/hooks/useConstant.mjs +21 -0
  78. package/lib-yak/hooks/useConstant.mjs.map +1 -0
  79. package/lib-yak/hooks/useConsumerCatalog.mjs +25 -0
  80. package/lib-yak/hooks/useConsumerCatalog.mjs.map +1 -0
  81. package/lib-yak/hooks/useEnsureRef.mjs +9 -0
  82. package/lib-yak/hooks/useEnsureRef.mjs.map +1 -0
  83. package/lib-yak/hooks/useForceUpdate.mjs +28 -0
  84. package/lib-yak/hooks/useForceUpdate.mjs.map +1 -0
  85. package/lib-yak/hooks/useIsUnmounted.mjs +15 -0
  86. package/lib-yak/hooks/useIsUnmounted.mjs.map +1 -0
  87. package/lib-yak/hooks/usePopupToggle.mjs +33 -0
  88. package/lib-yak/hooks/usePopupToggle.mjs.map +1 -0
  89. package/lib-yak/hooks/usePrevious.mjs +28 -0
  90. package/lib-yak/hooks/usePrevious.mjs.map +1 -0
  91. package/lib-yak/hooks/useRecycleFocus.mjs +34 -0
  92. package/lib-yak/hooks/useRecycleFocus.mjs.map +1 -0
  93. package/lib-yak/hooks/useRefMemo.mjs +13 -0
  94. package/lib-yak/hooks/useRefMemo.mjs.map +1 -0
  95. package/lib-yak/hooks/useRefState.mjs +29 -0
  96. package/lib-yak/hooks/useRefState.mjs.map +1 -0
  97. package/lib-yak/hooks/useSignal.mjs +271 -0
  98. package/lib-yak/hooks/useSignal.mjs.map +1 -0
  99. package/lib-yak/hooks/useTitle.mjs +17 -0
  100. package/lib-yak/hooks/useTitle.mjs.map +1 -0
  101. package/lib-yak/hooks/useToggle.mjs +152 -0
  102. package/lib-yak/hooks/useToggle.mjs.map +1 -0
  103. package/lib-yak/hooks/useUpdateEffect.mjs +15 -0
  104. package/lib-yak/hooks/useUpdateEffect.mjs.map +1 -0
  105. package/lib-yak/hooks/useUpdateOnResize.mjs +18 -0
  106. package/lib-yak/hooks/useUpdateOnResize.mjs.map +1 -0
  107. package/lib-yak/hooks/useWithTransition.mjs +18 -0
  108. package/lib-yak/hooks/useWithTransition.mjs.map +1 -0
  109. package/lib-yak/hooks/willUseLayers.mjs +55 -0
  110. package/lib-yak/hooks/willUseLayers.mjs.map +1 -0
  111. package/lib-yak/hooks/willUseSharedCallback.mjs +70 -0
  112. package/lib-yak/hooks/willUseSharedCallback.mjs.map +1 -0
  113. package/lib-yak/hooks/willUseSharedState.mjs +41 -0
  114. package/lib-yak/hooks/willUseSharedState.mjs.map +1 -0
  115. package/lib-yak/hooks/willUseSpreadState.mjs +119 -0
  116. package/lib-yak/hooks/willUseSpreadState.mjs.map +1 -0
  117. package/lib-yak/index.mjs +33 -0
  118. package/lib-yak/index.mjs.map +1 -0
  119. package/package.json +11 -2
@@ -1 +1 @@
1
- {"version":3,"file":"useSignal.mjs","sources":["../../src/hooks/useSignal.jsx"],"sourcesContent":["import React, {startTransition, use, useMemo, useCallback, useContext, useEffect, useRef, useState} from 'react'\nimport {useConstant, useLazyConstant} from './useConstant'\nimport {useForceUpdate} from './useForceUpdate'\nimport {_s, callIfFunction} from '@startlibs/utils'\nimport _ from 'lodash/fp'\n\nconst IS_ARRAY_ITEMS_EQUALS = (a,b) => a.length === b.length && !a.some((x, i) => !Object.is(x, b[i]));\nconst IS_DEPS_EQUALS = (a = [],b = []) => Object.is(a,b) || IS_ARRAY_ITEMS_EQUALS(a,b)\n\nconst SHALLOW_IS_EQUAL = (a,b) => Object.is(a,b) || (_.isArray(a) && _.isArray(b) && IS_ARRAY_ITEMS_EQUALS(a,b))\n\nconst EMPTY_DEPS = []\nconst EMPTY_VALUE = {\"EMPTY\":true}\nexport const useUpdateSignal = (initialValue) => {\n const value = useRef(initialValue)\n value.current = initialValue\n return useLazyConstant(() => {\n let registered = []\n const register = (selector = _.identity, isEqual = SHALLOW_IS_EQUAL, withTransition = false) => {\n const selectorRef = useRef()\n selectorRef.current = selector\n const update = useForceUpdate()\n const lastValueRef = useRef(_s.select(selectorRef.current, value.current))\n useEffect(() => {\n const item = [update, selectorRef, isEqual, lastValueRef, withTransition]\n registered = [...registered, item]\n return () => {\n registered = registered.filter(v => v !== item)\n }\n }, [])\n if (value.current === EMPTY_VALUE) {\n return EMPTY_VALUE\n }\n return lastValueRef.current\n }\n const call = (...args) =>\n registered.forEach(([fn, selectorRef, isEqual, lastValueRef, withTransition]) => {\n const nextValue = _s.select(selectorRef.current, ...args)\n if (!callIfFunction(isEqual,nextValue,lastValueRef.current)) {\n lastValueRef.current = nextValue\n if (withTransition) {\n (withTransition === true ? startTransition : withTransition)(() => fn(nextValue))\n } else {\n fn(nextValue)\n }\n }\n })\n return [register, call]\n })\n}\n\nconst useSelectorSignal = (value) => {\n const prevValue = useRef(value)\n const [_register, call] = useUpdateSignal(value)\n const register = useCallback((selector, deps, isEqual, withTransition) => {\n const prevDeps = useRef(EMPTY_DEPS)\n if (prevDeps.current !== EMPTY_DEPS && !IS_DEPS_EQUALS(deps, prevDeps.current)) {\n call(prevValue.current)\n }\n prevDeps.current = deps\n return _register(selector, isEqual, withTransition)\n }, [])\n useEffect(() => {\n if (prevValue.current !== value) {\n prevValue.current = value\n call(value)\n }\n },[value])\n return register\n}\n\nconst updateStateFn = (path,update) => state =>\n path\n ? _.update(path,(v) => callIfFunction(update,v),state)\n : callIfFunction(update,state)\n\n\nexport const createStatefulContext = (v,defaultIsEqual) => {\n const Ctx = React.createContext(v)\n const Provider = ({value, setValue, utils,children}) => {\n const register = useSelectorSignal(value)\n const v = useLazyConstant(() => [register,setValue, utils])\n return <Ctx.Provider value={v}>{children}</Ctx.Provider>\n }\n const useCtx = () => useContext(Ctx)\n\n const useSelectValue = (selector,deps,defaultIsEqual, withTransition) => {\n const [useRegister] = useCtx()\n if (deps === true) {\n return useRegister(selector,[],undefined,startTransition)\n } else if (_.isPlainObject(deps)) {\n return useRegister(selector,deps.deps,deps.isEqual, deps.withTransition)\n } else {\n return useRegister(selector,_.isArray(deps) ? deps : deps?.deps,defaultIsEqual, withTransition)\n }\n }\n const useSetValue = (path) => {\n const [reg,set ] = useCtx()\n return useConstant((update) => set(updateStateFn(path,update)))\n }\n const useUtils = (path,deps) => {\n const [reg,set, utils ] = useCtx()\n return utils\n }\n return [Provider,[useSelectValue, useSetValue, useUtils, useCtx]]\n}\n\nexport const createSelfStatefulContext = (v,defaultIsEqual) => {\n const [Provider,[useSelectValue, useSetValue, useUtils, useCtx]] = createStatefulContext(v,defaultIsEqual)\n\n const StateFullProvider = ({init = {}, utils,children}) => {\n const [state,setState] = useState(init)\n return <Provider value={state} setValue={setState} utils={utils}>\n {children}\n </Provider>\n }\n return [StateFullProvider,[useSelectValue, useSetValue, useUtils, useCtx]]\n}\n\n\nexport const createLazyStatefulContext = (toPromise,defaultIsEqual) => {\n const [Provider,[useSelectValue, useSetValue, useUtils, useCtx]] = createStatefulContext(EMPTY_VALUE,defaultIsEqual)\n const useSelectLazyValue = (selector,deps,isEqual = defaultIsEqual,withTransition) => {\n const value = useSelectValue(selector,deps,isEqual,withTransition)\n const utils = useUtils()\n if (value === EMPTY_VALUE) {\n const loadedValue = use(utils._lazyValue())\n return _s.select(selector,loadedValue)\n }\n return value\n }\n const useSetLazyValue = (path) => {\n const [,setValue,utils] = useCtx()\n return useConstant((update) => {\n return setValue(value =>\n value === EMPTY_VALUE\n ? updateStateFn(path,update)(utils.loadedValue())\n : updateStateFn(path,update)(value)\n )\n })\n }\n\n const useValuePromise = (selector,deps,isEqual,withTransition) => {\n const value = useSelectValue(selector,deps,isEqual,withTransition)\n const utils = useUtils()\n return useCallback(() => {\n if (value === EMPTY_VALUE) {\n return utils._lazyValue().then(v => console.log(v,_s.select(selector,v),selector) || _s.select(selector,v))\n }\n return new Promise(value)\n },[value,deps])\n }\n const LazyStateFullProvider = ({value, utils,children, fallback = null}) => {\n const [state,setState] = useState(EMPTY_VALUE)\n const promise = useRef()\n const loadedValue = useRef()\n const lazyUtils = useMemo(() => ({\n ...utils,\n _lazyValue: () => {\n promise.current ??= callIfFunction(toPromise || _.identity,value)\n promise.current.then((value) => {\n loadedValue.current = value\n })\n return promise.current\n },\n loadedValue: () => loadedValue.current\n }),[value,utils])\n return <Provider value={state} setValue={setState} utils={lazyUtils}>\n {\n fallback===false\n ? children\n : <React.Suspense fallback={fallback}>{children}</React.Suspense>\n }\n </Provider>\n }\n\n return [LazyStateFullProvider,[useSelectLazyValue, useSetLazyValue, useValuePromise]]\n}\n\nexport const createSelectableContext = (v) => {\n const [Provider,[useSelectValue]] = createStatefulContext(v)\n return [Provider,useSelectValue]\n}\nexport const createTriggerUpdateContext = (v) => {\n const [Provider,[useSelectValue]] = createStatefulContext(v)\n const TriggerProvider = React.forwardRef(({children},ref) => {\n const [v,setV] = useState(0)\n const trigger = React.useMemo(() => () => setV(v => v+1),[v])\n React.useImperativeHandle(ref, () => ({trigger}) , [])\n return <Provider value={trigger}>{children}</Provider>\n })\n return [TriggerProvider,useSelectValue]\n}"],"names":["IS_ARRAY_ITEMS_EQUALS","a","b","length","some","x","i","Object","is","IS_DEPS_EQUALS","arguments","undefined","SHALLOW_IS_EQUAL","_isArray","EMPTY_DEPS","EMPTY_VALUE","useUpdateSignal","initialValue","value","useRef","current","useLazyConstant","registered","register","selector","_identity","isEqual","withTransition","selectorRef","update","useForceUpdate","lastValueRef","_s","select","useEffect","item","filter","v","call","_len","args","Array","_key","forEach","_ref","_ref2","_slicedToArray","fn","nextValue","callIfFunction","startTransition","useSelectorSignal","prevValue","_useUpdateSignal","_useUpdateSignal2","_register","useCallback","deps","prevDeps","updateStateFn","path","state","_update","createStatefulContext","defaultIsEqual","Ctx","React","createContext","Provider","_ref3","setValue","utils","children","createElement","useCtx","useContext","useSelectValue","_useCtx","_useCtx2","useRegister","_isPlainObject","useSetValue","_useCtx3","_useCtx4","reg","set","useConstant","useUtils","_useCtx5","_useCtx6","createSelfStatefulContext","_createStatefulContex","_createStatefulContex2","_createStatefulContex3","StateFullProvider","_ref4","_ref4$init","init","_useState","useState","_useState2","setState","createLazyStatefulContext","toPromise","_createStatefulContex4","_createStatefulContex5","_createStatefulContex6","useSelectLazyValue","loadedValue","use","_lazyValue","useSetLazyValue","_useCtx7","_useCtx8","useValuePromise","then","console","log","Promise","LazyStateFullProvider","_ref5","_ref5$fallback","fallback","_useState3","_useState4","promise","lazyUtils","useMemo","_objectSpread","_promise$current","Suspense","createSelectableContext","_createStatefulContex7","_createStatefulContex8","_createStatefulContex9","createTriggerUpdateContext","_createStatefulContex0","_createStatefulContex1","_createStatefulContex10","TriggerProvider","forwardRef","_ref6","ref","_useState5","_useState6","setV","trigger","useImperativeHandle"],"mappings":"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"}
1
+ {"version":3,"file":"useSignal.mjs","sources":["../../src/hooks/useSignal.jsx"],"sourcesContent":["import React, {startTransition, use, useMemo, useCallback, useContext, useEffect, useRef, useState} from 'react'\nimport {useConstant, useLazyConstant} from './useConstant'\nimport {useForceUpdate} from './useForceUpdate'\nimport {_s, callIfFunction} from '@startlibs/utils'\nimport _ from 'lodash/fp'\n\nconst IS_ARRAY_ITEMS_EQUALS = (a,b) => a.length === b.length && !a.some((x, i) => !Object.is(x, b[i]));\nconst IS_DEPS_EQUALS = (a = [],b = []) => Object.is(a,b) || IS_ARRAY_ITEMS_EQUALS(a,b)\n\nconst SHALLOW_IS_EQUAL = (a,b) => Object.is(a,b) || (_.isArray(a) && _.isArray(b) && IS_ARRAY_ITEMS_EQUALS(a,b))\n\nconst EMPTY_DEPS = []\nconst EMPTY_VALUE = {\"EMPTY\":true}\nexport const useUpdateSignal = (initialValue) => {\n const value = useRef(initialValue)\n value.current = initialValue\n return useLazyConstant(() => {\n let registered = []\n const register = (selector = _.identity, isEqual = SHALLOW_IS_EQUAL, withTransition = false) => {\n const selectorRef = useRef()\n selectorRef.current = selector\n const update = useForceUpdate()\n const lastValueRef = useRef(_s.select(selectorRef.current, value.current))\n useEffect(() => {\n const item = [update, selectorRef, isEqual, lastValueRef, withTransition]\n registered = [...registered, item]\n return () => {\n registered = registered.filter(v => v !== item)\n }\n }, [])\n if (value.current === EMPTY_VALUE) {\n return EMPTY_VALUE\n }\n return lastValueRef.current\n }\n const call = (...args) =>\n registered.forEach(([fn, selectorRef, isEqual, lastValueRef, withTransition]) => {\n const nextValue = _s.select(selectorRef.current, ...args)\n if (!callIfFunction(isEqual,nextValue,lastValueRef.current)) {\n lastValueRef.current = nextValue\n if (withTransition) {\n (withTransition === true ? startTransition : withTransition)(() => fn(nextValue))\n } else {\n fn(nextValue)\n }\n }\n })\n return [register, call]\n })\n}\n\nconst useSelectorSignal = (value) => {\n const prevValue = useRef(value)\n const [_register, call] = useUpdateSignal(value)\n const register = useCallback((selector, deps, isEqual, withTransition) => {\n const prevDeps = useRef(EMPTY_DEPS)\n if (prevDeps.current !== EMPTY_DEPS && !IS_DEPS_EQUALS(deps, prevDeps.current)) {\n call(prevValue.current)\n }\n prevDeps.current = deps\n return _register(selector, isEqual, withTransition)\n }, [])\n useEffect(() => {\n if (prevValue.current !== value) {\n prevValue.current = value\n call(value)\n }\n },[value])\n return register\n}\n\nconst updateStateFn = (path,update) => state =>\n path\n ? _.update(path,(v) => callIfFunction(update,v),state)\n : callIfFunction(update,state)\n\n\nexport const createStatefulContext = (v,defaultIsEqual) => {\n const Ctx = React.createContext(v)\n const Provider = ({value, setValue, utils,children}) => {\n const register = useSelectorSignal(value)\n const v = useLazyConstant(() => [register,setValue, utils])\n return <Ctx.Provider value={v}>{children}</Ctx.Provider>\n }\n const useCtx = () => useContext(Ctx)\n\n const useSelectValue = (selector,deps,defaultIsEqual, withTransition) => {\n const [useRegister] = useCtx()\n if (deps === true) {\n return useRegister(selector,[],undefined,startTransition)\n } else if (_.isPlainObject(deps)) {\n return useRegister(selector,deps.deps,deps.isEqual, deps.withTransition)\n } else {\n return useRegister(selector,_.isArray(deps) ? deps : deps?.deps,defaultIsEqual, withTransition)\n }\n }\n const useSetValue = (path) => {\n const [reg,set ] = useCtx()\n return useConstant((update) => set(updateStateFn(path,update)))\n }\n const useUtils = (path,deps) => {\n const [reg,set, utils ] = useCtx()\n return utils\n }\n return [Provider,[useSelectValue, useSetValue, useUtils, useCtx]]\n}\n\nexport const createSelfStatefulContext = (v,defaultIsEqual) => {\n const [Provider,[useSelectValue, useSetValue, useUtils, useCtx]] = createStatefulContext(v,defaultIsEqual)\n\n const StateFullProvider = ({init = {}, utils,children}) => {\n const [state,setState] = useState(init)\n return <Provider value={state} setValue={setState} utils={utils}>\n {children}\n </Provider>\n }\n return [StateFullProvider,[useSelectValue, useSetValue, useUtils, useCtx]]\n}\n\n\nexport const createLazyStatefulContext = (toPromise,defaultIsEqual) => {\n const [Provider,[useSelectValue, useSetValue, useUtils, useCtx]] = createStatefulContext(EMPTY_VALUE,defaultIsEqual)\n const useSelectLazyValue = (selector,deps,isEqual = defaultIsEqual,withTransition) => {\n const value = useSelectValue(selector,deps,isEqual,withTransition)\n const utils = useUtils()\n if (value === EMPTY_VALUE) {\n const loadedValue = use(utils._lazyValue())\n return _s.select(selector,loadedValue)\n }\n return value\n }\n const useSetLazyValue = (path) => {\n const [,setValue,utils] = useCtx()\n return useConstant((update) => {\n return setValue(value =>\n value === EMPTY_VALUE\n ? updateStateFn(path,update)(utils.loadedValue())\n : updateStateFn(path,update)(value)\n )\n })\n }\n\n const useValuePromise = (selector,deps,isEqual,withTransition) => {\n const value = useSelectValue(selector,deps,isEqual,withTransition)\n const utils = useUtils()\n return useCallback(() => {\n if (value === EMPTY_VALUE) {\n return utils._lazyValue().then(v => console.log(v,_s.select(selector,v),selector) || _s.select(selector,v))\n }\n return new Promise(value)\n },[value,deps])\n }\n const LazyStateFullProvider = ({value, utils,children, fallback = null}) => {\n const [state,setState] = useState(EMPTY_VALUE)\n const promise = useRef()\n const loadedValue = useRef()\n const lazyUtils = useMemo(() => ({\n ...utils,\n _lazyValue: () => {\n promise.current ??= callIfFunction(toPromise || _.identity,value)\n promise.current.then((value) => {\n loadedValue.current = value\n })\n return promise.current\n },\n loadedValue: () => loadedValue.current\n }),[value,utils])\n return <Provider value={state} setValue={setState} utils={lazyUtils}>\n {\n fallback===false\n ? children\n : <React.Suspense fallback={fallback}>{children}</React.Suspense>\n }\n </Provider>\n }\n\n return [LazyStateFullProvider,[useSelectLazyValue, useSetLazyValue, useValuePromise]]\n}\n\nexport const createSelectableContext = (v) => {\n const [Provider,[useSelectValue]] = createStatefulContext(v)\n return [Provider,useSelectValue]\n}\nexport const createTriggerUpdateContext = (v) => {\n const [Provider,[useSelectValue]] = createStatefulContext(v)\n const TriggerProvider = React.forwardRef(({children},ref) => {\n const [v,setV] = useState(0)\n const trigger = React.useMemo(() => () => setV(v => v+1),[v])\n React.useImperativeHandle(ref, () => ({trigger}) , [])\n return <Provider value={trigger}>{children}</Provider>\n })\n return [TriggerProvider,useSelectValue]\n}"],"names":["IS_ARRAY_ITEMS_EQUALS","a","b","length","some","x","i","Object","is","IS_DEPS_EQUALS","arguments","undefined","SHALLOW_IS_EQUAL","_isArray","EMPTY_DEPS","EMPTY_VALUE","useUpdateSignal","initialValue","value","useRef","current","useLazyConstant","registered","register","selector","_identity","isEqual","withTransition","selectorRef","update","useForceUpdate","lastValueRef","_s","select","useEffect","item","filter","v","call","_len","args","Array","_key","forEach","_ref","_ref2","_slicedToArray","fn","nextValue","callIfFunction","startTransition","useSelectorSignal","prevValue","_useUpdateSignal","_useUpdateSignal2","_register","useCallback","deps","prevDeps","updateStateFn","path","state","_update","createStatefulContext","defaultIsEqual","Ctx","React","createContext","Provider","_ref3","setValue","utils","children","createElement","useCtx","useContext","useSelectValue","_useCtx","_useCtx2","useRegister","_isPlainObject","useSetValue","_useCtx3","_useCtx4","reg","set","useConstant","useUtils","_useCtx5","_useCtx6","createSelfStatefulContext","_createStatefulContex","_createStatefulContex2","_createStatefulContex3","StateFullProvider","_ref4","_ref4$init","init","_useState","useState","_useState2","setState","createLazyStatefulContext","toPromise","_createStatefulContex4","_createStatefulContex5","_createStatefulContex6","useSelectLazyValue","loadedValue","use","_lazyValue","useSetLazyValue","_useCtx7","_useCtx8","useValuePromise","then","console","log","Promise","LazyStateFullProvider","_ref5","_ref5$fallback","fallback","_useState3","_useState4","promise","lazyUtils","useMemo","_objectSpread","_promise$current","Suspense","createSelectableContext","_createStatefulContex7","_createStatefulContex8","_createStatefulContex9","createTriggerUpdateContext","_createStatefulContex0","_createStatefulContex1","_createStatefulContex10","TriggerProvider","forwardRef","_ref6","ref","_useState5","_useState6","setV","trigger","useImperativeHandle"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
1
  import 'react';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
  import { willUseLayers } from './willUseLayers.mjs';
4
4
 
5
5
  const _willUseLayers = willUseLayers(),
6
6
  _willUseLayers2 = _slicedToArray(_willUseLayers, 1),
7
7
  useTitleLayers = _willUseLayers2[0];
8
8
  const useTitle = title => {
9
- useTitleLayers({
9
+ const layer = useTitleLayers({
10
10
  onTop: () => {
11
11
  document.title = title;
12
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTitle.mjs","sources":["../../src/hooks/useTitle.jsx"],"sourcesContent":["import React from 'react'\nimport {willUseLayers} from './willUseLayers'\n\nconst [useTitleLayers] = willUseLayers()\n\nexport const useTitle = (title) => {\n const layer = useTitleLayers({\n onTop: () => {\n document.title = title\n }\n })\n}"],"names":["_willUseLayers","willUseLayers","_willUseLayers2","_slicedToArray","useTitleLayers","useTitle","title","onTop","document"],"mappings":";;;;AAGA,MAAAA,cAAA,GAAyBC,aAAa,EAAE;EAAAC,eAAA,GAAAC,cAAA,CAAAH,cAAA,EAAA,CAAA,CAAA;AAAjCI,EAAAA,cAAc,GAAAF,eAAA,CAAA,CAAA,CAAA,CAAA;AAERG,MAAAA,QAAQ,GAAIC,KAAK,IAAK;EACnBF,cAAc,CAAC;IAC3BG,KAAK,EAAEA,MAAM;MACXC,QAAQ,CAACF,KAAK,GAAGA,KAAK,CAAA;AACxB,KAAA;AACF,GAAC,EAAC;AACJ;;;;"}
1
+ {"version":3,"file":"useTitle.mjs","sources":["../../src/hooks/useTitle.jsx"],"sourcesContent":["import React from 'react'\nimport {willUseLayers} from './willUseLayers'\n\nconst [useTitleLayers] = willUseLayers()\n\nexport const useTitle = (title) => {\n const layer = useTitleLayers({\n onTop: () => {\n document.title = title\n }\n })\n}"],"names":["_willUseLayers","willUseLayers","_willUseLayers2","_slicedToArray","useTitleLayers","useTitle","title","layer","onTop","document"],"mappings":";;;;AAGA,MAAAA,cAAA,GAAyBC,aAAa,EAAE;EAAAC,eAAA,GAAAC,cAAA,CAAAH,cAAA;EAAjCI,cAAc,GAAAF,eAAA;MAERG,QAAQ,GAAIC,KAAK,IAAK;EACjC,MAAMC,KAAK,GAAGH,cAAc,CAAC;IAC3BI,KAAK,EAAEA,MAAM;MACXC,QAAQ,CAACH,KAAK,GAAGA,KAAK;;GAEzB,CAAC;AACJ;;;;"}
@@ -1,6 +1,6 @@
1
- import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
1
  import { useRef, useMemo } from 'react';
3
2
  import { callIfFunction } from '@startlibs/utils';
3
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
4
  import { useCallState } from './useCallState.mjs';
5
5
  import { useIsUnmounted } from './useIsUnmounted.mjs';
6
6
  import { useRefState } from './useRefState.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"useToggle.mjs","sources":["../../src/hooks/useToggle.js"],"sourcesContent":["import React, {useRef, useMemo} from 'react'\nimport {callIfFunction} from '@startlibs/utils'\nimport {useCallState} from './useCallState'\nimport {useIsUnmounted} from './useIsUnmounted'\nimport {useRefState} from './useRefState'\n\nconst useToggleInternal = (startWith = false, useStore, callback, key) => {\n\n const isOpen = useStore(startWith)\n const closing = useStore(false)\n const refIsOpen = useRefState(isOpen.get())\n const refIsClosing = useRefState(closing.get())\n const timerId = useRef()\n\n const isUnmounted = useIsUnmounted()\n\n const clearClosing = () => {\n if (refIsClosing.get() !== false) {\n closing.set(false)\n refIsClosing.set(false)\n window.clearTimeout(timerId.current)\n }\n }\n\n const toggleWith = (value = true) => {\n const calledValue = callIfFunction(value,refIsOpen.get())\n const newValue = refIsOpen.get() === calledValue ? !calledValue : calledValue\n if (!isUnmounted() && refIsOpen.get() !== newValue) {\n const result = callIfFunction(callback,newValue,refIsOpen.get())\n if (result === false) { return }\n isOpen.set(newValue)\n refIsOpen.set(newValue)\n clearClosing()\n }\n }\n\n const openWith = (value) => {\n if (process.env.NODE_ENV !== 'production' && key) {\n console.log(key,refIsOpen.get()!==value ? \"toggle\":\"clear\", refIsOpen.get(),value)\n }\n const nextValue = callIfFunction(value,refIsOpen.get())\n if (refIsOpen.get() !== nextValue) {\n toggleWith(() => nextValue)\n } else {\n clearClosing()\n }\n }\n\n const nextClosingTick = (ticks, tickIndex) => {\n if (ticks.length) {\n if (isNaN(ticks[0])) {\n clearClosing()\n } else if (!isNaN(ticks[0])) {\n closing.set(tickIndex + 1)\n refIsClosing.set(tickIndex + 1)\n timerId.current = setTimeout(() => nextClosingTick(ticks.slice(1), tickIndex + 1), Number(ticks[0]))\n }\n } else {\n openWith(false)\n }\n }\n const closeAfter = (...millisecs) => {\n if (process.env.NODE_ENV !== 'production' && key) {\n console.log(key,!refIsOpen.get() || refIsClosing.get() ? \"addCLosing\" : \"closing\" )\n }\n if (!refIsOpen.get() || refIsClosing.get()) return\n nextClosingTick(millisecs, 0)\n }\n\n const _wait = (promise, start = true, end = false) => async (...args) => {\n openWith(start)\n try {\n return await callIfFunction(promise,...args)\n } finally {\n openWith(end)\n }\n }\n\n const setters = useMemo(()=>({\n wait: (promise,start = true, end = false) => _wait(promise,start, end)(),\n willWait: _wait,\n open: (e) => {\n if (process.env.NODE_ENV !== 'production') {\n if (['string', 'number', 'boolean'].indexOf(typeof e) >= 0) {\n console.log(`You are trying to open toggle with ${e}. Please, use openWith to open with a value`)\n }\n }\n return openWith(true)\n },\n close: () => openWith(false),\n toggle: (e) => {\n if (process.env.NODE_ENV !== 'production') {\n if (['string', 'number', 'boolean'].indexOf(typeof e) >= 0) {\n console.log(`You are trying to toogle a toggle with ${e}. Please, use openWith to open with a value`)\n }\n }\n toggleWith(true)\n },\n willOpenWith: (value) => () => openWith(value),\n willCloseAfter: (...millsecs) => () => closeAfter(...millsecs),\n willToggleWith: (value) => () => toggleWith(value),\n openWith,\n closeAfter,\n toggleWith,\n get: refIsOpen.get\n }),[])\n const settersWithNewRef = {...setters}\n if (closing.val) {\n return Object.assign(settersWithNewRef, {isOpen: isOpen.val, closing: closing.val})\n } else {\n Object.defineProperties(settersWithNewRef, {\n isOpen: {\n enumerable: true,\n get: isOpen.get\n },\n closing: {\n enumerable: true,\n get: closing.get\n }\n })\n return settersWithNewRef\n }\n}\n\nexport const useToggle = (startWith, callback,key) => useToggleInternal(startWith, useCallState, callback,key)\nexport const useRefToggle = (startWith) => useToggleInternal(startWith, useRefState)"],"names":["useToggleInternal","startWith","arguments","length","undefined","useStore","callback","key","isOpen","closing","refIsOpen","useRefState","get","refIsClosing","timerId","useRef","isUnmounted","useIsUnmounted","clearClosing","set","window","clearTimeout","current","toggleWith","value","calledValue","callIfFunction","newValue","result","openWith","process","env","NODE_ENV","console","log","nextValue","nextClosingTick","ticks","tickIndex","isNaN","setTimeout","slice","Number","closeAfter","_len","millisecs","Array","_key","_wait","promise","start","end","_len2","args","_key2","setters","useMemo","wait","willWait","open","e","indexOf","concat","close","toggle","willOpenWith","willCloseAfter","_len3","millsecs","_key3","willToggleWith","settersWithNewRef","_objectSpread","val","Object","assign","defineProperties","enumerable","useToggle","useCallState","useRefToggle"],"mappings":"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"}
1
+ {"version":3,"file":"useToggle.mjs","sources":["../../src/hooks/useToggle.js"],"sourcesContent":["import React, {useRef, useMemo} from 'react'\nimport {callIfFunction} from '@startlibs/utils'\nimport {useCallState} from './useCallState'\nimport {useIsUnmounted} from './useIsUnmounted'\nimport {useRefState} from './useRefState'\n\nconst useToggleInternal = (startWith = false, useStore, callback, key) => {\n\n const isOpen = useStore(startWith)\n const closing = useStore(false)\n const refIsOpen = useRefState(isOpen.get())\n const refIsClosing = useRefState(closing.get())\n const timerId = useRef()\n\n const isUnmounted = useIsUnmounted()\n\n const clearClosing = () => {\n if (refIsClosing.get() !== false) {\n closing.set(false)\n refIsClosing.set(false)\n window.clearTimeout(timerId.current)\n }\n }\n\n const toggleWith = (value = true) => {\n const calledValue = callIfFunction(value,refIsOpen.get())\n const newValue = refIsOpen.get() === calledValue ? !calledValue : calledValue\n if (!isUnmounted() && refIsOpen.get() !== newValue) {\n const result = callIfFunction(callback,newValue,refIsOpen.get())\n if (result === false) { return }\n isOpen.set(newValue)\n refIsOpen.set(newValue)\n clearClosing()\n }\n }\n\n const openWith = (value) => {\n if (process.env.NODE_ENV !== 'production' && key) {\n console.log(key,refIsOpen.get()!==value ? \"toggle\":\"clear\", refIsOpen.get(),value)\n }\n const nextValue = callIfFunction(value,refIsOpen.get())\n if (refIsOpen.get() !== nextValue) {\n toggleWith(() => nextValue)\n } else {\n clearClosing()\n }\n }\n\n const nextClosingTick = (ticks, tickIndex) => {\n if (ticks.length) {\n if (isNaN(ticks[0])) {\n clearClosing()\n } else if (!isNaN(ticks[0])) {\n closing.set(tickIndex + 1)\n refIsClosing.set(tickIndex + 1)\n timerId.current = setTimeout(() => nextClosingTick(ticks.slice(1), tickIndex + 1), Number(ticks[0]))\n }\n } else {\n openWith(false)\n }\n }\n const closeAfter = (...millisecs) => {\n if (process.env.NODE_ENV !== 'production' && key) {\n console.log(key,!refIsOpen.get() || refIsClosing.get() ? \"addCLosing\" : \"closing\" )\n }\n if (!refIsOpen.get() || refIsClosing.get()) return\n nextClosingTick(millisecs, 0)\n }\n\n const _wait = (promise, start = true, end = false) => async (...args) => {\n openWith(start)\n try {\n return await callIfFunction(promise,...args)\n } finally {\n openWith(end)\n }\n }\n\n const setters = useMemo(()=>({\n wait: (promise,start = true, end = false) => _wait(promise,start, end)(),\n willWait: _wait,\n open: (e) => {\n if (process.env.NODE_ENV !== 'production') {\n if (['string', 'number', 'boolean'].indexOf(typeof e) >= 0) {\n console.log(`You are trying to open toggle with ${e}. Please, use openWith to open with a value`)\n }\n }\n return openWith(true)\n },\n close: () => openWith(false),\n toggle: (e) => {\n if (process.env.NODE_ENV !== 'production') {\n if (['string', 'number', 'boolean'].indexOf(typeof e) >= 0) {\n console.log(`You are trying to toogle a toggle with ${e}. Please, use openWith to open with a value`)\n }\n }\n toggleWith(true)\n },\n willOpenWith: (value) => () => openWith(value),\n willCloseAfter: (...millsecs) => () => closeAfter(...millsecs),\n willToggleWith: (value) => () => toggleWith(value),\n openWith,\n closeAfter,\n toggleWith,\n get: refIsOpen.get\n }),[])\n const settersWithNewRef = {...setters}\n if (closing.val) {\n return Object.assign(settersWithNewRef, {isOpen: isOpen.val, closing: closing.val})\n } else {\n Object.defineProperties(settersWithNewRef, {\n isOpen: {\n enumerable: true,\n get: isOpen.get\n },\n closing: {\n enumerable: true,\n get: closing.get\n }\n })\n return settersWithNewRef\n }\n}\n\nexport const useToggle = (startWith, callback,key) => useToggleInternal(startWith, useCallState, callback,key)\nexport const useRefToggle = (startWith) => useToggleInternal(startWith, useRefState)"],"names":["useToggleInternal","startWith","arguments","length","undefined","useStore","callback","key","isOpen","closing","refIsOpen","useRefState","get","refIsClosing","timerId","useRef","isUnmounted","useIsUnmounted","clearClosing","set","window","clearTimeout","current","toggleWith","value","calledValue","callIfFunction","newValue","result","openWith","process","env","NODE_ENV","console","log","nextValue","nextClosingTick","ticks","tickIndex","isNaN","setTimeout","slice","Number","closeAfter","_len","millisecs","Array","_key","_wait","promise","start","end","_len2","args","_key2","setters","useMemo","wait","willWait","open","e","indexOf","concat","close","toggle","willOpenWith","willCloseAfter","_len3","millsecs","_key3","willToggleWith","settersWithNewRef","_objectSpread","val","Object","assign","defineProperties","enumerable","useToggle","useCallState","useRefToggle"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdateEffect.mjs","sources":["../../src/hooks/useUpdateEffect.js"],"sourcesContent":["import React, {useRef, useEffect} from 'react'\n\nexport const useUpdateEffect = (effect,inputs) => {\n\n const pastFirstTime = useRef()\n\n useEffect(() => {\n if (pastFirstTime.current) {\n return effect()\n } else {\n pastFirstTime.current = true\n }\n },inputs)\n}\n"],"names":["useUpdateEffect","effect","inputs","pastFirstTime","useRef","useEffect","current"],"mappings":";;MAEaA,eAAe,GAAGA,CAACC,MAAM,EAACC,MAAM,KAAK;AAEhD,EAAA,MAAMC,aAAa,GAAGC,MAAM,EAAE,CAAA;AAE9BC,EAAAA,SAAS,CAAC,MAAM;IACd,IAAIF,aAAa,CAACG,OAAO,EAAE;MACzB,OAAOL,MAAM,EAAE,CAAA;AACjB,KAAC,MAAM;MACLE,aAAa,CAACG,OAAO,GAAG,IAAI,CAAA;AAC9B,KAAA;GACD,EAACJ,MAAM,CAAC,CAAA;AACX;;;;"}
1
+ {"version":3,"file":"useUpdateEffect.mjs","sources":["../../src/hooks/useUpdateEffect.js"],"sourcesContent":["import React, {useRef, useEffect} from 'react'\n\nexport const useUpdateEffect = (effect,inputs) => {\n\n const pastFirstTime = useRef()\n\n useEffect(() => {\n if (pastFirstTime.current) {\n return effect()\n } else {\n pastFirstTime.current = true\n }\n },inputs)\n}\n"],"names":["useUpdateEffect","effect","inputs","pastFirstTime","useRef","useEffect","current"],"mappings":";;MAEaA,eAAe,GAAGA,CAACC,MAAM,EAACC,MAAM,KAAK;EAEhD,MAAMC,aAAa,GAAGC,MAAM,EAAE;EAE9BC,SAAS,CAAC,MAAM;IACd,IAAIF,aAAa,CAACG,OAAO,EAAE;MACzB,OAAOL,MAAM,EAAE;KAChB,MAAM;MACLE,aAAa,CAACG,OAAO,GAAG,IAAI;;GAE/B,EAACJ,MAAM,CAAC;AACX;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdateOnResize.mjs","sources":["../../src/hooks/useUpdateOnResize.jsx"],"sourcesContent":["import {useEffect} from 'react'\nimport {useForceUpdate} from './useForceUpdate'\nimport _ from 'lodash/fp'\n\nexport const useUpdateOnResize = (debounceInterval = 200) => {\n const update = useForceUpdate()\n useEffect(() => {\n const trigger = _.debounce(debounceInterval, update)\n window.addEventListener('resize', trigger)\n return () => {\n window.removeEventListener('resize', trigger)\n }\n },[])\n}"],"names":["useUpdateOnResize","debounceInterval","arguments","length","undefined","update","useForceUpdate","useEffect","trigger","_debounce","window","addEventListener","removeEventListener"],"mappings":";;;;AAIaA,MAAAA,iBAAiB,GAAG,YAA4B;AAAA,EAAA,IAA3BC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,GAAG,CAAA;AACtD,EAAA,MAAMG,MAAM,GAAGC,cAAc,EAAE,CAAA;AAC/BC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,MAAMC,OAAO,GAAGC,SAAA,CAAWR,gBAAgB,EAAEI,MAAM,CAAC,CAAA;AACpDK,IAAAA,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEH,OAAO,CAAC,CAAA;AAC1C,IAAA,OAAO,MAAM;AACXE,MAAAA,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEJ,OAAO,CAAC,CAAA;KAC9C,CAAA;GACF,EAAC,EAAE,CAAC,CAAA;AACP;;;;"}
1
+ {"version":3,"file":"useUpdateOnResize.mjs","sources":["../../src/hooks/useUpdateOnResize.jsx"],"sourcesContent":["import {useEffect} from 'react'\nimport {useForceUpdate} from './useForceUpdate'\nimport _ from 'lodash/fp'\n\nexport const useUpdateOnResize = (debounceInterval = 200) => {\n const update = useForceUpdate()\n useEffect(() => {\n const trigger = _.debounce(debounceInterval, update)\n window.addEventListener('resize', trigger)\n return () => {\n window.removeEventListener('resize', trigger)\n }\n },[])\n}"],"names":["useUpdateOnResize","debounceInterval","arguments","length","undefined","update","useForceUpdate","useEffect","trigger","_debounce","window","addEventListener","removeEventListener"],"mappings":";;;;MAIaA,iBAAiB,GAAG,YAA4B;EAAA,IAA3BC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EACtD,MAAMG,MAAM,GAAGC,cAAc,EAAE;EAC/BC,SAAS,CAAC,MAAM;IACd,MAAMC,OAAO,GAAGC,SAAA,CAAWR,gBAAgB,EAAEI,MAAM,CAAC;IACpDK,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEH,OAAO,CAAC;IAC1C,OAAO,MAAM;MACXE,MAAM,CAACE,mBAAmB,CAAC,QAAQ,EAAEJ,OAAO,CAAC;KAC9C;GACF,EAAC,EAAE,CAAC;AACP;;;;"}
@@ -1,5 +1,5 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
1
  import { useState, useEffect, startTransition } from 'react';
2
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
3
3
 
4
4
  const useWithTransition = value => {
5
5
  const _useState = useState(value),
@@ -1 +1 @@
1
- {"version":3,"file":"useWithTransition.mjs","sources":["../../src/hooks/useWithTransition.jsx"],"sourcesContent":["import {startTransition, useEffect, useState} from \"react\";\n\n\nexport const useWithTransition = (value) => {\n const [state,setState] = useState(value)\n\n useEffect(() => {\n startTransition(() => {\n setState(value)\n })\n },[value])\n\n return state\n}"],"names":["useWithTransition","value","_useState","useState","_useState2","_slicedToArray","state","setState","useEffect","startTransition"],"mappings":";;;AAGaA,MAAAA,iBAAiB,GAAIC,KAAK,IAAK;AAC1C,EAAA,MAAAC,SAAA,GAAyBC,QAAQ,CAACF,KAAK,CAAC;IAAAG,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAjCI,IAAAA,KAAK,GAAAF,UAAA,CAAA,CAAA,CAAA;AAACG,IAAAA,QAAQ,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAErBI,EAAAA,SAAS,CAAC,MAAM;AACdC,IAAAA,eAAe,CAAC,MAAM;MACpBF,QAAQ,CAACN,KAAK,CAAC,CAAA;AACjB,KAAC,CAAC,CAAA;AACJ,GAAC,EAAC,CAACA,KAAK,CAAC,CAAC,CAAA;AAEV,EAAA,OAAOK,KAAK,CAAA;AACd;;;;"}
1
+ {"version":3,"file":"useWithTransition.mjs","sources":["../../src/hooks/useWithTransition.jsx"],"sourcesContent":["import {startTransition, useEffect, useState} from \"react\";\n\n\nexport const useWithTransition = (value) => {\n const [state,setState] = useState(value)\n\n useEffect(() => {\n startTransition(() => {\n setState(value)\n })\n },[value])\n\n return state\n}"],"names":["useWithTransition","value","_useState","useState","_useState2","_slicedToArray","state","setState","useEffect","startTransition"],"mappings":";;;MAGaA,iBAAiB,GAAIC,KAAK,IAAK;EAC1C,MAAAC,SAAA,GAAyBC,QAAQ,CAACF,KAAK,CAAC;IAAAG,UAAA,GAAAC,cAAA,CAAAH,SAAA;IAAjCI,KAAK,GAAAF,UAAA;IAACG,QAAQ,GAAAH,UAAA;EAErBI,SAAS,CAAC,MAAM;IACdC,eAAe,CAAC,MAAM;MACpBF,QAAQ,CAACN,KAAK,CAAC;KAChB,CAAC;GACH,EAAC,CAACA,KAAK,CAAC,CAAC;EAEV,OAAOK,KAAK;AACd;;;;"}
@@ -1,7 +1,7 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
1
  import React, { useCallback, useState } from 'react';
3
- import { willUseSharedCallback } from './willUseSharedCallback.mjs';
4
2
  import { callIfFunction } from '@startlibs/utils';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import { willUseSharedCallback } from './willUseSharedCallback.mjs';
5
5
 
6
6
  const willUseLayers = function () {
7
7
  let useEffect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : React.useEffect;
@@ -1 +1 @@
1
- {"version":3,"file":"willUseLayers.mjs","sources":["../../src/hooks/willUseLayers.jsx"],"sourcesContent":["import React, {useState, useCallback} from 'react'\nimport {willUseSharedCallback} from './willUseSharedCallback'\nimport {callIfFunction} from '@startlibs/utils'\n\n\nexport const willUseLayers = (useEffect = React.useEffect) => {\n const [useRegisterSharedCallback,callGroup,getSize] = willUseSharedCallback(useEffect)\n const useLayer = ({onFirst, onEmpty, onTop, onRemove} = {}, listener) => {\n\n const resetIndex = useCallback(() => {\n setIndex(getIndex())\n if (getIndex()+1 === getSize()) {\n callIfFunction(onTop,getIndex)\n }\n },[])\n\n const getIndex = useRegisterSharedCallback(resetIndex, listener)\n const [index,setIndex] = useState(getIndex())\n\n useEffect(() => {\n if (getIndex() === 0) {\n callIfFunction(onFirst)\n }\n resetIndex()\n return () => {\n callIfFunction(onRemove,getSize())\n if (getSize() === 0) {\n callIfFunction(onEmpty)\n }\n callGroup()\n }\n },[])\n\n return [index,{\n isFirst: ()=> getIndex() === 1,\n isTop: () => getIndex() === getSize()-1,\n isEmpty: () => getSize() === 0,\n getSize: () => getSize()\n }]\n }\n return [useLayer,getSize]\n}"],"names":["willUseLayers","useEffect","arguments","length","undefined","React","_willUseSharedCallbac","willUseSharedCallback","_willUseSharedCallbac2","_slicedToArray","useRegisterSharedCallback","callGroup","getSize","useLayer","_ref","onFirst","onEmpty","onTop","onRemove","listener","resetIndex","useCallback","setIndex","getIndex","callIfFunction","_useState","useState","_useState2","index","isFirst","isTop","isEmpty"],"mappings":";;;;;AAKaA,MAAAA,aAAa,GAAG,YAAiC;AAAA,EAAA,IAAhCC,SAAS,GAAAC,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAE,CAAAA,CAAAA,KAAAA,SAAA,GAAAF,SAAA,CAAGG,CAAAA,CAAAA,GAAAA,KAAK,CAACJ,SAAS,CAAA;AACvD,EAAA,MAAAK,qBAAA,GAAsDC,qBAAqB,CAACN,SAAS,CAAC;IAAAO,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AAA/EI,IAAAA,yBAAyB,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAACG,IAAAA,SAAS,GAAAH,sBAAA,CAAA,CAAA,CAAA;AAACI,IAAAA,OAAO,GAAAJ,sBAAA,CAAA,CAAA,CAAA,CAAA;AAClD,EAAA,MAAMK,QAAQ,GAAG,YAAwD;AAAA,IAAA,IAAAC,IAAA,GAAAZ,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAjB,EAAE;MAAvCa,OAAO,GAAAD,IAAA,CAAPC,OAAO;MAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;MAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;MAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ,CAAA;IAAA,IAAQC,QAAQ,GAAAjB,SAAA,CAAAC,MAAA,GAAAD,CAAAA,GAAAA,SAAA,MAAAE,SAAA,CAAA;AAElE,IAAA,MAAMgB,UAAU,GAAGC,WAAW,CAAC,MAAM;AACnCC,MAAAA,QAAQ,CAACC,QAAQ,EAAE,CAAC,CAAA;MACpB,IAAIA,QAAQ,EAAE,GAAC,CAAC,KAAKX,OAAO,EAAE,EAAE;AAC9BY,QAAAA,cAAc,CAACP,KAAK,EAACM,QAAQ,CAAC,CAAA;AAChC,OAAA;KACD,EAAC,EAAE,CAAC,CAAA;AAEL,IAAA,MAAMA,QAAQ,GAAGb,yBAAyB,CAACU,UAAU,EAAED,QAAQ,CAAC,CAAA;AAChE,IAAA,MAAAM,SAAA,GAAyBC,QAAQ,CAACH,QAAQ,EAAE,CAAC;MAAAI,UAAA,GAAAlB,cAAA,CAAAgB,SAAA,EAAA,CAAA,CAAA;AAAtCG,MAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAACL,MAAAA,QAAQ,GAAAK,UAAA,CAAA,CAAA,CAAA,CAAA;AAErB1B,IAAAA,SAAS,CAAC,MAAM;AACd,MAAA,IAAIsB,QAAQ,EAAE,KAAK,CAAC,EAAE;QACpBC,cAAc,CAACT,OAAO,CAAC,CAAA;AACzB,OAAA;AACAK,MAAAA,UAAU,EAAE,CAAA;AACZ,MAAA,OAAO,MAAM;AACXI,QAAAA,cAAc,CAACN,QAAQ,EAACN,OAAO,EAAE,CAAC,CAAA;AAClC,QAAA,IAAIA,OAAO,EAAE,KAAK,CAAC,EAAE;UACnBY,cAAc,CAACR,OAAO,CAAC,CAAA;AACzB,SAAA;AACAL,QAAAA,SAAS,EAAE,CAAA;OACZ,CAAA;KACF,EAAC,EAAE,CAAC,CAAA;IAEL,OAAO,CAACiB,KAAK,EAAC;AACZC,MAAAA,OAAO,EAAEA,MAAKN,QAAQ,EAAE,KAAK,CAAC;MAC9BO,KAAK,EAAEA,MAAMP,QAAQ,EAAE,KAAKX,OAAO,EAAE,GAAC,CAAC;AACvCmB,MAAAA,OAAO,EAAEA,MAAMnB,OAAO,EAAE,KAAK,CAAC;AAC9BA,MAAAA,OAAO,EAAEA,MAAMA,OAAO,EAAC;AACzB,KAAC,CAAC,CAAA;GACH,CAAA;AACD,EAAA,OAAO,CAACC,QAAQ,EAACD,OAAO,CAAC,CAAA;AAC3B;;;;"}
1
+ {"version":3,"file":"willUseLayers.mjs","sources":["../../src/hooks/willUseLayers.jsx"],"sourcesContent":["import React, {useState, useCallback} from 'react'\nimport {willUseSharedCallback} from './willUseSharedCallback'\nimport {callIfFunction} from '@startlibs/utils'\n\n\nexport const willUseLayers = (useEffect = React.useEffect) => {\n const [useRegisterSharedCallback,callGroup,getSize] = willUseSharedCallback(useEffect)\n const useLayer = ({onFirst, onEmpty, onTop, onRemove} = {}, listener) => {\n\n const resetIndex = useCallback(() => {\n setIndex(getIndex())\n if (getIndex()+1 === getSize()) {\n callIfFunction(onTop,getIndex)\n }\n },[])\n\n const getIndex = useRegisterSharedCallback(resetIndex, listener)\n const [index,setIndex] = useState(getIndex())\n\n useEffect(() => {\n if (getIndex() === 0) {\n callIfFunction(onFirst)\n }\n resetIndex()\n return () => {\n callIfFunction(onRemove,getSize())\n if (getSize() === 0) {\n callIfFunction(onEmpty)\n }\n callGroup()\n }\n },[])\n\n return [index,{\n isFirst: ()=> getIndex() === 1,\n isTop: () => getIndex() === getSize()-1,\n isEmpty: () => getSize() === 0,\n getSize: () => getSize()\n }]\n }\n return [useLayer,getSize]\n}"],"names":["willUseLayers","useEffect","arguments","length","undefined","React","_willUseSharedCallbac","willUseSharedCallback","_willUseSharedCallbac2","_slicedToArray","useRegisterSharedCallback","callGroup","getSize","useLayer","_ref","onFirst","onEmpty","onTop","onRemove","listener","resetIndex","useCallback","setIndex","getIndex","callIfFunction","_useState","useState","_useState2","index","isFirst","isTop","isEmpty"],"mappings":";;;;;MAKaA,aAAa,GAAG,YAAiC;EAAA,IAAhCC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGG,KAAK,CAACJ,SAAS;EACvD,MAAAK,qBAAA,GAAsDC,qBAAqB,CAACN,SAAS,CAAC;IAAAO,sBAAA,GAAAC,cAAA,CAAAH,qBAAA;IAA/EI,yBAAyB,GAAAF,sBAAA;IAACG,SAAS,GAAAH,sBAAA;IAACI,OAAO,GAAAJ,sBAAA;EAClD,MAAMK,QAAQ,GAAG,YAAwD;IAAA,IAAAC,IAAA,GAAAZ,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAjB,EAAE;MAAvCa,OAAO,GAAAD,IAAA,CAAPC,OAAO;MAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;MAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;MAAEC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IAAA,IAAQC,QAAQ,GAAAjB,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;IAElE,MAAMgB,UAAU,GAAGC,WAAW,CAAC,MAAM;MACnCC,QAAQ,CAACC,QAAQ,EAAE,CAAC;MACpB,IAAIA,QAAQ,EAAE,GAAC,CAAC,KAAKX,OAAO,EAAE,EAAE;QAC9BY,cAAc,CAACP,KAAK,EAACM,QAAQ,CAAC;;KAEjC,EAAC,EAAE,CAAC;IAEL,MAAMA,QAAQ,GAAGb,yBAAyB,CAACU,UAAU,EAAED,QAAQ,CAAC;IAChE,MAAAM,SAAA,GAAyBC,QAAQ,CAACH,QAAQ,EAAE,CAAC;MAAAI,UAAA,GAAAlB,cAAA,CAAAgB,SAAA;MAAtCG,KAAK,GAAAD,UAAA;MAACL,QAAQ,GAAAK,UAAA;IAErB1B,SAAS,CAAC,MAAM;MACd,IAAIsB,QAAQ,EAAE,KAAK,CAAC,EAAE;QACpBC,cAAc,CAACT,OAAO,CAAC;;MAEzBK,UAAU,EAAE;MACZ,OAAO,MAAM;QACXI,cAAc,CAACN,QAAQ,EAACN,OAAO,EAAE,CAAC;QAClC,IAAIA,OAAO,EAAE,KAAK,CAAC,EAAE;UACnBY,cAAc,CAACR,OAAO,CAAC;;QAEzBL,SAAS,EAAE;OACZ;KACF,EAAC,EAAE,CAAC;IAEL,OAAO,CAACiB,KAAK,EAAC;MACZC,OAAO,EAAEA,MAAKN,QAAQ,EAAE,KAAK,CAAC;MAC9BO,KAAK,EAAEA,MAAMP,QAAQ,EAAE,KAAKX,OAAO,EAAE,GAAC,CAAC;MACvCmB,OAAO,EAAEA,MAAMnB,OAAO,EAAE,KAAK,CAAC;MAC9BA,OAAO,EAAEA,MAAMA,OAAO;KACvB,CAAC;GACH;EACD,OAAO,CAACC,QAAQ,EAACD,OAAO,CAAC;AAC3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"willUseSharedCallback.mjs","sources":["../../src/hooks/willUseSharedCallback.jsx"],"sourcesContent":["import React, {useRef} from 'react'\n\n\nconst callList = (list, firstArg, ...args) => list.map(({current}) => typeof firstArg === 'function' ? firstArg(current) : current(firstArg,...args))\n\nexport const willUseSharedCallback = (useEffect = React.useEffect) => {\n let mountedCallbacks = []\n let listenerCallbacks = []\n const remove = (ref) => mountedCallbacks = mountedCallbacks.filter(_ => _ !== ref)\n const add = (ref) => mountedCallbacks = mountedCallbacks.concat([ref])\n const get = () => mountedCallbacks\n\n const removeListener = (ref) => listenerCallbacks = listenerCallbacks.filter(_ => _ !== ref)\n const addListener = (ref) => listenerCallbacks = listenerCallbacks.concat([ref])\n const getListeners = (ref) => listenerCallbacks\n\n const lastCall = {current:null,index:0}\n\n const call = (...args) => {\n const resp = callList(get(), ...args)\n callList(getListeners(), ...args)\n lastCall.current = args\n lastCall.index++\n return resp\n }\n const getSize = () => get().length\n\n const useRegister = (callback, listener = false) => {\n const ref = useRef(callback)\n if (ref.current !== callback) {\n ref.current = callback\n }\n const lastCallIndex = lastCall.index\n useEffect(() => {\n if (!ref.current) { return }\n if (listener) {\n addListener(ref)\n } else {\n add(ref)\n if (lastCallIndex !== lastCall.index && lastCall.current) {\n callList([ref],...lastCall.current)\n }\n }\n return () => {\n if (listener) {\n removeListener(ref)\n } else {\n remove(ref)\n }\n }\n }, [])\n return () => get().indexOf(ref)\n }\n\n return [\n useRegister,\n call,\n getSize\n ]\n}"],"names":["callList","list","firstArg","_len","arguments","length","args","Array","_key","map","_ref","current","willUseSharedCallback","useEffect","undefined","React","mountedCallbacks","listenerCallbacks","remove","ref","filter","_","add","concat","get","removeListener","addListener","getListeners","lastCall","index","call","_len2","_key2","resp","getSize","useRegister","callback","listener","useRef","lastCallIndex","indexOf"],"mappings":"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"}
1
+ {"version":3,"file":"willUseSharedCallback.mjs","sources":["../../src/hooks/willUseSharedCallback.jsx"],"sourcesContent":["import React, {useRef} from 'react'\n\n\nconst callList = (list, firstArg, ...args) => list.map(({current}) => typeof firstArg === 'function' ? firstArg(current) : current(firstArg,...args))\n\nexport const willUseSharedCallback = (useEffect = React.useEffect) => {\n let mountedCallbacks = []\n let listenerCallbacks = []\n const remove = (ref) => mountedCallbacks = mountedCallbacks.filter(_ => _ !== ref)\n const add = (ref) => mountedCallbacks = mountedCallbacks.concat([ref])\n const get = () => mountedCallbacks\n\n const removeListener = (ref) => listenerCallbacks = listenerCallbacks.filter(_ => _ !== ref)\n const addListener = (ref) => listenerCallbacks = listenerCallbacks.concat([ref])\n const getListeners = (ref) => listenerCallbacks\n\n const lastCall = {current:null,index:0}\n\n const call = (...args) => {\n const resp = callList(get(), ...args)\n callList(getListeners(), ...args)\n lastCall.current = args\n lastCall.index++\n return resp\n }\n const getSize = () => get().length\n\n const useRegister = (callback, listener = false) => {\n const ref = useRef(callback)\n if (ref.current !== callback) {\n ref.current = callback\n }\n const lastCallIndex = lastCall.index\n useEffect(() => {\n if (!ref.current) { return }\n if (listener) {\n addListener(ref)\n } else {\n add(ref)\n if (lastCallIndex !== lastCall.index && lastCall.current) {\n callList([ref],...lastCall.current)\n }\n }\n return () => {\n if (listener) {\n removeListener(ref)\n } else {\n remove(ref)\n }\n }\n }, [])\n return () => get().indexOf(ref)\n }\n\n return [\n useRegister,\n call,\n getSize\n ]\n}"],"names":["callList","list","firstArg","_len","arguments","length","args","Array","_key","map","_ref","current","willUseSharedCallback","useEffect","undefined","React","mountedCallbacks","listenerCallbacks","remove","ref","filter","_","add","concat","get","removeListener","addListener","getListeners","lastCall","index","call","_len2","_key2","resp","getSize","useRegister","callback","listener","useRef","lastCallIndex","indexOf"],"mappings":";;AAGA,MAAMA,QAAQ,GAAG,UAACC,IAAI,EAAEC,QAAQ;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAKC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;;EAAA,OAAKP,IAAI,CAACQ,GAAG,CAACC,IAAA;IAAA,IAAEC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAA,OAAM,OAAOT,QAAQ,KAAK,UAAU,GAAGA,QAAQ,CAACS,OAAO,CAAC,GAAGA,OAAO,CAACT,QAAQ,EAAC,GAAGI,IAAI,CAAC;IAAC;AAAA;MAExIM,qBAAqB,GAAG,YAAiC;EAAA,IAAhCC,SAAS,GAAAT,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAU,SAAA,GAAAV,SAAA,MAAGW,KAAK,CAACF,SAAS;EAC/D,IAAIG,gBAAgB,GAAG,EAAE;EACzB,IAAIC,iBAAiB,GAAG,EAAE;EAC1B,MAAMC,MAAM,GAAIC,GAAG,IAAKH,gBAAgB,GAAGA,gBAAgB,CAACI,MAAM,CAACC,CAAC,IAAIA,CAAC,KAAKF,GAAG,CAAC;EAClF,MAAMG,GAAG,GAAIH,GAAG,IAAKH,gBAAgB,GAAGA,gBAAgB,CAACO,MAAM,CAAC,CAACJ,GAAG,CAAC,CAAC;EACtE,MAAMK,GAAG,GAAGA,MAAMR,gBAAgB;EAElC,MAAMS,cAAc,GAAIN,GAAG,IAAKF,iBAAiB,GAAGA,iBAAiB,CAACG,MAAM,CAACC,CAAC,IAAIA,CAAC,KAAKF,GAAG,CAAC;EAC5F,MAAMO,WAAW,GAAIP,GAAG,IAAKF,iBAAiB,GAAGA,iBAAiB,CAACM,MAAM,CAAC,CAACJ,GAAG,CAAC,CAAC;EAChF,MAAMQ,YAAY,GAAIR,GAAG,IAAKF,iBAAiB;EAE/C,MAAMW,QAAQ,GAAG;IAACjB,OAAO,EAAC,IAAI;IAACkB,KAAK,EAAC;GAAE;EAEvC,MAAMC,IAAI,GAAG,YAAa;IAAA,SAAAC,KAAA,GAAA3B,SAAA,CAAAC,MAAA,EAATC,IAAI,OAAAC,KAAA,CAAAwB,KAAA,GAAAC,KAAA,MAAAA,KAAA,GAAAD,KAAA,EAAAC,KAAA;MAAJ1B,IAAI,CAAA0B,KAAA,IAAA5B,SAAA,CAAA4B,KAAA;;IACnB,MAAMC,IAAI,GAAGjC,QAAQ,CAACwB,GAAG,EAAE,EAAE,GAAGlB,IAAI,CAAC;IACrCN,QAAQ,CAAC2B,YAAY,EAAE,EAAE,GAAGrB,IAAI,CAAC;IACjCsB,QAAQ,CAACjB,OAAO,GAAGL,IAAI;IACvBsB,QAAQ,CAACC,KAAK,EAAE;IAChB,OAAOI,IAAI;GACZ;EACD,MAAMC,OAAO,GAAGA,MAAMV,GAAG,EAAE,CAACnB,MAAM;EAElC,MAAM8B,WAAW,GAAG,UAACC,QAAQ,EAAuB;IAAA,IAArBC,QAAQ,GAAAjC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAU,SAAA,GAAAV,SAAA,MAAG,KAAK;IAC7C,MAAMe,GAAG,GAAGmB,MAAM,CAACF,QAAQ,CAAC;IAC5B,IAAIjB,GAAG,CAACR,OAAO,KAAKyB,QAAQ,EAAE;MAC5BjB,GAAG,CAACR,OAAO,GAAGyB,QAAQ;;IAExB,MAAMG,aAAa,GAAGX,QAAQ,CAACC,KAAK;IACpChB,SAAS,CAAC,MAAM;MACd,IAAI,CAACM,GAAG,CAACR,OAAO,EAAE;QAAE;;MACpB,IAAI0B,QAAQ,EAAE;QACZX,WAAW,CAACP,GAAG,CAAC;OACjB,MAAM;QACLG,GAAG,CAACH,GAAG,CAAC;QACR,IAAIoB,aAAa,KAAKX,QAAQ,CAACC,KAAK,IAAID,QAAQ,CAACjB,OAAO,EAAE;UACxDX,QAAQ,CAAC,CAACmB,GAAG,CAAC,EAAC,GAAGS,QAAQ,CAACjB,OAAO,CAAC;;;MAGvC,OAAO,MAAM;QACX,IAAI0B,QAAQ,EAAE;UACZZ,cAAc,CAACN,GAAG,CAAC;SACpB,MAAM;UACLD,MAAM,CAACC,GAAG,CAAC;;OAEd;KACF,EAAE,EAAE,CAAC;IACN,OAAO,MAAMK,GAAG,EAAE,CAACgB,OAAO,CAACrB,GAAG,CAAC;GAChC;EAED,OAAO,CACLgB,WAAW,EACXL,IAAI,EACJI,OAAO,CACR;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
1
  import { useState } from 'react';
3
2
  import { ifUndefined, callIfFunction } from '@startlibs/utils';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
4
  import { willUseSharedCallback } from './willUseSharedCallback.mjs';
5
5
 
6
6
  const notDefined = {};
@@ -8,8 +8,8 @@ const willUseSharedState = initialValue => {
8
8
  const _willUseSharedCallbac = willUseSharedCallback(),
9
9
  _willUseSharedCallbac2 = _slicedToArray(_willUseSharedCallbac, 3),
10
10
  useRegisterGroupCallback = _willUseSharedCallbac2[0],
11
- callGroup = _willUseSharedCallbac2[1];
12
- _willUseSharedCallbac2[2];
11
+ callGroup = _willUseSharedCallbac2[1],
12
+ getSize = _willUseSharedCallbac2[2];
13
13
  let sharedValue = ifUndefined(initialValue, notDefined);
14
14
  const setGroupState = newValue => {
15
15
  sharedValue = callIfFunction(newValue, sharedValue);
@@ -1 +1 @@
1
- {"version":3,"file":"willUseSharedState.mjs","sources":["../../src/hooks/willUseSharedState.jsx"],"sourcesContent":["import React, {useState} from 'react'\nimport {callIfFunction, ifUndefined} from '@startlibs/utils'\nimport {willUseSharedCallback} from './willUseSharedCallback'\n\nconst notDefined = {}\n\nexport const willUseSharedState = (initialValue) => {\n const [useRegisterGroupCallback,callGroup,getSize] = willUseSharedCallback()\n let sharedValue = ifUndefined(initialValue,notDefined)\n\n const setGroupState = (newValue) => {\n sharedValue = callIfFunction(newValue,sharedValue)\n callGroup(sharedValue)\n }\n\n const refState = () => {\n useRegisterGroupCallback()\n return [()=>sharedValue,setGroupState]\n }\n\n const valueState = (defaultValue) => {\n const prevValue = sharedValue !== notDefined ? sharedValue : defaultValue\n if (prevValue === defaultValue) {\n sharedValue = defaultValue\n }\n const [value, setValue] = useState(prevValue)\n useRegisterGroupCallback(setValue)\n return [value,setGroupState]\n }\n const clear = () => {\n sharedValue = notDefined\n }\n return [valueState,refState,setGroupState,()=>sharedValue,clear]\n}"],"names":["notDefined","willUseSharedState","initialValue","_willUseSharedCallbac","willUseSharedCallback","_willUseSharedCallbac2","_slicedToArray","useRegisterGroupCallback","callGroup","getSize","sharedValue","ifUndefined","setGroupState","newValue","callIfFunction","refState","valueState","defaultValue","prevValue","_useState","useState","_useState2","value","setValue","clear"],"mappings":";;;;;AAIA,MAAMA,UAAU,GAAG,EAAE,CAAA;AAERC,MAAAA,kBAAkB,GAAIC,YAAY,IAAK;AAClD,EAAA,MAAAC,qBAAA,GAAqDC,qBAAqB,EAAE,CAAA;IAAAC,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA,CAAA;AAArEI,IAAAA,wBAAwB,GAAAF,sBAAA,CAAA,CAAA,CAAA,CAAA;AAACG,IAAAA,SAAS,GAAAH,sBAAA,CAAA,CAAA,CAAA,CAAA;AAACI,IAAOJ,sBAAA,CAAA,CAAA,EAAA;AACjD,EAAA,IAAIK,WAAW,GAAGC,WAAW,CAACT,YAAY,EAACF,UAAU,CAAC,CAAA;EAEtD,MAAMY,aAAa,GAAIC,QAAQ,IAAK;AAClCH,IAAAA,WAAW,GAAGI,cAAc,CAACD,QAAQ,EAACH,WAAW,CAAC,CAAA;IAClDF,SAAS,CAACE,WAAW,CAAC,CAAA;GACvB,CAAA;EAED,MAAMK,QAAQ,GAAGA,MAAM;AACrBR,IAAAA,wBAAwB,EAAE,CAAA;AAC1B,IAAA,OAAO,CAAC,MAAIG,WAAW,EAACE,aAAa,CAAC,CAAA;GACvC,CAAA;EAED,MAAMI,UAAU,GAAIC,YAAY,IAAK;IACnC,MAAMC,SAAS,GAAGR,WAAW,KAAKV,UAAU,GAAGU,WAAW,GAAGO,YAAY,CAAA;IACzE,IAAIC,SAAS,KAAKD,YAAY,EAAE;AAC9BP,MAAAA,WAAW,GAAGO,YAAY,CAAA;AAC5B,KAAA;AACA,IAAA,MAAAE,SAAA,GAA0BC,QAAQ,CAACF,SAAS,CAAC;MAAAG,UAAA,GAAAf,cAAA,CAAAa,SAAA,EAAA,CAAA,CAAA;AAAtCG,MAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IACtBd,wBAAwB,CAACgB,QAAQ,CAAC,CAAA;AAClC,IAAA,OAAO,CAACD,KAAK,EAACV,aAAa,CAAC,CAAA;GAC7B,CAAA;EACD,MAAMY,KAAK,GAAGA,MAAM;AAClBd,IAAAA,WAAW,GAAGV,UAAU,CAAA;GACzB,CAAA;EACD,OAAO,CAACgB,UAAU,EAACD,QAAQ,EAACH,aAAa,EAAC,MAAIF,WAAW,EAACc,KAAK,CAAC,CAAA;AAClE;;;;"}
1
+ {"version":3,"file":"willUseSharedState.mjs","sources":["../../src/hooks/willUseSharedState.jsx"],"sourcesContent":["import React, {useState} from 'react'\nimport {callIfFunction, ifUndefined} from '@startlibs/utils'\nimport {willUseSharedCallback} from './willUseSharedCallback'\n\nconst notDefined = {}\n\nexport const willUseSharedState = (initialValue) => {\n const [useRegisterGroupCallback,callGroup,getSize] = willUseSharedCallback()\n let sharedValue = ifUndefined(initialValue,notDefined)\n\n const setGroupState = (newValue) => {\n sharedValue = callIfFunction(newValue,sharedValue)\n callGroup(sharedValue)\n }\n\n const refState = () => {\n useRegisterGroupCallback()\n return [()=>sharedValue,setGroupState]\n }\n\n const valueState = (defaultValue) => {\n const prevValue = sharedValue !== notDefined ? sharedValue : defaultValue\n if (prevValue === defaultValue) {\n sharedValue = defaultValue\n }\n const [value, setValue] = useState(prevValue)\n useRegisterGroupCallback(setValue)\n return [value,setGroupState]\n }\n const clear = () => {\n sharedValue = notDefined\n }\n return [valueState,refState,setGroupState,()=>sharedValue,clear]\n}"],"names":["notDefined","willUseSharedState","initialValue","_willUseSharedCallbac","willUseSharedCallback","_willUseSharedCallbac2","_slicedToArray","useRegisterGroupCallback","callGroup","getSize","sharedValue","ifUndefined","setGroupState","newValue","callIfFunction","refState","valueState","defaultValue","prevValue","_useState","useState","_useState2","value","setValue","clear"],"mappings":";;;;;AAIA,MAAMA,UAAU,GAAG,EAAE;MAERC,kBAAkB,GAAIC,YAAY,IAAK;EAClD,MAAAC,qBAAA,GAAqDC,qBAAqB,EAAE;IAAAC,sBAAA,GAAAC,cAAA,CAAAH,qBAAA;IAArEI,wBAAwB,GAAAF,sBAAA;IAACG,SAAS,GAAAH,sBAAA;IAACI,OAAO,GAAAJ,sBAAA;EACjD,IAAIK,WAAW,GAAGC,WAAW,CAACT,YAAY,EAACF,UAAU,CAAC;EAEtD,MAAMY,aAAa,GAAIC,QAAQ,IAAK;IAClCH,WAAW,GAAGI,cAAc,CAACD,QAAQ,EAACH,WAAW,CAAC;IAClDF,SAAS,CAACE,WAAW,CAAC;GACvB;EAED,MAAMK,QAAQ,GAAGA,MAAM;IACrBR,wBAAwB,EAAE;IAC1B,OAAO,CAAC,MAAIG,WAAW,EAACE,aAAa,CAAC;GACvC;EAED,MAAMI,UAAU,GAAIC,YAAY,IAAK;IACnC,MAAMC,SAAS,GAAGR,WAAW,KAAKV,UAAU,GAAGU,WAAW,GAAGO,YAAY;IACzE,IAAIC,SAAS,KAAKD,YAAY,EAAE;MAC9BP,WAAW,GAAGO,YAAY;;IAE5B,MAAAE,SAAA,GAA0BC,QAAQ,CAACF,SAAS,CAAC;MAAAG,UAAA,GAAAf,cAAA,CAAAa,SAAA;MAAtCG,KAAK,GAAAD,UAAA;MAAEE,QAAQ,GAAAF,UAAA;IACtBd,wBAAwB,CAACgB,QAAQ,CAAC;IAClC,OAAO,CAACD,KAAK,EAACV,aAAa,CAAC;GAC7B;EACD,MAAMY,KAAK,GAAGA,MAAM;IAClBd,WAAW,GAAGV,UAAU;GACzB;EACD,OAAO,CAACgB,UAAU,EAACD,QAAQ,EAACH,aAAa,EAAC,MAAIF,WAAW,EAACc,KAAK,CAAC;AAClE;;;;"}
@@ -1,15 +1,15 @@
1
+ import React, { useEffect, useMemo, useContext, useState, useCallback } from 'react';
2
+ import { formatPath, _s } from '@startlibs/utils';
1
3
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
4
  import _set from 'lodash/fp/set';
3
5
  import _update from 'lodash/fp/update';
6
+ import { useIsUnmounted } from './useIsUnmounted.mjs';
7
+ import { useRefState } from './useRefState.mjs';
4
8
  import _isFunction from 'lodash/fp/isFunction';
5
9
  import _get from 'lodash/fp/get';
6
10
  import _isArray from 'lodash/fp/isArray';
7
11
  import _isString from 'lodash/fp/isString';
8
- import React, { useEffect, useMemo, useContext, useState, useCallback } from 'react';
9
- import { formatPath, _s } from '@startlibs/utils';
10
12
  import { useConsumerCatalog, useCatalogManager } from './useConsumerCatalog.mjs';
11
- import { useIsUnmounted } from './useIsUnmounted.mjs';
12
- import { useRefState } from './useRefState.mjs';
13
13
 
14
14
  const updateAllInputsState = (inputs, values) => {
15
15
  const deferedUndefined = [];
@@ -1 +1 @@
1
- {"version":3,"file":"willUseSpreadState.mjs","sources":["../../src/hooks/willUseSpreadState.jsx"],"sourcesContent":["import React, {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {_s, formatPath} from '@startlibs/utils'\nimport _ from 'lodash/fp'\nimport {useCatalogManager, useConsumerCatalog} from './useConsumerCatalog'\nimport {useIsUnmounted} from './useIsUnmounted'\nimport {useRefState} from './useRefState'\n\nconst updateAllInputsState = (inputs, values) => {\n const deferedUndefined = []\n inputs.forEach((input) => {\n const [setValue, selector] = input\n const newValue = selector(values)\n if (newValue === undefined) {\n deferedUndefined.push([setValue,newValue])\n } else {\n setValue(newValue)\n }\n })\n deferedUndefined.forEach(([set,value])=> set(value))\n}\n\nconst pathSelector = (path) => _s.get(path || [])\nconst parsePathOrSelector = (pathOrSelector) => {\n const isNotSelector = typeof pathOrSelector !== 'function'\n if (isNotSelector) {\n return [formatPath(pathOrSelector), pathSelector(pathOrSelector)]\n } else {\n return ['', pathOrSelector]\n }\n}\nexport const willUseSpreadState = (defaultContextValue,options = {}) => {\n\n const Context = React.createContext(defaultContextValue)\n const EMPTY_GLOBAL = {}\n let prevInitState = EMPTY_GLOBAL\n let globalState = EMPTY_GLOBAL\n const getGlobalState = (key) => _.isString(key) || _.isArray(key) ? _.get(key,globalState) : globalState\n\n const useProvideSpreadState = (initState, setCallback) => {\n const [consumerList, manager] = useConsumerCatalog((input) => updateAllInputsState([input], state.get()))\n const state = useRefState(initState, setCallback)\n\n if (options.initRefCheck) {\n if (prevInitState !== initState) {\n globalState = initState\n }\n prevInitState = initState\n }\n\n if (globalState === EMPTY_GLOBAL) {\n globalState = initState\n }\n useEffect(() => {\n globalState = state.get()\n },[])\n\n const setState = (newState, fastPath, config) => {\n // console.log(\"Fastpath noop:\"+fastPath)\n state.set(newState, config)\n globalState = state.get()\n updateAllInputsState(consumerList(), state.get())\n }\n const contextValue = useMemo(() => [state.get, setState, manager], [])\n\n return [Context.Provider, contextValue, [state.get, setState]]\n }\n\n const useSpreadState = (pathOrSelector, inputs) => {\n const [getSpreadState, setSpreadState, manager] = useContext(Context)\n const [path, selector] = parsePathOrSelector(pathOrSelector)\n const pathOrInput = [path] || inputs || []\n const [value, setValue] = useState(selector(getSpreadState()))\n\n const isUnmounted = useIsUnmounted()\n\n const currentPath = useRefState(path)\n if (path !== currentPath.get()) {\n /* when path changes, the consumerCatalogCallback will update the new value\n * another solution would be to call setValue here directly\n * the return value will still be the old, but will be changed before render, just like getDerivedStateFromProps\n *\n * if there's a need for the return value to be the same, the value or, if enters here new value,\n * can be returned in an temp variable\n * */\n currentPath.set(path)\n }\n\n const input = useMemo(() => [(v) => {\n /* noop for elements that may be unregistered while looping through consumerList */\n if (path === currentPath.get() && !isUnmounted()) {\n setValue(v)\n }\n }, selector], pathOrInput)\n\n useCatalogManager(manager, input)\n const setState = useCallback((v) => setSpreadState((_.isFunction(v) ? (pathOrSelector === undefined ? () => v : _.update) : _.set)(path, v), path), pathOrInput)\n const getValue = () => selector(getGlobalState())\n return [value, setState, getValue]\n }\n\n\n return [useProvideSpreadState, useSpreadState, Context, getGlobalState]\n}"],"names":["updateAllInputsState","inputs","values","deferedUndefined","forEach","input","_input","_slicedToArray","setValue","selector","newValue","undefined","push","_ref","_ref2","set","value","pathSelector","path","_s","get","parsePathOrSelector","pathOrSelector","isNotSelector","formatPath","willUseSpreadState","defaultContextValue","options","arguments","length","Context","React","createContext","EMPTY_GLOBAL","prevInitState","globalState","getGlobalState","key","_isString","_isArray","_get","useProvideSpreadState","initState","setCallback","_useConsumerCatalog","useConsumerCatalog","state","_useConsumerCatalog2","consumerList","manager","useRefState","initRefCheck","useEffect","setState","newState","fastPath","config","contextValue","useMemo","Provider","useSpreadState","_useContext","useContext","_useContext2","getSpreadState","setSpreadState","_parsePathOrSelector","_parsePathOrSelector2","pathOrInput","_useState","useState","_useState2","isUnmounted","useIsUnmounted","currentPath","v","useCatalogManager","useCallback","_isFunction","_update","_set","getValue"],"mappings":"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"}
1
+ {"version":3,"file":"willUseSpreadState.mjs","sources":["../../src/hooks/willUseSpreadState.jsx"],"sourcesContent":["import React, {useCallback, useContext, useEffect, useMemo, useState} from 'react'\nimport {_s, formatPath} from '@startlibs/utils'\nimport _ from 'lodash/fp'\nimport {useCatalogManager, useConsumerCatalog} from './useConsumerCatalog'\nimport {useIsUnmounted} from './useIsUnmounted'\nimport {useRefState} from './useRefState'\n\nconst updateAllInputsState = (inputs, values) => {\n const deferedUndefined = []\n inputs.forEach((input) => {\n const [setValue, selector] = input\n const newValue = selector(values)\n if (newValue === undefined) {\n deferedUndefined.push([setValue,newValue])\n } else {\n setValue(newValue)\n }\n })\n deferedUndefined.forEach(([set,value])=> set(value))\n}\n\nconst pathSelector = (path) => _s.get(path || [])\nconst parsePathOrSelector = (pathOrSelector) => {\n const isNotSelector = typeof pathOrSelector !== 'function'\n if (isNotSelector) {\n return [formatPath(pathOrSelector), pathSelector(pathOrSelector)]\n } else {\n return ['', pathOrSelector]\n }\n}\nexport const willUseSpreadState = (defaultContextValue,options = {}) => {\n\n const Context = React.createContext(defaultContextValue)\n const EMPTY_GLOBAL = {}\n let prevInitState = EMPTY_GLOBAL\n let globalState = EMPTY_GLOBAL\n const getGlobalState = (key) => _.isString(key) || _.isArray(key) ? _.get(key,globalState) : globalState\n\n const useProvideSpreadState = (initState, setCallback) => {\n const [consumerList, manager] = useConsumerCatalog((input) => updateAllInputsState([input], state.get()))\n const state = useRefState(initState, setCallback)\n\n if (options.initRefCheck) {\n if (prevInitState !== initState) {\n globalState = initState\n }\n prevInitState = initState\n }\n\n if (globalState === EMPTY_GLOBAL) {\n globalState = initState\n }\n useEffect(() => {\n globalState = state.get()\n },[])\n\n const setState = (newState, fastPath, config) => {\n // console.log(\"Fastpath noop:\"+fastPath)\n state.set(newState, config)\n globalState = state.get()\n updateAllInputsState(consumerList(), state.get())\n }\n const contextValue = useMemo(() => [state.get, setState, manager], [])\n\n return [Context.Provider, contextValue, [state.get, setState]]\n }\n\n const useSpreadState = (pathOrSelector, inputs) => {\n const [getSpreadState, setSpreadState, manager] = useContext(Context)\n const [path, selector] = parsePathOrSelector(pathOrSelector)\n const pathOrInput = [path] || inputs || []\n const [value, setValue] = useState(selector(getSpreadState()))\n\n const isUnmounted = useIsUnmounted()\n\n const currentPath = useRefState(path)\n if (path !== currentPath.get()) {\n /* when path changes, the consumerCatalogCallback will update the new value\n * another solution would be to call setValue here directly\n * the return value will still be the old, but will be changed before render, just like getDerivedStateFromProps\n *\n * if there's a need for the return value to be the same, the value or, if enters here new value,\n * can be returned in an temp variable\n * */\n currentPath.set(path)\n }\n\n const input = useMemo(() => [(v) => {\n /* noop for elements that may be unregistered while looping through consumerList */\n if (path === currentPath.get() && !isUnmounted()) {\n setValue(v)\n }\n }, selector], pathOrInput)\n\n useCatalogManager(manager, input)\n const setState = useCallback((v) => setSpreadState((_.isFunction(v) ? (pathOrSelector === undefined ? () => v : _.update) : _.set)(path, v), path), pathOrInput)\n const getValue = () => selector(getGlobalState())\n return [value, setState, getValue]\n }\n\n\n return [useProvideSpreadState, useSpreadState, Context, getGlobalState]\n}"],"names":["updateAllInputsState","inputs","values","deferedUndefined","forEach","input","_input","_slicedToArray","setValue","selector","newValue","undefined","push","_ref","_ref2","set","value","pathSelector","path","_s","get","parsePathOrSelector","pathOrSelector","isNotSelector","formatPath","willUseSpreadState","defaultContextValue","options","arguments","length","Context","React","createContext","EMPTY_GLOBAL","prevInitState","globalState","getGlobalState","key","_isString","_isArray","_get","useProvideSpreadState","initState","setCallback","_useConsumerCatalog","useConsumerCatalog","state","_useConsumerCatalog2","consumerList","manager","useRefState","initRefCheck","useEffect","setState","newState","fastPath","config","contextValue","useMemo","Provider","useSpreadState","_useContext","useContext","_useContext2","getSpreadState","setSpreadState","_parsePathOrSelector","_parsePathOrSelector2","pathOrInput","_useState","useState","_useState2","isUnmounted","useIsUnmounted","currentPath","v","useCatalogManager","useCallback","_isFunction","_update","_set","getValue"],"mappings":"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"}