@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.
- package/lib/SlotFill.mjs +232 -0
- package/lib/SlotFill.mjs.map +1 -0
- package/lib/StartlibsProvider.mjs +62 -0
- package/lib/StartlibsProvider.mjs.map +1 -0
- package/lib/hocs/WithLazyResource.mjs +74 -0
- package/lib/hocs/WithLazyResource.mjs.map +1 -0
- package/lib/hocs/WithRef.mjs +20 -0
- package/lib/hocs/WithRef.mjs.map +1 -0
- package/lib/hocs/consumes.mjs +22 -0
- package/lib/hocs/consumes.mjs.map +1 -0
- package/lib/hocs/withDialogError.mjs +22 -0
- package/lib/hocs/withDialogError.mjs.map +1 -0
- package/lib/hocs/withGroupEvent.mjs +45 -0
- package/lib/hocs/withGroupEvent.mjs.map +1 -0
- package/lib/hooks/WithConstant.mjs +13 -0
- package/lib/hooks/WithConstant.mjs.map +1 -0
- package/lib/hooks/WithEffect.mjs +12 -0
- package/lib/hooks/WithEffect.mjs.map +1 -0
- package/lib/hooks/useAsyncEffect.mjs +14 -0
- package/lib/hooks/useAsyncEffect.mjs.map +1 -0
- package/lib/hooks/useCallState.mjs +21 -0
- package/lib/hooks/useCallState.mjs.map +1 -0
- package/lib/hooks/useCallbackStable.mjs +17 -0
- package/lib/hooks/useCallbackStable.mjs.map +1 -0
- package/lib/hooks/useConstant.mjs +21 -0
- package/lib/hooks/useConstant.mjs.map +1 -0
- package/lib/hooks/useConsumerCatalog.mjs +25 -0
- package/lib/hooks/useConsumerCatalog.mjs.map +1 -0
- package/lib/hooks/useEnsureRef.mjs +9 -0
- package/lib/hooks/useEnsureRef.mjs.map +1 -0
- package/lib/hooks/useForceUpdate.mjs +28 -0
- package/lib/hooks/useForceUpdate.mjs.map +1 -0
- package/lib/hooks/useIsUnmounted.mjs +15 -0
- package/lib/hooks/useIsUnmounted.mjs.map +1 -0
- package/lib/hooks/usePopupToggle.mjs +33 -0
- package/lib/hooks/usePopupToggle.mjs.map +1 -0
- package/lib/hooks/usePrevious.mjs +28 -0
- package/lib/hooks/usePrevious.mjs.map +1 -0
- package/lib/hooks/useRecycleFocus.mjs +36 -0
- package/lib/hooks/useRecycleFocus.mjs.map +1 -0
- package/lib/hooks/useRefMemo.mjs +13 -0
- package/lib/hooks/useRefMemo.mjs.map +1 -0
- package/lib/hooks/useRefState.mjs +29 -0
- package/lib/hooks/useRefState.mjs.map +1 -0
- package/lib/hooks/useSignal.mjs +271 -0
- package/lib/hooks/useSignal.mjs.map +1 -0
- package/lib/hooks/useTitle.mjs +17 -0
- package/lib/hooks/useTitle.mjs.map +1 -0
- package/lib/hooks/useToggle.mjs +152 -0
- package/lib/hooks/useToggle.mjs.map +1 -0
- package/lib/hooks/useUpdateEffect.mjs +15 -0
- package/lib/hooks/useUpdateEffect.mjs.map +1 -0
- package/lib/hooks/useUpdateOnResize.mjs +18 -0
- package/lib/hooks/useUpdateOnResize.mjs.map +1 -0
- package/lib/hooks/useWithTransition.mjs +18 -0
- package/lib/hooks/useWithTransition.mjs.map +1 -0
- package/lib/hooks/willUseLayers.mjs +55 -0
- package/lib/hooks/willUseLayers.mjs.map +1 -0
- package/lib/hooks/willUseSharedCallback.mjs +70 -0
- package/lib/hooks/willUseSharedCallback.mjs.map +1 -0
- package/lib/hooks/willUseSharedState.mjs +41 -0
- package/lib/hooks/willUseSharedState.mjs.map +1 -0
- package/lib/hooks/willUseSpreadState.mjs +119 -0
- package/lib/hooks/willUseSpreadState.mjs.map +1 -0
- package/lib/index.cjs +1474 -0
- package/lib/index.cjs.map +1 -0
- package/lib/index.mjs +33 -0
- package/lib/index.mjs.map +1 -0
- package/lib-yak/SlotFill.mjs +230 -0
- package/lib-yak/SlotFill.mjs.map +1 -0
- package/lib-yak/StartlibsProvider.mjs +62 -0
- package/lib-yak/StartlibsProvider.mjs.map +1 -0
- package/lib-yak/hocs/WithLazyResource.mjs +74 -0
- package/lib-yak/hocs/WithLazyResource.mjs.map +1 -0
- package/lib-yak/hocs/WithRef.mjs +20 -0
- package/lib-yak/hocs/WithRef.mjs.map +1 -0
- package/lib-yak/hocs/consumes.mjs +22 -0
- package/lib-yak/hocs/consumes.mjs.map +1 -0
- package/lib-yak/hocs/withDialogError.mjs +22 -0
- package/lib-yak/hocs/withDialogError.mjs.map +1 -0
- package/lib-yak/hocs/withGroupEvent.mjs +45 -0
- package/lib-yak/hocs/withGroupEvent.mjs.map +1 -0
- package/lib-yak/hooks/WithConstant.mjs +13 -0
- package/lib-yak/hooks/WithConstant.mjs.map +1 -0
- package/lib-yak/hooks/WithEffect.mjs +12 -0
- package/lib-yak/hooks/WithEffect.mjs.map +1 -0
- package/lib-yak/hooks/useAsyncEffect.mjs +14 -0
- package/lib-yak/hooks/useAsyncEffect.mjs.map +1 -0
- package/lib-yak/hooks/useCallState.mjs +21 -0
- package/lib-yak/hooks/useCallState.mjs.map +1 -0
- package/lib-yak/hooks/useCallbackStable.mjs +17 -0
- package/lib-yak/hooks/useCallbackStable.mjs.map +1 -0
- package/lib-yak/hooks/useConstant.mjs +21 -0
- package/lib-yak/hooks/useConstant.mjs.map +1 -0
- package/lib-yak/hooks/useConsumerCatalog.mjs +25 -0
- package/lib-yak/hooks/useConsumerCatalog.mjs.map +1 -0
- package/lib-yak/hooks/useEnsureRef.mjs +9 -0
- package/lib-yak/hooks/useEnsureRef.mjs.map +1 -0
- package/lib-yak/hooks/useForceUpdate.mjs +28 -0
- package/lib-yak/hooks/useForceUpdate.mjs.map +1 -0
- package/lib-yak/hooks/useIsUnmounted.mjs +15 -0
- package/lib-yak/hooks/useIsUnmounted.mjs.map +1 -0
- package/lib-yak/hooks/usePopupToggle.mjs +33 -0
- package/lib-yak/hooks/usePopupToggle.mjs.map +1 -0
- package/lib-yak/hooks/usePrevious.mjs +28 -0
- package/lib-yak/hooks/usePrevious.mjs.map +1 -0
- package/lib-yak/hooks/useRecycleFocus.mjs +34 -0
- package/lib-yak/hooks/useRecycleFocus.mjs.map +1 -0
- package/lib-yak/hooks/useRefMemo.mjs +13 -0
- package/lib-yak/hooks/useRefMemo.mjs.map +1 -0
- package/lib-yak/hooks/useRefState.mjs +29 -0
- package/lib-yak/hooks/useRefState.mjs.map +1 -0
- package/lib-yak/hooks/useSignal.mjs +271 -0
- package/lib-yak/hooks/useSignal.mjs.map +1 -0
- package/lib-yak/hooks/useTitle.mjs +17 -0
- package/lib-yak/hooks/useTitle.mjs.map +1 -0
- package/lib-yak/hooks/useToggle.mjs +152 -0
- package/lib-yak/hooks/useToggle.mjs.map +1 -0
- package/lib-yak/hooks/useUpdateEffect.mjs +15 -0
- package/lib-yak/hooks/useUpdateEffect.mjs.map +1 -0
- package/lib-yak/hooks/useUpdateOnResize.mjs +18 -0
- package/lib-yak/hooks/useUpdateOnResize.mjs.map +1 -0
- package/lib-yak/hooks/useWithTransition.mjs +18 -0
- package/lib-yak/hooks/useWithTransition.mjs.map +1 -0
- package/lib-yak/hooks/willUseLayers.mjs +55 -0
- package/lib-yak/hooks/willUseLayers.mjs.map +1 -0
- package/lib-yak/hooks/willUseSharedCallback.mjs +70 -0
- package/lib-yak/hooks/willUseSharedCallback.mjs.map +1 -0
- package/lib-yak/hooks/willUseSharedState.mjs +41 -0
- package/lib-yak/hooks/willUseSharedState.mjs.map +1 -0
- package/lib-yak/hooks/willUseSpreadState.mjs +119 -0
- package/lib-yak/hooks/willUseSpreadState.mjs.map +1 -0
- package/lib-yak/index.mjs +33 -0
- package/lib-yak/index.mjs.map +1 -0
- package/package.json +53 -30
- package/src/SlotFill.jsx +166 -0
- package/src/StartlibsProvider.jsx +62 -0
- package/src/hocs/WithLazyResource.jsx +32 -0
- package/src/hocs/WithRef.js +20 -0
- package/src/hocs/Wrapper.jsx +40 -0
- package/src/hocs/consumes.jsx +16 -0
- package/src/hocs/withDialogError.jsx +16 -0
- package/src/hocs/withGroupEvent.jsx +43 -0
- package/src/hooks/WithConstant.jsx +7 -0
- package/src/hooks/WithEffect.jsx +6 -0
- package/src/hooks/useAsyncEffect.jsx +11 -0
- package/src/hooks/useCallState.js +15 -0
- package/src/hooks/useCallbackStable.jsx +12 -0
- package/src/hooks/useConstant.js +20 -0
- package/src/hooks/useConsumerCatalog.jsx +21 -0
- package/src/hooks/useEnsureRef.js +6 -0
- package/src/hooks/useForceUpdate.jsx +16 -0
- package/src/hooks/useIsUnmounted.jsx +12 -0
- package/src/hooks/usePopupToggle.js +30 -0
- package/src/hooks/usePrevious.jsx +27 -0
- package/src/hooks/useRecycleFocus.jsx +26 -0
- package/src/hooks/useRefMemo.jsx +10 -0
- package/src/hooks/useRefState.js +26 -0
- package/src/hooks/useSignal.jsx +193 -0
- package/src/hooks/useTitle.jsx +12 -0
- package/src/hooks/useToggle.js +126 -0
- package/src/hooks/useUpdateEffect.js +14 -0
- package/src/hooks/useUpdateOnResize.jsx +14 -0
- package/src/hooks/useWithTransition.jsx +14 -0
- package/src/hooks/willUseLayers.jsx +42 -0
- package/src/hooks/willUseSharedCallback.jsx +60 -0
- package/src/hooks/willUseSharedState.jsx +34 -0
- package/src/hooks/willUseSpreadState.jsx +103 -0
- package/src/index.js +32 -0
- package/.babelrc +0 -27
- package/lib/index.js +0 -1921
- package/rollup.config.js +0 -53
- 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
|
+
getSize = _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 = ["name", "children"];
|
|
183
|
+
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; }
|
|
184
|
+
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; }
|
|
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);
|
|
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(_objectSpread({}, 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
|
+
slot = _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$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; }
|
|
439
|
+
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; }
|
|
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$1({}, 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$1 = ["value", "fallback", "children", "forwardProps"],
|
|
922
|
+
_excluded2 = ["value", "wrap", "fallback", "children", "forwardProps"];
|
|
923
|
+
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; }
|
|
924
|
+
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; }
|
|
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$3(_objectSpread$3({}, element.props), extra) : _objectSpread$3(_objectSpread$3({}, 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$1);
|
|
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
|
+
const layer = 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
|
+
value = _useState2[0],
|
|
1082
|
+
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
|
+
v = _useValue2[0],
|
|
1094
|
+
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$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; }
|
|
1141
|
+
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; }
|
|
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
|
+
reg = _useCtx4[0],
|
|
1256
|
+
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
|
+
reg = _useCtx6[0],
|
|
1263
|
+
set = _useCtx6[1],
|
|
1264
|
+
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
|
+
useSetValue = _createStatefulContex6[1],
|
|
1302
|
+
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$4(_objectSpread$4({}, 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
|
+
let _ref$inputs = _ref.inputs,
|
|
1400
|
+
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
|