@startlibs/core 1.0.7 → 1.1.0

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 (107) 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/package.json +43 -29
  70. package/src/SlotFill.jsx +166 -0
  71. package/src/StartlibsProvider.jsx +62 -0
  72. package/src/hocs/WithLazyResource.jsx +32 -0
  73. package/src/hocs/WithRef.js +20 -0
  74. package/src/hocs/Wrapper.jsx +40 -0
  75. package/src/hocs/consumes.jsx +16 -0
  76. package/src/hocs/withDialogError.jsx +16 -0
  77. package/src/hocs/withGroupEvent.jsx +43 -0
  78. package/src/hooks/WithConstant.jsx +7 -0
  79. package/src/hooks/WithEffect.jsx +6 -0
  80. package/src/hooks/useAsyncEffect.jsx +11 -0
  81. package/src/hooks/useCallState.js +15 -0
  82. package/src/hooks/useCallbackStable.jsx +12 -0
  83. package/src/hooks/useConstant.js +20 -0
  84. package/src/hooks/useConsumerCatalog.jsx +21 -0
  85. package/src/hooks/useEnsureRef.js +6 -0
  86. package/src/hooks/useForceUpdate.jsx +16 -0
  87. package/src/hooks/useIsUnmounted.jsx +12 -0
  88. package/src/hooks/usePopupToggle.js +30 -0
  89. package/src/hooks/usePrevious.jsx +27 -0
  90. package/src/hooks/useRecycleFocus.jsx +26 -0
  91. package/src/hooks/useRefMemo.jsx +10 -0
  92. package/src/hooks/useRefState.js +26 -0
  93. package/src/hooks/useSignal.jsx +193 -0
  94. package/src/hooks/useTitle.jsx +12 -0
  95. package/src/hooks/useToggle.js +126 -0
  96. package/src/hooks/useUpdateEffect.js +14 -0
  97. package/src/hooks/useUpdateOnResize.jsx +14 -0
  98. package/src/hooks/useWithTransition.jsx +14 -0
  99. package/src/hooks/willUseLayers.jsx +42 -0
  100. package/src/hooks/willUseSharedCallback.jsx +60 -0
  101. package/src/hooks/willUseSharedState.jsx +34 -0
  102. package/src/hooks/willUseSpreadState.jsx +103 -0
  103. package/src/index.js +32 -0
  104. package/.babelrc +0 -27
  105. package/lib/index.js +0 -1921
  106. package/rollup.config.js +0 -53
  107. package/yarn-error.log +0 -3374
package/lib/index.cjs ADDED
@@ -0,0 +1,1474 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _debounce = require('lodash/fp/debounce');
6
+ var React = require('react');
7
+ var utils = require('@startlibs/utils');
8
+ var _objectDestructuringEmpty = require('@babel/runtime/helpers/objectDestructuringEmpty');
9
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
10
+ var _extends = require('@babel/runtime/helpers/extends');
11
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
12
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
13
+ var _unset = require('lodash/fp/unset');
14
+ var _uniqueId = require('lodash/fp/uniqueId');
15
+ var _differenceBy = require('lodash/fp/differenceBy');
16
+ var _set = require('lodash/fp/set');
17
+ var _findIndex = require('lodash/fp/findIndex');
18
+ var _isFinite = require('lodash/fp/isFinite');
19
+ var _max = require('lodash/fp/max');
20
+ var _flatMap = require('lodash/fp/flatMap');
21
+ var _without = require('lodash/fp/without');
22
+ var _union = require('lodash/fp/union');
23
+ var _update = require('lodash/fp/update');
24
+ var _flow = require('lodash/fp/flow');
25
+ var ReactDOM = require('react-dom');
26
+ var styled = require('styled-components');
27
+ var _isFunction = require('lodash/fp/isFunction');
28
+ var _get = require('lodash/fp/get');
29
+ var _isArray = require('lodash/fp/isArray');
30
+ var _isString = require('lodash/fp/isString');
31
+ var mitt = require('mitt');
32
+ var _isPlainObject = require('lodash/fp/isPlainObject');
33
+ var _identity = require('lodash/fp/identity');
34
+
35
+ function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; }
36
+
37
+ var _debounce__default = /*#__PURE__*/_interopDefault(_debounce);
38
+ var React__default = /*#__PURE__*/_interopDefault(React);
39
+ var _objectDestructuringEmpty__default = /*#__PURE__*/_interopDefault(_objectDestructuringEmpty);
40
+ var _defineProperty__default = /*#__PURE__*/_interopDefault(_defineProperty);
41
+ var _extends__default = /*#__PURE__*/_interopDefault(_extends);
42
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefault(_objectWithoutProperties);
43
+ var _slicedToArray__default = /*#__PURE__*/_interopDefault(_slicedToArray);
44
+ var _unset__default = /*#__PURE__*/_interopDefault(_unset);
45
+ var _uniqueId__default = /*#__PURE__*/_interopDefault(_uniqueId);
46
+ var _differenceBy__default = /*#__PURE__*/_interopDefault(_differenceBy);
47
+ var _set__default = /*#__PURE__*/_interopDefault(_set);
48
+ var _findIndex__default = /*#__PURE__*/_interopDefault(_findIndex);
49
+ var _isFinite__default = /*#__PURE__*/_interopDefault(_isFinite);
50
+ var _max__default = /*#__PURE__*/_interopDefault(_max);
51
+ var _flatMap__default = /*#__PURE__*/_interopDefault(_flatMap);
52
+ var _without__default = /*#__PURE__*/_interopDefault(_without);
53
+ var _union__default = /*#__PURE__*/_interopDefault(_union);
54
+ var _update__default = /*#__PURE__*/_interopDefault(_update);
55
+ var _flow__default = /*#__PURE__*/_interopDefault(_flow);
56
+ var ReactDOM__default = /*#__PURE__*/_interopDefault(ReactDOM);
57
+ var styled__default = /*#__PURE__*/_interopDefault(styled);
58
+ var _isFunction__default = /*#__PURE__*/_interopDefault(_isFunction);
59
+ var _get__default = /*#__PURE__*/_interopDefault(_get);
60
+ var _isArray__default = /*#__PURE__*/_interopDefault(_isArray);
61
+ var _isString__default = /*#__PURE__*/_interopDefault(_isString);
62
+ var mitt__default = /*#__PURE__*/_interopDefault(mitt);
63
+ var _isPlainObject__default = /*#__PURE__*/_interopDefault(_isPlainObject);
64
+ var _identity__default = /*#__PURE__*/_interopDefault(_identity);
65
+
66
+ const not_defined = {};
67
+ const useConstant = value => {
68
+ const ref = React.useRef(not_defined);
69
+ if (ref.current === not_defined) {
70
+ ref.current = value;
71
+ }
72
+ return ref.current;
73
+ };
74
+ const useLazyConstant = value => {
75
+ const ref = React.useRef(not_defined);
76
+ if (ref.current === not_defined) {
77
+ ref.current = utils.callIfFunction(value);
78
+ }
79
+ return ref.current;
80
+ };
81
+
82
+ const callList = function (list, firstArg) {
83
+ for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
84
+ args[_key - 2] = arguments[_key];
85
+ }
86
+ return list.map(_ref => {
87
+ let current = _ref.current;
88
+ return typeof firstArg === 'function' ? firstArg(current) : current(firstArg, ...args);
89
+ });
90
+ };
91
+ const willUseSharedCallback = function () {
92
+ let useEffect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : React__default["default"].useEffect;
93
+ let mountedCallbacks = [];
94
+ let listenerCallbacks = [];
95
+ const remove = ref => mountedCallbacks = mountedCallbacks.filter(_ => _ !== ref);
96
+ const add = ref => mountedCallbacks = mountedCallbacks.concat([ref]);
97
+ const get = () => mountedCallbacks;
98
+ const removeListener = ref => listenerCallbacks = listenerCallbacks.filter(_ => _ !== ref);
99
+ const addListener = ref => listenerCallbacks = listenerCallbacks.concat([ref]);
100
+ const getListeners = ref => listenerCallbacks;
101
+ const lastCall = {
102
+ current: null,
103
+ index: 0
104
+ };
105
+ const call = function () {
106
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
107
+ args[_key2] = arguments[_key2];
108
+ }
109
+ const resp = callList(get(), ...args);
110
+ callList(getListeners(), ...args);
111
+ lastCall.current = args;
112
+ lastCall.index++;
113
+ return resp;
114
+ };
115
+ const getSize = () => get().length;
116
+ const useRegister = function (callback) {
117
+ let listener = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
118
+ const ref = React.useRef(callback);
119
+ if (ref.current !== callback) {
120
+ ref.current = callback;
121
+ }
122
+ const lastCallIndex = lastCall.index;
123
+ useEffect(() => {
124
+ if (!ref.current) {
125
+ return;
126
+ }
127
+ if (listener) {
128
+ addListener(ref);
129
+ } else {
130
+ add(ref);
131
+ if (lastCallIndex !== lastCall.index && lastCall.current) {
132
+ callList([ref], ...lastCall.current);
133
+ }
134
+ }
135
+ return () => {
136
+ if (listener) {
137
+ removeListener(ref);
138
+ } else {
139
+ remove(ref);
140
+ }
141
+ };
142
+ }, []);
143
+ return () => get().indexOf(ref);
144
+ };
145
+ return [useRegister, call, getSize];
146
+ };
147
+
148
+ const notDefined = {};
149
+ const willUseSharedState = initialValue => {
150
+ const _willUseSharedCallbac = willUseSharedCallback(),
151
+ _willUseSharedCallbac2 = _slicedToArray__default["default"](_willUseSharedCallbac, 3),
152
+ useRegisterGroupCallback = _willUseSharedCallbac2[0],
153
+ callGroup = _willUseSharedCallbac2[1];
154
+ _willUseSharedCallbac2[2];
155
+ let sharedValue = utils.ifUndefined(initialValue, notDefined);
156
+ const setGroupState = newValue => {
157
+ sharedValue = utils.callIfFunction(newValue, sharedValue);
158
+ callGroup(sharedValue);
159
+ };
160
+ const refState = () => {
161
+ useRegisterGroupCallback();
162
+ return [() => sharedValue, setGroupState];
163
+ };
164
+ const valueState = defaultValue => {
165
+ const prevValue = sharedValue !== notDefined ? sharedValue : defaultValue;
166
+ if (prevValue === defaultValue) {
167
+ sharedValue = defaultValue;
168
+ }
169
+ const _useState = React.useState(prevValue),
170
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
171
+ value = _useState2[0],
172
+ setValue = _useState2[1];
173
+ useRegisterGroupCallback(setValue);
174
+ return [value, setGroupState];
175
+ };
176
+ const clear = () => {
177
+ sharedValue = notDefined;
178
+ };
179
+ return [valueState, refState, setGroupState, () => sharedValue, clear];
180
+ };
181
+
182
+ const _excluded$1 = ["name", "children"];
183
+ function ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
184
+ function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
185
+ const SlotContext = /*#__PURE__*/React__default["default"].createContext(new Map());
186
+ const _willUseSharedState = willUseSharedState(),
187
+ _willUseSharedState2 = _slicedToArray__default["default"](_willUseSharedState, 2),
188
+ useFillHookState = _willUseSharedState2[0],
189
+ useFillHookStateRef = _willUseSharedState2[1];
190
+ const _willUseSharedState3 = willUseSharedState(),
191
+ _willUseSharedState4 = _slicedToArray__default["default"](_willUseSharedState3, 2),
192
+ useHiddenFillHookState = _willUseSharedState4[0],
193
+ useHiddenFillHookStateRef = _willUseSharedState4[1];
194
+ const DEFAULT_CONTEXT = new Map();
195
+ const SlotProvider = _ref => {
196
+ let children = _ref.children;
197
+ return /*#__PURE__*/React__default["default"].createElement(SlotContext.Provider, {
198
+ value: DEFAULT_CONTEXT
199
+ }, children, /*#__PURE__*/React__default["default"].createElement(React__default["default"].Suspense, {
200
+ fallback: null
201
+ }, /*#__PURE__*/React__default["default"].createElement(FillHooks, null)), /*#__PURE__*/React__default["default"].createElement(HiddenFillHooks, null));
202
+ };
203
+ const Slot = _ref2 => {
204
+ let name = _ref2.name,
205
+ children = _ref2.children,
206
+ rest = _objectWithoutProperties__default["default"](_ref2, _excluded$1);
207
+ const ref = React.useRef();
208
+ const slotInfo = useConstant({
209
+ ref
210
+ });
211
+ const slots = React.useContext(SlotContext);
212
+ React.useLayoutEffect(() => {
213
+ const previous = slots.get(name);
214
+ const updates = (previous === null || previous === void 0 ? void 0 : previous.updates) || [];
215
+ if (previous !== null && previous !== void 0 && previous.children) ;
216
+ slots.set(name, _flow__default["default"](_update__default["default"]('infos', _union__default["default"]([slotInfo])))(previous));
217
+ updates.forEach(v => v({}));
218
+ return () => {
219
+ var _previous$infos, _previous$updates;
220
+ const previous = slots.get(name);
221
+ previous.infos = _without__default["default"]([slotInfo], previous.infos);
222
+ if (!((_previous$infos = previous.infos) !== null && _previous$infos !== void 0 && _previous$infos.length) && !((_previous$updates = previous.updates) !== null && _previous$updates !== void 0 && _previous$updates.length)) {
223
+ slots.delete(name);
224
+ }
225
+ };
226
+ }, [name]);
227
+ return children ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
228
+ "data-id": name
229
+ }, rest, {
230
+ ref: ref
231
+ })), React__default["default"].Children.map(children, c => /*#__PURE__*/React__default["default"].cloneElement(c, _objectSpread$4(_objectSpread$4({}, c.props), {}, {
232
+ name,
233
+ stack: Number.MIN_SAFE_INTEGER
234
+ })))) : /*#__PURE__*/React__default["default"].createElement("div", _extends__default["default"]({
235
+ "data-id": name
236
+ }, rest, {
237
+ ref: ref
238
+ }));
239
+ };
240
+ const Invisible = /*#__PURE__*/styled__default["default"].div.withConfig({
241
+ displayName: "SlotFill__Invisible",
242
+ componentId: "h3oh7r-0"
243
+ })(["display:none"]);
244
+ const FillBeforeFlip = _ref3 => {
245
+ let name = _ref3.name,
246
+ children = _ref3.children;
247
+ _ref3.slot;
248
+ const slots = React.useContext(SlotContext);
249
+ const ref = React.useRef();
250
+ React.useLayoutEffect(() => {
251
+ var _slots$get;
252
+ const infos = ((_slots$get = slots.get(name)) === null || _slots$get === void 0 ? void 0 : _slots$get.infos) || [];
253
+ const mounted = _flatMap__default["default"](_ref4 => {
254
+ let ref = _ref4.ref;
255
+ return ref === null || ref === void 0 ? void 0 : ref.current;
256
+ }, infos);
257
+ const clones = [];
258
+ const getClone = () => {
259
+ const cloned = ref.current.cloneNode(true);
260
+ cloned.className = 'JS-fill-flip';
261
+ clones.push(cloned);
262
+ return cloned;
263
+ };
264
+ mounted.map(_ => _.appendChild(getClone()));
265
+ return () => {
266
+ clones.forEach(el => el.remove());
267
+ };
268
+ }, []);
269
+ return /*#__PURE__*/React__default["default"].createElement(Invisible, {
270
+ ref: ref
271
+ }, children);
272
+ };
273
+ const useFillState = (name, stack) => {
274
+ const forceUpdate = React__default["default"].useState(false)[1];
275
+ const slots = React.useContext(SlotContext);
276
+ const renderSlot = slots.get(name);
277
+ const maxStack = _max__default["default"](renderSlot === null || renderSlot === void 0 ? void 0 : renderSlot.stacks);
278
+ const onStack = !_isFinite__default["default"](maxStack) || maxStack === stack;
279
+ React.useLayoutEffect(() => {
280
+ const slot = slots.get(name);
281
+ const updatedSlot = _flow__default["default"](_update__default["default"]('updates', _union__default["default"]([forceUpdate])), _update__default["default"]('stacks', _union__default["default"]([stack])))(slot);
282
+ slots.set(name, updatedSlot);
283
+ updatedSlot.updates.forEach(v => v({}));
284
+ return () => {
285
+ const previous = slots.get(name);
286
+ const index = previous.updates.indexOf(forceUpdate);
287
+ const next = _flow__default["default"](_update__default["default"]('updates', utils._s.removeAt(index)), _update__default["default"]('stacks', utils._s.removeAt(index)))(previous);
288
+ slots.set(name, next);
289
+ next.updates.forEach(v => v({}));
290
+ };
291
+ }, []);
292
+ return [renderSlot, onStack];
293
+ };
294
+ const Fill = _ref5 => {
295
+ let name = _ref5.name,
296
+ children = _ref5.children,
297
+ _ref5$stack = _ref5.stack,
298
+ stack = _ref5$stack === void 0 ? 0 : _ref5$stack,
299
+ mountBeforeFlip = _ref5.mountBeforeFlip;
300
+ const _useFillState = useFillState(name, stack),
301
+ _useFillState2 = _slicedToArray__default["default"](_useFillState, 2),
302
+ slot = _useFillState2[0],
303
+ onStack = _useFillState2[1];
304
+ if (slot !== null && slot !== void 0 && slot.infos && onStack) {
305
+ return slot === null || slot === void 0 ? void 0 : slot.infos.map(info => {
306
+ var _info$ref;
307
+ return ((_info$ref = info.ref) === null || _info$ref === void 0 ? void 0 : _info$ref.current) && /*#__PURE__*/ReactDOM__default["default"].createPortal(utils.callIfFunction(children, info), info.ref.current);
308
+ });
309
+ } else if (mountBeforeFlip) {
310
+ return /*#__PURE__*/React__default["default"].createElement(FillBeforeFlip, {
311
+ name: name,
312
+ slot: slot
313
+ }, children);
314
+ } else {
315
+ return null;
316
+ }
317
+ };
318
+ const FillHooks = _ref6 => {
319
+ _objectDestructuringEmpty__default["default"](_ref6);
320
+ const _useFillHookState = useFillHookState({}),
321
+ _useFillHookState2 = _slicedToArray__default["default"](_useFillHookState, 1),
322
+ hooked = _useFillHookState2[0];
323
+ return Object.entries(hooked).map(_ref7 => {
324
+ let _ref8 = _slicedToArray__default["default"](_ref7, 2),
325
+ name = _ref8[0],
326
+ childs = _ref8[1];
327
+ return childs.map((_ref9, i) => {
328
+ let children = _ref9.children;
329
+ return /*#__PURE__*/React__default["default"].createElement(Fill, {
330
+ key: name + i,
331
+ name: name
332
+ }, children);
333
+ });
334
+ });
335
+ };
336
+ let uid = 0;
337
+ const useFill = (name, children, inputs) => {
338
+ const _useFillHookStateRef = useFillHookStateRef(),
339
+ _useFillHookStateRef2 = _slicedToArray__default["default"](_useFillHookStateRef, 2),
340
+ set = _useFillHookStateRef2[1];
341
+ const key = React.useRef(uid++);
342
+ React.useLayoutEffect(() => {
343
+ if (children) {
344
+ set(_update__default["default"]([name], function () {
345
+ let list = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
346
+ const index = _findIndex__default["default"](['key', key.current], list);
347
+ const value = {
348
+ children,
349
+ key: key.current
350
+ };
351
+ if (index >= 0) {
352
+ return _set__default["default"]([index], value, list);
353
+ } else {
354
+ return list.concat(value);
355
+ }
356
+ }));
357
+ } else {
358
+ set(_update__default["default"]([name], _differenceBy__default["default"]('key', _differenceBy__default["default"].placeholder, [{
359
+ children,
360
+ key: key.current
361
+ }])));
362
+ }
363
+ }, inputs || children);
364
+ React.useLayoutEffect(() => () => set(_update__default["default"]([name], _differenceBy__default["default"]('key', _differenceBy__default["default"].placeholder, [{
365
+ key: key.current
366
+ }]))), []);
367
+ };
368
+ const HiddenFillHooks = _ref0 => {
369
+ _objectDestructuringEmpty__default["default"](_ref0);
370
+ const _useHiddenFillHookSta = useHiddenFillHookState({}),
371
+ _useHiddenFillHookSta2 = _slicedToArray__default["default"](_useHiddenFillHookSta, 1),
372
+ hookedChildren = _useHiddenFillHookSta2[0];
373
+ return /*#__PURE__*/React__default["default"].createElement("div", null, Object.values(hookedChildren));
374
+ };
375
+ const useHiddenFill = (children, inputs) => {
376
+ const _useHiddenFillHookSta3 = useHiddenFillHookStateRef(),
377
+ _useHiddenFillHookSta4 = _slicedToArray__default["default"](_useHiddenFillHookSta3, 2),
378
+ set = _useHiddenFillHookSta4[1];
379
+ const _useMemo = React.useMemo(() => _uniqueId__default["default"](""), []),
380
+ _useMemo2 = _slicedToArray__default["default"](_useMemo, 1),
381
+ uid = _useMemo2[0];
382
+ set(_set__default["default"]([uid], children ? /*#__PURE__*/React__default["default"].cloneElement(children, {
383
+ key: uid
384
+ }) : null));
385
+ React.useEffect(() => () => set(_unset__default["default"]([uid])), []);
386
+ };
387
+
388
+ const useCallState = (defaultValue, setCallback) => {
389
+ const _useState = React.useState(defaultValue),
390
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
391
+ val = _useState2[0],
392
+ setValue = _useState2[1];
393
+ return React.useMemo(() => {
394
+ const get = () => val;
395
+ return {
396
+ get,
397
+ val,
398
+ set: setValue
399
+ };
400
+ }, [val]);
401
+ };
402
+
403
+ const useIsUnmounted = () => {
404
+ const unmounted = React.useRef(false);
405
+ React.useEffect(() => {
406
+ unmounted.current = false;
407
+ return () => {
408
+ unmounted.current = true;
409
+ };
410
+ }, []);
411
+ return () => unmounted.current;
412
+ };
413
+
414
+ const isPath = path => typeof path === 'string' || typeof path === 'number' || Array.isArray(path);
415
+ const getter = value => path => path !== "" && isPath(path) ? utils._s.get(path, value) : value;
416
+ const uninitialized = {};
417
+ const useRefState = (defaultValue, setCallback) => {
418
+ const ref = React.useRef(uninitialized);
419
+ if (ref.current === uninitialized) {
420
+ ref.current = utils.callIfFunction(defaultValue);
421
+ }
422
+ return React.useMemo(() => {
423
+ const get = path => getter(ref.current)(path);
424
+ const set = (v, config) => {
425
+ const prev = ref.current;
426
+ ref.current = utils.callIfFunctions(v, () => get());
427
+ if (prev !== ref.current && (!config || !config.ignoreCallback)) {
428
+ utils.callIfFunction(setCallback, prev, ref.current);
429
+ }
430
+ };
431
+ return {
432
+ get,
433
+ set
434
+ };
435
+ }, []);
436
+ };
437
+
438
+ function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
439
+ function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
440
+ const useToggleInternal = function () {
441
+ let startWith = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
442
+ let useStore = arguments.length > 1 ? arguments[1] : undefined;
443
+ let callback = arguments.length > 2 ? arguments[2] : undefined;
444
+ let key = arguments.length > 3 ? arguments[3] : undefined;
445
+ const isOpen = useStore(startWith);
446
+ const closing = useStore(false);
447
+ const refIsOpen = useRefState(isOpen.get());
448
+ const refIsClosing = useRefState(closing.get());
449
+ const timerId = React.useRef();
450
+ const isUnmounted = useIsUnmounted();
451
+ const clearClosing = () => {
452
+ if (refIsClosing.get() !== false) {
453
+ closing.set(false);
454
+ refIsClosing.set(false);
455
+ window.clearTimeout(timerId.current);
456
+ }
457
+ };
458
+ const toggleWith = function () {
459
+ let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
460
+ const calledValue = utils.callIfFunction(value, refIsOpen.get());
461
+ const newValue = refIsOpen.get() === calledValue ? !calledValue : calledValue;
462
+ if (!isUnmounted() && refIsOpen.get() !== newValue) {
463
+ const result = utils.callIfFunction(callback, newValue, refIsOpen.get());
464
+ if (result === false) {
465
+ return;
466
+ }
467
+ isOpen.set(newValue);
468
+ refIsOpen.set(newValue);
469
+ clearClosing();
470
+ }
471
+ };
472
+ const openWith = value => {
473
+ if (process.env.NODE_ENV !== 'production' && key) {
474
+ console.log(key, refIsOpen.get() !== value ? "toggle" : "clear", refIsOpen.get(), value);
475
+ }
476
+ const nextValue = utils.callIfFunction(value, refIsOpen.get());
477
+ if (refIsOpen.get() !== nextValue) {
478
+ toggleWith(() => nextValue);
479
+ } else {
480
+ clearClosing();
481
+ }
482
+ };
483
+ const nextClosingTick = (ticks, tickIndex) => {
484
+ if (ticks.length) {
485
+ if (isNaN(ticks[0])) {
486
+ clearClosing();
487
+ } else if (!isNaN(ticks[0])) {
488
+ closing.set(tickIndex + 1);
489
+ refIsClosing.set(tickIndex + 1);
490
+ timerId.current = setTimeout(() => nextClosingTick(ticks.slice(1), tickIndex + 1), Number(ticks[0]));
491
+ }
492
+ } else {
493
+ openWith(false);
494
+ }
495
+ };
496
+ const closeAfter = function () {
497
+ if (process.env.NODE_ENV !== 'production' && key) {
498
+ console.log(key, !refIsOpen.get() || refIsClosing.get() ? "addCLosing" : "closing");
499
+ }
500
+ if (!refIsOpen.get() || refIsClosing.get()) return;
501
+ for (var _len = arguments.length, millisecs = new Array(_len), _key = 0; _key < _len; _key++) {
502
+ millisecs[_key] = arguments[_key];
503
+ }
504
+ nextClosingTick(millisecs, 0);
505
+ };
506
+ const _wait = function (promise) {
507
+ let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
508
+ let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
509
+ return async function () {
510
+ openWith(start);
511
+ try {
512
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
513
+ args[_key2] = arguments[_key2];
514
+ }
515
+ return await utils.callIfFunction(promise, ...args);
516
+ } finally {
517
+ openWith(end);
518
+ }
519
+ };
520
+ };
521
+ const setters = React.useMemo(() => ({
522
+ wait: function (promise) {
523
+ let start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
524
+ let end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
525
+ return _wait(promise, start, end)();
526
+ },
527
+ willWait: _wait,
528
+ open: e => {
529
+ if (process.env.NODE_ENV !== 'production') {
530
+ if (['string', 'number', 'boolean'].indexOf(typeof e) >= 0) {
531
+ console.log("You are trying to open toggle with ".concat(e, ". Please, use openWith to open with a value"));
532
+ }
533
+ }
534
+ return openWith(true);
535
+ },
536
+ close: () => openWith(false),
537
+ toggle: e => {
538
+ if (process.env.NODE_ENV !== 'production') {
539
+ if (['string', 'number', 'boolean'].indexOf(typeof e) >= 0) {
540
+ console.log("You are trying to toogle a toggle with ".concat(e, ". Please, use openWith to open with a value"));
541
+ }
542
+ }
543
+ toggleWith(true);
544
+ },
545
+ willOpenWith: value => () => openWith(value),
546
+ willCloseAfter: function () {
547
+ for (var _len3 = arguments.length, millsecs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
548
+ millsecs[_key3] = arguments[_key3];
549
+ }
550
+ return () => closeAfter(...millsecs);
551
+ },
552
+ willToggleWith: value => () => toggleWith(value),
553
+ openWith,
554
+ closeAfter,
555
+ toggleWith,
556
+ get: refIsOpen.get
557
+ }), []);
558
+ const settersWithNewRef = _objectSpread$3({}, setters);
559
+ if (closing.val) {
560
+ return Object.assign(settersWithNewRef, {
561
+ isOpen: isOpen.val,
562
+ closing: closing.val
563
+ });
564
+ } else {
565
+ Object.defineProperties(settersWithNewRef, {
566
+ isOpen: {
567
+ enumerable: true,
568
+ get: isOpen.get
569
+ },
570
+ closing: {
571
+ enumerable: true,
572
+ get: closing.get
573
+ }
574
+ });
575
+ return settersWithNewRef;
576
+ }
577
+ };
578
+ const useToggle = (startWith, callback, key) => useToggleInternal(startWith, useCallState, callback, key);
579
+ const useRefToggle = startWith => useToggleInternal(startWith, useRefState);
580
+
581
+ let prevOpenToggleClose = () => {};
582
+ let sameTick = false;
583
+ const clearPopups = () => {
584
+ if (!sameTick) {
585
+ prevOpenToggleClose();
586
+ prevOpenToggleClose = () => {};
587
+ }
588
+ };
589
+ const usePopupToggle = (startWith, callback) => {
590
+ const toggle = useToggle(startWith, (v, prev) => {
591
+ const result = utils.callIfFunction(callback, v, prev);
592
+ if (result === false) {
593
+ return false;
594
+ }
595
+ if (v !== false && prevOpenToggleClose !== toggle.close) {
596
+ prevOpenToggleClose();
597
+ prevOpenToggleClose = toggle.close;
598
+ sameTick = true;
599
+ window.setTimeout(() => sameTick = false, 1);
600
+ }
601
+ if (v === false) {
602
+ prevOpenToggleClose = () => {};
603
+ }
604
+ });
605
+ return toggle;
606
+ };
607
+
608
+ const StartlibsContext = /*#__PURE__*/React__default["default"].createContext({});
609
+ const PopupContext = /*#__PURE__*/React__default["default"].createContext({});
610
+ const StartlibsMetacontext = /*#__PURE__*/React__default["default"].createContext(() => {});
611
+ const StartlibsConsumer = StartlibsContext.Consumer;
612
+ const wrappeStyle = {
613
+ height: '100%'
614
+ };
615
+ class StartlibsProvider extends React__default["default"].Component {
616
+ constructor() {
617
+ super(...arguments);
618
+ this.openToggles = new Map();
619
+ this.popupToggleRender = (_ref, ref) => {
620
+ let isOpen = _ref.isOpen,
621
+ close = _ref.close;
622
+ if (isOpen && !this.openToggles.has(ref)) {
623
+ this.closePopup();
624
+ this.openToggles.set(ref, close);
625
+ }
626
+ };
627
+ this.closePopup = () => {
628
+ clearPopups();
629
+ };
630
+ this.startlibsMeta = new Map();
631
+ this.getMeta = (key, initValue) => {
632
+ const exists = this.startlibsMeta.get(key);
633
+ if (exists) return exists;
634
+ this.startlibsMeta.set(key, utils.callIfFunction(initValue));
635
+ return initValue;
636
+ };
637
+ }
638
+ componentDidMount() {
639
+ utils.fixMediaQuery();
640
+ const addVHFix = () => {
641
+ var _document$documentEle;
642
+ let vh = window.innerHeight * 0.01;
643
+ (_document$documentEle = document.documentElement) === null || _document$documentEle === void 0 || (_document$documentEle = _document$documentEle.style) === null || _document$documentEle === void 0 || _document$documentEle.setProperty('--vh', "".concat(vh, "px"));
644
+ };
645
+ window.addEventListener('resize', _debounce__default["default"](200, addVHFix));
646
+ addVHFix();
647
+ }
648
+ render() {
649
+ return /*#__PURE__*/React__default["default"].createElement(StartlibsContext.Provider, {
650
+ value: this.props.value
651
+ }, /*#__PURE__*/React__default["default"].createElement(StartlibsMetacontext.Provider, {
652
+ value: this.getMeta
653
+ }, /*#__PURE__*/React__default["default"].createElement(PopupContext.Provider, {
654
+ value: this.popupToggleRender
655
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
656
+ style: wrappeStyle,
657
+ onClick: this.closePopup
658
+ }, /*#__PURE__*/React__default["default"].createElement(SlotProvider, null, this.props.children)))));
659
+ }
660
+ }
661
+
662
+ const willUseLayers = function () {
663
+ let useEffect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : React__default["default"].useEffect;
664
+ const _willUseSharedCallbac = willUseSharedCallback(useEffect),
665
+ _willUseSharedCallbac2 = _slicedToArray__default["default"](_willUseSharedCallbac, 3),
666
+ useRegisterSharedCallback = _willUseSharedCallbac2[0],
667
+ callGroup = _willUseSharedCallbac2[1],
668
+ getSize = _willUseSharedCallbac2[2];
669
+ const useLayer = function () {
670
+ let _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
671
+ onFirst = _ref.onFirst,
672
+ onEmpty = _ref.onEmpty,
673
+ onTop = _ref.onTop,
674
+ onRemove = _ref.onRemove;
675
+ let listener = arguments.length > 1 ? arguments[1] : undefined;
676
+ const resetIndex = React.useCallback(() => {
677
+ setIndex(getIndex());
678
+ if (getIndex() + 1 === getSize()) {
679
+ utils.callIfFunction(onTop, getIndex);
680
+ }
681
+ }, []);
682
+ const getIndex = useRegisterSharedCallback(resetIndex, listener);
683
+ const _useState = React.useState(getIndex()),
684
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
685
+ index = _useState2[0],
686
+ setIndex = _useState2[1];
687
+ useEffect(() => {
688
+ if (getIndex() === 0) {
689
+ utils.callIfFunction(onFirst);
690
+ }
691
+ resetIndex();
692
+ return () => {
693
+ utils.callIfFunction(onRemove, getSize());
694
+ if (getSize() === 0) {
695
+ utils.callIfFunction(onEmpty);
696
+ }
697
+ callGroup();
698
+ };
699
+ }, []);
700
+ return [index, {
701
+ isFirst: () => getIndex() === 1,
702
+ isTop: () => getIndex() === getSize() - 1,
703
+ isEmpty: () => getSize() === 0,
704
+ getSize: () => getSize()
705
+ }];
706
+ };
707
+ return [useLayer, getSize];
708
+ };
709
+
710
+ const useConsumerCatalog = (mountCallback, unmountCallback) => {
711
+ const elements = useRefState([]);
712
+ const register = utils.callMany(element => elements.set(elements => elements.concat([element])), mountCallback);
713
+ const unregister = utils.callMany(element => elements.set(elements => elements.filter(_ => _ !== element)), unmountCallback);
714
+ const manager = React.useMemo(() => ({
715
+ register,
716
+ unregister
717
+ }), []);
718
+ return [elements.get, manager];
719
+ };
720
+ const useCatalogManager = (_ref, ref) => {
721
+ let register = _ref.register,
722
+ unregister = _ref.unregister;
723
+ React.useEffect(() => {
724
+ register(ref);
725
+ return () => unregister(ref);
726
+ }, [ref]);
727
+ };
728
+
729
+ const updateAllInputsState = (inputs, values) => {
730
+ const deferedUndefined = [];
731
+ inputs.forEach(input => {
732
+ const _input = _slicedToArray__default["default"](input, 2),
733
+ setValue = _input[0],
734
+ selector = _input[1];
735
+ const newValue = selector(values);
736
+ if (newValue === undefined) {
737
+ deferedUndefined.push([setValue, newValue]);
738
+ } else {
739
+ setValue(newValue);
740
+ }
741
+ });
742
+ deferedUndefined.forEach(_ref => {
743
+ let _ref2 = _slicedToArray__default["default"](_ref, 2),
744
+ set = _ref2[0],
745
+ value = _ref2[1];
746
+ return set(value);
747
+ });
748
+ };
749
+ const pathSelector = path => utils._s.get(path || []);
750
+ const parsePathOrSelector = pathOrSelector => {
751
+ const isNotSelector = typeof pathOrSelector !== 'function';
752
+ if (isNotSelector) {
753
+ return [utils.formatPath(pathOrSelector), pathSelector(pathOrSelector)];
754
+ } else {
755
+ return ['', pathOrSelector];
756
+ }
757
+ };
758
+ const willUseSpreadState = function (defaultContextValue) {
759
+ let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
760
+ const Context = /*#__PURE__*/React__default["default"].createContext(defaultContextValue);
761
+ const EMPTY_GLOBAL = {};
762
+ let prevInitState = EMPTY_GLOBAL;
763
+ let globalState = EMPTY_GLOBAL;
764
+ const getGlobalState = key => _isString__default["default"](key) || _isArray__default["default"](key) ? _get__default["default"](key, globalState) : globalState;
765
+ const useProvideSpreadState = (initState, setCallback) => {
766
+ const _useConsumerCatalog = useConsumerCatalog(input => updateAllInputsState([input], state.get())),
767
+ _useConsumerCatalog2 = _slicedToArray__default["default"](_useConsumerCatalog, 2),
768
+ consumerList = _useConsumerCatalog2[0],
769
+ manager = _useConsumerCatalog2[1];
770
+ const state = useRefState(initState, setCallback);
771
+ if (options.initRefCheck) {
772
+ if (prevInitState !== initState) {
773
+ globalState = initState;
774
+ }
775
+ prevInitState = initState;
776
+ }
777
+ if (globalState === EMPTY_GLOBAL) {
778
+ globalState = initState;
779
+ }
780
+ React.useEffect(() => {
781
+ globalState = state.get();
782
+ }, []);
783
+ const setState = (newState, fastPath, config) => {
784
+ // console.log("Fastpath noop:"+fastPath)
785
+ state.set(newState, config);
786
+ globalState = state.get();
787
+ updateAllInputsState(consumerList(), state.get());
788
+ };
789
+ const contextValue = React.useMemo(() => [state.get, setState, manager], []);
790
+ return [Context.Provider, contextValue, [state.get, setState]];
791
+ };
792
+ const useSpreadState = (pathOrSelector, inputs) => {
793
+ const _useContext = React.useContext(Context),
794
+ _useContext2 = _slicedToArray__default["default"](_useContext, 3),
795
+ getSpreadState = _useContext2[0],
796
+ setSpreadState = _useContext2[1],
797
+ manager = _useContext2[2];
798
+ const _parsePathOrSelector = parsePathOrSelector(pathOrSelector),
799
+ _parsePathOrSelector2 = _slicedToArray__default["default"](_parsePathOrSelector, 2),
800
+ path = _parsePathOrSelector2[0],
801
+ selector = _parsePathOrSelector2[1];
802
+ const pathOrInput = [path] || inputs || [];
803
+ const _useState = React.useState(selector(getSpreadState())),
804
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
805
+ value = _useState2[0],
806
+ setValue = _useState2[1];
807
+ const isUnmounted = useIsUnmounted();
808
+ const currentPath = useRefState(path);
809
+ if (path !== currentPath.get()) {
810
+ /* when path changes, the consumerCatalogCallback will update the new value
811
+ * another solution would be to call setValue here directly
812
+ * the return value will still be the old, but will be changed before render, just like getDerivedStateFromProps
813
+ *
814
+ * if there's a need for the return value to be the same, the value or, if enters here new value,
815
+ * can be returned in an temp variable
816
+ * */
817
+ currentPath.set(path);
818
+ }
819
+ const input = React.useMemo(() => [v => {
820
+ /* noop for elements that may be unregistered while looping through consumerList */
821
+ if (path === currentPath.get() && !isUnmounted()) {
822
+ setValue(v);
823
+ }
824
+ }, selector], pathOrInput);
825
+ useCatalogManager(manager, input);
826
+ const setState = React.useCallback(v => setSpreadState((_isFunction__default["default"](v) ? pathOrSelector === undefined ? () => v : _update__default["default"] : _set__default["default"])(path, v), path), pathOrInput);
827
+ const getValue = () => selector(getGlobalState());
828
+ return [value, setState, getValue];
829
+ };
830
+ return [useProvideSpreadState, useSpreadState, Context, getGlobalState];
831
+ };
832
+
833
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
834
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
835
+ const propsOrConsume = (prop, Consumer, childrenAsFunction) => prop ? childrenAsFunction(prop) : /*#__PURE__*/React__default["default"].createElement(Consumer, null, childrenAsFunction);
836
+ const addConsumers = (Component, obj) => Object.entries(obj).reduce((acc, _ref) => {
837
+ let _ref2 = _slicedToArray__default["default"](_ref, 2),
838
+ propKey = _ref2[0],
839
+ Consumer = _ref2[1];
840
+ return props => propsOrConsume(props[propKey], Consumer, v => acc(_objectSpread$2({
841
+ [propKey]: v
842
+ }, props)));
843
+ }, props => /*#__PURE__*/React__default["default"].createElement(Component, props));
844
+ const consumes = obj => Component => {
845
+ const withConsumers = addConsumers(Component, obj);
846
+ return props => withConsumers(props);
847
+ };
848
+
849
+ const withDialogError = Dialog => {
850
+ const ErrorBoundedComponent = /*#__PURE__*/React__default["default"].forwardRef((props, ref) => {
851
+ return /*#__PURE__*/React__default["default"].createElement(Dialog, _extends__default["default"]({
852
+ ref: ref
853
+ }, props));
854
+
855
+ // const ErrorBoundary = __internals('ErrorBoundary')
856
+ /*return (
857
+ <ErrorBoundary Error={props.Error || __internals('DialogError')} closeDialog={props.closeDialog}>
858
+ <Dialog {...props}/>
859
+ </ErrorBoundary>
860
+ )*/
861
+ });
862
+ // ErrorBoundedComponent.contextTypes = {startlibs:()=>null}
863
+ return ErrorBoundedComponent;
864
+ };
865
+
866
+ const GroupEventFactory = () => {
867
+ let emitter = mitt__default["default"]();
868
+ class WithGroupEvent extends React__default["default"].Component {
869
+ constructor() {
870
+ super(...arguments);
871
+ this.events = {};
872
+ this.processEvent = (type, event) => {
873
+ (this.events[type] || []).forEach(c => c(event));
874
+ };
875
+ this.groupEventProps = {
876
+ on: (type, callback) => {
877
+ this.events[type] = (this.events[type] || []).concat(callback);
878
+ },
879
+ off: (type, callback) => {
880
+ this.events[type] = (this.events[type] || []).filter(e => e !== callback);
881
+ },
882
+ emit: emitter.emit
883
+ };
884
+ }
885
+ componentDidMount() {
886
+ emitter.on('*', this.processEvent);
887
+ }
888
+ componentWillUnmount() {
889
+ emitter.off('*', this.processEvent);
890
+ }
891
+ render() {
892
+ return this.props.children(this.groupEventProps);
893
+ }
894
+ }
895
+ return WithGroupEvent;
896
+ };
897
+ const withGroupEvent = Component => {
898
+ const WithGroupEvent = GroupEventFactory();
899
+ return /*#__PURE__*/React__default["default"].forwardRef((props, ref) => /*#__PURE__*/React__default["default"].createElement(WithGroupEvent, null, groupEvent => /*#__PURE__*/React__default["default"].createElement(Component, _extends__default["default"]({}, props, {
900
+ ref: ref,
901
+ groupEvent: groupEvent
902
+ }))));
903
+ };
904
+
905
+ class WithRef extends React__default["default"].Component {
906
+ constructor(props) {
907
+ super(props);
908
+ const total = props.length || props.children.length;
909
+ const refs = new Array(total);
910
+ for (var i = 0; i < total; i++) {
911
+ refs[i] = /*#__PURE__*/React__default["default"].createRef();
912
+ }
913
+ this.createdRefs = refs;
914
+ }
915
+ render() {
916
+ const children = this.props.children;
917
+ return children(...this.createdRefs);
918
+ }
919
+ }
920
+
921
+ const _excluded = ["value", "fallback", "children", "forwardProps"],
922
+ _excluded2 = ["value", "wrap", "fallback", "children", "forwardProps"];
923
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
924
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
925
+ const addExtraProp = function (element, extra) {
926
+ let override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
927
+ return /*#__PURE__*/React__default["default"].cloneElement(element, override ? _objectSpread$1(_objectSpread$1({}, element.props), extra) : _objectSpread$1(_objectSpread$1({}, extra), element.props), element.props.children);
928
+ };
929
+ const WithLazyPlaceholder = _ref => {
930
+ let value = _ref.value,
931
+ fallback = _ref.fallback,
932
+ children = _ref.children,
933
+ _ref$forwardProps = _ref.forwardProps,
934
+ forwardProps = _ref$forwardProps === void 0 ? false : _ref$forwardProps,
935
+ props = _objectWithoutProperties__default["default"](_ref, _excluded);
936
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Suspense, {
937
+ fallback: React__default["default"].Children.map(children(fallback, {
938
+ isLoading: true
939
+ }), child => /*#__PURE__*/React__default["default"].isValidElement(child) ? addExtraProp(child, {
940
+ isLoading: true
941
+ }, false) : child)
942
+ }, /*#__PURE__*/React__default["default"].createElement(Load, {
943
+ value: value,
944
+ children: children,
945
+ forwardProps: forwardProps && props
946
+ }));
947
+ };
948
+ const WithLazyResource = _ref2 => {
949
+ let value = _ref2.value,
950
+ wrap = _ref2.wrap,
951
+ fallback = _ref2.fallback,
952
+ children = _ref2.children,
953
+ _ref2$forwardProps = _ref2.forwardProps,
954
+ forwardProps = _ref2$forwardProps === void 0 ? false : _ref2$forwardProps,
955
+ props = _objectWithoutProperties__default["default"](_ref2, _excluded2);
956
+ return wrap || fallback !== undefined ? /*#__PURE__*/React__default["default"].createElement(React__default["default"].Suspense, {
957
+ fallback: utils.ifUndefined(fallback, null)
958
+ }, /*#__PURE__*/React__default["default"].createElement(Load, {
959
+ value: value,
960
+ forwardProps: forwardProps && props,
961
+ children: children
962
+ })) : /*#__PURE__*/React__default["default"].createElement(Load, {
963
+ value: value,
964
+ children: children,
965
+ forwardProps: forwardProps && props
966
+ });
967
+ };
968
+ const Load = _ref3 => {
969
+ let value = _ref3.value,
970
+ children = _ref3.children,
971
+ forwardProps = _ref3.forwardProps;
972
+ const loaded = _isArray__default["default"](value) ? value.forEach(v => v.promise()) || value.map(v => v.read()) : value.read();
973
+ const _useReducer = React.useReducer(s => s + 1, 0),
974
+ _useReducer2 = _slicedToArray__default["default"](_useReducer, 2),
975
+ update = _useReducer2[1];
976
+ const refresh = () => Promise.all(_isArray__default["default"](value) ? value.map(v => v.refresh().promise()) : [value.refresh().promise()]).then(update);
977
+ return forwardProps ? addExtraProp(children(loaded, {
978
+ refresh,
979
+ update
980
+ }), forwardProps) : children(loaded, {
981
+ refresh,
982
+ update
983
+ });
984
+ };
985
+
986
+ const useCallbackStable = fn => {
987
+ const ref = React__default["default"].useRef([fn, function () {
988
+ return ref[0](...arguments);
989
+ }]).current;
990
+ // Per Dan Abramov: useInsertionEffect executes marginally closer to the
991
+ // correct timing for ref synchronization than useLayoutEffect on React 18.
992
+ // See: https://github.com/facebook/react/pull/25881#issuecomment-1356244360
993
+ React.useInsertionEffect(() => {
994
+ ref[0] = fn;
995
+ });
996
+ return ref[1];
997
+ };
998
+
999
+ const WithEffect = _ref => {
1000
+ let _ref$inputs = _ref.inputs,
1001
+ inputs = _ref$inputs === void 0 ? [] : _ref$inputs,
1002
+ children = _ref.children;
1003
+ React.useEffect(children, inputs);
1004
+ return null;
1005
+ };
1006
+
1007
+ const _willUseLayers = willUseLayers(),
1008
+ _willUseLayers2 = _slicedToArray__default["default"](_willUseLayers, 1),
1009
+ useTitleLayers = _willUseLayers2[0];
1010
+ const useTitle = title => {
1011
+ useTitleLayers({
1012
+ onTop: () => {
1013
+ document.title = title;
1014
+ }
1015
+ });
1016
+ };
1017
+
1018
+ const TabFocus = /*#__PURE__*/styled__default["default"].div.withConfig({
1019
+ displayName: "useRecycleFocus__TabFocus",
1020
+ componentId: "kxnccs-0"
1021
+ })(["width:0;height:0;position:absolute;"]);
1022
+ const useRecycleFocus = function (ref) {
1023
+ let enabled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
1024
+ let lastIndex = arguments.length > 2 ? arguments[2] : undefined;
1025
+ const recycle = i => e => {
1026
+ if (!enabled || !ref.current) {
1027
+ return;
1028
+ }
1029
+ const nextTab = ref.current.querySelectorAll('[tabindex]');
1030
+ if (nextTab) {
1031
+ if (i < 0) {
1032
+ console.log(nextTab[1]);
1033
+ nextTab[1].focus();
1034
+ } else {
1035
+ console.log(nextTab[nextTab.length - 2]);
1036
+ nextTab[nextTab.length - 2].focus();
1037
+ }
1038
+ }
1039
+ };
1040
+ return [/*#__PURE__*/React__default["default"].createElement(TabFocus, {
1041
+ tabIndex: 1,
1042
+ onFocus: recycle(0)
1043
+ }), /*#__PURE__*/React__default["default"].createElement(TabFocus, {
1044
+ tabIndex: lastIndex || 1,
1045
+ onFocus: recycle(-1)
1046
+ })];
1047
+ };
1048
+
1049
+ function usePrevious(value, initialValue) {
1050
+ const ref = React.useRef(initialValue);
1051
+ React.useEffect(() => {
1052
+ ref.current = value;
1053
+ });
1054
+ return ref.current;
1055
+ }
1056
+ function usePreviousUnique(value, initialValue) {
1057
+ const ref = React.useRef(initialValue);
1058
+ React.useEffect(() => {
1059
+ if (value !== ref.current) {
1060
+ ref.current = value;
1061
+ }
1062
+ });
1063
+ return ref.current;
1064
+ }
1065
+ function usePreviousForEffect(value, initialValue) {
1066
+ const ref = React.useRef(initialValue);
1067
+ React.useEffect(() => () => {
1068
+ ref.current = value;
1069
+ }, [value]);
1070
+ return ref.current;
1071
+ }
1072
+
1073
+ const useEnsureRef = forwardedRef => {
1074
+ const ref = React.useRef();
1075
+ return forwardedRef || ref;
1076
+ };
1077
+
1078
+ const useForceUpdate = () => {
1079
+ const _useState = React.useState(0),
1080
+ _useState2 = _slicedToArray__default["default"](_useState, 2);
1081
+ _useState2[0];
1082
+ const setValue = _useState2[1]; // integer state
1083
+ return () => setValue(value => value + 1); // update the state to force render
1084
+ };
1085
+ const willUseForceUpdate = () => {
1086
+ const _willUseSharedState = willUseSharedState(),
1087
+ _willUseSharedState2 = _slicedToArray__default["default"](_willUseSharedState, 3),
1088
+ useValue = _willUseSharedState2[0],
1089
+ set = _willUseSharedState2[2];
1090
+ const useForceUpdate = () => {
1091
+ const _useValue = useValue(0),
1092
+ _useValue2 = _slicedToArray__default["default"](_useValue, 2);
1093
+ _useValue2[0];
1094
+ const setV = _useValue2[1];
1095
+ return () => setV(value => value + 1);
1096
+ };
1097
+ return [useForceUpdate, () => set(value => value + 1)];
1098
+ };
1099
+
1100
+ const useUpdateOnResize = function () {
1101
+ let debounceInterval = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 200;
1102
+ const update = useForceUpdate();
1103
+ React.useEffect(() => {
1104
+ const trigger = _debounce__default["default"](debounceInterval, update);
1105
+ window.addEventListener('resize', trigger);
1106
+ return () => {
1107
+ window.removeEventListener('resize', trigger);
1108
+ };
1109
+ }, []);
1110
+ };
1111
+
1112
+ const useAsyncEffect = (fn, args) => {
1113
+ React.useEffect(() => {
1114
+ const result = fn();
1115
+ return () => {
1116
+ result.then(end => utils.callIfFunction(end));
1117
+ };
1118
+ }, args);
1119
+ };
1120
+
1121
+ const useUpdateEffect = (effect, inputs) => {
1122
+ const pastFirstTime = React.useRef();
1123
+ React.useEffect(() => {
1124
+ if (pastFirstTime.current) {
1125
+ return effect();
1126
+ } else {
1127
+ pastFirstTime.current = true;
1128
+ }
1129
+ }, inputs);
1130
+ };
1131
+
1132
+ const useRefMemo = value => {
1133
+ const ref = React.useRef(value);
1134
+ if (ref.current !== value) {
1135
+ ref.current = utils.callIfFunction(value);
1136
+ }
1137
+ return ref;
1138
+ };
1139
+
1140
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
1141
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
1142
+ const IS_ARRAY_ITEMS_EQUALS = (a, b) => a.length === b.length && !a.some((x, i) => !Object.is(x, b[i]));
1143
+ const IS_DEPS_EQUALS = function () {
1144
+ let a = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
1145
+ let b = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1146
+ return Object.is(a, b) || IS_ARRAY_ITEMS_EQUALS(a, b);
1147
+ };
1148
+ const SHALLOW_IS_EQUAL = (a, b) => Object.is(a, b) || _isArray__default["default"](a) && _isArray__default["default"](b) && IS_ARRAY_ITEMS_EQUALS(a, b);
1149
+ const EMPTY_DEPS = [];
1150
+ const EMPTY_VALUE = {
1151
+ "EMPTY": true
1152
+ };
1153
+ const useUpdateSignal = initialValue => {
1154
+ const value = React.useRef(initialValue);
1155
+ value.current = initialValue;
1156
+ return useLazyConstant(() => {
1157
+ let registered = [];
1158
+ const register = function () {
1159
+ let selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _identity__default["default"];
1160
+ let isEqual = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : SHALLOW_IS_EQUAL;
1161
+ let withTransition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1162
+ const selectorRef = React.useRef();
1163
+ selectorRef.current = selector;
1164
+ const update = useForceUpdate();
1165
+ const lastValueRef = React.useRef(utils._s.select(selectorRef.current, value.current));
1166
+ React.useEffect(() => {
1167
+ const item = [update, selectorRef, isEqual, lastValueRef, withTransition];
1168
+ registered = [...registered, item];
1169
+ return () => {
1170
+ registered = registered.filter(v => v !== item);
1171
+ };
1172
+ }, []);
1173
+ if (value.current === EMPTY_VALUE) {
1174
+ return EMPTY_VALUE;
1175
+ }
1176
+ return lastValueRef.current;
1177
+ };
1178
+ const call = function () {
1179
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1180
+ args[_key] = arguments[_key];
1181
+ }
1182
+ return registered.forEach(_ref => {
1183
+ let _ref2 = _slicedToArray__default["default"](_ref, 5),
1184
+ fn = _ref2[0],
1185
+ selectorRef = _ref2[1],
1186
+ isEqual = _ref2[2],
1187
+ lastValueRef = _ref2[3],
1188
+ withTransition = _ref2[4];
1189
+ const nextValue = utils._s.select(selectorRef.current, ...args);
1190
+ if (!utils.callIfFunction(isEqual, nextValue, lastValueRef.current)) {
1191
+ lastValueRef.current = nextValue;
1192
+ if (withTransition) {
1193
+ (withTransition === true ? React.startTransition : withTransition)(() => fn(nextValue));
1194
+ } else {
1195
+ fn(nextValue);
1196
+ }
1197
+ }
1198
+ });
1199
+ };
1200
+ return [register, call];
1201
+ });
1202
+ };
1203
+ const useSelectorSignal = value => {
1204
+ const prevValue = React.useRef(value);
1205
+ const _useUpdateSignal = useUpdateSignal(value),
1206
+ _useUpdateSignal2 = _slicedToArray__default["default"](_useUpdateSignal, 2),
1207
+ _register = _useUpdateSignal2[0],
1208
+ call = _useUpdateSignal2[1];
1209
+ const register = React.useCallback((selector, deps, isEqual, withTransition) => {
1210
+ const prevDeps = React.useRef(EMPTY_DEPS);
1211
+ if (prevDeps.current !== EMPTY_DEPS && !IS_DEPS_EQUALS(deps, prevDeps.current)) {
1212
+ call(prevValue.current);
1213
+ }
1214
+ prevDeps.current = deps;
1215
+ return _register(selector, isEqual, withTransition);
1216
+ }, []);
1217
+ React.useEffect(() => {
1218
+ if (prevValue.current !== value) {
1219
+ prevValue.current = value;
1220
+ call(value);
1221
+ }
1222
+ }, [value]);
1223
+ return register;
1224
+ };
1225
+ const updateStateFn = (path, update) => state => path ? _update__default["default"](path, v => utils.callIfFunction(update, v), state) : utils.callIfFunction(update, state);
1226
+ const createStatefulContext = (v, defaultIsEqual) => {
1227
+ const Ctx = /*#__PURE__*/React__default["default"].createContext(v);
1228
+ const Provider = _ref3 => {
1229
+ let value = _ref3.value,
1230
+ setValue = _ref3.setValue,
1231
+ utils = _ref3.utils,
1232
+ children = _ref3.children;
1233
+ const register = useSelectorSignal(value);
1234
+ const v = useLazyConstant(() => [register, setValue, utils]);
1235
+ return /*#__PURE__*/React__default["default"].createElement(Ctx.Provider, {
1236
+ value: v
1237
+ }, children);
1238
+ };
1239
+ const useCtx = () => React.useContext(Ctx);
1240
+ const useSelectValue = (selector, deps, defaultIsEqual, withTransition) => {
1241
+ const _useCtx = useCtx(),
1242
+ _useCtx2 = _slicedToArray__default["default"](_useCtx, 1),
1243
+ useRegister = _useCtx2[0];
1244
+ if (deps === true) {
1245
+ return useRegister(selector, [], undefined, React.startTransition);
1246
+ } else if (_isPlainObject__default["default"](deps)) {
1247
+ return useRegister(selector, deps.deps, deps.isEqual, deps.withTransition);
1248
+ } else {
1249
+ return useRegister(selector, _isArray__default["default"](deps) ? deps : deps === null || deps === void 0 ? void 0 : deps.deps, defaultIsEqual, withTransition);
1250
+ }
1251
+ };
1252
+ const useSetValue = path => {
1253
+ const _useCtx3 = useCtx(),
1254
+ _useCtx4 = _slicedToArray__default["default"](_useCtx3, 2);
1255
+ _useCtx4[0];
1256
+ const set = _useCtx4[1];
1257
+ return useConstant(update => set(updateStateFn(path, update)));
1258
+ };
1259
+ const useUtils = (path, deps) => {
1260
+ const _useCtx5 = useCtx(),
1261
+ _useCtx6 = _slicedToArray__default["default"](_useCtx5, 3);
1262
+ _useCtx6[0];
1263
+ _useCtx6[1];
1264
+ const utils = _useCtx6[2];
1265
+ return utils;
1266
+ };
1267
+ return [Provider, [useSelectValue, useSetValue, useUtils, useCtx]];
1268
+ };
1269
+ const createSelfStatefulContext = (v, defaultIsEqual) => {
1270
+ const _createStatefulContex = createStatefulContext(v),
1271
+ _createStatefulContex2 = _slicedToArray__default["default"](_createStatefulContex, 2),
1272
+ Provider = _createStatefulContex2[0],
1273
+ _createStatefulContex3 = _slicedToArray__default["default"](_createStatefulContex2[1], 4),
1274
+ useSelectValue = _createStatefulContex3[0],
1275
+ useSetValue = _createStatefulContex3[1],
1276
+ useUtils = _createStatefulContex3[2],
1277
+ useCtx = _createStatefulContex3[3];
1278
+ const StateFullProvider = _ref4 => {
1279
+ let _ref4$init = _ref4.init,
1280
+ init = _ref4$init === void 0 ? {} : _ref4$init,
1281
+ utils = _ref4.utils,
1282
+ children = _ref4.children;
1283
+ const _useState = React.useState(init),
1284
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1285
+ state = _useState2[0],
1286
+ setState = _useState2[1];
1287
+ return /*#__PURE__*/React__default["default"].createElement(Provider, {
1288
+ value: state,
1289
+ setValue: setState,
1290
+ utils: utils
1291
+ }, children);
1292
+ };
1293
+ return [StateFullProvider, [useSelectValue, useSetValue, useUtils, useCtx]];
1294
+ };
1295
+ const createLazyStatefulContext = (toPromise, defaultIsEqual) => {
1296
+ const _createStatefulContex4 = createStatefulContext(EMPTY_VALUE),
1297
+ _createStatefulContex5 = _slicedToArray__default["default"](_createStatefulContex4, 2),
1298
+ Provider = _createStatefulContex5[0],
1299
+ _createStatefulContex6 = _slicedToArray__default["default"](_createStatefulContex5[1], 4),
1300
+ useSelectValue = _createStatefulContex6[0];
1301
+ _createStatefulContex6[1];
1302
+ const useUtils = _createStatefulContex6[2],
1303
+ useCtx = _createStatefulContex6[3];
1304
+ const useSelectLazyValue = function (selector, deps) {
1305
+ let isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultIsEqual;
1306
+ let withTransition = arguments.length > 3 ? arguments[3] : undefined;
1307
+ const value = useSelectValue(selector, deps, isEqual, withTransition);
1308
+ const utils$1 = useUtils();
1309
+ if (value === EMPTY_VALUE) {
1310
+ const loadedValue = React.use(utils$1._lazyValue());
1311
+ return utils._s.select(selector, loadedValue);
1312
+ }
1313
+ return value;
1314
+ };
1315
+ const useSetLazyValue = path => {
1316
+ const _useCtx7 = useCtx(),
1317
+ _useCtx8 = _slicedToArray__default["default"](_useCtx7, 3),
1318
+ setValue = _useCtx8[1],
1319
+ utils = _useCtx8[2];
1320
+ return useConstant(update => {
1321
+ return setValue(value => value === EMPTY_VALUE ? updateStateFn(path, update)(utils.loadedValue()) : updateStateFn(path, update)(value));
1322
+ });
1323
+ };
1324
+ const useValuePromise = (selector, deps, isEqual, withTransition) => {
1325
+ const value = useSelectValue(selector, deps, isEqual, withTransition);
1326
+ const utils$1 = useUtils();
1327
+ return React.useCallback(() => {
1328
+ if (value === EMPTY_VALUE) {
1329
+ return utils$1._lazyValue().then(v => console.log(v, utils._s.select(selector, v), selector) || utils._s.select(selector, v));
1330
+ }
1331
+ return new Promise(value);
1332
+ }, [value, deps]);
1333
+ };
1334
+ const LazyStateFullProvider = _ref5 => {
1335
+ let value = _ref5.value,
1336
+ utils$1 = _ref5.utils,
1337
+ children = _ref5.children,
1338
+ _ref5$fallback = _ref5.fallback,
1339
+ fallback = _ref5$fallback === void 0 ? null : _ref5$fallback;
1340
+ const _useState3 = React.useState(EMPTY_VALUE),
1341
+ _useState4 = _slicedToArray__default["default"](_useState3, 2),
1342
+ state = _useState4[0],
1343
+ setState = _useState4[1];
1344
+ const promise = React.useRef();
1345
+ const loadedValue = React.useRef();
1346
+ const lazyUtils = React.useMemo(() => _objectSpread(_objectSpread({}, utils$1), {}, {
1347
+ _lazyValue: () => {
1348
+ var _promise$current;
1349
+ (_promise$current = promise.current) !== null && _promise$current !== void 0 ? _promise$current : promise.current = utils.callIfFunction(toPromise || _identity__default["default"], value);
1350
+ promise.current.then(value => {
1351
+ loadedValue.current = value;
1352
+ });
1353
+ return promise.current;
1354
+ },
1355
+ loadedValue: () => loadedValue.current
1356
+ }), [value, utils$1]);
1357
+ return /*#__PURE__*/React__default["default"].createElement(Provider, {
1358
+ value: state,
1359
+ setValue: setState,
1360
+ utils: lazyUtils
1361
+ }, fallback === false ? children : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Suspense, {
1362
+ fallback: fallback
1363
+ }, children));
1364
+ };
1365
+ return [LazyStateFullProvider, [useSelectLazyValue, useSetLazyValue, useValuePromise]];
1366
+ };
1367
+ const createSelectableContext = v => {
1368
+ const _createStatefulContex7 = createStatefulContext(v),
1369
+ _createStatefulContex8 = _slicedToArray__default["default"](_createStatefulContex7, 2),
1370
+ Provider = _createStatefulContex8[0],
1371
+ _createStatefulContex9 = _slicedToArray__default["default"](_createStatefulContex8[1], 1),
1372
+ useSelectValue = _createStatefulContex9[0];
1373
+ return [Provider, useSelectValue];
1374
+ };
1375
+ const createTriggerUpdateContext = v => {
1376
+ const _createStatefulContex0 = createStatefulContext(v),
1377
+ _createStatefulContex1 = _slicedToArray__default["default"](_createStatefulContex0, 2),
1378
+ Provider = _createStatefulContex1[0],
1379
+ _createStatefulContex10 = _slicedToArray__default["default"](_createStatefulContex1[1], 1),
1380
+ useSelectValue = _createStatefulContex10[0];
1381
+ const TriggerProvider = /*#__PURE__*/React__default["default"].forwardRef((_ref6, ref) => {
1382
+ let children = _ref6.children;
1383
+ const _useState5 = React.useState(0),
1384
+ _useState6 = _slicedToArray__default["default"](_useState5, 2),
1385
+ v = _useState6[0],
1386
+ setV = _useState6[1];
1387
+ const trigger = React__default["default"].useMemo(() => () => setV(v => v + 1), [v]);
1388
+ React__default["default"].useImperativeHandle(ref, () => ({
1389
+ trigger
1390
+ }), []);
1391
+ return /*#__PURE__*/React__default["default"].createElement(Provider, {
1392
+ value: trigger
1393
+ }, children);
1394
+ });
1395
+ return [TriggerProvider, useSelectValue];
1396
+ };
1397
+
1398
+ const WithConstant = _ref => {
1399
+ _ref.inputs;
1400
+ let value = _ref.value,
1401
+ children = _ref.children;
1402
+ const constant = useLazyConstant(value);
1403
+ return children(constant);
1404
+ };
1405
+
1406
+ const useWithTransition = value => {
1407
+ const _useState = React.useState(value),
1408
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
1409
+ state = _useState2[0],
1410
+ setState = _useState2[1];
1411
+ React.useEffect(() => {
1412
+ React.startTransition(() => {
1413
+ setState(value);
1414
+ });
1415
+ }, [value]);
1416
+ return state;
1417
+ };
1418
+
1419
+ exports.Fill = Fill;
1420
+ exports.GroupEventFactory = GroupEventFactory;
1421
+ exports.PopupContext = PopupContext;
1422
+ exports.Slot = Slot;
1423
+ exports.SlotContext = SlotContext;
1424
+ exports.SlotProvider = SlotProvider;
1425
+ exports.StartlibsConsumer = StartlibsConsumer;
1426
+ exports.StartlibsContext = StartlibsContext;
1427
+ exports.StartlibsMetacontext = StartlibsMetacontext;
1428
+ exports.StartlibsProvider = StartlibsProvider;
1429
+ exports.WithConstant = WithConstant;
1430
+ exports.WithEffect = WithEffect;
1431
+ exports.WithLazyPlaceholder = WithLazyPlaceholder;
1432
+ exports.WithLazyResource = WithLazyResource;
1433
+ exports.WithRef = WithRef;
1434
+ exports.clearPopups = clearPopups;
1435
+ exports.consumes = consumes;
1436
+ exports.createLazyStatefulContext = createLazyStatefulContext;
1437
+ exports.createSelectableContext = createSelectableContext;
1438
+ exports.createSelfStatefulContext = createSelfStatefulContext;
1439
+ exports.createStatefulContext = createStatefulContext;
1440
+ exports.createTriggerUpdateContext = createTriggerUpdateContext;
1441
+ exports.useAsyncEffect = useAsyncEffect;
1442
+ exports.useCallState = useCallState;
1443
+ exports.useCallbackStable = useCallbackStable;
1444
+ exports.useCatalogManager = useCatalogManager;
1445
+ exports.useConstant = useConstant;
1446
+ exports.useConsumerCatalog = useConsumerCatalog;
1447
+ exports.useEnsureRef = useEnsureRef;
1448
+ exports.useFill = useFill;
1449
+ exports.useForceUpdate = useForceUpdate;
1450
+ exports.useHiddenFill = useHiddenFill;
1451
+ exports.useIsUnmounted = useIsUnmounted;
1452
+ exports.useLazyConstant = useLazyConstant;
1453
+ exports.usePopupToggle = usePopupToggle;
1454
+ exports.usePrevious = usePrevious;
1455
+ exports.usePreviousForEffect = usePreviousForEffect;
1456
+ exports.usePreviousUnique = usePreviousUnique;
1457
+ exports.useRecycleFocus = useRecycleFocus;
1458
+ exports.useRefMemo = useRefMemo;
1459
+ exports.useRefState = useRefState;
1460
+ exports.useRefToggle = useRefToggle;
1461
+ exports.useTitle = useTitle;
1462
+ exports.useToggle = useToggle;
1463
+ exports.useUpdateEffect = useUpdateEffect;
1464
+ exports.useUpdateOnResize = useUpdateOnResize;
1465
+ exports.useUpdateSignal = useUpdateSignal;
1466
+ exports.useWithTransition = useWithTransition;
1467
+ exports.willUseForceUpdate = willUseForceUpdate;
1468
+ exports.willUseLayers = willUseLayers;
1469
+ exports.willUseSharedCallback = willUseSharedCallback;
1470
+ exports.willUseSharedState = willUseSharedState;
1471
+ exports.willUseSpreadState = willUseSpreadState;
1472
+ exports.withDialogError = withDialogError;
1473
+ exports.withGroupEvent = withGroupEvent;
1474
+ //# sourceMappingURL=index.cjs.map