@startlibs/core 1.0.0-alpha-6t2 → 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 +249 -231
- package/package.json +4 -4
- package/src/index.js +28 -0
package/lib/index.js
CHANGED
|
@@ -31,20 +31,15 @@ var styled = require('styled-components');
|
|
|
31
31
|
var utils = require('@startlibs/utils');
|
|
32
32
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
33
33
|
var _typeof = require('@babel/runtime/helpers/typeof');
|
|
34
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
35
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
34
36
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
35
37
|
var mitt = require('mitt');
|
|
36
38
|
var _isArray = require('lodash/fp/isArray');
|
|
37
|
-
require('@babel/runtime/helpers/asyncToGenerator');
|
|
38
|
-
require('@babel/runtime/regenerator');
|
|
39
|
-
require('@babel/runtime/helpers/awaitAsyncGenerator');
|
|
40
|
-
require('@babel/runtime/helpers/wrapAsyncGenerator');
|
|
41
|
-
var _ = require('lodash/fp');
|
|
42
|
-
var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
|
|
43
|
-
require('polished');
|
|
44
|
-
var createEmotion = require('create-emotion');
|
|
45
39
|
var _isFunction = require('lodash/fp/isFunction');
|
|
46
40
|
var _get = require('lodash/fp/get');
|
|
47
41
|
var _isString = require('lodash/fp/isString');
|
|
42
|
+
var _identity = require('lodash/fp/identity');
|
|
48
43
|
|
|
49
44
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
50
45
|
|
|
@@ -76,15 +71,15 @@ var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
|
76
71
|
var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
|
|
77
72
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
78
73
|
var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
|
|
74
|
+
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
75
|
+
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
|
|
79
76
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
80
77
|
var mitt__default = /*#__PURE__*/_interopDefaultLegacy(mitt);
|
|
81
78
|
var _isArray__default = /*#__PURE__*/_interopDefaultLegacy(_isArray);
|
|
82
|
-
var ___default = /*#__PURE__*/_interopDefaultLegacy(_);
|
|
83
|
-
var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
|
|
84
|
-
var createEmotion__default = /*#__PURE__*/_interopDefaultLegacy(createEmotion);
|
|
85
79
|
var _isFunction__default = /*#__PURE__*/_interopDefaultLegacy(_isFunction);
|
|
86
80
|
var _get__default = /*#__PURE__*/_interopDefaultLegacy(_get);
|
|
87
81
|
var _isString__default = /*#__PURE__*/_interopDefaultLegacy(_isString);
|
|
82
|
+
var _identity__default = /*#__PURE__*/_interopDefaultLegacy(_identity);
|
|
88
83
|
|
|
89
84
|
var callList = function callList(list, firstArg) {
|
|
90
85
|
for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
|
|
@@ -529,7 +524,7 @@ var isPath = function isPath(path) {
|
|
|
529
524
|
|
|
530
525
|
var getter = function getter(value) {
|
|
531
526
|
return function (path) {
|
|
532
|
-
return isPath(path) ? utils._s.get(path, value) : value;
|
|
527
|
+
return path !== "" && isPath(path) ? utils._s.get(path, value) : value;
|
|
533
528
|
};
|
|
534
529
|
};
|
|
535
530
|
|
|
@@ -682,17 +677,46 @@ var useToggleInternal = function useToggleInternal() {
|
|
|
682
677
|
var _wait = function _wait(promise) {
|
|
683
678
|
var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
684
679
|
var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
685
|
-
return
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
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
|
+
);
|
|
696
720
|
};
|
|
697
721
|
|
|
698
722
|
var setters = React.useMemo(function () {
|
|
@@ -1057,213 +1081,6 @@ function (_React$Component) {
|
|
|
1057
1081
|
return WithRef;
|
|
1058
1082
|
}(React__default['default'].Component);
|
|
1059
1083
|
|
|
1060
|
-
var scrollWidth = function () {
|
|
1061
|
-
if (!window.document) return 0;
|
|
1062
|
-
var html = document.documentElement;
|
|
1063
|
-
var oldOverflow = html.style.overflowY;
|
|
1064
|
-
html.style.overflowY = 'scroll';
|
|
1065
|
-
var width = window.innerWidth - html.clientWidth;
|
|
1066
|
-
html.style.overflowY = oldOverflow;
|
|
1067
|
-
return width;
|
|
1068
|
-
}();
|
|
1069
|
-
|
|
1070
|
-
var callIfFunction = function callIfFunction(prop) {
|
|
1071
|
-
for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {
|
|
1072
|
-
args[_key6 - 1] = arguments[_key6];
|
|
1073
|
-
}
|
|
1074
|
-
|
|
1075
|
-
return typeof prop === "function" ? prop.apply(void 0, args) : prop;
|
|
1076
|
-
};
|
|
1077
|
-
var ifUndefined = function ifUndefined(v) {
|
|
1078
|
-
for (var _len10 = arguments.length, or = new Array(_len10 > 1 ? _len10 - 1 : 0), _key10 = 1; _key10 < _len10; _key10++) {
|
|
1079
|
-
or[_key10 - 1] = arguments[_key10];
|
|
1080
|
-
}
|
|
1081
|
-
|
|
1082
|
-
return v !== undefined ? v : or.length === 1 ? or[0] : ifUndefined.apply(void 0, [or[0]].concat(_toConsumableArray__default['default'](or.slice(1))));
|
|
1083
|
-
};
|
|
1084
|
-
|
|
1085
|
-
var moveElement = ___default['default'].curry(function (from, to, list) {
|
|
1086
|
-
var el = list[from];
|
|
1087
|
-
|
|
1088
|
-
var without = ___default['default'].pullAt(from, list);
|
|
1089
|
-
|
|
1090
|
-
without.splice(to, 0, el);
|
|
1091
|
-
return without;
|
|
1092
|
-
});
|
|
1093
|
-
var unsetOrRemoveAt = ___default['default'].curry(function (path, value) {
|
|
1094
|
-
var pathArr = toPath(path);
|
|
1095
|
-
|
|
1096
|
-
var _pathArr$slice = pathArr.slice(-1),
|
|
1097
|
-
_pathArr$slice2 = _slicedToArray__default['default'](_pathArr$slice, 1),
|
|
1098
|
-
lastKey = _pathArr$slice2[0];
|
|
1099
|
-
|
|
1100
|
-
return update(pathArr.slice(0, -1), function (v) {
|
|
1101
|
-
return Array.isArray(v) ? removeAt(lastKey, v) : unset(lastKey, v);
|
|
1102
|
-
}, value);
|
|
1103
|
-
});
|
|
1104
|
-
|
|
1105
|
-
var sanitizePath = function sanitizePath(path) {
|
|
1106
|
-
return Array.isArray(path) ? path.map(sanitizePath) : typeof path === 'number' ? path.toString() : path === undefined ? [] : path;
|
|
1107
|
-
};
|
|
1108
|
-
|
|
1109
|
-
var toPath = function toPath(path) {
|
|
1110
|
-
return ___default['default'].toPath(sanitizePath(path));
|
|
1111
|
-
};
|
|
1112
|
-
|
|
1113
|
-
var isEmptyPath = function isEmptyPath(path) {
|
|
1114
|
-
return path && !path.length;
|
|
1115
|
-
};
|
|
1116
|
-
|
|
1117
|
-
var update = ___default['default'].curry(function (path, updater, state) {
|
|
1118
|
-
var sanitizedPath = sanitizePath(path);
|
|
1119
|
-
|
|
1120
|
-
if (isEmptyPath(sanitizedPath)) {
|
|
1121
|
-
return updater(state);
|
|
1122
|
-
} else {
|
|
1123
|
-
return ___default['default'].update(sanitizedPath, updater, state);
|
|
1124
|
-
}
|
|
1125
|
-
});
|
|
1126
|
-
var get = ___default['default'].curry(function (path, state) {
|
|
1127
|
-
var sanitizedPath = sanitizePath(path);
|
|
1128
|
-
|
|
1129
|
-
if (isEmptyPath(sanitizedPath)) {
|
|
1130
|
-
return state;
|
|
1131
|
-
} else {
|
|
1132
|
-
return ___default['default'].get(sanitizedPath, state);
|
|
1133
|
-
}
|
|
1134
|
-
});
|
|
1135
|
-
var set = ___default['default'].curry(function (path, value, state) {
|
|
1136
|
-
var sanitizedPath = sanitizePath(path);
|
|
1137
|
-
|
|
1138
|
-
if (isEmptyPath(sanitizedPath)) {
|
|
1139
|
-
return value;
|
|
1140
|
-
} else {
|
|
1141
|
-
return ___default['default'].set(sanitizedPath, value, state);
|
|
1142
|
-
}
|
|
1143
|
-
});
|
|
1144
|
-
var unset = ___default['default'].curry(function (path, state) {
|
|
1145
|
-
var sanitizedPath = sanitizePath(path);
|
|
1146
|
-
|
|
1147
|
-
if (isEmptyPath(sanitizedPath)) {
|
|
1148
|
-
return undefined;
|
|
1149
|
-
} else {
|
|
1150
|
-
return ___default['default'].unset(sanitizedPath, state);
|
|
1151
|
-
}
|
|
1152
|
-
});
|
|
1153
|
-
var removeNAt = ___default['default'].curry(function (pos, n, value) {
|
|
1154
|
-
return _toConsumableArray__default['default'](value.slice(0, Number(pos))).concat(_toConsumableArray__default['default'](value.slice(Number(pos) + n)));
|
|
1155
|
-
});
|
|
1156
|
-
var removeAt = removeNAt(___default['default'].__, 1);
|
|
1157
|
-
var when = ___default['default'].curry(function (cond, fn, value) {
|
|
1158
|
-
return callIfFunction(cond, value) ? fn(value) : value;
|
|
1159
|
-
});
|
|
1160
|
-
var assign = ___default['default'].curry(function (a, b) {
|
|
1161
|
-
return ___default['default'].assign(b, a);
|
|
1162
|
-
});
|
|
1163
|
-
var concat = ___default['default'].curry(function (a, b) {
|
|
1164
|
-
return ___default['default'].concat(b, a);
|
|
1165
|
-
});
|
|
1166
|
-
var each = ___default['default'].each.convert({
|
|
1167
|
-
cap: false
|
|
1168
|
-
});
|
|
1169
|
-
var find = ___default['default'].find.convert({
|
|
1170
|
-
cap: false
|
|
1171
|
-
});
|
|
1172
|
-
var filter = ___default['default'].filter.convert({
|
|
1173
|
-
cap: false
|
|
1174
|
-
});
|
|
1175
|
-
var map = ___default['default'].map.convert({
|
|
1176
|
-
cap: false
|
|
1177
|
-
});
|
|
1178
|
-
var insertAt = ___default['default'].curry(function (pos, newElements, value) {
|
|
1179
|
-
return _toConsumableArray__default['default'](value.slice(0, pos).concat(newElements)).concat(_toConsumableArray__default['default'](value.slice(pos)));
|
|
1180
|
-
});
|
|
1181
|
-
|
|
1182
|
-
function _templateObject() {
|
|
1183
|
-
var data = _taggedTemplateLiteral__default['default'](["\n ", ""]);
|
|
1184
|
-
|
|
1185
|
-
_templateObject = function _templateObject() {
|
|
1186
|
-
return data;
|
|
1187
|
-
};
|
|
1188
|
-
|
|
1189
|
-
return data;
|
|
1190
|
-
}
|
|
1191
|
-
|
|
1192
|
-
var checkCustomScreenWidth = function checkCustomScreenWidth(sizeParis, customWidth) {
|
|
1193
|
-
var currentWidth = callIfFunction(customWidth);
|
|
1194
|
-
return !sizeParis.find(function (_ref4) {
|
|
1195
|
-
var _ref5 = _slicedToArray__default['default'](_ref4, 2),
|
|
1196
|
-
size = _ref5[0],
|
|
1197
|
-
type = _ref5[1];
|
|
1198
|
-
|
|
1199
|
-
if (type === "min-width") {
|
|
1200
|
-
return currentWidth < size;
|
|
1201
|
-
}
|
|
1202
|
-
|
|
1203
|
-
if (type === "max-width") {
|
|
1204
|
-
return currentWidth > size;
|
|
1205
|
-
}
|
|
1206
|
-
});
|
|
1207
|
-
};
|
|
1208
|
-
|
|
1209
|
-
var media = function media() {
|
|
1210
|
-
for (var _len3 = arguments.length, sizePairs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
1211
|
-
sizePairs[_key3] = arguments[_key3];
|
|
1212
|
-
}
|
|
1213
|
-
|
|
1214
|
-
return function () {
|
|
1215
|
-
for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
1216
|
-
args[_key4] = arguments[_key4];
|
|
1217
|
-
}
|
|
1218
|
-
|
|
1219
|
-
return styled.css(["", ""], function (props) {
|
|
1220
|
-
var _props$theme, _props$theme2;
|
|
1221
|
-
|
|
1222
|
-
return ((_props$theme = props.theme) === null || _props$theme === void 0 ? void 0 : _props$theme.overrideMediaWidth) ? checkCustomScreenWidth(sizePairs, (_props$theme2 = props.theme) === null || _props$theme2 === void 0 ? void 0 : _props$theme2.overrideMediaWidth) ? styled.css.apply(void 0, args) : "" : styled.css(["@media ", "{", "}"], sizePairs.map(function (_ref6) {
|
|
1223
|
-
var _ref7 = _slicedToArray__default['default'](_ref6, 2),
|
|
1224
|
-
size = _ref7[0],
|
|
1225
|
-
type = _ref7[1];
|
|
1226
|
-
|
|
1227
|
-
return "(".concat(type, ": ").concat(size + scrollWidth, "px)");
|
|
1228
|
-
}).join(' and '), styled.css.apply(void 0, args));
|
|
1229
|
-
});
|
|
1230
|
-
};
|
|
1231
|
-
};
|
|
1232
|
-
media.mobile = media([600, 'max-width']);
|
|
1233
|
-
|
|
1234
|
-
media.between = function (min, max) {
|
|
1235
|
-
return media([min, 'min-width'], [max, 'max-width']);
|
|
1236
|
-
};
|
|
1237
|
-
|
|
1238
|
-
media.max = function (n) {
|
|
1239
|
-
return media([n, 'max-width']);
|
|
1240
|
-
};
|
|
1241
|
-
|
|
1242
|
-
media.min = function (n) {
|
|
1243
|
-
return media([n, 'min-width']);
|
|
1244
|
-
};
|
|
1245
|
-
|
|
1246
|
-
media.desktop = media([601, 'min-width']);
|
|
1247
|
-
|
|
1248
|
-
var getFrameOffset = function getFrameOffset(i, total) {
|
|
1249
|
-
return Math.round(i * 100 / (total - 1));
|
|
1250
|
-
};
|
|
1251
|
-
|
|
1252
|
-
var emotion = createEmotion__default['default']({
|
|
1253
|
-
nonce: __webpack_nonce__
|
|
1254
|
-
});
|
|
1255
|
-
var oneWayAnimation = function oneWayAnimation() {
|
|
1256
|
-
for (var _len5 = arguments.length, frames = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
|
|
1257
|
-
frames[_key5] = arguments[_key5];
|
|
1258
|
-
}
|
|
1259
|
-
|
|
1260
|
-
return emotion.keyframes(_templateObject(), frames.map(function (frame, i) {
|
|
1261
|
-
return !frame ? '' : "".concat(getFrameOffset(i, frames.length), "% {\n ").concat(frame, "\n }");
|
|
1262
|
-
}));
|
|
1263
|
-
};
|
|
1264
|
-
var identityTranslateFrames = oneWayAnimation('transform: translateY(0);', 'transform: translateY(0);');
|
|
1265
|
-
var identityOpacityFrames = oneWayAnimation('opacity: 1;', 'opacity:1;');
|
|
1266
|
-
|
|
1267
1084
|
var addExtraProp = function addExtraProp(element, extra) {
|
|
1268
1085
|
var override = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
1269
1086
|
return React__default['default'].cloneElement(element, override ? _objectSpread__default['default']({}, element.props, extra) : _objectSpread__default['default']({}, extra, element.props), element.props.children);
|
|
@@ -1279,7 +1096,7 @@ var WithLazyResource = function WithLazyResource(_ref) {
|
|
|
1279
1096
|
props = _objectWithoutProperties__default['default'](_ref, ["value", "wrap", "fallback", "children", "forwardProps"]);
|
|
1280
1097
|
|
|
1281
1098
|
return wrap || fallback !== undefined ? React__default['default'].createElement(React__default['default'].Suspense, {
|
|
1282
|
-
fallback: ifUndefined(fallback, null)
|
|
1099
|
+
fallback: utils.ifUndefined(fallback, null)
|
|
1283
1100
|
}, React__default['default'].createElement(Load, {
|
|
1284
1101
|
value: value,
|
|
1285
1102
|
forwardProps: forwardProps && props,
|
|
@@ -1438,6 +1255,43 @@ var useTitle = function useTitle(title) {
|
|
|
1438
1255
|
});
|
|
1439
1256
|
};
|
|
1440
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
|
+
|
|
1441
1295
|
function usePrevious(value, initialValue) {
|
|
1442
1296
|
var ref = React.useRef(initialValue);
|
|
1443
1297
|
React.useEffect(function () {
|
|
@@ -1454,6 +1308,15 @@ function usePreviousUnique(value, initialValue) {
|
|
|
1454
1308
|
});
|
|
1455
1309
|
return ref.current;
|
|
1456
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
|
+
}
|
|
1457
1320
|
|
|
1458
1321
|
var useEnsureRef = function useEnsureRef(forwardedRef) {
|
|
1459
1322
|
var ref = React.useRef();
|
|
@@ -1690,6 +1553,155 @@ var useRefMemo = function useRefMemo(value) {
|
|
|
1690
1553
|
return ref;
|
|
1691
1554
|
};
|
|
1692
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
|
+
|
|
1693
1705
|
exports.Fill = Fill;
|
|
1694
1706
|
exports.GroupEventFactory = GroupEventFactory;
|
|
1695
1707
|
exports.PopupContext = PopupContext;
|
|
@@ -1705,6 +1717,8 @@ exports.WithLazyResource = WithLazyResource;
|
|
|
1705
1717
|
exports.WithRef = WithRef;
|
|
1706
1718
|
exports.clearPopups = clearPopups;
|
|
1707
1719
|
exports.consumes = consumes;
|
|
1720
|
+
exports.createSelectableContext = createSelectableContext;
|
|
1721
|
+
exports.createStatefulContext = createStatefulContext;
|
|
1708
1722
|
exports.useAsyncEffect = useAsyncEffect;
|
|
1709
1723
|
exports.useCatalogManager = useCatalogManager;
|
|
1710
1724
|
exports.useConstant = useConstant;
|
|
@@ -1717,14 +1731,18 @@ exports.useIsUnmounted = useIsUnmounted;
|
|
|
1717
1731
|
exports.useLazyConstant = useLazyConstant;
|
|
1718
1732
|
exports.usePopupToggle = usePopupToggle;
|
|
1719
1733
|
exports.usePrevious = usePrevious;
|
|
1734
|
+
exports.usePreviousForEffect = usePreviousForEffect;
|
|
1720
1735
|
exports.usePreviousUnique = usePreviousUnique;
|
|
1736
|
+
exports.useRecycleFocus = useRecycleFocus;
|
|
1721
1737
|
exports.useRefMemo = useRefMemo;
|
|
1722
1738
|
exports.useRefState = useRefState;
|
|
1723
1739
|
exports.useRefToggle = useRefToggle;
|
|
1740
|
+
exports.useSelectorSignal = useSelectorSignal;
|
|
1724
1741
|
exports.useTitle = useTitle;
|
|
1725
1742
|
exports.useToggle = useToggle;
|
|
1726
1743
|
exports.useUpdateEffect = useUpdateEffect;
|
|
1727
1744
|
exports.useUpdateOnResize = useUpdateOnResize;
|
|
1745
|
+
exports.useUpdateSignal = useUpdateSignal;
|
|
1728
1746
|
exports.willUseForceUpdate = willUseForceUpdate;
|
|
1729
1747
|
exports.willUseLayers = willUseLayers;
|
|
1730
1748
|
exports.willUseSharedCallback = willUseSharedCallback;
|
package/package.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@startlibs/core",
|
|
3
|
-
"version": "1.0.0-alpha-
|
|
3
|
+
"version": "1.0.0-alpha-6u",
|
|
4
4
|
"description": "Startlibs Core",
|
|
5
|
-
"main": "
|
|
5
|
+
"main": "src/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
7
7
|
"source": true,
|
|
8
8
|
"peerDependencies": {
|
|
9
|
+
"@startlibs/utils": "^1.0",
|
|
9
10
|
"lodash": "^4.17.11",
|
|
10
11
|
"react": "^18.0",
|
|
11
12
|
"react-dom": "^18.0",
|
|
12
|
-
"styled-components": "^5.2.0"
|
|
13
|
-
"@startlibs/utils": "^1.0"
|
|
13
|
+
"styled-components": "^5.2.0"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
16
|
"@babel/core": "^7.2.0",
|
package/src/index.js
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export * from './StartlibsProvider'
|
|
2
|
+
export * from './SlotFill'
|
|
3
|
+
export * from './hocs/consumes'
|
|
4
|
+
export * from './hocs/withDialogError'
|
|
5
|
+
export * from './hocs/withGroupEvent'
|
|
6
|
+
export * from './hocs/WithRef'
|
|
7
|
+
export * from './hocs/WithLazyResource'
|
|
8
|
+
export * from './hooks/WithEffect'
|
|
9
|
+
export * from './hooks/useToggle'
|
|
10
|
+
export * from './hooks/usePopupToggle'
|
|
11
|
+
export * from './hooks/useRefState'
|
|
12
|
+
export * from './hooks/useConsumerCatalog'
|
|
13
|
+
export * from './hooks/useTitle'
|
|
14
|
+
export * from './hooks/useRecycleFocus'
|
|
15
|
+
export * from './hooks/usePrevious'
|
|
16
|
+
export * from './hooks/useIsUnmounted'
|
|
17
|
+
export * from './hooks/useEnsureRef'
|
|
18
|
+
export * from './hooks/useConstant'
|
|
19
|
+
export * from './hooks/useForceUpdate'
|
|
20
|
+
export * from './hooks/useUpdateOnResize'
|
|
21
|
+
export * from './hooks/useAsyncEffect'
|
|
22
|
+
export * from './hooks/useUpdateEffect'
|
|
23
|
+
export * from './hooks/willUseLayers'
|
|
24
|
+
export * from './hooks/willUseSharedCallback'
|
|
25
|
+
export * from './hooks/willUseSharedState'
|
|
26
|
+
export * from './hooks/willUseSpreadState'
|
|
27
|
+
export * from './hooks/useRefMemo'
|
|
28
|
+
export * from './hooks/useSignal'
|