@startlibs/core 1.0.7 → 1.2.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/lib/SlotFill.mjs +232 -0
  2. package/lib/SlotFill.mjs.map +1 -0
  3. package/lib/StartlibsProvider.mjs +62 -0
  4. package/lib/StartlibsProvider.mjs.map +1 -0
  5. package/lib/hocs/WithLazyResource.mjs +74 -0
  6. package/lib/hocs/WithLazyResource.mjs.map +1 -0
  7. package/lib/hocs/WithRef.mjs +20 -0
  8. package/lib/hocs/WithRef.mjs.map +1 -0
  9. package/lib/hocs/consumes.mjs +22 -0
  10. package/lib/hocs/consumes.mjs.map +1 -0
  11. package/lib/hocs/withDialogError.mjs +22 -0
  12. package/lib/hocs/withDialogError.mjs.map +1 -0
  13. package/lib/hocs/withGroupEvent.mjs +45 -0
  14. package/lib/hocs/withGroupEvent.mjs.map +1 -0
  15. package/lib/hooks/WithConstant.mjs +13 -0
  16. package/lib/hooks/WithConstant.mjs.map +1 -0
  17. package/lib/hooks/WithEffect.mjs +12 -0
  18. package/lib/hooks/WithEffect.mjs.map +1 -0
  19. package/lib/hooks/useAsyncEffect.mjs +14 -0
  20. package/lib/hooks/useAsyncEffect.mjs.map +1 -0
  21. package/lib/hooks/useCallState.mjs +21 -0
  22. package/lib/hooks/useCallState.mjs.map +1 -0
  23. package/lib/hooks/useCallbackStable.mjs +17 -0
  24. package/lib/hooks/useCallbackStable.mjs.map +1 -0
  25. package/lib/hooks/useConstant.mjs +21 -0
  26. package/lib/hooks/useConstant.mjs.map +1 -0
  27. package/lib/hooks/useConsumerCatalog.mjs +25 -0
  28. package/lib/hooks/useConsumerCatalog.mjs.map +1 -0
  29. package/lib/hooks/useEnsureRef.mjs +9 -0
  30. package/lib/hooks/useEnsureRef.mjs.map +1 -0
  31. package/lib/hooks/useForceUpdate.mjs +28 -0
  32. package/lib/hooks/useForceUpdate.mjs.map +1 -0
  33. package/lib/hooks/useIsUnmounted.mjs +15 -0
  34. package/lib/hooks/useIsUnmounted.mjs.map +1 -0
  35. package/lib/hooks/usePopupToggle.mjs +33 -0
  36. package/lib/hooks/usePopupToggle.mjs.map +1 -0
  37. package/lib/hooks/usePrevious.mjs +28 -0
  38. package/lib/hooks/usePrevious.mjs.map +1 -0
  39. package/lib/hooks/useRecycleFocus.mjs +36 -0
  40. package/lib/hooks/useRecycleFocus.mjs.map +1 -0
  41. package/lib/hooks/useRefMemo.mjs +13 -0
  42. package/lib/hooks/useRefMemo.mjs.map +1 -0
  43. package/lib/hooks/useRefState.mjs +29 -0
  44. package/lib/hooks/useRefState.mjs.map +1 -0
  45. package/lib/hooks/useSignal.mjs +271 -0
  46. package/lib/hooks/useSignal.mjs.map +1 -0
  47. package/lib/hooks/useTitle.mjs +17 -0
  48. package/lib/hooks/useTitle.mjs.map +1 -0
  49. package/lib/hooks/useToggle.mjs +152 -0
  50. package/lib/hooks/useToggle.mjs.map +1 -0
  51. package/lib/hooks/useUpdateEffect.mjs +15 -0
  52. package/lib/hooks/useUpdateEffect.mjs.map +1 -0
  53. package/lib/hooks/useUpdateOnResize.mjs +18 -0
  54. package/lib/hooks/useUpdateOnResize.mjs.map +1 -0
  55. package/lib/hooks/useWithTransition.mjs +18 -0
  56. package/lib/hooks/useWithTransition.mjs.map +1 -0
  57. package/lib/hooks/willUseLayers.mjs +55 -0
  58. package/lib/hooks/willUseLayers.mjs.map +1 -0
  59. package/lib/hooks/willUseSharedCallback.mjs +70 -0
  60. package/lib/hooks/willUseSharedCallback.mjs.map +1 -0
  61. package/lib/hooks/willUseSharedState.mjs +41 -0
  62. package/lib/hooks/willUseSharedState.mjs.map +1 -0
  63. package/lib/hooks/willUseSpreadState.mjs +119 -0
  64. package/lib/hooks/willUseSpreadState.mjs.map +1 -0
  65. package/lib/index.cjs +1474 -0
  66. package/lib/index.cjs.map +1 -0
  67. package/lib/index.mjs +33 -0
  68. package/lib/index.mjs.map +1 -0
  69. package/lib-yak/SlotFill.mjs +230 -0
  70. package/lib-yak/SlotFill.mjs.map +1 -0
  71. package/lib-yak/StartlibsProvider.mjs +62 -0
  72. package/lib-yak/StartlibsProvider.mjs.map +1 -0
  73. package/lib-yak/hocs/WithLazyResource.mjs +74 -0
  74. package/lib-yak/hocs/WithLazyResource.mjs.map +1 -0
  75. package/lib-yak/hocs/WithRef.mjs +20 -0
  76. package/lib-yak/hocs/WithRef.mjs.map +1 -0
  77. package/lib-yak/hocs/consumes.mjs +22 -0
  78. package/lib-yak/hocs/consumes.mjs.map +1 -0
  79. package/lib-yak/hocs/withDialogError.mjs +22 -0
  80. package/lib-yak/hocs/withDialogError.mjs.map +1 -0
  81. package/lib-yak/hocs/withGroupEvent.mjs +45 -0
  82. package/lib-yak/hocs/withGroupEvent.mjs.map +1 -0
  83. package/lib-yak/hooks/WithConstant.mjs +13 -0
  84. package/lib-yak/hooks/WithConstant.mjs.map +1 -0
  85. package/lib-yak/hooks/WithEffect.mjs +12 -0
  86. package/lib-yak/hooks/WithEffect.mjs.map +1 -0
  87. package/lib-yak/hooks/useAsyncEffect.mjs +14 -0
  88. package/lib-yak/hooks/useAsyncEffect.mjs.map +1 -0
  89. package/lib-yak/hooks/useCallState.mjs +21 -0
  90. package/lib-yak/hooks/useCallState.mjs.map +1 -0
  91. package/lib-yak/hooks/useCallbackStable.mjs +17 -0
  92. package/lib-yak/hooks/useCallbackStable.mjs.map +1 -0
  93. package/lib-yak/hooks/useConstant.mjs +21 -0
  94. package/lib-yak/hooks/useConstant.mjs.map +1 -0
  95. package/lib-yak/hooks/useConsumerCatalog.mjs +25 -0
  96. package/lib-yak/hooks/useConsumerCatalog.mjs.map +1 -0
  97. package/lib-yak/hooks/useEnsureRef.mjs +9 -0
  98. package/lib-yak/hooks/useEnsureRef.mjs.map +1 -0
  99. package/lib-yak/hooks/useForceUpdate.mjs +28 -0
  100. package/lib-yak/hooks/useForceUpdate.mjs.map +1 -0
  101. package/lib-yak/hooks/useIsUnmounted.mjs +15 -0
  102. package/lib-yak/hooks/useIsUnmounted.mjs.map +1 -0
  103. package/lib-yak/hooks/usePopupToggle.mjs +33 -0
  104. package/lib-yak/hooks/usePopupToggle.mjs.map +1 -0
  105. package/lib-yak/hooks/usePrevious.mjs +28 -0
  106. package/lib-yak/hooks/usePrevious.mjs.map +1 -0
  107. package/lib-yak/hooks/useRecycleFocus.mjs +34 -0
  108. package/lib-yak/hooks/useRecycleFocus.mjs.map +1 -0
  109. package/lib-yak/hooks/useRefMemo.mjs +13 -0
  110. package/lib-yak/hooks/useRefMemo.mjs.map +1 -0
  111. package/lib-yak/hooks/useRefState.mjs +29 -0
  112. package/lib-yak/hooks/useRefState.mjs.map +1 -0
  113. package/lib-yak/hooks/useSignal.mjs +271 -0
  114. package/lib-yak/hooks/useSignal.mjs.map +1 -0
  115. package/lib-yak/hooks/useTitle.mjs +17 -0
  116. package/lib-yak/hooks/useTitle.mjs.map +1 -0
  117. package/lib-yak/hooks/useToggle.mjs +152 -0
  118. package/lib-yak/hooks/useToggle.mjs.map +1 -0
  119. package/lib-yak/hooks/useUpdateEffect.mjs +15 -0
  120. package/lib-yak/hooks/useUpdateEffect.mjs.map +1 -0
  121. package/lib-yak/hooks/useUpdateOnResize.mjs +18 -0
  122. package/lib-yak/hooks/useUpdateOnResize.mjs.map +1 -0
  123. package/lib-yak/hooks/useWithTransition.mjs +18 -0
  124. package/lib-yak/hooks/useWithTransition.mjs.map +1 -0
  125. package/lib-yak/hooks/willUseLayers.mjs +55 -0
  126. package/lib-yak/hooks/willUseLayers.mjs.map +1 -0
  127. package/lib-yak/hooks/willUseSharedCallback.mjs +70 -0
  128. package/lib-yak/hooks/willUseSharedCallback.mjs.map +1 -0
  129. package/lib-yak/hooks/willUseSharedState.mjs +41 -0
  130. package/lib-yak/hooks/willUseSharedState.mjs.map +1 -0
  131. package/lib-yak/hooks/willUseSpreadState.mjs +119 -0
  132. package/lib-yak/hooks/willUseSpreadState.mjs.map +1 -0
  133. package/lib-yak/index.mjs +33 -0
  134. package/lib-yak/index.mjs.map +1 -0
  135. package/package.json +53 -30
  136. package/src/SlotFill.jsx +166 -0
  137. package/src/StartlibsProvider.jsx +62 -0
  138. package/src/hocs/WithLazyResource.jsx +32 -0
  139. package/src/hocs/WithRef.js +20 -0
  140. package/src/hocs/Wrapper.jsx +40 -0
  141. package/src/hocs/consumes.jsx +16 -0
  142. package/src/hocs/withDialogError.jsx +16 -0
  143. package/src/hocs/withGroupEvent.jsx +43 -0
  144. package/src/hooks/WithConstant.jsx +7 -0
  145. package/src/hooks/WithEffect.jsx +6 -0
  146. package/src/hooks/useAsyncEffect.jsx +11 -0
  147. package/src/hooks/useCallState.js +15 -0
  148. package/src/hooks/useCallbackStable.jsx +12 -0
  149. package/src/hooks/useConstant.js +20 -0
  150. package/src/hooks/useConsumerCatalog.jsx +21 -0
  151. package/src/hooks/useEnsureRef.js +6 -0
  152. package/src/hooks/useForceUpdate.jsx +16 -0
  153. package/src/hooks/useIsUnmounted.jsx +12 -0
  154. package/src/hooks/usePopupToggle.js +30 -0
  155. package/src/hooks/usePrevious.jsx +27 -0
  156. package/src/hooks/useRecycleFocus.jsx +26 -0
  157. package/src/hooks/useRefMemo.jsx +10 -0
  158. package/src/hooks/useRefState.js +26 -0
  159. package/src/hooks/useSignal.jsx +193 -0
  160. package/src/hooks/useTitle.jsx +12 -0
  161. package/src/hooks/useToggle.js +126 -0
  162. package/src/hooks/useUpdateEffect.js +14 -0
  163. package/src/hooks/useUpdateOnResize.jsx +14 -0
  164. package/src/hooks/useWithTransition.jsx +14 -0
  165. package/src/hooks/willUseLayers.jsx +42 -0
  166. package/src/hooks/willUseSharedCallback.jsx +60 -0
  167. package/src/hooks/willUseSharedState.jsx +34 -0
  168. package/src/hooks/willUseSpreadState.jsx +103 -0
  169. package/src/index.js +32 -0
  170. package/.babelrc +0 -27
  171. package/lib/index.js +0 -1921
  172. package/rollup.config.js +0 -53
  173. package/yarn-error.log +0 -3374
@@ -0,0 +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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"}