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